Tavily vs Google search results: credits, context and when each 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, city and device, 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”. It also carries the headline “Tavily is Joining Nebius”, relevant if vendor ownership is part of your procurement review.
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, hl, location or uule, device, 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 and device 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 Chicago on mobile” 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
Credits per request (credits):
| Request | Async task | Synchronous |
|---|---|---|
| One page | 3 | 5 |
| One page + AI Overview | 5 | 7 |
| Each extra page | +2 | +2 |
Plan prices and concurrency are on /pricing and rate limits. A request that fails is charged nothing.
Comparing the two credit systems
Credit counts are not comparable across vendors, 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 synchronous one-page calls at 5 credits is 50,000 credits, 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 × 5 credits as async tasks = 300,000 credits a month.
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 does not: 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 also exposes Google Search as a google tool on its hosted MCP server; 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 2 credits per request. - Keep
pagesat 1 unless positions beyond the first page matter; each extra page adds 2. - Queue scheduled work as async tasks. They skip the 2-credit synchronous surcharge and can be batched up to 500 per call.
- 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 own
tbsparameter via theurlrequest shape, 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, location accepts Google’s canonical names such as Austin,Texas,United States, and device switches between desktop and mobile SERPs. If results by city or device are the point, as in local rank tracking, only the second applies.
Decision table
| 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 | No | Yes |
| People Also Ask, local pack, ads, knowledge panel | No | Yes |
| Google AI Overview with sources | No | Yes, 2-credit add-on |
| Domain filtering | Up to 300 include, 150 exclude | Google operators in the query |
| City and device targeting | No | location/uule, device |
| 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 | 500 credits a month |
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. On this API they cost 2 more credits than async tasks; queue scheduled jobs as batches. See sync, async and webhooks.
To make a first Google request, start with the quickstart or the Google Search engine page.
Questions
Does Tavily return Google results?
No. Tavily runs its own search and extraction and returns 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?
Not per its search reference: it returns relevance-scored results, not Google positions, SERP features or AI Overviews. Use a Google SERP API for those.
What does a Google results request cost on this API?
3 credits as an async task for one page, 2 more per extra page and 2 once for the AI Overview. Synchronous calls add 2, so a synchronous one-page call is 5 credits.