Roundup
October 2026 · 9 min read
Best Free Web Search APIs for LLM Agents: 3 Tested Live
Live Google results as JSON your agent can read and cite, on a free tier with no card. We ran the same five questions through three Google search APIs live, with our own keys, and had Claude Opus 5.5 answer from each one's top 3 results.
Adam Ben-Ayoun
CTO, OpenWeb Ninja
Web Search API · LLM Agents · Grounding · API Comparison

Does Google Have a Free Search API?
Not for new projects. Google's Custom Search JSON API overview says the API "is closed to new customers", and existing customers have until January 1, 2027 to move to an alternative. For full web search, the page asks you to contact Google. The usual route to Google results for an agent is a third-party API, and the three below each have a free tier that we ran live.
Quick Answer: Best Free Web Search APIs at a Glance
Serper, OpenWeb Ninja and SerpApi all return Google results as JSON, with a free tier and no credit card. All 45 of our October 2026 calls returned results. In our run, checked against official sources, the top 3 results most often held the current answer with Serper (14 of 15 tries), then OpenWeb Ninja (12) and SerpApi (8). OpenWeb Ninja had the fastest median response, 0.57 s.
| Option | Data covered | Price per 1,000 searches | Free tier | Our live run (15 calls) |
|---|---|---|---|---|
| Serper | Google organic results, People Also Ask, related searches | $1.00 on Starter ($50 for 50,000 credits) | 2,500 queries, no card | 8 to 10 records, median 1.07 s, 14 of 15 correct |
| OpenWeb Ninja | Google organic results: title, URL, snippet, domain, position | $2.50 on Pro ($25 for 10,000), $5.00 pay-as-you-go | 100 requests/mo, no card | 7 to 10 records, median 0.57 s, 12 of 15 correct |
| SerpApi | Google organic results with up to 14 fields each, related questions, AI Overview (inline or via a follow-up request) | $25.00 on Starter ($25 for 1,000) | 250 searches/mo, no card | 7 to 9 records, median 0.78 s, 8 of 15 correct |
Records are organic results per call. "Correct" counts answers from the top 3 results that matched the official source, over 5 questions and 3 runs. The order follows correct answers, then median response time. We build OpenWeb Ninja (#2), so read its row with that in mind.
What "Free" Means for an Agent
None of the three asks for a card. The last two columns assume an agent running 50 searches a day, which is 1,500 a month, on plans as listed in October 2026.
| Option | Free amount | Refill | Free-tier rate limit | Days covered at 50 a day | Monthly cost at 1,500 |
|---|---|---|---|---|---|
| Serper | 2,500 queries | No monthly refill listed | Not listed | 50 days | About $8.33 (the $50 Starter pack, valid 6 months) |
| OpenWeb Ninja | 100 requests | Monthly | 1 request per second | 2 days a month | $7.50 (pay-as-you-go, $0.005 per request) |
| SerpApi | 250 searches | Monthly | 50 per hour | 5 days a month | $75 (Developer, 5,000 searches a month) |
At this volume, OpenWeb Ninja pay-as-you-go is the cheapest at $7.50 a month. Serper is close at about $8.33 a month, but only 9,000 of the pack's 50,000 credits would be used in its 6 months.
A few more points help decide how far a free tier goes:
- Credits per call: OpenWeb Ninja's
search-lightuses 1 request and its fullsearchendpoint uses 2, which we checked on our usage meter. Serper reported 1 credit used in every response. SerpApi counts only successful searches toward the plan. - Response size: everything you pass to the model costs tokens. Median response in our run: 3.1 KB on OpenWeb Ninja, 3.2 KB on Serper and 67.3 KB on SerpApi, which includes many more fields.
- Repeat searches: SerpApi serves identical searches from a 1-hour cache that does not count against your plan. If your agent repeats a query within the hour, this stretches the free tier.
How We Evaluated
- Scope: search APIs that return Google results, with a free tier, tested live with our own keys. Search APIs that do not return Google results, including those built specifically for LLMs, are out of scope: this test compares the same Google results across providers.
- Five questions an agent gets asked: the latest stable version of Python, who won the 2026 World Cup, the latest Node.js LTS version, the current federal funds target range, and who the current CEO of OpenAI is.
- Live calls, October 2026: each question three times on each API, 45 calls in all, in one session from one machine.
- Matched settings: US results in English (
gl=us,hl=en) on all three. OpenWeb Ninja and Serper were asked for 10 results. SerpApi's docs list no result-count parameter, so it returned Google's default page, withno_cache=trueso every run was a fresh search. - Measured: round-trip response time, organic results per call and response size, from the saved responses.
- Grounding check: for each question and run, Claude Opus 5.5 (Anthropic) read only the title, URL and snippet of the top 3 results and gave an answer with its source. We scored each answer against the official source (python.org, fifa.com, nodejs.org, federalreserve.gov, openai.com) as correct, out of date or not found, comparing the same figure in every column.
- Order: correct answers first, then median response time.
- Sample size: five questions, three runs each: a smoke test, not a benchmark. A different question set could change the order.
- Pricing: read from each provider's own pricing page in October 2026.
We build OpenWeb Ninja, so read its section with that in mind. Everything below for the other two comes from our own calls and their own pages.
Serper
credit packsBest for: the largest free allowance to start with, and the lowest price per 1,000 at volume
Serper returns Google results from a single POST endpoint, with the query in a JSON body and the key in an X-API-KEY header. Each result carries a title, link, snippet, position and, when Google shows one, a date. The code below ran as shown with our key.
# serper_search.mjs
const res = await fetch("https://google.serper.dev/search", {
method: "POST",
headers: { "X-API-KEY": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ q: "who won the 2026 world cup", num: 10, gl: "us", hl: "en" }),
});
const { organic } = await res.json();
const context = organic.slice(0, 3).map(({ title, link, snippet }) => ({ title, url: link, snippet }));
console.log(JSON.stringify(context, null, 2));Output of this code
[ { "title": "FIFA World Cup 2026™ Final", "url": "https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026/final", "snippet": "Spain claimed ultimate glory in front of a crowd of over 80,000 at New York New Jersey Stadium, as they were crowned FIFA World Cup™ champions on Sunday 19 July ..." }, { "title": "FIFA World Cup", "url": "https://en.wikipedia.org/wiki/FIFA_World_Cup", "snippet": "The reigning champion is Spain, who won their second title at the 23rd edition of the competition, the 2026 World Cup, by defeating the holders, Argentina. FIFA ..." }, { "title": "FIFA World Cup 2026™", "url": "https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026", "snippet": "Won by Spain, the FIFA World Cup 2026™ was the first edition to feature 48 teams and three host countries: Canada, Mexico and the United States." } ]
- Free tier: 2,500 free queries, no credit card.
- Paid plans: credit packs valid for 6 months: Starter $50 for 50,000 ($1.00 per 1,000, 50 queries per second), Standard $375 for 500,000 ($0.75), Scale $1,250 for 2.5 million ($0.50), Ultimate $3,750 for 12.5 million ($0.30).
- Our run: 15 of 15 calls returned results: 8 to 10 per call, median 1.07 s (0.75 to 1.39 s), median response 3.2 KB. Each response reported 1 credit used.
- Extras: People Also Ask came back in 12 of 15 responses, plus related searches.
OpenWeb Ninja Real-Time Web Search
this siteBest for: fast, compact Google results for an agent, on monthly plans, with 50+ other data APIs on the same key
The Real-Time Web Search API returns Google results in real time. Its light endpoint, search-light, returns organic results only, which keeps the response small enough to drop straight into a prompt. The code below runs as shown with your key and prints the top 3 results as model context.
# openwebninja_search.mjs
const params = new URLSearchParams({ q: "who won the 2026 world cup", num: "10", gl: "us", hl: "en" });
const res = await fetch(`https://api.openwebninja.com/realtime-web-search/v2/search-light?${params}`, {
headers: { "x-api-key": "YOUR_API_KEY" },
});
const { data } = await res.json();
// Top 3 results, ready to paste into the model's context
const context = data.slice(0, 3).map(({ title, url, snippet }) => ({ title, url, snippet }));
console.log(JSON.stringify(context, null, 2));Response from the benchmark (World Cup question, first run), trimmed
{ "status": "OK", "request_id": "938d8a97-f2ea-4738-a2e7-bfb92398064d", "parameters": { "q": "who won the 2026 world cup", "num": 10, "start": 0, "gl": "us", "hl": "en" }, "data": [ { "title": "FIFA World Cup 2026™ Final", "snippet": "Spain claimed ultimate glory in front of a crowd of over 80,000 at New York New Jersey Stadium, as they were crowned FIFA World Cup™ champions on Sunday 19 July ...", "url": "https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026/final", "domain": "www.fifa.com", "position": 1 }, { "title": "FIFA World Cup", "snippet": "The reigning champion is Spain, who won their second title at the 23rd edition of the competition, the 2026 World Cup, by defeating the holders, Argentina.", "url": "https://en.wikipedia.org/wiki/FIFA_World_Cup", "domain": "en.wikipedia.org", "position": 2 }, ... 6 more results ] }
- Free tier: 100 requests a month, hard limit, 1 request per second, no credit card.
- Paid plans: Pro $25 for 10,000 requests, then $0.003 each. Ultra $75 for 50,000. Mega $150 for 200,000. Pay As You Go $0.005 per request with no monthly fee.
- Our run: 15 of 15 calls returned results: 7 to 10 per call, median 0.57 s (0.47 to 0.82 s), the fastest here, and a median response of 3.1 KB.
- Grounding check: the Fed question was the gap: the top 3 held the effective rate and a 4 percent figure, but not the target range.
- Full search: the
searchendpoint adds the total result count and an AI Overview flag. It costs 2 requests per call, which we confirmed on our usage meter. - For agents: an MCP server exposes the API as a tool, and the API has an llms.txt for agents that read docs. For answers from Google AI Mode, see the Google AI Mode API.
SerpApi
monthly plansBest for: the fullest Google result page, with related questions and a route to the AI Overview
SerpApi returns a parsed Google results page from a GET endpoint, with engine=google and the key as a query parameter. Organic results carried up to 14 fields each in our run, including the source name, displayed link and highlighted snippet words. The code below ran as shown with our key.
# serpapi_search.mjs
const params = new URLSearchParams({
engine: "google", q: "who won the 2026 world cup", gl: "us", hl: "en", no_cache: "true", api_key: "YOUR_API_KEY",
});
const res = await fetch(`https://serpapi.com/search.json?${params}`);
const { organic_results } = await res.json();
const context = organic_results.slice(0, 3).map(({ title, link, snippet }) => ({ title, url: link, snippet }));
console.log(JSON.stringify(context, null, 2));Output of this code
[ { "title": "Past winners competing at World Cup 2026", "url": "https://www.fifa.com/en/articles/past-winners-competing-2026", "snippet": "The previous three champions – Germany, France and Argentina ・ | Germany: 1Brazil 2014 | Germany: 1 Manuel Neuer ・ 4 Ousmane Dembele Lucas ..." }, { "title": "World Cup Daily live: Final winners (and fans!) to get ...", "url": "https://www.espn.com/soccer/story/_/id/49380811/final-winners-fans-get-championship-rings", "snippet": "Final: Spain vs. Argentina 17, 2026. Argentina won 2-1, thanks to a Luis Artime brace. Argentina eventually won 3-2." }, { "title": "Who won the last World Cup?", "url": "https://www.britannica.com/question/Who-won-the-last-World-Cup", "snippet": "On July 19, 2026, Spain beat Argentina 1–0 after extra time to win the 2026 FIFA World Cup. Spanish forward Ferran Torres scored the winning goal in extra ..." } ]
The ESPN snippet in position 2 says "Argentina won 2-1", which describes an earlier match, not the 2026 final. A model that reads only snippets can be misled by a line like that. Britannica, in position 3, names Spain.
- Free tier: 250 searches a month, 50 an hour, no card required.
- Paid plans: Starter $25 a month for 1,000 searches (200 an hour). Developer $75 for 5,000. Only successful searches count toward the plan, and cached searches are free.
- Our run: 15 of 15 calls returned results: 7 to 9 per call, median 0.78 s (0.42 to 21.1 s), median response 67.3 KB.
- Grounding check: older pages in the top 3 gave out-of-date versions for Python and Node.js.
- Extras: related questions came back in all 15 responses. An AI Overview came back in 12: as text in 2, and in 10 as a page_token and serpapi_link for a separate request, which SerpApi's docs say expire within 1 minute.
Can an LLM Answer From the Results? Opus 5.5 Grounding Check
One thing worth checking when you pick a search API for grounding AI answers is whether the top results already hold the current answer and a source to cite. This check measures that.
Claude Opus 5.5 read only the top 3 results (title, URL, snippet) from each of three runs in October 2026. Each answer was scored against the official source shown.
| Question | Official answer | Serper | OpenWeb Ninja | SerpApi |
|---|---|---|---|---|
| Latest stable version of Python | 3.15.0 (python.org) | Correct in 2 of 3. One run: 3.12, from a Reddit thread (out of date) | Correct in 3 of 3, from python.org | Correct in 1 of 3. Two runs: 3.13.0, from gdevops.frama.io (out of date) |
| Who won the 2026 World Cup | Spain, 1-0 v Argentina (fifa.com) | Correct in 3 of 3, from fifa.com | Correct in 3 of 3, from fifa.com | Correct in 3 of 3, from britannica.com |
| Latest Node.js LTS version | v24.21.0 (nodejs.org) | Correct in 3 of 3, from nodejs.org | Correct in 3 of 3, from nodejs.org | Out of date in 3 of 3: 24.11.0, from nodesource.com |
| Current federal funds target range | 3.75 to 4.00 percent (federalreserve.gov) | Correct in 3 of 3, from a New York Fed table snippet | Not found in 3 of 3: the effective rate (3.88) and a 4 percent figure, no target range | Correct in 2 of 3, from fedprimerate.com. Not found in 1 |
| Who is the current CEO of OpenAI | Sam Altman (openai.com) | Correct in 3 of 3, from wikipedia.org | Correct in 3 of 3, from wikipedia.org | Correct in 2 of 3. One run: only 2023 news naming an interim CEO (out of date) |
| Correct answers | 14 of 15 | 12 of 15 | 8 of 15 |
- All three APIs led to Spain in all three World Cup runs. In SerpApi's runs, the #1 result was a fifa.com page about past winners, and one run included an Al Jazeera snippet from before the tournament calling Argentina the reigning champion. Britannica, also in the top 3, named Spain each time.
- Out-of-date answers came from older pages ranking in the top 3: Python 3.12 from a Reddit thread (Serper, one run), Python 3.13.0 and Node.js 24.11.0 (SerpApi), and 2023 news about OpenAI's CEO (SerpApi, one run).
- On the Fed question, OpenWeb Ninja's top 3 held the effective rate (3.88 percent, consistent with the current range) but not the target range itself, so we scored it not found.
- Why the top 3 differ: the three APIs did not return the same top 3 for the same query and settings, and the same API's top 3 also changed between runs on 10 of 15 question and API pairs. OpenWeb Ninja and Serper returned an identical top 3 in 5 of 15 runs. SerpApi returns Google's default page with no result-count parameter, and where its answers were out of date, python.org and nodejs.org pages sat lower in its list (python.org at positions 6 and 8, nodejs.org at 5 to 9). We did not measure the cause beyond that.
- SerpApi's responses hold more than the top 3: related questions in all 15, and AI Overview text inline in 2 (10 more pointed to a separate request). An agent that reads those has more to work with than this check measured.
How to Choose: 3 Common Scenarios
Prototype an agent this week
You want to wire search into a prototype and run a few hundred test conversations without paying.
Good fit: Serper. Its 2,500 free queries are the largest starting allowance here, and in our run, Serper's top 3 most often held the current answer.
An agent in production that needs more than search
Your agent searches the web and also looks up places, products, jobs or news, and you want monthly billing on one key.
Good fit: OpenWeb Ninja. The fastest median in our run (0.57 s), about 3 KB per response, $2.50 per 1,000 on Pro, and 50+ data APIs on the same key, with an MCP server for agent frameworks.
An agent that reads the whole results page
You want related questions, Google's AI Overview and more fields per result next to the links.
Good fit: SerpApi. Related questions came back in every response, the AI Overview inline or through a separate request, and its cache makes repeated searches free for an hour.
To wire any of these into a model, see Give Your AI Agent Live Web Search. For SEO-focused SERP APIs on paid plans, see Best SERP APIs in 2026, and the head-to-head pages OpenWeb Ninja vs Serper and OpenWeb Ninja vs SerpApi. More use cases: AI, RAG and LLM grounding.
Sources
Prices and docs read in October 2026.
- OpenWeb Ninja: Real-Time Web Search API page and pricing, API documentation
- Serper: serper.dev (free queries and pricing)
- SerpApi: pricing, Google Search API docs (no_cache and caching)
- Google: Custom Search JSON API overview
- Official answers for the grounding check: python.org, inside.fifa.com, nodejs.org, federalreserve.gov, openai.com
FAQ
Is there a free search API available for AI agents?
What are some good web search tools for LLMs?
How many free searches do I get on each API?
Do I need a credit card to start?
Are the search results live or cached?
How do I give my LLM agent live web search?

Written by
Adam Ben-Ayoun
CTO at OpenWeb Ninja
Adam leads engineering at OpenWeb Ninja, building the APIs and infrastructure that make public web data accessible to developers and AI agents.
Connect on LinkedInOne key. 50+ APIs. Start free.
100 free requests a month, no credit card. Live Google results for your agent, plus Maps, Amazon, jobs and 50+ other APIs on the same key.