> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Limadata: Research Extract

> Extract clean markdown page content, titles, metadata, links, and images from one or more URLs. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

Extract clean markdown page content, titles, metadata, links, and images from one or more URLs.

> [!NOTE]
>
> Tool ID: `limadata_research_extract`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'limadata_research_extract',
  {
    "urls": [
      "https://example.com"
    ]
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute limadata_research_extract --input '{
  "urls": [
    "https://example.com"
  ]
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "results": [
      {
        "url": "https://example.com",
        "title": "VP of Engineering",
        "meta_description": "example"
      }
    ],
    "errors": [
      {
        "url": "https://example.com",
        "status_code": 1,
        "message": "Example message"
      }
    ]
  }
}
```

Use `deepline describe limadata_research_extract --json` for the latest machine-readable contract.

## Input reference

Extracts clean, markdown-formatted content from web pages. Accepts 1-10 URLs and returns cleaned content optimized for LLM consumption. Each URL is processed with a 30-second timeout and 1MB max response size. ### Returns: - Clean markdown content - Page title - Meta description - Image URLs (if requested) - Error details for failed extractions #### Rate limit This endpoint is exempt from the global rate limit and can support higher concurrency. ### Cost:

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.urls` | `array` | Yes | — | List of URLs to extract content from (1-10 URLs) Minimum length: 1. |
| `payload.include_links` | `boolean` | No | — | Whether to extract link URLs from the pages (default: false) |
| `payload.include_images` | `boolean` | No | — | Whether to extract image URLs from the pages (default: false) |
| `payload.render_js` | `boolean` | No | — | Use a headless browser to render the page before extraction (default: false). Required for JS-rendered pages, SPAs, and complex pages that rely on client-side rendering. Costs 0.2 credits per URL instead of 0.1. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Extracts clean, markdown-formatted content from web pages. Accepts 1-10 URLs and returns cleaned content optimized for LLM consumption. Each URL is processed with a 30-second timeout and 1MB max response size. ### Returns: - Clean markdown content - Page title - Meta description - Image URLs (if requested) - Error details for failed extractions #### Rate limit This endpoint is exempt from the global rate limit and can support higher concurrency. ### Cost:",
    "properties": {
      "urls": {
        "type": "array",
        "description": "List of URLs to extract content from (1-10 URLs)",
        "minLength": 1,
        "items": {
          "type": "string"
        }
      },
      "include_links": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Whether to extract link URLs from the pages (default: false)"
      },
      "include_images": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Whether to extract image URLs from the pages (default: false)"
      },
      "render_js": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Use a headless browser to render the page before extraction (default: false). Required for JS-rendered pages, SPAs, and complex pages that rely on client-side rendering. Costs 0.2 credits per URL instead of 0.1."
      }
    },
    "required": [
      "urls"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.results` | `array \| null` | No | — | Successfully extracted content from URLs |
| `result.data.results[].url` | `string \| null` | No | — | Original URL that was processed |
| `result.data.results[].title` | `string \| null` | No | — | Page title |
| `result.data.results[].meta_description` | `string \| null` | No | — | Meta description |
| `result.data.results[].favicon` | `string \| null` | No | — | Favicon URL |
| `result.data.results[].content` | `string \| null` | No | — | Cleaned content in Markdown format |
| `result.data.results[].images` | `array \| null` | No | — | List of image URLs found on the page (only present if include\_images was requested) |
| `result.data.results[].links` | `array \| null` | No | — | List of link URLs found on the page (only present if include\_links was requested) |
| `result.data.results[].links[].url` | `string \| null` | No | — | — |
| `result.data.results[].links[].text` | `string \| null` | No | — | — |
| `result.data.errors` | `array \| null` | No | — | Failed extraction attempts with error details |
| `result.data.errors[].url` | `string \| null` | No | — | Original URL that failed to process |
| `result.data.errors[].status_code` | `integer \| null` | No | — | HTTP status code: "404", "403", "500", etc. Format: `int32`. |
| `result.data.errors[].message` | `string \| null` | No | — | Human-readable error message |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "results": {
            "type": [
              "array",
              "null"
            ],
            "description": "Successfully extracted content from URLs",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Original URL that was processed"
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Page title"
                },
                "meta_description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Meta description"
                },
                "favicon": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Favicon URL"
                },
                "content": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Cleaned content in Markdown format"
                },
                "images": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "List of image URLs found on the page (only present if include_images was requested)",
                  "items": {
                    "type": "string"
                  }
                },
                "links": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "List of link URLs found on the page (only present if include_links was requested)",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "text": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "errors": {
            "type": [
              "array",
              "null"
            ],
            "description": "Failed extraction attempts with error details",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Original URL that failed to process"
                },
                "status_code": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "HTTP status code: \"404\", \"403\", \"500\", etc.",
                  "format": "int32"
                },
                "message": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Human-readable error message"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `per_result` (per result).
* Estimated Deepline credits: `0.28` per pricing unit.

## Related documentation

* [Limadata provider guide](https://deepline.com/docs/providers/limadata/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.