Skip to content

How Exa’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score31/100

Agent-ready 60.7 × 0.30 = 18.21

API quality 4.0 × 0.20 = 0.80

Openness 9.6 × 0.20 = 1.92

Built-in AI 33.8 × 0.15 = 5.07

Automation 33.4 × 0.15 = 5.01

(18.21 + 0.80 + 1.92 + 5.07 + 5.01) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 31.01 ÷ 1.00 = 31.0

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready60.7/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [probe] https://exa.ai/llms.txtPROBE llms.txt: HTTP 200 at https://exa.ai/llms.txt # Exa > Exa is a real-time knowledge index and retrieval platform built for AI agents. Exa builds and maintains its own
  • [probe] https://exa.ai/docs/reference/search-api-guide.mdPROBE docs-md: HTTP 200 at https://exa.ai/docs/reference/search-api-guide.md > ## Documentation Index > Fetch the complete documentation index at: https://exa.ai/docs/llms.txt > Use this file to di
  • [claimed-docs] https://exa.ai/docs/llms.txtReturn query-relevant excerpts from Exa Search results while controlling context size and latency.
  • [claimed-docs] https://exa.ai/docs/llms.txtUse iterative search, reasoning, and grounded synthesis for complex research tasks.
  • [claimed-docs] https://exa.ai/docs/reference/agent-skills.mdExa skills teach coding agents how to search, retrieve content, and build with Exa's APIs.

Run the product headlessly / in CI for automationweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [github] https://github.com/exa-labs/exa-jsUse Exa as a `web_search` tool in an OpenAI or Anthropic loop. Call `webSearch()` with no arguments to get Exa's recommended settings for agentic search
  • [github] https://github.com/exa-labs/exa-jsSearch streaming is available via `streamSearch(...)`, which yields OpenAI-style chat completion chunks.
  • [claimed-docs] https://exa.ai/docs/reference/pricingAsync deep research, list building, and enrichment.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched
  • [claimed-docs] https://exa.ai/docs/reference/stripe-projectsA single command creates an Exa account and syncs an API key into your project.
  • [probe] https://exa.ai/docs/reference/search-api-guide.mdPROBE docs-md: HTTP 200 at https://exa.ai/docs/reference/search-api-guide.md > ## Documentation Index > Fetch the complete documentation index at: https://exa.ai/docs/llms.txt > Use this file to di

Plug MCP servers into this product so it can use their toolsweight 3

n/a — not applicable to this product: excluded from numerator and denominator

  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpComplete setup guide for Exa MCP Server. Connect Claude Desktop, Cursor, VS Code, and 10+ AI assistants to Exa's web search, fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpConnect ChatGPT, Codex, Claude, Grok, Cursor, and any other MCP client to Exa's web search, page fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/agent-api/connect/overview.mdExa Connect integrates premium data partners into the Exa Agent loop. Attach a provider to a run, and the Exa Agent queries that partner's database alongside web search before combining the results into one grounded, structured answer.
  • [probe] https://exa.ai/docs/reference/exa-mcpofficial MCP server documented at https://exa.ai/docs/reference/exa-mcp

Connect an agent via an official MCP serverweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpComplete setup guide for Exa MCP Server. Connect Claude Desktop, Cursor, VS Code, and 10+ AI assistants to Exa's web search, fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpExa MCP connects AI assistants to Exa’s search capabilities, including web search, code search, Exa Agent, and Exa Connect.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpConnect Claude Desktop, Cursor, VS Code, and 10+ AI assistants to Exa's web search, fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpConnect ChatGPT, Codex, Claude, Grok, Cursor, and any other MCP client to Exa's web search, page fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpNo API key is required to get started. Exa MCP is open source and available on GitHub.
  • [probe] https://exa.ai/docs/reference/exa-mcpofficial MCP server documented at https://exa.ai/docs/reference/exa-mcp

