AnswerLineStart free

, SERP API · Google · Agents

Exa vs Google search results: semantic discovery or ranking truth

Exa and Google search data solve different problems. Exa is a search engine for machines: its own index, queried by meaning, returning pages plus their text in one call. It is strong when you need to discover relevant documents or entities, such as companies like a given one or papers on a narrow topic. Google SERP data is an observation of what Google shows people for a query, in a country, city and device. It is the only right answer when the question involves Google’s ranking, its SERP features or its AI Overview.

The rule of thumb: if the output of your job is a set of documents, start with Exa. If the output is a fact about Google, start with a SERP API. Vendor facts below were checked on 2026-09-17 and are linked. For a wider field of agent search tools, see best search APIs for AI agents.

What each one is

Exa describes itself on its homepage as “The world’s data for AI agents”, and says it can “crawl billions of documents per day”. Queries run against Exa’s own index with search types from instant to deep-reasoning, and a single call can also return page contents.

A Google SERP API runs the query on Google from a chosen market and returns the results page as JSON. This API’s POST /v1/monitor/google returns organicResults, ads, peopleAlsoAsk, relatedSearches, localResults, knowledgeGraph, shoppingCards, peopleAreSaying and, on request, the aioverview. There is no stored index: each request returns Google’s current results.

Google’s own route to full-web results is closing: the Custom Search JSON API overview, checked 2026-09-17, says it is closed to new customers, with existing customers given until January 1, 2027 to move.

Output compared field by field

Need Exa /search Google SERP (this API)
Result identity results[].title, url, id, favicon, image organicResults[].title, link, displayedLink, position, page
Position meaning Exa’s relevance order Google’s rank on the page, 1-indexed
Dates publishedDate, optional author date when Google shows one
Page text contents.text (up to 10,000 characters per page, verbosity compact, standard or full) Not returned; Google snippet only
Query-relevant excerpts contents.highlights snippet
Structured summary contents.summary with a custom query and a JSON schema Not applicable
SERP features None Ads, People Also Ask, local pack, knowledge panel, shopping cards, discussions
AI answer on the page None (Exa has a separate /answer endpoint) aioverview with text, sources, citationPills
Cost reported in response costDollars with a breakdown Credit headers on each response; see credits

Exa fields are from its search reference, checked 2026-09-17.

The practical consequence: Exa can remove a fetch-and-extract step, because text comes back with the result. Google SERP data cannot, because it only describes the page of results. If a model needs to read the documents, a Google pipeline needs a fetcher after the SERP call.

Query controls

Exa

From the search reference:

Google SERP data

On this API: query with country (or gl), hl for interface language, location (City,Region,Country) or uule for city-level targeting, device (desktop, mobile, ios, android), pages from 1 to 10, and include.aioverview. Alternatively a full Google search url, of which q, gl, hl, uule, num, start, tbs and safe are applied.

Filtering in the Google case happens the way users do it: operators such as site: in the query and date ranges through tbs in the URL shape. There is no 1,200-domain allowlist, and there is no semantic category filter. Conversely, Exa has no city-level location, no device and no language parameter in its search reference.

Freshness

Freshness means different things here.

If you are monitoring change, you want the second. If you are retrieving documents and want to cap cost and latency, cached content is usually fine.

Pricing and limits

From Exa’s pricing page and rate limits, checked 2026-09-17:

Exa item Price
Search, up to 10 results $7 per 1,000 requests
Deep search (deep-lite, deep) $12 per 1,000
Deep search (deep-reasoning) $15 per 1,000
Results above 10 $1 per 1,000 results
Contents $1 per 1,000 pages per content type
AI page summaries $1 per 1,000 pages
Answer $5 per 1,000 requests
Monitors $15 per 1,000 requests
Free credits $20 for new accounts; the Free tier adds $10 a month
Exa endpoint Default rate limit
/search, /answer 10 QPS
/search with deep types 5 QPS
/contents 100 QPS

Exa’s docs say adding $1,000 in credits within any 30-day window on pay-as-you-go raises a team to 25 QPS for 90 days; beyond that, sales.

This API’s Google Search credits per request (credits):

Google request Async task Synchronous
1 page 3 5
1 page + AI Overview 5 7
3 pages + AI Overview 9 11

Plan prices and concurrency are on /pricing and rate limits. Failed requests are not charged.

A cost comparison that is fair to both

Comparing $7 per 1,000 Exa searches with a SERP request price hides what each line includes. Normalize to the job.

