Cloudflare launched a Web Search API on October 2, 2026, one endpoint that lets an AI agent search the live web through three providers: Ceramic.ai at $0.25 per 1,000 requests, Linkup at $5 and Exa at $7, billed at each provider's list price with no Cloudflare markup. It is in open beta, callable over REST or from a Worker, and switching providers is a one-word change in the request.

That matters because search is now the line item that grows fastest in an agent's bill. A research or content agent that runs three searches per task pays anywhere from $7.50 to $300 for 30,000 searches, depending on which API it calls. Below: what Cloudflare shipped, how it prices against Brave, Tavily, Exa direct and Claude's built-in search tool, what the response leaves out, and how to wire it into an agent in about 15 minutes. The Cloudflare changelog entry labels it beta, so expect the details to move.

What Cloudflare shipped on October 2

The Web Search API lives inside AI Gateway, the proxy Cloudflare already sells for routing, logging and billing model calls. Search now runs through the same control plane, so a search request shows up in the same logs and draws on the same AI Gateway credits as the model calls around it.

There are two ways in:

  • REST: a POST to /client/v4/accounts/{account_id}/ai/websearch/ with an API token.
  • Workers binding: env.AI.websearch() from inside a Cloudflare Worker, passing a gatewayId.

Authors Michelle Chen and Sam Else describe the goal as giving agents "fresh, structured snippets from the web injected straight into context." The post also lists what is not here yet: native server tools inside AI Gateway, which would let a model call search without your code running the tool loop, are marked "coming soon." Today, your agent code decides when to search and passes the results back to the model itself.

Two account options sit underneath. Pay with AI Gateway credits and Cloudflare bills each search at the provider's list price. Or bring your own key (BYOK): store a Ceramic, Exa or Linkup key in AI Gateway, pass its alias as byokAlias, and the provider bills you directly.

Three providers, one endpoint

The provider docs lock each partner to a single search mode, and that is the detail most launch coverage skipped:

  • Ceramic.ai (the default, "provider": "ceramic") runs its own index of more than 40 billion pages and returns descriptions of up to 8,000 characters per page. Ceramic was founded by former Google VP Anna Patterson, launched in Q2 2026 and claims responses "as fast as 50ms." Zero Data Retention: yes.
  • Exa ("exa") combines keyword and embeddings search and returns highlighted snippets relevant to the query. Cloudflare runs it in Exa's auto mode only. Zero Data Retention: no.
  • Linkup ("linkup") returns sourced results with text snippets, at its fast depth with raw results and no generated answer. Zero Data Retention: yes.

The single-mode lock is a real trade. Exa sold direct also offers Instant search at $4 per 1,000 and Deep search at $12 to $15, and Linkup direct offers deep search at $0.25 to $2.50 per request. None of those modes are reachable through Cloudflare today. You get one balanced mode per provider in exchange for one schema, one bill and one log.

One Cloudflare websearch endpoint routes each query to Ceramic, Linkup or Exa
One endpoint, three indexes: the provider field decides which one answers.

Agent search prices compared

Here is what one search costs across the APIs an agent builder is most likely to weigh, from each vendor's own pricing page on October 5, 2026:

Search APIPrice per 1,000 searchesFree allowanceOwn indexZero Data Retention
Cloudflare + Ceramic$0.251,000 queries (Ceramic direct)Yes, 40B+ pagesYes
Cloudflare + Linkup$5.004,000 queries (Linkup direct)Not statedYes
Brave Search API$5.00$5 credit every monthYes, 40B+ pagesEnterprise plan
Cloudflare + Exa$7.00$10 credit (Exa direct)YesNo
Tavily (basic search)$8.001,000 credits a monthNot statedNot stated
Claude web search tool$10.00 plus tokensNone statedNot statedSee Anthropic docs

Prices come from Exa pricing, Linkup pricing, Brave Search API, Tavily pricing with its credit rules (a basic search is 1 credit at $0.008, an advanced search is 2) and the Claude web search tool docs. The free allowances listed for the Cloudflare rows are the providers' own sign-up offers; the Cloudflare docs do not say whether they apply when you pay with AI Gateway credits.

Two things stand out. First, the Cloudflare prices match the providers' direct list prices exactly ($7 per 1,000 for Exa auto, and Linkup lists $0.005 to $0.006 per fast search), so "no markup" holds up. Second, Ceramic is the outlier: 20 times cheaper than Brave or Linkup and 28 times cheaper than Exa. Cheap is not the same as good, and nobody has published an independent relevance test of Ceramic's index yet.

What 30,000 searches cost

Per-1,000 prices are hard to feel. Take a concrete workload: an agent that handles 10,000 tasks a month, such as briefing notes, product research or fact checks for a content pipeline. Anthropic's own guidance is that simple factual queries use 1 to 3 searches and comparative research can use 10 or more, so 3 searches per task is a conservative 30,000 searches a month.

API30,000 searches a monthCompared with Ceramic
Cloudflare + Ceramic$7.501x
Cloudflare + Linkup$15020x
Brave Search API$15020x
Cloudflare + Exa$21028x
Tavily basic$24032x
Tavily advanced$48064x
Claude web search tool$300 plus result tokens40x before tokens

List prices before free allowances. The Claude row understates its real cost: search results are billed as input tokens on top of the $10 per 1,000, in the turn that searches and in every later turn that carries them. In exchange, Claude's tool runs the search loop for you, adds citations and supports domain allow and block lists.

At 10 searches per task, multiply every figure by 3.3. That is where the gap stops being a rounding error: $25 a month on Ceramic against $1,000 on Claude's tool or $700 on Exa.

