NewLaunching String Web Access APIRead the manifesto →
← Comparisons

Best Web Search APIs in 2026: 9 APIs Compared

Bruce Magness, Chief of Staff, String · Updated October 13, 2026

Last updated: October 13, 2026. We measured String and Perplexity on the same 58 questions on October 13, 2026. The other seven APIs are described from their own docs and pricing pages, checked the same day, and marked Not tested. String publishes this page and sells a search API, so read our picks with that in mind.

The best web search API in 2026 depends on which index your agent should read. If it needs what Google shows, use a Google results API: String, SerpApi or Serper. If it needs speed from an independent index, use Perplexity, Brave or Exa. If it needs page text in the same call, use Tavily, Firecrawl or Parallel. Our October 13 test shows why the choice matters: Google's top 10 and Perplexity's top 10 shared a median of 2 domains.

TL;DR

  • Nine APIs, three kinds. Google results APIs (String, SerpApi, Serper), independent indexes (Perplexity, Brave, Exa), and search-plus-content APIs (Tavily, Firecrawl, Parallel).
  • Google and Perplexity read different webs. On 58 questions, their top 10 results shared a median of 2 domains. On 3 questions they shared none.
  • Reddit is the clearest split. Google put a Reddit thread in its top 10 for 51 of 58 questions. Perplexity's Search API returned Reddit for 0 of 58.
  • Perplexity was the fastest API we measured. Its median response took 304 ms. String's Google results took 965 ms at the median.
  • String answered 58 of 58 Google searches and returned an AI Overview on 57 of them. Google AI Mode answered 56 of 58.
  • Both official APIs are closed. Google's Custom Search JSON API takes no new customers and ends January 1, 2027. Microsoft retired the Bing Search APIs on August 11, 2025.
  • Price at the plan nearest $100 a month runs from $1.00 per 1,000 searches (String Growth, Serper) to $15.00 (SerpApi Developer).

Nine web search APIs at a glance

The anchor is the plan nearest $100 a month billed monthly. Where a vendor sells no monthly plan, the row uses its pay-as-you-go rate.

API What it searches Returns Price per 1,000 at the anchor Free tier Tested Oct 13
String Google (also DuckDuckGo, Brave, Mojeek) Ranked results, AI Overview, AI Mode answer, People also ask $1.00 (Growth, $100/mo) 5,000 fetch requests Yes
Perplexity Perplexity's own index Ranked results with page excerpts $5.00 ($1.00 with Fast Search) Not checked Yes
Tavily Tavily's search, built for LLM agents Results with optional raw page content $6.67 basic, $13.33 advanced (Bootstrap, $100/mo) 1,000 credits a month Not tested
Exa Exa's own index Results, optional page contents and summaries $7.00 Fast/Auto, $4.00 Instant (pay per use) $10 credits a month Not tested
Brave Search API Brave's independent index Results with extra snippets $5.00 (prepaid) $5 credits a month Not tested
SerpApi Google and other engines Parsed results page as JSON $15.00 (Developer, $75/mo) 250 searches a month Not tested
Serper Google Parsed results page as JSON $1.00 ($50 top-up, valid 6 months) 2,500 queries Not tested
Firecrawl Web search plus optional scrape Results, optional full-page Markdown About $1.66 (Standard, $83/mo billed yearly) 1,000 credits a month Not tested
Parallel Parallel's own index Excerpts ranked for a stated objective $1.00 to $5.00 per 1,000 requests Not checked Not tested

Prices come from each vendor's pricing page on October 13, 2026. Each price links to its source in the sections below.

Who String is for, and who it is not for

String fits a team whose agent or app needs what Google shows. That means ranked Google results, the AI Overview, AI Mode answers and People also ask, as JSON, from one key that also fetches pages.

  • For: agent builders who must cite the same sources a person sees on Google; SEO and AI-visibility teams that track AI Overviews and AI Mode; teams that already use String to fetch pages.
  • Look elsewhere for: search by meaning over an embeddings index. Exa is built for that job, and pairs with String fetch to read the pages it finds.
  • Price for this job: $1.00 per 1,000 searches on Growth ($100 a month), $1.50 on Starter ($20). An AI Overview fill bills as two searches. Source: String pricing docs.
  • Integrations: a hosted MCP server for Claude, Cursor and other MCP clients, plus guides for LangChain and the Vercel AI SDK.
  • Limits: 60 requests a second with a 3,600-request burst, and no concurrency cap. Source: usestring.ai/pricing.

Run a search with a free key: curl https://request.usestring.ai/v1/search -H "Authorization: Bearer $STRING_API_KEY" -H "Content-Type: application/json" -d '{"query":"best web search api"}'