Job A: give a model 10 relevant documents with text, 10,000 times a month.

Job B: record Google positions and AI Overview citations for 10,000 keywords a month.

The cheaper option is whichever one does the job without a second system.

Five jobs, and which to pick

Job Pick Why
“Find 50 companies similar to X” Exa category: "company" and semantic queries; Google returns pages about the query, not a list of entities
RAG over recent web documents on a technical topic Exa Text and highlights in one call; domain and date filters
Rank tracking by city and device Google SERP location, device, and positions that mean Google’s positions; see local rank tracking
“Is our brand cited in the AI Overview for these queries?” Google SERP aioverview.sources and citationPills; see monitoring AI Overviews
Keyword research Google SERP peopleAlsoAsk and relatedSearches come from Google’s page; see keyword research

A hybrid pattern that uses both

Many GEO and research pipelines need both views. A pattern that keeps each tool on its strength:

  1. Observe on Google. For each tracked query, request the SERP with the AI Overview. Store organicResults and aioverview.sources.
  2. Find the gap set. List the domains Google ranks or cites that are not yours or your clients’.
  3. Discover on Exa. For each topic, run a semantic search with includeDomains set to the gap domains, or with no filter to find similar pages Google did not surface, and request highlights.
  4. Read and summarize. Feed highlights to a model to describe what the cited pages cover that yours do not.
  5. Re-observe. After content changes, rerun step 1 on a schedule and compare citations over time.

Step 1 on this API, as a batch item (queue up to 500 per POST /v1/async/task/batch call):

{
  "taskType": "GOOGLE",
  "payload": {
    "query": "soc 2 compliance software",
    "country": "US",
    "hl": "en",
    "include": { "aioverview": {} }
  },
  "idempotencyKey": "google-soc2-software-US-2026-09-17",
  "webhook": { "url": "https://example.com/hooks/serp" }
}

And reading the result once it arrives, in Python:

from urllib.parse import urlparse

def google_domains(result: dict) -> dict:
    organic = [urlparse(r["link"]).hostname for r in result.get("organicResults", []) if r.get("link")]
    overview = result.get("aioverview") or {}
    cited = [urlparse(s["url"]).hostname for s in overview.get("sources", []) if s.get("url")]
    return {"organic": organic, "aio_cited": cited, "has_aio": bool(overview)}

The rest of that pipeline is covered in tracking AI Overviews with async batches and webhooks and structured SERP data.

Decision criteria

  1. Whose ordering does the output depend on? Google’s: SERP data. Anyone’s relevant documents: Exa.
  2. Does the consumer need text? Exa returns it; SERP data needs a fetcher.
  3. Is location more precise than a country? Only the SERP route has city and device.
  4. Are you tracking change over time? Each SERP request is a timestamped observation of Google; an index query gives the index.
  5. How many domains do you filter by? Exa handles up to 1,200 per request; Google needs operators.
  6. What throughput do you need? Exa’s default is 10 QPS for search; SERP APIs typically bound concurrency by plan and let you queue bulk work.
  7. Does the vendor state its data handling? Exa’s homepage says “Zero data retention” and “SOC 2 Type II”. Ask any vendor for the same in writing before sending customer queries.

Pitfalls

For the Google side, start with the quickstart or the Google Search engine page.

Questions

Is Exa a Google search API?

No. Exa runs its own search over its own index and returns pages chosen by its ranking, with optional page text, highlights and summaries. A Google SERP API returns what Google itself shows for a query in a given market.

How much does Exa cost per 1,000 searches?

Exa's pricing page, checked 2026-09-17, lists Search at $7 per 1,000 requests for up to 10 results, deep search types at $12 to $15, extra results at $1 per 1,000, and contents at $1 per 1,000 pages per content type. New accounts get $20 in free credits.

What are Exa's rate limits?

Per Exa's rate-limit docs checked 2026-09-17: 10 QPS for /search and /answer, 5 QPS for deep search types, and 100 QPS for /contents. Adding $1,000 in credits within 30 days raises the team to 25 QPS for 90 days.

Can Exa tell me where my site ranks on Google?

No. Exa's result order is Exa's relevance, not Google's positions. For Google positions, the AI Overview or local packs you need Google SERP data.

How many credits does a Google results request cost on this API?

3 credits for a one-page async task, 2 more for each extra results page, and 2 once if you request the AI Overview. A synchronous call adds 2 credits.

Try it on your own prompts

500 free credits a month, no card. One POST returns the answer, sources and citations as JSON.

Keep reading