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

# Changelog

> Product updates and announcements from Exa.

<Update
  label="June 2026"
  description={
<div className="changelog-month-index">
  <div><a href="#introducing-exa-agent">Introducing Exa Agent</a></div>
</div>
}
  rss={{
title: "June 2026",
description: "Introducing Exa Agent, a new class of frontier web research agents accessible via API."
}}
>
  ## Introducing Exa Agent

  We released a new class of frontier web research agents that are accessible via API.

  Exa Agent API supports parameters including a natural-language query, `effort` mode, `outputSchema` for structured outputs, and `input.data` to build upon an existing dataset.

  [Read the Exa Agent API guide →](/reference/agent-api-guide)
</Update>

<Update
  label="April 2026"
  description={
<div className="changelog-month-index">
  <div><a href="#api-deprecation-notice">API Deprecation Notice</a></div>
</div>
}
  rss={{
title: "April 2026",
description: "API deprecation notice: legacy fields, parameters, and the /research endpoint removed."
}}
>
  ## API Deprecation Notice

  We retired a few legacy items from the Exa API:

  * **`/research` endpoint**: replaced by `/search` with `type: "deep-reasoning"`.
  * **`resolvedSearchType` and `highlightScores` (response fields)**: returned `null` from April 15, removed May 1.
  * **`startCrawlDate` / `endCrawlDate` (request parameters)**: silently ignored from April 15.

  [Migrate to Deep search →](/reference/search)
</Update>