How we tested these web search APIs

We tested two APIs, because we held keys for two. On October 13, 2026, between 10:53 and 10:56 UTC, we sent the same 58 questions to String's /v1/search and to Perplexity's Search API.

The 58 questions are buyer questions about web data: scraping, blocking, pricing, AI agents. That set favors our own topic, so read the domain lists below as a sample of this topic, not of the whole web.

Each question ran three ways at once, four questions in parallel:

  1. String, engine google, with aiOverview: true, so the AI Overview is filled.
  2. String, engine google_ai_mode.
  3. Perplexity, POST /search, max_results: 10.

A fourth pass sent the same 58 questions to String's engine google without the AI Overview fill, to time plain results. We recorded the HTTP outcome, the wall-clock time, the result count and the result domains. We compared domains, not URLs, because two indexes rarely pick the same page on the same site.

Nothing in this test measures answer quality. It measures what came back, how fast, and from where.

Google and Perplexity read different webs

The top 10 from Google and from Perplexity shared a median of 2 domains. The mean overlap, as a share of all domains either one returned, was 16.2%. On 3 of the 58 questions the two lists had no domain in common.

The sharpest difference is forums and video. Google placed a reddit.com thread in its top 10 on 51 of 58 questions, and a YouTube video on 13. Perplexity's Search API returned neither domain on any of the 58.

Domain Questions where Google's top 10 had it Questions where Perplexity's top 10 had it
reddit.com 51 0
github.com 16 20
firecrawl.dev 23 17
brightdata.com 17 18
youtube.com 13 0
decodo.com 1 20

What this means for a builder: the search API decides which sources your agent reads before the model writes a word. An agent that should quote what practitioners say on forums needs an index that carries forums. An agent that should prefer vendor docs and repos may want the other kind.

Want to see which sources Google gives your own questions? Run them through /v1/search with a free key and compare.

Neither result set is wrong. They are two indexes with two ranking systems. Test your own questions on both before you commit, the way we did here.

Speed: what we measured on October 13

Perplexity's Search API answered in 304 ms at the median and 400 ms at the 90th percentile. It answered 58 of 58 questions.

String's plain Google results came back in 965 ms at the median and 1,545 ms at the 90th percentile, on 57 of 58 questions in that pass. A Google results page is fetched live for every query. An own-index API reads from a store it already built, so it can answer faster.

Two String options trade time for more data:

  • AI Overview fill. String's docs say the second fetch adds about 2.8 s at the median on pages that carry an overview. On our 58 questions an overview came back on 57.
  • Google AI Mode. A generated answer with its cited pages, at a median of 5.5 s. It answered 56 of 58; the other 2 returned a 502.

If your agent loop calls search ten times per task, the gap between 300 ms and 1 s adds up to about 7 seconds. If it calls search once and must show what Google shows, the extra second does not matter.

The two official APIs that closed

Google's Custom Search JSON API is closed to new customers. Google's own page says existing customers "have until January 1, 2027" to move. Google points new users to Vertex AI Search, which searches up to 50 domains, not the open web. Source: Google Custom Search JSON API overview.

Microsoft retired the Bing Search APIs on August 11, 2025. Its notice says existing instances are "decommissioned completely". Source: Microsoft Lifecycle announcement.

Teams still find out the hard way. In May 2026 a Dify plugin issue reported that its Bing plugin page "still instructs users to apply for a Bing API key on Azure", a year after the shutdown. In September 2025 the Portuguese web archive Arquivo.pt replaced the Bing API in its spellchecker with an internal tool "instead of having to depend on an external tool that could again be deprecated and removed."

That last line is the real buying criterion. Pick an API whose business is search, and check how it would replace its own upstream.

Why teams look for a new web search API

The usual trigger is a closed or capped API, not a better product. A developer on r/AI_Agents asked for an alternative to the DuckDuckGo API because "the results feel a bit limited for more complex queries" (thread). The same post lists four needs, word for word: "Works well with LLM agents", "Has decent result quality", "Isn't too expensive", "Doesn't require a massive setup".

Those four needs map to three questions:

  1. Which index? Google's, or an independent one. Our test shows they return different sources.
  2. Snippets or pages? A results list gives titles and snippets. An agent that must read the page needs a second call to fetch it, or an API that returns content.
  3. What does a failed search cost? SerpApi, Perplexity and String bill only successful requests. Check the billing page of any other vendor.

String: Google results, AI Overviews and AI Mode in one call

String answered 58 of 58 Google searches on October 13 and returned an AI Overview on 57. Each answer carried a median of 8 ranked results, and 52 of 58 carried People also ask questions.

