Last updated
Grounding with Google is a Gemini API tool that augments LLM responses with Google Search results. Exa is a standalone search API that gives developers full control over queries, results, and content extraction — usable with any model.
Grounding with Google is a tool the Gemini model invokes on your behalf. You don't control the search queries, can't filter by domain, can't set date ranges, and can't choose how many results to retrieve. The model decides all of this internally. If the model misinterprets your intent or searches for the wrong thing, you have no recourse.
Exa is a standalone search API. You write the query, set the filters, choose the search type, and get back structured results you can feed to any LLM. When an agent needs to chain 20 searches with precise domain restrictions, Exa gives you that control. Google Grounding gives you a single toggle: on or off.
from exa_py import Exaexa = Exa(api_key="your-api-key")results = exa.search("AI regulation updates 2026",type="auto",num_results=25,include_domains=["reuters.com", "ft.com"],start_published_date="2026-01-01",category="news",contents={"highlights": {"max_characters": 1000}})
Google Grounding only works with Gemini models. If your application uses Claude, GPT, Llama, Mistral, or any open-source model, you cannot use it. Switching models means losing your grounding capability entirely.
Exa is model-agnostic. The same search call works whether your downstream LLM is GPT-4, Claude, Gemini, or a local model. Exa also integrates with OpenAI's SDK directly, so you can add web search to any OpenAI /chat/completions or /responses call without changing your LLM provider.
Google Grounding performs general web searches. It cannot filter by entity type, search for people by job title, or find companies by funding stage. Exa has dedicated indexes for people (1B+ LinkedIn profiles) and companies, with structured attributes like role, geography, employee count, and funding data.
Queries like 'Series B fintech companies in Singapore with 50-200 employees' or 'VP of Engineering at mid-market healthcare companies' return structured, current results from Exa. Google Grounding would return whatever the model finds on a general web search — if anything.
Exa returns full page text, query-dependent highlights (the specific passages that answer your query), and LLM-generated summaries. You control the output format with maxCharacters, structured JSON schemas, and content type selection. Highlights improve RAG accuracy by 10% while cutting tokens 50-75%.
Google Grounding returns groundingChunks — short URIs and titles — plus groundingSupports that map segments of the model's response to sources. You get the model's synthesis, not the raw content. There is no way to retrieve full page text, extract specific passages, or control the content format.
Exa charges $5 per 1,000 searches plus $1 per 1,000 pages for content. Pricing is per search call, predictable, and independent of your LLM costs.
Google Grounding charges $14 per 1,000 search queries after 5,000 free monthly prompts. But you also pay for the Gemini model tokens (input + output) on every grounded request. A single prompt can trigger multiple search queries, each billed separately. Combined costs add up quickly at scale, and you have no way to control how many searches the model executes per prompt.
| Feature | Exa | Gemini + Google |
|---|---|---|
Architecture | Standalone search API | Tool within Gemini LLM |
Query control | Full (you write the query and parameters) | None (model decides what to search) |
Search modes | Instant, fast, auto, deep | Single mode (model-controlled) |
Neural/semantic search | Yes | No (uses Google keyword search) |
Max results per query | 100+ | ~10 grounding chunks |
Category filters | Company, people, news, research paper, personal site, financial report | No |
People search | 1B+ indexed profiles | No |
Company search | Yes | No |
Code search | Yes | No |
Model compatibility | Any LLM (GPT, Claude, Gemini, Llama, etc.) | Gemini models only |
| Feature | Exa | Gemini + Google |
|---|---|---|
Include domains filter | Yes (up to 1,200) | No |
Exclude domains filter | Yes (up to 1,200) | No |
Date filtering | Yes, publish + crawl date (ISO 8601) | No |
Text include/exclude | Yes | No |
Language filtering | Yes | No |
Location filtering | Yes | No |
| Feature | Exa | Gemini + Google |
|---|---|---|
Full page text | Yes (markdown, configurable verbosity) | No |
Query-dependent highlights | Yes (+10% RAG accuracy) | No |
Structured JSON output | Yes (custom JSON schemas) | No |
Raw search results | Yes (URLs, titles, scores, content) | No (model-synthesized text only) |
Clean results (no ads, no HTML) | Yes | No (Custom Search returns ad-mixed results) |
Zero data retention | Yes | Enterprise only, capped at 5k queries/day |
Citations / source attribution | Yes (URL, title, score per result) | Yes (groundingChunks with URI + title) |
LLM-generated answers | Yes (via /answer endpoint) | Yes (built-in, Gemini generates the answer) |
| Feature | Exa | Gemini + Google |
|---|---|---|
Own search index | Billions of documents | No (uses Google Search) |
Fastest search latency | Sub-200ms (Instant mode) | N/A (latency includes full LLM generation) |
Pricing (search) | $5 / 1k searches | $14 / 1k search queries + Gemini token costs |
Free tier | $20 credits on sign-up + $10 free credits/month | 5,000 grounded prompts/month |
SOC2 | Yes | Yes |
| Feature | Exa | Gemini + Google |
|---|---|---|
SDKs | Python, JavaScript | Python, JavaScript (Gemini SDK) |
MCP support | Yes | No |
Framework integrations | LangChain, LlamaIndex, CrewAI, Vercel AI SDK, Google ADK, Composio, n8n, Zapier, Make, and 20+ more | Google ADK, LangChain (via Gemini), Vertex AI |
OpenAI SDK compatibility | Yes | No |
Standalone API endpoint | Yes (/search, /contents, /findSimilar) | No (embedded in generateContent) |
Trusted by the fastest-growing AI companies
Grounding with Google is a feature of the Gemini API that lets Gemini models augment their responses with real-time Google Search results. It is not a standalone search API — it is a tool the model invokes during generation to improve factual accuracy and provide citations.
No. Grounding with Google only works with Gemini models (Gemini 2.0 Flash, 2.5 Flash, 2.5 Pro, 3 Flash, 3 Pro, etc.). If your application uses GPT, Claude, Llama, or any other model, you cannot use it. Exa works with any LLM.
No. When you enable the google_search tool, the Gemini model decides whether to search, what queries to run, and how many searches to execute. You cannot specify search queries, filter domains, set date ranges, or control the number of results. Exa gives you full control over all of these parameters.
Exa charges $5 per 1,000 searches plus $1 per 1,000 pages for content retrieval. Google charges $14 per 1,000 search queries (after 5,000 free monthly prompts) plus standard Gemini token costs for input and output. A single Gemini prompt can trigger multiple search queries, each billed separately, making costs harder to predict.
No. It returns groundingChunks (URIs and titles of source pages) and groundingSupports (mappings from the model's response text to source chunks). You get the model's synthesis of the search results, not the raw page content. Exa returns full page text, query-dependent highlights, and structured content.
Grounding with Google is convenient for simple factual grounding when you are already using Gemini and don't need control over the search process. Exa is the better choice when you need search control (domain filters, date ranges, categories), model flexibility (works with any LLM), raw results for custom pipelines, people/company/code search, or predictable pricing at scale.