Benchmarks

How to evaluate Exa against other search providers and native model search, on public and Exa-built benchmarks.

Exa ATLAS

ATLAS grades search agents on the completeness and accuracy of wide, deep research tasks. We give the same agent, prompt and budget a different search API on each run and score the answer tables. Exa reaches the highest row F1 of any search API.

Read about ATLAS
Exa-built · ATLAS

Search APIs on ATLAS

Row F1
0%10%20%30%40%50%
44.4%
42.6%
38.1%
36.8%
30.6%
29.1%
28.5%
28.3%
27.7%
25.8%
17.8%
Exa auto
Exa lite
Perplexity web
Perplexity fast
Parallel advanced
Parallel basic
OpenAI native search
Brave LLM context
Parallel fast
Parallel turbo
Anthropic native search
ExaPerplexityParallelOpenAIBraveAnthropic
547 tasks

Vertical benchmarks

No public benchmark drills into the day-to-day tasks a search agent performs: finding code and documentation, researching companies and people, and reading financial filings. So we built our own. Each chart compares Exa's search API with the other search APIs on the same queries.

Exa-built

Coding: single-step search

Coding agents
Pass rate
0%20%40%60%80%100%
75.9%
75.1%
72.6%
69.5%
68.7%
65.1%
62.4%
61.1%
57.4%
Exa lite
Exa auto
Perplexity web
Perplexity fast
Brave LLM context
Parallel advanced
Parallel basic
Parallel fast
Parallel turbo
2,665 queries
Exa-built

Coding: agentic search

Coding agents
Pass rate
0%20%40%60%80%100%
81.4%
80.1%
76.5%
76.3%
73.9%
72%
72%
70.3%
69.4%
68.2%
67.8%
Exa auto
Exa lite
Parallel basic
Parallel advanced
Perplexity web
Perplexity fast
OpenAI native search
Parallel fast
Brave LLM context
Parallel turbo
Anthropic native search
236 tasks
Exa-built

People + Company Search

Sales · Recruiting
Pass rate
0%20%40%60%80%100%
66.7%
65.5%
60.9%
59.7%
59.1%
59.1%
58.1%
57.8%
52.9%
Exa auto
Exa lite
Parallel advanced
Perplexity web
Perplexity fast
Brave LLM context
Parallel basic
Parallel fast
Parallel turbo
955 queries
Exa-built

Finance

Filings · Earnings · Markets
Pass rate
0%20%40%60%80%100%
60.3%
58.9%
49%
48.5%
47.1%
46.9%
43.7%
42.3%
39.7%
Exa lite
Exa auto
Perplexity fast
Perplexity web
Brave LLM context
Parallel advanced
Parallel basic
Parallel fast
Parallel turbo
970 queries

Exa Agent: deep research

Everything above measures Exa's search API. This section measures Exa Agent, our research agent, against other research agents and frontier models.

Row F1
0%
20%
40%
60%
80%
Exa Agent
Opus 5.5
GPT-6 Astra
Perplexity
$0.02$0.05$0.1$0.2$0.5$1$2$5$10$20
Median cost per task (USD, log scale)
Faded points are each system's lower-effort settings.

Exa Agent for deep research

These results are for Exa Agent, not the search API. Exa Agent plans and runs many searches itself, so we compare it with other research agents on benchmarks that test an agent's ability to find and enrich multiple entities.

In addition to existing industry benchmarks, we developed ATLAS, a new benchmark for wide and deep search that tests the accuracy and completeness of search agents against challenging real-world research tasks.

For deep research tasks, Exa Agent is pareto dominant across total number of entities found and cost per verified result.

Methodology

We put each provider through 8,985 tasks across 13 test suites. People + Company Search, Finance and our other coding sets are built from production traffic and stay private.

Controlling non-search variables

The model (GPT-6 Luna), prompt, loop, and budget are fixed. Only the search API changes.

Native model search

OpenAI (GPT-6 Luna) and Anthropic (Claude Haiku 5.5) run with their own hosted search. The model and search backend are scored together, so the native searchers sit alongside the search APIs rather than separately.

Principles
  1. 01
    Use each provider's documented settings

    See below for details of settings used.

  2. 02
    One judge per benchmark

    Every provider's results on a benchmark are graded by the same LLM judge with the same rubric, recreating the upstream grading method for public benchmarks as closely as possible.

  3. 03
    Pinned and logged

    Public benchmarks load from pinned upstream versions. Each run records every request, answer, grade, and cost.

Provider configuration

Same for every provider

Each provider runs on its own defaults except the request settings below. These values never change between providers.

{
  "model": "openai/gpt-6-luna",
  "reasoning_effort": "medium",
  "max_tokens": 32000,
  "max_rounds": 25
}
Exa
Search type
POST https://api.exa.ai/search
{
  "type": "auto",
  "numResults": 10,
  "contents": {
    "highlights": true
  }
}
Perplexity
Search type
POST https://api.perplexity.ai/search
{
  "search_type": "web",
  "max_results": 10
}
Parallel
Search type
POST https://api.parallel.ai/v1/search
{
  "mode": "advanced",
  "advanced_settings": {
    "max_results": 10
  }
}
Brave
GET https://api.search.brave.com/res/v1/llm/context
?count=10
&maximum_number_of_tokens_per_url=4096
OpenAI
POST https://api.openai.com/v1/responses
{
  "model": "gpt-6-luna",
  "reasoning": { "effort": "medium" },
  "tools": [
    {
      "type": "web_search",
      "search_context_size": "high",
      "external_web_access": true,
      "return_token_budget": "unlimited"
    }
  ]
}
Anthropic

Runs on anthropic/claude-haiku-5-5: Anthropic's hosted web search only works with Claude models, so this arm cannot use the shared GPT-6 Luna agent. Search runs through Programmatic Tool Calling (PTC), and there is no cap on the number of searches dispatched.

POST https://api.anthropic.com/v1/messages
{
  "model": "claude-haiku-5-5",
  "output_config": { "effort": "high" },
  "tools": [
    {
      "type": "web_search_20260318",
      "allowed_callers": ["code_execution_20260120"],
      "max_uses": null,
      "response_inclusion": "excluded"
    }
  ]
}