Use an official CLIweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Drive the product through a documented public APIweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://exa.ai/docs/reference/search-api-guidefrom ~250 ms instant search to 12-40 second deep-reasoning search
  • [claimed-docs] https://exa.ai/docs/reference/search-api-guideUse `output_schema` with any search type to extract structured JSON from search results
  • [github] https://github.com/exa-labs/exa-jsUse Exa as a `web_search` tool in an OpenAI or Anthropic loop. Call `webSearch()` with no arguments to get Exa's recommended settings for agentic search
  • [github] https://github.com/exa-labs/exa-jsconst { answer } = await exa.answer("What is the capital of France?");
  • [claimed-docs] https://exa.ai/docs/reference/rate-limitsOur API endpoints have default rate limits to ensure reliable performance for all users.
  • [probe] https://exa.ai/llms.txtPROBE llms.txt: HTTP 200 at https://exa.ai/llms.txt # Exa > Exa is a real-time knowledge index and retrieval platform built for AI agents. Exa builds and maintains its own
  • [probe] https://exa.ai/docs/reference/search-api-guide.mdPROBE docs-md: HTTP 200 at https://exa.ai/docs/reference/search-api-guide.md > ## Documentation Index > Fetch the complete documentation index at: https://exa.ai/docs/llms.txt > Use this file to di
  • [probe] https://exa.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://exa.ai/openapi.json, https://exa.ai/swagger.json, https://exa.ai/api/openapi.json, https://exa.ai/.well-known/openapi.json)
  • [community] https://news.ycombinator.com/item?id=43906841Signed up for a trial account and I'm pretty impressed with the search API (haven't used Websets yet but looks cool). Suggested adding a 'cruft cleaner' for web query results to reduce what's fed to downstream LLMs.

Issue scoped/least-privilege API credentials for an agentweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/stripe-projectsA single command creates an Exa account and syncs an API key into your project.
  • [claimed-docs] https://exa.ai/docs/reference/rate-limitsOur API endpoints have default rate limits to ensure reliable performance for all users.

Build against official SDKsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [github] https://github.com/exa-labs/exa-jsUse Exa as a `web_search` tool in an OpenAI or Anthropic loop. Call `webSearch()` with no arguments to get Exa's recommended settings for agentic search
  • [github] https://github.com/exa-labs/exa-jsSearch streaming is available via `streamSearch(...)`, which yields OpenAI-style chat completion chunks.
  • [github] https://github.com/exa-labs/exa-jsconst { answer } = await exa.answer("What is the capital of France?");
  • [github] https://github.com/exa-labs/exa-jsFor type: "object", search currently enforces: max nesting depth: 2, max total properties: 10
  • [github] https://github.com/exa-labs/exa-jsSearch streaming is available via streamSearch(...), which yields OpenAI-style chat completion chunks.
  • [github] https://github.com/exa-labs/exa-jsGet answers with citations const { answer } = await exa.answer("What is the capital of France?");
  • [github] https://github.com/exa-labs/exa-jsincludeDomains: ["nasa.gov", "space.com"], startPublishedDate: "2024-01-01",
  • [claimed-docs] https://exa.ai/docs/reference/search-api-guideUse `output_schema` with any search type to extract structured JSON from search results

Subscribe to events via webhooksweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched
  • [claimed-docs] https://exa.ai/docs/websets/api-guideA Webset starts with a natural-language query and a target item count. Add criteria that every result must satisfy and enrichment fields to populate for each accepted item.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.

Agent-ready = 109.2 ÷ 180 × 100 = 60.7