30,000 agent searches a month: $7.50 on Ceramic, $150 on Linkup or Brave, $300 on Claude's search tool
Same 30,000 searches: $7.50 through Ceramic, $150 through Linkup or Brave, $300 plus tokens through Claude's tool.

What you get back, and what you do not

The request reference is deliberately small. A request takes a query (1 to 1,024 characters), a provider (default ceramic), a limit from 1 to 10 results (default 10) and an optional byokAlias. The response is an items array of url, title and description, plus metadata with the query, a request ID and latencyMs.

Missing from the reference, as of October 5:

  • No domain filters. You cannot restrict results to, say, official docs sites. Claude's tool has allowed_domains and blocked_domains.
  • No date or freshness filter, and no published date on each result.
  • No more than 10 results per call. Exa direct charges $1 per 1,000 extra results above 10; Cloudflare simply caps it.
  • No full-page content. You get descriptions, not extracted pages. An agent that needs the full text still has to fetch each URL.
  • No published rate limits yet.

For grounding a chatbot or giving a writing agent a fact check, the snippets are enough. For deep research, where the agent reads ten sources end to end, plan on a separate fetch or crawl step.

How to wire it into an agent in 15 minutes

  1. Create a Cloudflare account and an API token, following Cloudflare's token guide. Note your account ID from the dashboard.
  2. Use the default gateway or create one under AI Gateway. The examples in Cloudflare's docs pass "gateway": {"id": "default"}.
  3. Add credits or a provider key. Either top up AI Gateway credits, or add your existing Exa, Linkup or Ceramic key under the gateway's Provider Keys and give it an alias.
  4. Give your model a search tool. Declare a function such as web_search(query: string) in your agent's tool list. When the model calls it, your code forwards the query to the endpoint above and returns items as the tool result, keeping url so the model can cite it.
  5. Inside a Worker, skip the HTTP call: add the Workers AI binding named AI and call await env.AI.websearch({gatewayId: "default", query, provider: "exa", limit: 5}).
  6. Run your own relevance test. Pick 20 queries your agent really sends, run each through ceramic, linkup and exa by changing one field, and count how often the top 3 results contain what the agent needed. That afternoon decides whether the 28x price gap is worth it for your use case.

Test from a terminal:

curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/websearch/ \
  --request POST \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"query": "ComfyUI release notes October 2026", "provider": "ceramic", "limit": 5, "options": {"gateway": {"id": "default"}}}'

Step 7 is the real reason to use Cloudflare's endpoint even if you already have an Exa or Brave key. Comparing three search indexes normally means three SDKs, three schemas and three bills. Here it is one field.

Agent search flow: the agent calls AI Gateway, which returns up to 10 web results
Your agent sends the query, AI Gateway routes and logs it, and up to 10 results come back as a tool result.

Where it fits next to Claude's search and Web IQ

Three patterns now exist for giving an agent the web, and they solve different problems:

  • Built into the model API, like Claude's web search tool: the least code, citations included, domain filters, but tied to one model family and the most expensive per search once tokens are counted.
  • A dedicated search API, like Brave, Tavily, Exa or Microsoft's Web IQ Bing API for agents: model-agnostic, deeper options (full content, deep modes, filters), one vendor per integration.
  • A search router, which is what Cloudflare just built: model-agnostic, several indexes behind one schema, logging in the same place as your model calls, but only one mode per provider and a thin response.

Cloudflare has been assembling the router layer piece by piece. Its Kitesurf agent browser on Workers covers the step after search, when an agent needs to load and act on a page. Put the two together and a Worker can search, open and read the web without leaving Cloudflare.

Who should switch now, and who should wait

Switch now if your agent already runs on Workers or AI Gateway, if search is a visible share of your bill, or if you have never measured whether a cheaper index is good enough. The relevance test in step 7 costs a few cents on Ceramic.

Stay where you are if your agent depends on domain filters, full-page extraction, deep research modes or more than 10 results per query. Exa, Linkup and Tavily all sell those directly, and Claude's tool handles filters and citations without extra code.

Wait if you need a production SLA. This is an open beta with no published rate limits, and the "coming soon" server tools could change how the API is called. Build against it, keep your current provider as the fallback, and revisit when the beta label comes off.

Frequently asked questions

What is the Cloudflare Web Search API?

An open beta API, launched October 2, 2026, that lets AI agents search the web through AI Gateway. One endpoint routes queries to Ceramic.ai, Exa or Linkup and returns up to 10 results with a URL, title and description each.

How much does Cloudflare's Web Search API cost?

It charges the provider's list price with no markup: $0.25 per 1,000 searches with Ceramic.ai, $5 with Linkup and $7 with Exa. You pay with AI Gateway credits, or bring your own provider key and pay the provider directly.

Which search provider should I pick?

Start with Ceramic, the default and by far the cheapest, then run the same 20 real queries through Linkup and Exa. If Ceramic's top results answer your agent's questions, keep it. Choose Ceramic or Linkup if you need Zero Data Retention, since Exa does not offer it through Cloudflare.

Per search, yes. Claude's tool costs $10 per 1,000 searches plus input tokens for the results, against $0.25 to $7 on Cloudflare. Claude's tool does more for that price, though: it runs the search loop itself, adds citations and supports domain filters.

Can I use it without Cloudflare Workers?

Yes. The REST endpoint works from any language or agent framework with an API token and your account ID. The Workers binding is a shortcut for code that already runs on Cloudflare.

Does it return the full text of web pages?

No. Results include a description (up to 8,000 characters per page with Ceramic), not the extracted page. Agents that need full articles must fetch each URL in a separate step.