Exa 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. Exa has retired its standalone Research endpoint — use the Agent operation for deep research. Workflows still configured with the old Research operation are routed to Agent automatically. Exa has also deprecated Find Similar Links in favor of Search, and livecrawl in favor of maxAgeHours.
Integrate Exa into the workflow. Can search the web, get page contents, find similar links, answer a question with citations, and run deep research with Exa Agent.
Search the web using Exa AI. Returns relevant search results with titles, URLs, and text snippets.
| 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 |
| 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 |
Retrieve the contents of webpages using Exa AI. Returns the title, text content, and optional summaries for each URL.
| 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 |
| 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 |
Find webpages similar to a given URL using Exa AI. Deprecated by Exa in favor of Search — prefer Search for new workflows.
| 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 |
| 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 |
Get an AI-generated answer to a question with citations from the web using Exa AI.
| 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 |
| 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 |
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.
| 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 |
| 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 |