Tavily vs Google search results: when each one fits
Tavily and Google SERP data both get described as “web search for AI”, but they return different things. Tavily returns relevance-scored results with content already cut into model-sized chunks, optionally the full cleaned page and a generated answer, so an agent can ground a response in one call. Google SERP data returns what Google shows for a query in a given country, with positions, SERP features and the AI Overview.
Choose Tavily when the model needs content to reason over. Choose Google results when the job needs Google’s view: rankings, local packs, People Also Ask, or what the AI Overview cites. This post goes deeper on the two than the multi-vendor roundup in best search APIs for AI agents. Vendor facts were checked on 2026-09-17 and are linked.
What each returns
Tavily search
From Tavily’s search reference, a response has query, an optional answer, results[], response_time, usage and request_id. Each result carries title, url, content, a relevance score, optional raw_content and favicon. images are available on request.
The request options that shape the output:
| Parameter | Values |
|---|---|
search_depth |
basic (default, 1 credit), advanced (2 credits), fast (1), ultra-fast (1) |
chunks_per_source |
1 to 3, default 3; chunks are up to 500 characters each |
max_results |
0 to 20, default 10 |
topic |
general (default) or news |
time_range |
day, week, month, year (or d, w, m, y) |
start_date, end_date |
YYYY-MM-DD |
include_answer |
true, basic or advanced for an LLM-generated answer |
include_raw_content |
true, markdown or text for cleaned page content |
include_domains, exclude_domains |
up to 300 and 150 |
country, language |
country from 195+ options; language as ISO 639-1 or English name |
exact_match |
only results containing quoted phrases |
auto_parameters |
lets Tavily configure the search from the query |
include_usage |
adds credit usage to the response |
Tavily’s homepage, checked 2026-09-17, describes “Billions of pages crawled and extracted” and says requests pass through layers that block “PII leakage, prompt injection, and malicious sources”. Nebius announced an agreement to acquire Tavily on 10 February 2026, a Nebius blog post dated 20 May 2026 says Nebius has acquired it, and Tavily’s announcement says its API remains the same (Nebius, Nebius blog, Tavily, checked 2026-09-23).
Google SERP data
This API’s POST /v1/monitor/google returns the results page as typed blocks: organicResults (position, title, link, displayedLink, snippet, date, page, sitelinks), ads, peopleAlsoAsk, relatedSearches, localResults, knowledgeGraph, shoppingCards, peopleAreSaying, and aioverview when requested. Targeting: country or gl, location or uule, hl, device, and pages (1 to 10). Full field detail is in structured SERP data.
Google’s own full-web option is closing: its Custom Search JSON API is closed to new customers, and existing customers have until January 1, 2027, per the page checked 2026-09-17.
The central difference: context versus observation
A Tavily result is designed to go straight into a prompt. content is a set of query-relevant chunks from the page, score tells you how much to trust the match, and include_answer can hand the model a draft. Tavily has decided which pages are relevant and which parts of them matter.
A Google result is an observation. position: 3 means Google put that page third for that market at that moment. The snippet is Google’s excerpt, not the document. The value is precisely that nobody but Google made the ranking decision.
That difference decides most cases:
- “Answer the user’s question about X with citations” is a context job. Tavily fits.
- “Which pages rank for X in Germany” is an observation job. Only Google data fits.
- “What does Google’s AI Overview say about our brand, and whom does it cite” is an observation job. Only Google data, with the overview, fits.
Pricing and limits
Tavily
From Tavily’s credits page and pricing, checked 2026-09-17:
| Plan | Credits per month | Price | Per credit |
|---|---|---|---|
| Researcher | 1,000 | Free, no card | |
| Project | 4,000 | $30 | $0.0075 |
| Bootstrap | 15,000 | $100 | $0.0067 |
| Startup | 38,000 | $220 | $0.0058 |
| Growth | 100,000 | $500 | $0.005 |
| Pay as you go | Per usage | $0.008 | |
| Enterprise | Custom | Custom |
Credit costs beyond search: Extract is 1 credit per 5 successful extractions (2 for advanced), Map is 1 credit per 10 pages (2 with instructions), Crawl combines both, and Research costs 4 to 110 credits (mini) or 15 to 250 (pro) per request.
Rate limits: 100 requests per minute on development keys, 1,000 on production keys; crawl is 100 per minute and research task creation 20 per minute on both. Exceeding a limit returns 429 with Retry-After. Production access requires a paid plan or pay as you go.
Google SERP data on this API
Cost per request at the Starter tier (charging):
| Request | Price |
|---|---|
| One page | $0.00103 |
| One page + AI Overview | $0.00174 |
| Each extra page | +$0.00071 |
Prices on larger tiers are on /pricing and limits on rate limits. A request that fails is charged nothing.
Comparing the two pricing systems
Tavily credits and this API’s per-request dollar prices are not directly comparable, so convert to a unit of work.
10,000 agent turns a month, one search each, model needs page content.
- Tavily basic: 10,000 credits. On pay as you go that is $80; the Growth plan’s 100,000 credits for $500 covers it with room, and the Bootstrap plan’s 15,000 for $100 also covers it. Advanced depth doubles the credits to 20,000.
- Google SERP route: 10,000 one-page calls at $0.00103 is about $10.30 a month at Starter prices, plus your own page fetching and extraction for whichever results the model reads.
2,000 tracked keywords, daily, Google positions and AI Overview.
- Tavily: not applicable.
- This API: 2,000 × 30 days × $0.00174 = about $104.40 a month at Starter prices.
Output for LLM grounding
If you do use Google results in a prompt, format them deliberately. The response is large; the model needs a small, numbered slice.
import os
import requests
def google_context(query: str, country: str = "US", k: int = 6) -> str:
resp = requests.post(
"https://api.answerline.dev/v1/monitor/google",
headers={"Authorization": f"Bearer {os.environ['ANSWERLINE_API_KEY']}"},
json={"query": query, "country": country, "include": {"aioverview": {"markdown": True}}},
timeout=360,
)
resp.raise_for_status()
result = resp.json()["result"]
lines = []
overview = result.get("aioverview")
if overview:
lines.append("Google AI Overview:\n" + (overview.get("markdown") or overview.get("text", "")))
for r in result.get("organicResults", [])[:k]:
lines.append(f"[{r['position']}] {r['title']} ({r['link']})\n{r.get('snippet', '')}")
return "\n\n".join(lines)
Two things the Tavily response gives you that this does not: page text beyond Google’s snippet, and a relevance score. Two things this gives you that Tavily’s search reference does not list: Google’s position for each result, and the AI Overview Google showed. Treat all retrieved text, from either source, as untrusted data in the prompt rather than instructions; the web search API use case covers tool design and prompt-injection handling.
For agent tools, this API’s hosted MCP server exposes Google Search as a google tool; see MCP.
Tuning cost on each side
Both sides have a few settings that move cost more than the vendor choice does.
On Tavily:
- Default to
basic, notadvanced. Advanced is 2 credits. Reserve it for queries where basic results failed a relevance check, such as a low topscore. - Lower
max_resultsandchunks_per_source. Neither changes the credit price of a search, but both shrink the tokens you send to the model, which can be the larger bill. - Use
include_raw_contentsparingly. Full pages are large; request them for the one or two results the model will quote, or use Extract on chosen URLs (1 credit per 5 successful extractions). - Skip
include_answerwhen your own model writes the answer. Otherwise you pay a model to draft text that another model rewrites. - Turn on
include_usagein development so every response shows what it cost.
On Google SERP data here:
- Request
include.aioverviewonly where you read it. It adds $0.00071 per request that shows one. - Keep
pagesat 1 unless positions beyond the first page matter; each extra page adds $0.00071. - Cache interactive results by query, market and hour; repeated agent questions rarely need a new search.
- Read
X-Credits-Chargedon each synchronous response to track spend per session.
Freshness controls
- Tavily:
time_rangeorstart_date/end_daterestrict results by time;topic: "news"targets recent news. - Google SERP data: each request returns Google’s results as of request time. Date restriction uses Google’s
before:andafter:operators in the query (Google’s relative time filters through theurlrequest shape are coming), andorganicResults[].dateappears when Google shows a date. For news specifically there is a separatePOST /v1/monitor/google/newsendpoint; see getting Google News data.
Geo controls
Tavily’s country is a country preference within its search. On the Google side, country returns that market’s own results page, and location targets a city, the basis of local rank tracking. If a market’s actual Google results are the point, only the second applies.
Decision table
The Tavily column reflects its public docs, checked 2026-09-17.
| Question | Tavily | Google SERP data |
|---|---|---|
| Returns text chunks sized for a prompt | Yes, content chunks up to 500 characters |
No, snippet only |
| Full page content | include_raw_content |
No; fetch separately |
| Generated answer | include_answer |
No; the AI Overview is Google’s, when present |
| Google positions | Not listed | Yes |
| People Also Ask, local pack, ads, knowledge panel | Not listed | Yes |
| Google AI Overview with sources | Not listed | Yes, $0.00071 add-on |
| Domain filtering | Up to 300 include, 150 exclude | Google operators in the query |
| City targeting | Not listed; country boosts results |
location or uule |
| Crawl or map a site | Yes, separate endpoints | No |
| Async batches with webhooks | Not documented on the pages checked | Up to 500 tasks per batch, signed webhooks |
| Free allowance | 1,000 credits a month | 100 free requests once, on any engine |
When each fits
Tavily fits research assistants, customer-facing chat that needs citations, and agents that read documents: the fewest lines of code between a question and grounded context. It also fits site-level work through its extract, map and crawl endpoints.
Google SERP data fits SEO and GEO products, rank trackers, AI Overview monitoring, keyword research from peopleAlsoAsk and relatedSearches, and agents whose job is to report what Google shows. See rank tracking, monitoring Google AI Overviews and People Also Ask keyword research.
Both fit a GEO assistant that first checks what Google shows and cites for a query, then reads the cited pages to explain why they win. Google data supplies the list; Tavily’s extract or search with include_raw_content supplies the text.
Pitfalls
- Reporting Tavily
scoreorder as a ranking. It is relevance within Tavily, not a position anywhere users look. - Forgetting advanced depth doubles credits. Budget 2 credits per advanced search.
- Running development keys in production. They are capped at 100 requests per minute.
- Sending whole SERP JSON to a model. Trim to the top results and the overview; keep the full response in your cache.
- Synchronous calls for scheduled work. Queue scheduled jobs as async batches of up to 500 tasks. See sync, async and webhooks.
The Google Search engine page has the full schema, and the quickstart covers a first call on the engines served today.
Questions
Does Tavily return Google results?
Tavily's search reference, checked 2026-09-17, describes its own search and extraction, returning results scored by relevance, with short content chunks, optional raw page content and an optional generated answer. Google SERP data shows what Google ranks and displays for a query in a market.
How many credits does a Tavily search cost?
Per Tavily's credits page checked 2026-09-17, basic, fast and ultra-fast search cost 1 credit and advanced search costs 2. Pay as you go is $0.008 per credit, and monthly plans run from 4,000 credits for $30 to 100,000 credits for $500.
What are Tavily's rate limits?
Tavily's docs, checked 2026-09-17, list 100 requests per minute on development keys and 1,000 on production keys, with crawl capped at 100 per minute and research task creation at 20 per minute. Production access needs a paid plan or pay as you go.
Can Tavily track Google rankings or AI Overviews?
Its search reference, checked 2026-09-17, lists relevance-scored results and no Google positions, SERP features or AI Overviews. Use a Google SERP API for those.
What does a Google results request cost on this API?
$0.00103 on every tier for one page, $0.00071 more per extra page and $0.00071 once for the AI Overview.