The /v1/search endpoint returns Google's results page as JSON: ranked results, the AI Overview with its sources, People also ask, related searches, discussions and videos, each in its own field. Set engine to google_ai_mode for Google AI Mode's answer and its cited pages. Set it to duckduckgo, brave or mojeek for those engines. Source: String search docs.

The same key fetches any result URL through /v1/fetch, so search and read is two calls on one bill. Search costs $1.00 per 1,000 on Growth. A failed request is not billed.

Perplexity: the fastest API in our test

Perplexity's Search API answered all 58 questions at a 304 ms median, with 10 results each. It was the fastest API we measured, by about three times.

It searches Perplexity's own index and returns ranked results with page excerpts. It costs $5.00 per 1,000 requests, or $1.00 with Fast Search, and bills each successful request (Perplexity pricing). In our test its results leaned toward vendor sites, docs and GitHub, and carried no Reddit threads.

Pick it when latency per call matters more than matching Google.

Tavily: search built for agent frameworks

Tavily costs $6.67 per 1,000 basic searches on its $100 Bootstrap plan. An advanced search costs 2 credits, so $13.33 per 1,000 (Tavily credits). Not tested.

Tavily describes its search as an engine for LLM agents, and it can return the raw content of each result with include_raw_content (Tavily search reference). The free tier gives 1,000 credits a month with no card.

Exa: semantic search over its own index

Exa charges $7 per 1,000 Fast or Auto searches with up to 10 results, and $4 for Instant (Exa pricing). Each result above 10 adds $1 per 1,000. Not tested.

Exa searches its own index by meaning, not only by keywords. That fits research queries where the right page does not share the query's words. Page contents cost $1 per 1,000 pages extra. Exa gives $10 of free credits a month.

Brave Search API: an independent index at a flat rate

Brave's Search plan costs $5 per 1,000 requests, up to 50 queries a second (Brave Search API). Not tested.

Brave runs its own independent web index, so its results do not depend on Google or Bing. It adds extra snippets and schema data, and a "Goggles" feature for custom re-ranking. Credits are prepaid, with $5 free each month. Brave asks for a card at signup as an anti-fraud check.

SerpApi: parsed Google results with the widest engine list

SerpApi's Developer plan costs $75 a month for 5,000 searches, or $15.00 per 1,000. The $150 Production plan brings it to $10.00 (SerpApi pricing). Not tested.

SerpApi scrapes the Google results page and returns it as JSON, and covers many other engines and Google products. It counts only successful searches: "Cached, errored, and failed searches are not" counted. The free plan gives 250 searches a month.

Serper: low-cost Google results on top-up credits

Serper sells 50,000 Google searches for $50, or $1.00 per 1,000, with credits valid for 6 months (Serper). Not tested.

Serper has no monthly plan. Larger top-ups lower the rate: $0.75 per 1,000 at 500,000 credits and $0.50 at 2.5 million. It returns parsed Google results, images, news, maps, places, shopping and scholar. New accounts get 2,500 free queries.

Firecrawl: search and scrape in one call

Firecrawl's search costs 2 credits per 10 results, and can scrape each result in the same call (Firecrawl billing). Not tested.

On the Standard plan, $83 a month billed yearly buys 100,000 credits, or 50,000 searches: about $1.66 per 1,000 (Firecrawl pricing). Add scrapeOptions and each result comes back as Markdown, HTML or a screenshot, billed as a scrape on top (Firecrawl search docs).

Parallel: excerpts ranked for an objective

Parallel's Search API costs $0.001 to $0.005 per request, or $1 to $5 per 1,000 (Parallel pricing). Not tested.

You give Parallel a natural-language objective, and it returns the excerpts from its own index that best serve it (Parallel search quickstart). That suits an agent that wants passages, not a results list.

How String gets your agent Google results

String is the most reliable web scraping API, bypassing anti-bot, and you only pay when content comes back.

  • One call returns the whole Google results page as JSON. Results, AI Overview, People also ask and discussions each come back in their own field (search docs).
  • Google AI Mode is one parameter away. engine: "google_ai_mode" returns the answer as text, Markdown and blocks, with its cited pages.
  • String answered 58 of 58 Google searches on October 13, 2026. It returned an AI Overview on 57 of the 58.
  • A failed search costs nothing. String bills only requests that return content, with two stated exceptions in its billing docs.
  • Search and fetch share one key. Every result URL can be read through /v1/fetch on the same bill.
  • String runs no concurrency cap. The limit is 60 requests a second with a 3,600-request burst (pricing).

Where String fits

