---
description: Ground AI agents and applications with real-time web search results from Ceramic.ai, Exa, and Linkup through AI Gateway.
title: Cloudflare Web Search API
image: https://developers.cloudflare.com/web-search/og.png?v=698c83104f2059c1
---

[Skip to content](#main-content)

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/web-search/llms.txt  
> Use this file to discover all available pages before exploring further.

# Cloudflare Web Search API

Last updated Oct 2, 2026|Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/web-search/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

Give your agents real-time web context with a single API call.

Available in open beta

Web Search API lets your AI agents and applications search the Internet and ground their responses in live information. Instead of guessing URLs or relying on a model's training cutoff, your agent sends a search query and receives structured results — titles, URLs, and descriptions — that you can pass straight into a model's context.

Web Search API runs through [AI Gateway](https://developers.cloudflare.com/ai-gateway/), so every search gets the same logging, analytics, billing, and access controls as your model inference requests. You can call it from any backend with the REST API, or from a Worker with the AI binding.

[How to use](https://developers.cloudflare.com/web-search/how-to-use/) [Browse providers](https://developers.cloudflare.com/web-search/providers/)

---

## Features

[Multiple search providers](https://developers.cloudflare.com/web-search/providers/)

Choose between Ceramic.ai, Exa, and Linkup with a single `provider` parameter. All providers return results in the same format, so you can switch without changing your code.

View providers

[Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/)

Pay for searches with your AI Gateway credits at each provider's list API price, with no additional markup. You can also bring your own provider API key.

Learn about Unified Billing

[Observability](https://developers.cloudflare.com/ai-gateway/observability/logging/)

Search requests appear in your AI Gateway logs and analytics alongside your model inference requests.

View logging

[Responsible crawling](https://developers.cloudflare.com/web-search/about/#crawler-standards)

Every provider commits to Cloudflare's [verified bot](https://developers.cloudflare.com/bots/concepts/bot/verified-bots/) requirements and returns a link to the source of every result.

Learn more

---

## Related products

[AI Gateway](https://developers.cloudflare.com/ai-gateway/)

Observe and control your AI applications with analytics, caching, rate limiting, and model fallback.

[Workers AI](https://developers.cloudflare.com/workers-ai/)

Run machine learning models, powered by serverless GPUs, on Cloudflare's global network.

[Agents](https://developers.cloudflare.com/agents/)

Build AI-powered agents that can perform tasks, persist state, browse the web, and communicate in real time.

---

## More resources

### [Developer Discord](https://discord.cloudflare.com)

Connect with the Workers community on Discord to ask questions, show what you are building, and discuss the platform with other developers.

### [Use cases](https://developers.cloudflare.com/use-cases/ai/)

Learn how you can build and deploy ambitious AI applications to Cloudflare's global network.

### [@CloudflareDev](https://x.com/cloudflaredev)

Follow @CloudflareDev on Twitter to learn about product announcements, and what is new in Cloudflare Workers.

Was this helpful?

YesNo

## On this page

[![](https://developers.cloudflare.com/_astro/logo.te5VL_aD.svg)Docs](https://developers.cloudflare.com/)

```json
{"@context":"https://schema.org","@type":"WebPage","@id":"https://developers.cloudflare.com/web-search/#page","headline":"Cloudflare Web Search API","description":"Ground AI agents and applications with real-time web search results from Ceramic.ai, Exa, and Linkup through AI Gateway.","url":"https://developers.cloudflare.com/web-search/","inLanguage":"en","image":"https://developers.cloudflare.com/web-search/og.png?v=698c83104f2059c1","dateModified":"2026-10-02","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"},"keywords":["AI"]}
```

---

---
description: Learn how Web Search API grounds AI agents in live web data, how it integrates with AI Gateway, and the crawling standards that search providers follow.
title: About Web Search API
image: https://developers.cloudflare.com/web-search/about/og.png?v=ba4b309ce28e5d04
---

[Skip to content](#main-content)

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/web-search/llms.txt  
> Use this file to discover all available pages before exploring further.

# About Web Search API

Last updated Oct 2, 2026|Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/web-search/about/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

AI models are only as good as the context you give them. Models are trained and then frozen at a point in time, so they only know about information that existed before their knowledge cutoff date. This makes it difficult to work with models on recent events, changing APIs, or fast-moving news.

Without web search, an agent that needs live information usually guesses the URL of a page and fetches it directly. When the guess is wrong, the request returns a `404 Not Found` and the agent has to try again.

Web Search API gives your agents a better option. Like a person starting with a search engine, your agent sends a query and receives a list of relevant, up-to-date results. You can inject those results into the model's context so its response is grounded in live information.

## How it works

When you send a search request, Web Search API:

1. Routes the request through the AI Gateway you specify.
2. Forwards the query to the search provider you choose — Ceramic.ai, Exa, or Linkup. If you do not set a provider, Web Search API uses Ceramic.ai as default.
3. Normalizes the provider's response into a consistent format, with a URL, title, and optional description, image, favicon, and last-modified date for each result.
4. Records the request in your AI Gateway logs and bills it to your account.

Because every provider returns the same result format, you can switch providers by changing a single parameter.

## AI Gateway integration

Web Search API is built on [AI Gateway](https://developers.cloudflare.com/ai-gateway/), which acts as the control plane for your AI applications. Every search request goes through a gateway, which gives you:

- **Observability** — Search requests appear in your gateway's [logs](https://developers.cloudflare.com/ai-gateway/observability/logging/) and [analytics](https://developers.cloudflare.com/ai-gateway/observability/analytics/) alongside your model inference requests.
- **Unified Billing** — Searches draw down from your [AI Gateway credit balance](https://developers.cloudflare.com/ai-gateway/features/unified-billing/). You pay each provider's list API price, with no additional markup. For rates, refer to [Providers](https://developers.cloudflare.com/web-search/providers/).
- **Bring your own key (BYOK)** — If you already have an account with a search provider, you can [store your provider API key](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/) on your gateway. The provider bills you directly.
- **Access control** — Control which providers your gateway can use and who can send requests.

## Crawler standards

Cloudflare believes that crawlers should be honest and transparent, and should respect the rules and preferences that site owners set. Site owners should have meaningful visibility into and control over how their content is used.

Every Web Search API provider has committed to meet the following standards:

- **Verified bot compliance** — The crawler the provider uses must meet Cloudflare's published requirements for [verified bots](https://developers.cloudflare.com/bots/concepts/bot/verified-bots/). This includes identifying the crawler and respecting `robots.txt`.
- **Source attribution** — Every search result must include a link to the location of the crawled content.

When you use Web Search API, your agents consume search results from operators that give site owners transparency, control, and visibility over how their content is crawled.

## Related resources

- [How to use Web Search API](https://developers.cloudflare.com/web-search/how-to-use/)
- [Providers and pricing](https://developers.cloudflare.com/web-search/providers/)
- [AI Gateway](https://developers.cloudflare.com/ai-gateway/)

Was this helpful?

YesNo

## On this page

[![](https://developers.cloudflare.com/_astro/logo.te5VL_aD.svg)Docs](https://developers.cloudflare.com/)

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/web-search/about/#page","headline":"About Web Search API","description":"Learn how Web Search API grounds AI agents in live web data, how it integrates with AI Gateway, and the crawling standards that search providers follow.","url":"https://developers.cloudflare.com/web-search/about/","inLanguage":"en","image":"https://developers.cloudflare.com/web-search/about/og.png?v=ba4b309ce28e5d04","dateModified":"2026-10-02","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"},"keywords":["AI"]}
```

---

---
description: Send web search requests through AI Gateway with the REST API or the Workers AI binding, bring your own provider key, and use web search as a tool for models.
title: How to use Web Search API
image: https://developers.cloudflare.com/web-search/how-to-use/og.png?v=d825d667b5bdb4f7
---

[Skip to content](#main-content)

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/web-search/llms.txt  
> Use this file to discover all available pages before exploring further.

# How to use Web Search API

Last updated Oct 2, 2026|Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/web-search/how-to-use/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

You can call Web Search API from any backend with the REST API, or from a Worker with the AI binding. Both methods route requests through an [AI Gateway](https://developers.cloudflare.com/ai-gateway/).

## Prerequisites

- A Cloudflare account. If you do not have one, [sign up ↗︎](https://dash.cloudflare.com/sign-up).
- An AI Gateway. Every account has a gateway named `default`, or you can [create a gateway](https://developers.cloudflare.com/ai-gateway/get-started/).
- [AI Gateway credits](https://developers.cloudflare.com/ai-gateway/features/unified-billing/#load-credits) loaded on your account, or a [provider API key](#bring-your-own-key-byok) stored on your gateway.

## REST API

Send a `POST` request to the `/ai/websearch/` endpoint:

```txt
POST https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/websearch/
```

Authenticate with a [Cloudflare API token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) that has both of the following permissions:

- **Account** > **Workers AI** > **Read**
- **Account** > **AI Gateway** > **Read**

```bash
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": "What are some fun things to do in Salt Lake City as fall approaches?",
    "provider": "ceramic",
    "limit": 5,
    "options": {
      "gateway": { "id": "default" }
    }
  }'
```

## Workers binding

Call Web Search API from a Worker with the `websearch()` method on the [AI binding](https://developers.cloudflare.com/workers-ai/configuration/bindings/).

1. Add an AI binding to your Wrangler configuration file:

   ```jsonc
   {
     "$schema": "./node_modules/wrangler/config-schema.json",
     "name": "web-search-worker",
     "main": "src/index.ts",
     // Set this to today's date
     "compatibility_date": "2026-10-05",
     "ai": {
       "binding": "AI"
     }
   }
   ```

   ```toml
   name = "web-search-worker"
   main = "src/index.ts"
   # Set this to today's date
   compatibility_date = "2026-10-05"

   [ai]
   binding = "AI"
   ```


2. Call `env.AI.websearch()` with your gateway ID and query:

   *src/index.tsts*

   

   ```ts
   export default {
   	async fetch(request, env): Promise<Response> {
   		const response = await env.AI.websearch({
   			gatewayId: "default",
   			query:
   				"What are some fun things to do in Salt Lake City as fall approaches?",
   			provider: "exa",
   			limit: 5,
   		});

   		const results = await response.json();
   		return Response.json(results);
   	},
   } satisfies ExportedHandler<Env>;
   ```



`websearch()` returns a standard `Response` object. Call `response.json()` to read the results.

## Request parameters

Set `provider` to choose a [search provider](https://developers.cloudflare.com/web-search/providers/). If you do not set a provider, Web Search API uses Ceramic.ai as default.

```json
{
	"query": "What are some fun things to do in Salt Lake City as fall approaches?",
	"provider": "ceramic",
	"limit": 5,
	"options": {
		"gateway": { "id": "default" }
	}
}
```

query

`string`requiredminLength: 1maxLength: 1024The search query.

provider

`string`default: ceramicenum: ceramic, exa, linkupThe search provider to use.

limit

`integer`default: 10minimum: 1maximum: 10The maximum number of search results to return.

byokAlias

`string`pattern: ^\[A-Za-z0-9\_-]{1,64}$The alias of a provider API key stored on your gateway. If set, the request fails instead of falling back to AI Gateway credits when the key is not configured.

▶options{}

`object`requiredRequest options.

```ts
const response = await env.AI.websearch({
	gatewayId: "default",
	query: "What are some fun things to do in Salt Lake City as fall approaches?",
	provider: "ceramic",
	limit: 5,
});
```

gatewayId

`string`requiredThe ID of the AI Gateway to route the request through.

query

`string`requiredminLength: 1maxLength: 1024The search query.

provider

`string`default: ceramicenum: ceramic, exa, linkupThe search provider to use.

limit

`integer`default: 10minimum: 1maximum: 10The maximum number of search results to return.

byokAlias

`string`pattern: ^\[A-Za-z0-9\_-]{1,64}$The alias of a provider API key stored on your gateway. If set, the request fails instead of falling back to AI Gateway credits when the key is not configured.

## Response format

```json
{
	"items": [
		{
			"url": "https://example.com/salt-lake-city-fall-guide",
			"title": "Fall in Salt Lake City: A Local's Guide",
			"description": "From scenic drives up Big Cottonwood Canyon to pumpkin patches..."
		}
	],
	"metadata": {
		"query": "What are some fun things to do in Salt Lake City as fall approaches?",
		"requestId": "<REQUEST_ID>",
		"latencyMs": 612
	}
}
```

▶items\[]

`array`The search results.

▶metadata{}

`object`Information about the request.

Optional fields are only included when the provider returns them.

## Bring your own key (BYOK)

If you have an existing account with a search provider, you can use your own API key instead of AI Gateway credits. The provider bills you directly.

1. In the Cloudflare dashboard, go to the **AI Gateway** page. [Go to **AI Gateway** ↗](https://dash.cloudflare.com/?to=/:account/ai/ai-gateway)
2. Select your gateway, then select **Provider Keys**.
3. Add an API key for Ceramic.ai, Exa, or Linkup, and assign it an alias — for example, `default`. If the provider is not listed, select **Configure custom providers** to add it.
4. Pass the provider and alias in your request.

```bash
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": "What is Cloudflare Workers?",
    "provider": "exa",
    "byokAlias": "default",
    "options": {
      "gateway": { "id": "default" }
    }
  }'
```

```ts
const response = await env.AI.websearch({
	gatewayId: "default",
	query: "What is Cloudflare Workers?",
	provider: "exa",
	byokAlias: "default",
});
```

Your API key is never sent in the request. AI Gateway retrieves the key stored on the gateway for the provider and alias, and encrypts stored keys with [Secrets Store](https://developers.cloudflare.com/secrets-store/).

AI Gateway selects credentials as follows:

- **You set `byokAlias`** — AI Gateway uses the stored key with that alias. If the provider or alias is not configured on the gateway, the request fails with a `400` error instead of falling back to your credits.
- **You omit `byokAlias`** — If the gateway has a stored key with the `default` alias for the provider, AI Gateway uses that key. Otherwise, the search is billed to your AI Gateway credits.

For more information, refer to [Bring your own keys](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/).

## Use web search as a tool

You can give a model access to web search by defining a `web_search` tool. When the model calls the tool, run the search and pass the results back to the model.

*src/index.tsts*

```ts
const MODEL = "@cf/google/gemma-4-26b-a4b-it";

export default {
	async fetch(request, env): Promise<Response> {
		const prompt = "What happened during the last Cloudflare Birthday Week?";
		const messages = [{ role: "user", content: prompt }];

		const completion = await env.AI.run(
			MODEL,
			{
				messages,
				tools: [
					{
						type: "function",
						function: {
							name: "web_search",
							description: "Search the web for current information.",
							parameters: {
								type: "object",
								properties: { query: { type: "string" } },
								required: ["query"],
							},
						},
					},
				],
			},
			{ gateway: { id: "default" } },
		);

		const toolCall = completion.tool_calls?.[0];
		if (toolCall?.name !== "web_search") {
			return Response.json(completion);
		}

		const searchResponse = await env.AI.websearch({
			gatewayId: "default",
			query: toolCall.arguments.query,
			limit: 5,
		});
		const searchResults = await searchResponse.json();

		const finalResponse = await env.AI.run(
			MODEL,
			{
				messages: [
					...messages,
					{
						role: "tool",
						name: "web_search",
						content: JSON.stringify(searchResults),
					},
				],
			},
			{ gateway: { id: "default" } },
		);

		return Response.json(finalResponse);
	},
} satisfies ExportedHandler<Env>;
```

## Limits

| Limit | Value |
| --- | --- |
| Query length | 1,024 characters |
| Results per request | 10 |

Was this helpful?

YesNo

## On this page

[![](https://developers.cloudflare.com/_astro/logo.te5VL_aD.svg)Docs](https://developers.cloudflare.com/)

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/web-search/how-to-use/#page","headline":"How to use Web Search API","description":"Send web search requests through AI Gateway with the REST API or the Workers AI binding, bring your own provider key, and use web search as a tool for models.","url":"https://developers.cloudflare.com/web-search/how-to-use/","inLanguage":"en","image":"https://developers.cloudflare.com/web-search/how-to-use/og.png?v=d825d667b5bdb4f7","dateModified":"2026-10-02","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"},"keywords":["AI"]}
```

---

---
description: Compare Web Search API providers Ceramic.ai, Exa, and Linkup, including Zero Data Retention terms and list API pricing.
title: Providers
image: https://developers.cloudflare.com/web-search/providers/og.png?v=5d5d95a471b9c663
---

[Skip to content](#main-content)

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/web-search/llms.txt  
> Use this file to discover all available pages before exploring further.

# Providers

Last updated Oct 2, 2026|Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/web-search/providers/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

Web Search API supports the following search providers. Set the `provider` parameter in your request to choose one. If you do not set a provider, Web Search API uses Ceramic.ai as default.

When you pay with [AI Gateway credits](https://developers.cloudflare.com/ai-gateway/features/unified-billing/), each search is billed at the provider's list API price, with no additional markup. If you [bring your own key](https://developers.cloudflare.com/web-search/how-to-use/#bring-your-own-key-byok), the provider bills you directly under your own agreement with them.

## [Ceramic.ai ↗︎](https://ceramic.ai/)

Ceramic.ai is the default provider for Web Search API. Ceramic.ai runs its own independent web index of more than 40 billion pages, designed for AI agents and LLM applications rather than human search.

Ceramic.ai focuses on low-latency, low-cost search, which makes it a good fit for agents that run many searches per task, for grounding chatbot answers in current information, and for checking model output against live web sources. Results include long descriptions of each page, up to 8,000 characters.

| Property | Value |
| --- | --- |
| `provider` | `ceramic` |
| Zero Data Retention | Yes |
| Price | $0.25 per 1,000 requests |
| Documentation | [Ceramic.ai documentation ↗︎](https://docs.ceramic.ai/) |
| Terms | [Terms of service ↗︎](https://ceramic.ai/terms-of-service) |

## [Exa ↗︎](https://exa.ai/)

Exa is a search engine built for AI, with its own index that combines traditional keyword search with embeddings-based search. Web Search API uses the [Exa Search API ↗︎](https://exa.ai/docs/reference/search).

Requests use Exa's `auto` search type, a balanced mode that Exa optimizes for both result quality and speed. Each result includes highlights — the text snippets from the page that are most relevant to your query — returned as the result description. Exa is a good fit when you want to pass concise, query-relevant excerpts straight into a model's context.

| Property | Value |
| --- | --- |
| `provider` | `exa` |
| Zero Data Retention | No |
| Price | $7.00 per 1,000 requests |
| Search mode | `auto` search type, with page highlights returned as the result description |
| Documentation | [Exa Search API documentation ↗︎](https://exa.ai/docs/reference/search) |
| Terms | [Exa Terms (PDF) ↗︎](https://exa.ai/assets/Exa_Labs_Terms_of_Service.pdf) |

## [Linkup ↗︎](https://www.linkup.so/)

Linkup provides web search built for AI applications, returning sourced results with text snippets from across the web. Web Search API uses the [Linkup Search API ↗︎](https://docs.linkup.so/pages/documentation/endpoints/search/overview).

Requests use Linkup's `fast` search depth with raw search results, so Linkup returns results without generating an answer. This makes Linkup a good fit for agent tool calls that need quick, cited results from trusted sources.

| Property | Value |
| --- | --- |
| `provider` | `linkup` |
| Zero Data Retention | Yes |
| Price | $5.00 per 1,000 requests |
| Search mode | `fast` search depth |
| Documentation | [Linkup documentation ↗︎](https://docs.linkup.so/) |
| Terms | [Terms of use ↗︎](https://www.linkup.so/terms-of-use) |

Was this helpful?

YesNo

## On this page

[![](https://developers.cloudflare.com/_astro/logo.te5VL_aD.svg)Docs](https://developers.cloudflare.com/)

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/web-search/providers/#page","headline":"Providers","description":"Compare Web Search API providers Ceramic.ai, Exa, and Linkup, including Zero Data Retention terms and list API pricing.","url":"https://developers.cloudflare.com/web-search/providers/","inLanguage":"en","image":"https://developers.cloudflare.com/web-search/providers/og.png?v=5d5d95a471b9c663","dateModified":"2026-10-02","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"},"keywords":["AI"]}
```