API quality4.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 4 (quality) × 0.3 (disputed) = 2.4 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/search-api-guideit generates a complete, tested integration snippet tailored to your exact stack and use case in under a minute
  • [github] https://github.com/exa-labs/exa-jsUse Exa as a `web_search` tool in an OpenAI or Anthropic loop. Call `webSearch()` with no arguments to get Exa's recommended settings for agentic search
  • [community] https://news.ycombinator.com/item?id=43906841Tried the GitHub repo search feature: it was about 30/70 on finding the things I asked for. The cURL example in 'Get Code' was demonstrably wrong, and results table columns are fixed at 180px, truncating descriptions and URLs.
  • [probe] https://exa.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://exa.ai/openapi.json, https://exa.ai/swagger.json, https://exa.ai/api/openapi.json, https://exa.ai/.well-known/openapi.json)

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://exa.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://exa.ai/openapi.json, https://exa.ai/swagger.json, https://exa.ai/api/openapi.json, https://exa.ai/.well-known/openapi.json)
  • [probe] https://exa.ai/llms.txtPROBE llms.txt: HTTP 200 at https://exa.ai/llms.txt # Exa > Exa is a real-time knowledge index and retrieval platform built for AI agents. Exa builds and maintains its own
  • [probe] https://exa.ai/docs/reference/search-api-guide.mdPROBE docs-md: HTTP 200 at https://exa.ai/docs/reference/search-api-guide.md > ## Documentation Index > Fetch the complete documentation index at: https://exa.ai/docs/llms.txt > Use this file to di

Test against a sandbox environment without touching production dataweight 1

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

API quality = 2.4 ÷ 60 × 100 = 4.0

Openness9.6/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://exa.ai/docs/websets/api-guideYou can also build websets visually in the [Dashboard](/docs/websets/dashboard/get-started), no code required.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGive it a query like "agtech companies in the US that raised Series A" and it will search, verify each result against your criteria, and enrich every match with additional data you specify.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideA Webset starts with a natural-language query and a target item count. Add criteria that every result must satisfy and enrichment fields to populate for each accepted item.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideYou can also build websets visually in the Dashboard, no code required.
  • [community] https://news.ycombinator.com/item?id=43906841Exa was originally just a search engine. They try to hide it these days to promote Websets, but you can still use it at exa.ai/search.
  • [probe] https://exa.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://exa.ai/openapi.json, https://exa.ai/swagger.json, https://exa.ai/api/openapi.json, https://exa.ai/.well-known/openapi.json)

Export all of my data in open formats and leaveweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Read the product's source under an open licenseweight 2

2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpNo API key is required to get started. Exa MCP is open source and available on GitHub.
  • [github] https://github.com/exa-labs/exa-jsUse Exa as a `web_search` tool in an OpenAI or Anthropic loop. Call `webSearch()` with no arguments to get Exa's recommended settings for agentic search
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpExa MCP connects AI assistants to Exa’s search capabilities, including web search, code search, Exa Agent, and Exa Connect.

Self-host the core productweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpNo API key is required to get started. Exa MCP is open source and available on GitHub.
  • [probe] https://exa.ai/llms.txtPROBE llms.txt: HTTP 200 at https://exa.ai/llms.txt # Exa > Exa is a real-time knowledge index and retrieval platform built for AI agents. Exa builds and maintains its own
  • [claimed-docs] https://exa.ai/docs/reference/search-api-guideExa has custom indexes of 1B+ people, 50M+ companies, 350M+ publications (research papers, preprints, and more), and more.

Openness = 9.6 ÷ 100 × 100 = 9.6

Built-in AI33.8/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://exa.ai/docs/websets/api-guideGive it a query like "agtech companies in the US that raised Series A" and it will search, verify each result against your criteria, and enrich every match with additional data you specify.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched
  • [community] https://news.ycombinator.com/item?id=43906841Searched 'lucid air touring models available for sale under 20,000 miles' and tried to add a 'sale price' column, but did not get the price details, same for other cars as well.

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/pricingAsync deep research, list building, and enrichment.
  • [claimed-docs] https://exa.ai/docs/reference/pricingScheduled searches that surface new events on the web.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.

Delegate tasks to a built-in AI assistant inside the productweight 3

3 (weight) × 4 (quality) × 0.3 (disputed) = 3.6 of 30 max

  • [claimed-docs] https://exa.ai/docs/websets/api-guideGive it a query like "agtech companies in the US that raised Series A" and it will search, verify each result against your criteria, and enrich every match with additional data you specify.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideYou can also build websets visually in the Dashboard, no code required.
  • [community] https://news.ycombinator.com/item?id=43906841Searched 'lucid air touring models available for sale under 20,000 miles' and tried to add a 'sale price' column, but did not get the price details, same for other cars as well.
  • [community] https://news.ycombinator.com/item?id=43906841I gave it a try and my first search got one match, 14 misses, and all other results are 'Verifying...' but it seems stuck (been minutes)... your product is incomparably slower than Google.
  • [community] https://news.ycombinator.com/item?id=43906841Tried the GitHub repo search feature: it was about 30/70 on finding the things I asked for. The cURL example in 'Get Code' was demonstrably wrong, and results table columns are fixed at 180px, truncating descriptions and URLs.

