Skip to main content

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 →

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 →

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 →

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 below for full pricing.Read the Search API reference →

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 →
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 → · Try it in the dashboard →

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 → · Exa MCP →
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 → · Read the benchmark blog →
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 → · Read the benchmark blog →

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 →

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 →

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 →

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.
  • use_autoprompt deprecated: removed from all API responses.
Read the Python SDK docs →

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 →

Geolocation Filter Support

The new userLocation parameter biases results toward a user’s region, passed as an 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 →

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 → · Try it in the dashboard →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 →

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 →

New Livecrawl Option: Preferred

Historical entry: the livecrawl string parameter is now deprecated. For new integrations, use maxAgeHours with livecrawlTimeout. See Content Freshness.
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 →

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 →

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 →