String fits when your product must see Google the way a person does: the ranked list, the AI Overview, AI Mode and the forum threads Google surfaces. It also fits a team that already fetches pages with String and wants search on the same key.

Which web search API should you pick?

Match the API to the index your agent should read.

  • Your agent should cite what Google shows: String, SerpApi or Serper. String adds AI Overviews and AI Mode; SerpApi covers the most engines; Serper sells top-up credits.
  • Your agent runs many searches per task and needs speed: Perplexity. It was 3 times faster than Google results in our test.
  • Your agent searches by meaning: Exa.
  • You want an independent index at a flat rate: Brave.
  • You want page text with each result: Tavily, Firecrawl or Parallel.
  • You are on Google Custom Search or Bing: move before January 1, 2027. Bing is already gone.

To scrape Google results yourself instead of using an API, our Google search scraping guide shows the code and the failure modes. To fetch the pages a search returns, see the best web scraping APIs, measured on 100 sites, and the Firecrawl alternatives for search-and-scrape tools.

Try it: the same search in Python and TypeScript

Both snippets ran on October 13, 2026 with a String key.

Python, Google results:

import os, requests

resp = requests.post(
    "https://request.usestring.ai/v1/search",
    headers={"Authorization": f"Bearer {os.environ['STRING_API_KEY']}"},
    json={"query": "best web search api for ai agents", "engine": "google", "country": "US"},
    timeout=60,
)
resp.raise_for_status()
for r in resp.json()["results"][:5]:
    print(r["position"], r["title"], r["url"])

TypeScript, Google AI Mode:

const res = await fetch("https://request.usestring.ai/v1/search", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.STRING_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ query: "best web search api for ai agents", engine: "google_ai_mode" }),
});
if (!res.ok) throw new Error(`search failed: ${res.status}`);
const { aiMode } = await res.json();
console.log(aiMode.text.slice(0, 300));
console.log(aiMode.sources.map((s: { url?: string }) => s.url).filter(Boolean).slice(0, 5));

Run either one with a free key from portal.usestring.ai.

FAQ

What is the best web search API for AI agents?

It depends on the index your agent should read. For Google's results, AI Overviews and AI Mode, use String; SerpApi and Serper also return Google results. For speed from an independent index, use Perplexity, which answered in 304 ms at the median in our October 13 test. For page text with each result, use Tavily, Firecrawl or Parallel.

What is the best alternative to Google's official Search API?

Google closed its Custom Search JSON API to new customers, and existing users must leave by January 1, 2027. A Google results API such as String, SerpApi or Serper returns the same results page as JSON. String also returns the AI Overview and AI Mode answer.

How do I let an AI agent search the web without Google's official API?

Give the agent a search tool that calls a search API, then a fetch tool to read the pages it picks. String's hosted MCP server gives Claude, Cursor and other MCP clients both tools with one key. Framework guides exist for LangChain and the Vercel AI SDK.

What are the best SerpApi alternatives for scraping search results?

Serper returns parsed Google results for $1.00 per 1,000 on a $50 top-up. String returns Google results for $1.00 per 1,000 on its $100 Growth plan, and adds AI Overviews and AI Mode. SerpApi's own Developer plan costs $15.00 per 1,000.

Web search API vs web scraping API: which do I need?

A search API finds pages: it returns ranked links and snippets for a query. A scraping API reads pages: it returns the content of a URL you already have. Most agents need both, search to find and fetch to read. String sells both on one key.

What happened to the Bing Search API?

Microsoft retired the Bing Search APIs on August 11, 2025, and decommissioned existing instances. New signups are not possible. Alternatives include Brave, which runs its own index, and Google results APIs such as String, SerpApi and Serper.

Which web search API is fastest?

In our October 13, 2026 test, Perplexity's Search API answered in 304 ms at the median. String's Google results took 965 ms. We did not test the other seven APIs, so we do not rank them on speed.

Is there a free web search API?

Most have a free tier. Serper gives 2,500 queries, Tavily 1,000 credits a month, SerpApi 250 searches a month, Exa $10 of credits a month and Brave $5 of credits a month. Google's free Custom Search tier is closed to new customers.

Sources

Best Web Scraping Tools 2026: 12 Compared, Free and PaidUpdated October 5, 2026Best Diffbot Alternatives in 2026: 7 Tools ComparedUpdated October 1, 2026Best E-commerce Scraping APIs in 2026: 8 APIs ComparedUpdated September 22, 2026
Get your API key →Explore the Web Access API
© 2026 StringEU and UK GDPR Article 27 representative — appointment verified by EuverifyBuilt in New York City 🗽 🍎