Operate the product with natural-language commandsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/search-api-guideSearch the web in natural language and get clean, relevant page content in one request.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideA Webset starts with a natural-language query and a target item count. Add criteria that every result must satisfy and enrichment fields to populate for each accepted item.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGive it a query like "agtech companies in the US that raised Series A" and it will search, verify each result against your criteria, and enrich every match with additional data you specify.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpComplete setup guide for Exa MCP Server. Connect Claude Desktop, Cursor, VS Code, and 10+ AI assistants to Exa's web search, fetching, Exa Agent, and Exa Connect tools.
  • [claimed-docs] https://exa.ai/docs/reference/exa-mcpConnect ChatGPT, Codex, Claude, Grok, Cursor, and any other MCP client to Exa's web search, page fetching, Exa Agent, and Exa Connect tools.
  • [github] https://github.com/exa-labs/exa-jsFind engineering leaders at AI infrastructure companies that raised a Series A or B in the last 6 months.
  • [community] https://news.ycombinator.com/item?id=43906841Searched 'lucid air touring models available for sale under 20,000 miles' and tried to add a 'sale price' column, but did not get the price details, same for other cars as well.
  • [community] https://news.ycombinator.com/item?id=43906841I gave it a try and my first search got one match, 14 misses, and all other results are 'Verifying...' but it seems stuck (been minutes)... your product is incomparably slower than Google.

Built-in AI = 30.4 ÷ 90 × 100 = 33.8

Automation33.4/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max

  • [claimed-docs] https://exa.ai/docs/websets/api-guideYou can also build websets visually in the [Dashboard](/docs/websets/dashboard/get-started), no code required.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGive it a query like "agtech companies in the US that raised Series A" and it will search, verify each result against your criteria, and enrich every match with additional data you specify.
  • [claimed-docs] https://exa.ai/docs/reference/pricingAsync deep research, list building, and enrichment.
  • [claimed-docs] https://exa.ai/docs/reference/pricingScheduled searches that surface new events on the web.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideFind anything on the web, no matter how complex. Websets searches, verifies, and enriches results automatically.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideA Webset starts with a natural-language query and a target item count. Add criteria that every result must satisfy and enrichment fields to populate for each accepted item.
  • [community] https://news.ycombinator.com/item?id=43906841Searched 'lucid air touring models available for sale under 20,000 miles' and tried to add a 'sale price' column, but did not get the price details, same for other cars as well.
  • [community] https://news.ycombinator.com/item?id=43906841I gave it a try and my first search got one match, 14 misses, and all other results are 'Verifying...' but it seems stuck (been minutes)... your product is incomparably slower than Google.
  • [community] https://news.ycombinator.com/item?id=43906841Tried the GitHub repo search feature: it was about 30/70 on finding the things I asked for. The cURL example in 'Get Code' was demonstrably wrong, and results table columns are fixed at 180px, truncating descriptions and URLs.

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max

  • [claimed-docs] https://exa.ai/docs/reference/pricingScheduled searches that surface new events on the web.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched
  • [claimed-docs] https://exa.ai/docs/reference/pricingAsync deep research, list building, and enrichment.

Schedule recurring jobs or workflowsweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://exa.ai/docs/reference/pricingAsync deep research, list building, and enrichment.
  • [claimed-docs] https://exa.ai/docs/reference/pricingScheduled searches that surface new events on the web.
  • [claimed-docs] https://exa.ai/docs/websets/api-guideGet real-time HTTP callbacks as items are added or enriched

Version, review, and roll back my automationsweight 1

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Automation = 23.4 ÷ 70 × 100 = 33.4