# Exa (/integrations/exa)





{/* MANUAL-CONTENT-START:intro */}

[Exa](https://exa.ai/) searches the web, retrieves page content, and answers questions with citations. Use Agent for multi-step research and supply a JSON schema when you need structured results with field-level citations.

**Migration notes.** Use **Agent** for multi-step research. Sim routes workflows configured with the old Research operation to Agent and maps their former research-model setting to an effort level. **Find Similar Links** remains a legacy operation; prefer the current [Search API](https://exa.ai/docs/reference/search) for new workflows. Use `maxAgeHours` for content freshness instead of the legacy `livecrawl` setting.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Search the web, retrieve page content, answer questions with citations, or run multi-step research with Exa Agent. Find Similar Links remains a legacy operation; prefer Search for new workflows.

## Actions [#actions]

### Exa Search [#exa-search]

Search the web using Exa AI. Returns relevant search results with titles, URLs, and text snippets.

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `query` | string | Yes | The search query to execute |
  | `numResults` | number | No | Number of results to return (1-100). Default: 10 |
  | `type` | string | No | Search type: "instant", "fast", "auto", "deep-lite", "deep", or "deep-reasoning". Default: "auto" |
  | `includeDomains` | string | No | Comma-separated list of domains to include in results (e.g., "github.com, stackoverflow\.com") |
  | `excludeDomains` | string | No | Comma-separated list of domains to exclude from results (e.g., "reddit.com, pinterest.com") |
  | `category` | string | No | Filter by category: company, publication, news, personal site, financial report, people |
  | `text` | boolean | No | Include full text content in results (default: false) |
  | `highlights` | boolean | No | Include highlighted snippets in results (default: false) |
  | `summary` | boolean | No | Include AI-generated summaries in results (default: false) |
  | `summaryQuery` | string | No | Query to focus the generated summaries on a specific question |
  | `subpages` | number | No | Number of subpages to crawl per result (0-100). Default: 0 |
  | `subpageTarget` | string | No | Comma-separated keywords to target specific subpages (e.g., "docs,pricing,about") |
  | `extrasLinks` | number | No | Number of links to extract from each result page (0-1000). Default: 0 |
  | `extrasImageLinks` | number | No | Number of image URLs to extract from each result page (0-1000). Default: 0 |
  | `outputSchema` | json | No | JSON Schema describing a synthesized answer to build from the results. Returned in structuredOutput. |
  | `systemPrompt` | string | No | Additional guidance for generating the synthesized output |
  | `userLocation` | string | No | Two-letter ISO country code to localize results (e.g., "US") |
  | `maxAgeHours` | number | No | Cache freshness in hours (-1 to 720). 0 always crawls live, -1 uses cache only. Cannot be combined with livecrawl. |
  | `livecrawlTimeout` | number | No | Live crawl timeout in milliseconds (max 90000). Default: 10000 |
  | `livecrawl` | string | No | Deprecated: use maxAgeHours instead. Live crawling mode: never, fallback, always, or preferred |
  | `startPublishedDate` | string | No | Only include results published on or after this ISO 8601 date (e.g., "2024-01-01" or "2024-01-01T00:00:00.000Z") |
  | `endPublishedDate` | string | No | Only include results published on or before this ISO 8601 date |
  | `startCrawlDate` | string | No | Deprecated: use startPublishedDate. Only include results crawled on or after this ISO 8601 date |
  | `endCrawlDate` | string | No | Deprecated: use endPublishedDate. Only include results crawled on or before this ISO 8601 date |
  | `apiKey` | string | Yes | Exa AI API Key |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `results` | array | Search results with titles, URLs, and text snippets |
  | ↳ `id` | string | Result identifier, usable as an id on the Get Contents operation |
  | ↳ `title` | string | The title of the search result |
  | ↳ `url` | string | The URL of the search result |
  | ↳ `publishedDate` | string | Date when the content was published |
  | ↳ `author` | string | The author of the content |
  | ↳ `summary` | string | A brief summary of the content |
  | ↳ `favicon` | string | URL of the site's favicon |
  | ↳ `image` | string | URL of a representative image from the page |
  | ↳ `text` | string | Text snippet or full content from the page |
  | ↳ `highlights` | array | Relevant snippets extracted from the page |
  | ↳ `highlightScores` | array | Similarity score for each highlight |
  | ↳ `subpages` | json | Crawled subpages of the result |
  | ↳ `entities` | json | Structured entity data for company, people, and publication results |
  | ↳ `extras` | json | Extracted links and image links when requested |
  | ↳ `score` | number | Relevance score. Only returned by the legacy neural search type |
  | `requestId` | string | Exa request identifier, useful for support |
  | `structuredOutput` | json | Synthesized answer matching outputSchema, when one was supplied |
  | `grounding` | json | Field-level citations backing the synthesized output |
</ReferenceDetails>

### Exa Get Contents [#exa-get-contents]

Retrieve the contents of webpages using Exa AI. Returns the title, text content, and optional summaries for each URL.

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `urls` | string | No | Comma-separated list of URLs to retrieve content from (1-100). Provide either urls or ids, not both. |
  | `ids` | string | No | Comma-separated list of result IDs from a prior Exa search (1-100). Provide either urls or ids, not both. |
  | `text` | boolean | No | If true, returns full page text with default settings. If false, disables text return. |
  | `summary` | boolean | No | Include an AI-generated summary of each page (default: false) |
  | `summaryQuery` | string | No | Query to guide the summary generation |
  | `subpages` | number | No | Number of subpages to crawl from the provided URLs (0-100) |
  | `subpageTarget` | string | No | Comma-separated keywords to target specific subpages (e.g., "docs,tutorial,about") |
  | `highlights` | boolean | No | Include highlighted snippets in results (default: false) |
  | `extrasLinks` | number | No | Number of links to extract from each page (0-1000). Default: 0 |
  | `extrasImageLinks` | number | No | Number of image URLs to extract from each page (0-1000). Default: 0 |
  | `maxAgeHours` | number | No | Cache freshness in hours (-1 to 720). 0 always crawls live, -1 uses cache only. Cannot be combined with livecrawl. |
  | `livecrawlTimeout` | number | No | Live crawl timeout in milliseconds (max 90000). Default: 10000 |
  | `livecrawl` | string | No | Deprecated: use maxAgeHours instead. Live crawling mode: never, fallback, always, or preferred |
  | `apiKey` | string | Yes | Exa AI API Key |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `results` | array | Retrieved content from URLs with title, text, and summaries |
  | ↳ `id` | string | Exa identifier for the retrieved document |
  | ↳ `url` | string | The URL that content was retrieved from |
  | ↳ `title` | string | The title of the webpage |
  | ↳ `text` | string | The full text content of the webpage |
  | ↳ `summary` | string | AI-generated summary of the webpage content |
  | ↳ `highlights` | array | Relevant snippets extracted from the page |
  | ↳ `highlightScores` | array | Similarity score for each highlight |
  | ↳ `subpages` | json | Crawled subpages of the document |
  | ↳ `entities` | json | Structured entity data for company, people, and publication pages |
  | ↳ `extras` | json | Extracted links and image links when requested |
  | `statuses` | json | Per-URL crawl outcome, showing which pages succeeded and whether they came from cache |
  | `requestId` | string | Exa request identifier, useful for support |
</ReferenceDetails>

### Exa Find Similar Links [#exa-find-similar-links]

Find webpages similar to a given URL using Exa AI. Deprecated by Exa in favor of Search — prefer Search for new workflows.

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `url` | string | Yes | The URL to find similar links for |
  | `numResults` | number | No | Number of similar links to return (1-100). Default: 10 |
  | `text` | boolean | No | Whether to include the full text of the similar pages |
  | `includeDomains` | string | No | Comma-separated list of domains to include in results (e.g., "github.com, stackoverflow\.com") |
  | `excludeDomains` | string | No | Comma-separated list of domains to exclude from results (e.g., "reddit.com, pinterest.com") |
  | `excludeSourceDomain` | boolean | No | Exclude the source domain from results (default: false) |
  | `category` | string | No | Filter by category: company, publication, news, personal site, financial report, people |
  | `highlights` | boolean | No | Include highlighted snippets in results (default: false) |
  | `summary` | boolean | No | Include AI-generated summaries in results (default: false) |
  | `maxAgeHours` | number | No | Cache freshness in hours (-1 to 720). 0 always crawls live, -1 uses cache only. Cannot be combined with livecrawl. |
  | `livecrawlTimeout` | number | No | Live crawl timeout in milliseconds (max 90000). Default: 10000 |
  | `livecrawl` | string | No | Deprecated: use maxAgeHours instead. Live crawling mode: never, fallback, always, or preferred |
  | `apiKey` | string | Yes | Exa AI API Key |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `similarLinks` | array | Similar links found with titles, URLs, and text snippets |
  | ↳ `id` | string | Exa identifier for the similar page |
  | ↳ `title` | string | The title of the similar webpage |
  | ↳ `url` | string | The URL of the similar webpage |
  | ↳ `text` | string | Text snippet or full content from the similar webpage |
  | ↳ `summary` | string | AI-generated summary of the similar webpage |
  | ↳ `highlights` | array | Relevant snippets extracted from the page |
  | ↳ `score` | number | Similarity score indicating how similar the page is |
  | `requestId` | string | Exa request identifier, useful for support |
</ReferenceDetails>

### Exa Answer [#exa-answer]

Get an AI-generated answer to a question with citations from the web using Exa AI.

#### Input [#input-3]

| Parameter | Type | Required | Description |
| - | - | - | - |
| `query` | string | Yes | The question to answer |
| `text` | boolean | No | Include the full page text of each cited source (default: false). This does not affect the answer itself. |
| `outputSchema` | json | No | JSON Schema describing the answer shape. When supplied, the answer is returned as a structured object instead of a string. |
| `apiKey` | string | Yes | Exa AI API Key |

#### Output [#output-3]

| Parameter | Type | Description |
| - | - | - |
| `answer` | json | AI-generated answer to the question. A string, or an object matching outputSchema when one was supplied. |
| `citations` | array | Sources and citations for the answer |
| ↳ `id` | string | Exa identifier for the cited source |
| ↳ `title` | string | The title of the cited source |
| ↳ `url` | string | The URL of the cited source |
| ↳ `text` | string | Full page text of the cited source, when text is enabled |
| ↳ `author` | string | The author of the cited source |
| ↳ `publishedDate` | string | Publication date of the cited source |
| `requestId` | string | Exa request identifier, useful for support |

### Exa Agent [#exa-agent]

Run a deep research task with Exa Agent. Handles multi-step list building, enrichment, and research, returning a written answer with field-level citations and optional structured output.

#### Input [#input-4]

| Parameter | Type | Required | Description |
| - | - | - | - |
| `query` | string | Yes | The research question or instructions for the agent |
| `effort` | string | No | Cost and depth tradeoff: minimal, low, medium, high, xhigh, or auto (default: auto) |
| `outputSchema` | json | No | JSON Schema describing the structured result to return. Returned in the structured output. |
| `systemPrompt` | string | No | Additional guidance for how the agent should behave or format its answer |
| `previousRunId` | string | No | ID of a completed agent run to continue from, for follow-up questions |
| `apiKey` | string | Yes | Exa AI API Key |

#### Output [#output-4]

| Parameter | Type | Description |
| - | - | - |
| `runId` | string | Identifier of the agent run, reusable as previousRunId |
| `status` | string | Final status of the agent run |
| `stopReason` | string | Why the agent stopped, such as schema\_satisfied |
| `text` | string | The written answer produced by the agent |
| `structured` | json | Structured result matching outputSchema, when one was supplied |
| `grounding` | json | Field-level citations backing the agent output |
| `research` | array | The agent answer in the shape the retired Research operation emitted, so workflows that reference it keep resolving |