<Update
  label="March 2026"
  description={
<div className="changelog-month-index">
  <div><a href="#introducing-exa-monitors">Introducing Exa Monitors</a></div>
  <div><a href="#exa-deep-revamp">Exa Deep Revamp</a></div>
  <div><a href="#exa-pricing-update">Exa Pricing Update</a></div>
</div>
}
  rss={{
title: "March 2026",
description: "Exa Monitors launch, Exa Deep revamp with structured outputs, and a pricing update."
}}
>
  ## Introducing Exa Monitors

  Monitors run Exa searches on a schedule and deliver results to your webhook, deduplicated against previous runs so you only get new content.

  * **Track topics over time**: competitor news, funding rounds, regulatory changes, research papers.
  * **Structured results**: return plain text or typed JSON via `outputSchema`.
  * **Flexible scheduling**: run on an interval (minimum 1 hour) or trigger manually.

  [Read the Monitors API guide →](/reference/monitors-api-guide)

  ## Exa Deep Revamp

  Exa Deep is faster, cheaper, and now supports structured outputs with field-level grounding.

  * **New `deep-reasoning` type** for higher-effort tasks (12-50s); `deep` runs in 4-12s.
  * **20% lower price** for regular `deep` search.
  * **Structured outputs** via `outputSchema`, with `output.content` and `output.grounding` (field-level citations and confidence) in the response.

  See the [Exa Pricing Update](#exa-pricing-update) below for full pricing.

  [Read the Search API reference →](/reference/search)

  ## Exa Pricing Update

  We simplified and lowered pricing. Contents for the first 10 search results are now included for free, and the new pricing applies automatically with no action needed.

  * **Search with contents**: \$7 per 1k requests (10 results, text + highlights included); \$1 per 1k additional results.
  * **Summaries**: \$1 per 1k, on both search and contents.
  * **Exa Deep**: \$12 per 1k requests; **Deep (Reasoning)** \$15 per 1k.
  * **Contents endpoint**: \$1 per 1k pages per content type.

  [View current pricing →](https://exa.ai/pricing)
</Update>

<Update
  label="February 2026"
  description={
<div className="changelog-month-index">
  <div><a href="#introducing-exa-instant-search">Introducing Exa Instant Search</a></div>
  <div><a href="#highlights-content-freshness-and-mcp-updates">Highlights, content freshness, and MCP updates</a></div>
</div>
}
  rss={{
title: "February 2026",
description: "Exa Instant Search launch, plus highlights, content freshness, and MCP updates."
}}
>
  ## Introducing Exa Instant Search

  Exa Instant is our fastest search type, combining improved neural search quality with sub-150ms latency. Enable it with `type="instant"`.

  * **Built for real-time**: chat apps, voice AI, coding agents, autocomplete, and live suggestions.
  * **State-of-the-art quality** at the lowest latency we offer.

  [Read the Search API guide →](/reference/search-api-guide) · [Try it in the dashboard →](https://dashboard.exa.ai/playground/search?type=instant)

  ## Highlights, content freshness, and MCP updates

  Three improvements to content extraction and access:

  * **`maxCharacters` for highlights**: now the preferred way to control highlight length. `numSentences` and `highlightsPerUrl` are deprecated.
  * **`maxAgeHours` for content freshness**: age-based control replacing boolean `livecrawl` (`0` always crawls, `-1` cache-only, `24` crawls if older than 24h).
  * **Exa MCP free tier**: try it unauthenticated at 3 QPS and 150 calls/day; add an API key for full access.

  [Content freshness docs →](/reference/livecrawling-contents) · [Exa MCP →](/reference/exa-mcp)
</Update>

<Update
  label="January 2026"
  description={
<div className="changelog-month-index">
  <div><a href="#introducing-exa-company-search">Introducing Exa Company Search</a></div>
</div>
}
  rss={{
title: "January 2026",
description: "Exa Company Search launch with a fine-tuned retrieval model and entity-matching pipeline."
}}
>
  ## Introducing Exa Company Search

  Company search now uses a fine-tuned retrieval model and entity-matching pipeline. Use `type="auto"`, `category="company"`.

  * **Accurate across attributes**: industry, geography, funding stage, and employee count.
  * **Structured entity data**: results return typed company info (workforce, HQ, financials, web traffic).
  * **Use cases**: sales prospecting, market research, and supply chain workflows.

  [Read the Company Search docs →](/reference/verticals/company) · [Read the benchmark blog →](https://exa.ai/blog/company-search-benchmarks)
</Update>

<Update
  label="December 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#introducing-exa-people-search">Introducing Exa People Search</a></div>
</div>
}
  rss={{
title: "December 2025",
description: "Exa People Search launch with 1B+ indexed profiles; the 'linkedin' category is replaced by 'people'."
}}
>
  ## Introducing Exa People Search

  People search now spans 1B+ public profiles via a hybrid retrieval system. The `linkedin` category is replaced by the new `people` category.

  * **Broader coverage**: profiles across the whole web, not just LinkedIn.
  * **Better accuracy**: fine-tuned embeddings for role, skill, and company queries.
  * **Use cases**: sales, recruiting, and market research.

  [Read the People Search docs →](/reference/verticals/people) · [Read the benchmark blog →](https://exa.ai/blog/people-search-benchmark)
</Update>

<Update
  label="November 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#js-sdk-highlights-restored">JS SDK: highlights restored</a></div>
  <div><a href="#new-deep-search-type">New Deep Search Type</a></div>
  <div><a href="#added-language-filtering">Added Language Filtering</a></div>
</div>
}
  rss={{
title: "November 2025",
description: "JS SDK highlights restored, the new Deep search type, and default language filtering."
}}
>
  ## JS SDK: highlights restored

  Highlights are back in the JavaScript SDK as of `exa-js` v2.0.11, returning key sentences with relevance scores. Pass `highlights: true` or `highlights: { maxCharacters, query }` in search and contents calls.

  [Read the JavaScript SDK docs →](/sdks/javascript-sdk)

  ## New Deep Search Type

  Exa Deep finds better results by running multiple searches at once and returning high-quality context for each result. Enable it with `type="deep"`.

  * **Query expansion**: send one query and we generate variations, or supply your own with `additionalQueries`.
  * **Parallel search and smart ranking** across your query and all variations.
  * **Detailed summaries** for each result.

  [Read the Search API reference →](/reference/search)

  ## Added Language Filtering

  Exa now detects your query language and returns results only in that language. Enabled by default for all users, with no setup required.

  [Read the Search API guide →](/reference/search-api-guide)
</Update>

<Update
  label="October 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#sdk-changes-highlights-removed-and-contents-returned-by-default">SDK changes: highlights removed and contents returned by default</a></div>
</div>
}
  rss={{
title: "October 2025",
description: "Major SDK changes: contents returned by default, highlights removed, and use_autoprompt deprecated."
}}
>
  ## SDK changes: highlights removed and contents returned by default

  A major SDK version with breaking changes:

  * **Contents by default**: search now includes page contents; opt out for faster searches.
  * **Highlights removed from SDKs**: later restored in the JS SDK; see [JS SDK: highlights restored](#js-sdk-highlights-restored).
  * **`use_autoprompt` deprecated**: removed from all API responses.

  [Read the Python SDK docs →](/sdks/python-sdk)
</Update>

<Update
  label="August 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#domain-path-filter-support">Domain Path Filter Support</a></div>
</div>
}
  rss={{
title: "August 2025",
description: "includeDomains and excludeDomains now support URL path filtering and subdomain wildcards."
}}
>
  ## Domain Path Filter Support

  `includeDomains` and `excludeDomains` now support finer targeting:

  * **Path-specific filtering**: e.g. `exa.ai/blog` or `linkedin.com/company`.
  * **Subdomain wildcards**: e.g. `*.substack.com`.

  Useful for scoping searches to blogs, product catalogs, or directories.

  [Read the Search API reference →](/reference/search)
</Update>

<Update
  label="July 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#geolocation-filter-support">Geolocation Filter Support</a></div>
  <div><a href="#new-fast-search-type">New Fast Search Type</a></div>
  <div><a href="#score-deprecation-in-auto-search">Score Deprecation in Auto Search</a></div>
</div>
}
  rss={{
title: "July 2025",
description: "Geolocation filtering, the new Fast search type, and score deprecation in Auto search."
}}
>
  ## Geolocation Filter Support

  The new `userLocation` parameter biases results toward a user's region, passed as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code (e.g. `"us"`, `"fr"`). Useful for multi-regional apps, regional-language content, and local discovery.

  [Read the Search API reference →](/reference/search)

  ## New Fast Search Type

  Exa Fast uses streamlined search models with p50 latency below 425ms. Enable it with `type="fast"`.

  * **Same Exa index** of high-quality content as neural search.
  * **Full parameter compatibility** with other search types.
  * **Built for** fast web grounding, agentic workflows, and low-latency products.

  [Read the Search API guide →](/reference/search-api-guide) · [Try it in the dashboard →](https://dashboard.exa.ai/playground/search?q=blog%20post%20about%20AI\&filters=%7B%22text%22%3A%22true%22%2C%22type%22%3A%22fast%22%2C%22livecrawl%22%3A%22never%22%7D)

  ## Score Deprecation in Auto Search

  A new Auto search architecture can no longer produce meaningful relevance scores, so the `score` field is being removed from Auto search results.

  * **Auto search**: no longer returns `score`; results are already ranked by relevance.
  * **Neural search**: scores are unchanged. Set `type="neural"` if you depend on them.

  [Read the Search API reference →](/reference/search)
</Update>

<Update
  label="June 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#markdown-contents-as-default">Markdown Contents as Default</a></div>
  <div><a href="#new-livecrawl-option-preferred">New Livecrawl Option: Preferred</a></div>
</div>
}
  rss={{
title: "June 2025",
description: "Markdown content as the default format, and the new 'preferred' livecrawl option."
}}
>
  ## Markdown Contents as Default

  All endpoints now return clean markdown by default, which is better for LLMs, RAG, and general text processing. No action needed.

  * **`includeHtmlTags=false` (default)**: content processed into clean markdown.
  * **`includeHtmlTags=true`**: raw HTML without markdown processing.

  Either way, boilerplate like ads and navigation is stripped.

  [Read the Contents docs →](/reference/contents-retrieval)

  ## New Livecrawl Option: Preferred

  <Warning>
    Historical entry: the `livecrawl` string parameter is now deprecated. For new integrations, use `maxAgeHours` with `livecrawlTimeout`. See [Content Freshness](/reference/livecrawling-contents).
  </Warning>

  `livecrawl: "preferred"` attempts a fresh crawl but falls back to cached content when crawling fails (unlike `"always"`, which errors). Ideal for production apps that want fresh content without failing on temporarily unavailable sites.

  [Read the Content Freshness docs →](/reference/livecrawling-contents)
</Update>

<Update
  label="May 2025"
  description={
<div className="changelog-month-index">
  <div><a href="#contents-endpoint-status-changes">Contents Endpoint Status Changes</a></div>
</div>
}
  rss={{
title: "May 2025",
description: "The /contents endpoint now returns per-URL status information instead of HTTP error codes."
}}
>
  ## Contents Endpoint Status Changes

  `/contents` now returns a per-URL `statuses` field instead of a single HTTP error, so you can handle each URL's outcome individually. The endpoint only errors on internal issues.

  * **`status`**: `"success"` or `"error"` per URL.
  * **`error.tag`**: e.g. `CRAWL_NOT_FOUND`, `CRAWL_TIMEOUT`, `SOURCE_NOT_AVAILABLE`, with an `httpStatusCode`.

  [Read the error codes reference →](/reference/error-codes)
</Update>

<Update
  label="December 2024"
  description={
<div className="changelog-month-index">
  <div><a href="#auto-search-as-default">Auto search as Default</a></div>
</div>
}
  rss={{
title: "December 2024",
description: "Auto search is now the default search type, routing each query to the best search method."
}}
>
  ## Auto search as Default

  Auto search is now the default, automatically routing each query to the best search method. No action needed; set `type="neural"` to keep the previous behavior.

  [Learn about Exa's search types →](/reference/exas-capabilities-explained)
</Update>
