{
  "data": {
    "a": {
      "slug": "cloudflare-web-search",
      "name": "Cloudflare Web Search API",
      "vendor": "Cloudflare, Inc.",
      "vendorUrl": "https://www.cloudflare.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Cloudflare's web search endpoint, in open beta since 2 October 2026, routes a query through AI Gateway to Ceramic.ai, Exa or Linkup and returns results in one format, by REST or from a Worker's AI binding.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-web-search",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-web-search.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-web-search.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-web-search.json",
      "dns": "cloudflare-web-search.grade.anchorterminal.com",
      "license": "Proprietary service under Cloudflare's terms. Each search provider's own terms are linked from the providers page",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "A Cloudflare API token as a Bearer header, with Account \u003e Workers AI \u003e Read and Account \u003e AI Gateway \u003e Read. Inside a Worker the `AI` binding needs no token. Provider keys stored on the gateway (BYOK) are selected by `byokAlias` and never sent in the request. The OpenAPI operation also accepts the legacy global API key with an email header.",
      "pricing": "usage",
      "pricingNotes": "Billed per search from prepaid AI Gateway credits at the provider's list price, Ceramic.ai $0.25, Linkup $5.00 and Exa $7.00 per 1,000 requests. Credits carry a 5 per cent purchase fee and need a payment method on the account. With a stored provider key the provider bills you directly. No free allowance found (https://developers.cloudflare.com/web-search/providers/, checked 2026-10-05).",
      "priceSummary": "$0.25 / 1k req",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "AI Gateway Machine Payments (x402, beta since 30 September 2026) covers only POST /ai/run for four open models, US accounts with a card on file. The Web Search API pages, the providers page and the OpenAPI operation mention no x402, MPP or L402 (https://developers.cloudflare.com/ai-gateway/features/machine-payments/, checked 2026-10-05).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-05"
      },
      "docsUrl": "https://developers.cloudflare.com/web-search/",
      "llmsTxt": "https://developers.cloudflare.com/web-search/llms.txt",
      "openapi": "https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.json",
      "capabilities": [
        "web.search"
      ],
      "tags": [
        "hosted",
        "beta",
        "openapi",
        "llms-txt",
        "typescript",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.9,
        "grade": "B",
        "agentReady": false,
        "rank": 348,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 71,
          "payments": 20,
          "reliability": 77,
          "schema": 81,
          "security": 74,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "One endpoint that sends a search to Ceramic.ai, Exa or Linkup and returns results in one format, logged and billed through AI Gateway, whose status shows no incidents in 90 days. Ceramic.ai costs $0.25 per 1,000 searches. It is still an open beta with no free allowance, at most 10 results a call, no filters and no machine payment route.",
        "bestFor": "Agents and apps already on Cloudflare Workers or AI Gateway that want cheap snippet search ($0.25 per 1,000 with Ceramic.ai) on the same bill and logs as their inference.",
        "strengths": [
          "Three providers behind one request shape, switched by the `provider` parameter",
          "Ceramic.ai at $0.25 per 1,000 searches, at the provider's list price",
          "Every search lands in AI Gateway logs, with per-request headers to skip storing payloads",
          "Typed error body with category, code and a `retryable` flag",
          "Providers commit to verified-bot crawling and a source link on every result",
          "AI Gateway, which carries every search, shows no incident days in the 90 days to 2 November 2026 on Cloudflare's status page"
        ],
        "weaknesses": [
          "Open beta, with no SLA found for AI Gateway",
          "Credits need a payment method and carry a 5 per cent purchase fee. No free allowance",
          "At most 10 results a call, with no pagination, domain or date filters",
          "No x402. Machine Payments covers only /ai/run",
          "The changelog and the providers page disagree on whether Exa searches have Zero Data Retention",
          "The Cloudflare TypeScript SDK (7.3.0) still has no web search method a month after launch"
        ],
        "agentNotes": [
          "Set `options.gateway.id`. Every account has a gateway named `default`",
          "Pass `provider` explicitly. It defaults to Ceramic.ai, whose descriptions can run to 8,000 characters a result",
          "Set `limit` to the results you'll read, between 1 and 10",
          "Set `byokAlias` when you mean to use a stored provider key, so a missing key fails with 400 instead of spending credits",
          "Send `cf-aig-collect-log-payload: false` if queries shouldn't be stored in gateway logs"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.9
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 71,
          "payments": 20,
          "reliability": 77,
          "schema": 81,
          "security": 74,
          "transparency": 50
        },
        "provenanceScore": 96,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/websearch/ \\\n  --request POST \\\n  --header \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n  --header \"Content-Type: application/json\" \\\n  --data '{\n    \"query\": \"What are some fun things to do in Salt Lake City as fall approaches?\",\n    \"provider\": \"ceramic\",\n    \"limit\": 5,\n    \"options\": {\n      \"gateway\": { \"id\": \"default\" }\n    }\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/cloudflare-web-search"
      },
      "sameCompany": [
        "cloudflare-ai-gateway",
        "cloudflare-workers-ai",
        "cloudflare-sandbox-sdk",
        "cloudflare-workers-oauth-provider",
        "cloudflare-clairic",
        "cloudflare-ai-search",
        "cloudflare-cli",
        "cloudflare-mcp",
        "cloudflare-email-service",
        "cloudflare-r2",
        "cloudflare-clef"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search, Ceramic.ai",
          "unit": "1k-requests",
          "usd": 0.25
        },
        {
          "item": "Search, Linkup",
          "unit": "1k-requests",
          "usd": 5
        },
        {
          "item": "Search, Exa",
          "unit": "1k-requests",
          "usd": 7
        }
      ],
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": true,
        "terms": "https://cloudflare.com/terms/",
        "privacy": "https://cloudflare.com/privacypolicy/",
        "statusPage": "https://www.cloudflarestatus.com",
        "changelog": "https://developers.cloudflare.com/ai-gateway/changelog/",
        "securityTxt": "valid",
        "checked": "2026-11-02",
        "notes": [
          "Legal entity, domain date, terms and privacy follow the Cloudflare MCP listing's check. We didn't re-read them for this listing.",
          "www.cloudflare.com/.well-known/security.txt, re-read on 2 November 2026, names HackerOne and a disclosure policy and carries no Expires field.",
          "The endpoint is on api.cloudflare.com. Searches are forwarded to Ceramic.ai, Exa or Linkup.",
          "www.cloudflarestatus.com shows AI Gateway with no days with incidents in its 90-day bar on 2 November 2026. Web search has no component of its own."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-web-search.json",
      "live": {
        "slug": "cloudflare-web-search",
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-11-07T19:21:22.502175028Z"
        },
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:00:23.467095484Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/web-search/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:08.979342215Z"
        },
        "domain": {
          "domain": "cloudflare.com",
          "registered": "2009-02-17",
          "source": "https://rdap.verisign.com/com/v1/domain/cloudflare.com",
          "checkedAt": "2026-11-01T14:18:56.122446983Z"
        },
        "pages": [
          {
            "url": "https://developers.cloudflare.com/ai-gateway/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:29.967269806Z",
            "changedAt": "2026-10-07T18:04:13.791253735Z",
            "fingerprint": "aaad1064978c"
          }
        ],
        "updatedAt": "2026-11-07T19:21:22.502175028Z"
      }
    },
    "answer": "Perplexity Search API scores 70.2 (BB) on agent readiness against Cloudflare Web Search API's 66.9 (B), and leads in 5 of 7 scored categories. Cloudflare Web Search API leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "perplexity-search-api",
      "name": "Perplexity Search API",
      "vendor": "Perplexity",
      "vendorUrl": "https://www.perplexity.ai/",
      "kind": "http-api",
      "category": "search",
      "summary": "Perplexity's Search API returns ranked web results with extracted page text as JSON from Perplexity's own index, through `POST /search`. The same key reaches the Agent API's web_search tool for cited answers, and a hosted MCP server wraps both.",
      "url": "https://www.anchorterminal.com/tools/perplexity-search-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/perplexity-search-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/perplexity-search-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/perplexity-search-api.json",
      "dns": "perplexity-search-api.grade.anchorterminal.com",
      "repo": "https://github.com/perplexityai/modelcontextprotocol",
      "license": "Proprietary service under the Perplexity API Terms of Service. The MCP server is MIT and the official SDKs Apache-2.0",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.perplexity.ai/mcp",
      "packages": [
        {
          "registry": "pypi",
          "name": "perplexityai"
        },
        {
          "registry": "npm",
          "name": "@perplexity-ai/perplexity_ai"
        },
        {
          "registry": "npm",
          "name": "@perplexity-ai/mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer Perplexity API key in the `Authorization` header. Keys belong to a project in the API console, are shown once, and can be generated and revoked through `/generate_auth_token` and `/revoke_auth_token`, with a rotation guide. No per-key scopes found. The hosted MCP server also accepts Sign in with Perplexity (OAuth), where the user picks the organisation to bill.",
      "pricing": "usage",
      "pricingNotes": "$5 per 1,000 successful Search API requests, or $1 with Fast Search, with up to five queries per request billed once. Invalid, rate-limited and failed requests are not billed. Agent API web_search is $2.50 per 1,000 calls plus model tokens. Prepaid credits with a card. No free allowance found.",
      "priceSummary": "$5 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Search API docs, the pricing page, the OpenAPI description or llms.txt (checked 2026-11-06). An empty balance returns 402 Payment Required with no payment requirements, per the FAQ.",
        "endpoints": []
      },
      "toolCount": 4,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.perplexity.ai/docs/search/overview",
      "llmsTxt": "https://docs.perplexity.ai/llms.txt",
      "openapi": "https://docs.perplexity.ai/openapi.json",
      "registryName": "ai.perplexity/mcp-server",
      "capabilities": [
        "web.search",
        "search.answer",
        "search.research"
      ],
      "tags": [
        "hosted",
        "usage-priced",
        "prepaid",
        "card-required",
        "closed-source",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "python",
        "typescript",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.2,
        "grade": "BB",
        "agentReady": true,
        "rank": 211,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 82,
          "payments": 25,
          "reliability": 80,
          "schema": 89,
          "security": 56,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Raw ranked results with token-capped page text from Perplexity's own index, $5 per 1,000 requests or $1 with Fast Search, an OpenAPI description and a hosted MCP server with read-only annotations. Uptime is not guaranteed, there is no free allowance, keys carry no scopes, and no guidance on untrusted page text was found.",
        "bestFor": "Agents on any model that need raw ranked sources with extracted text at a low per-request price, and teams that want cited answers from the same key through the Agent API.",
        "strengths": [
          "OpenAPI 3.1 description of `POST /search` with enums and limits, llms.txt and a Markdown twin of every docs page",
          "`max_tokens`, `max_tokens_per_page` and `max_results` cap what reaches the model, and up to five queries share one billed request",
          "Per-request prices published without login, and invalid, rate-limited and failed requests are not billed",
          "Hosted MCP server with OAuth or a key; the local server is in the official registry under the verified ai.perplexity namespace",
          "security.txt valid to 31 December 2027, a SOC 2 Type II report and a SECURITY.md that takes private reports"
        ],
        "weaknesses": [
          "The FAQ says uptime and recovery time are not guaranteed, and the terms carry no SLA",
          "No free allowance and prepaid credits with a card; Stripe Projects still needs a $10 purchase",
          "Project keys have no scopes or spending limits, so any key can run every API on the account",
          "No guidance on treating returned snippets as untrusted text was found in the docs or the MCP server",
          "The DPA says Perplexity Search may follow different data terms, and no retention period for search queries is stated"
        ],
        "agentNotes": [
          "Set `max_tokens_per_page` and `max_tokens` before calling; extracted text otherwise fills the context, and the price does not change with size",
          "Skip results with an empty `snippet` and dedupe by `url` when sending a `query` array; each query costs one rate-limit unit",
          "Use `search_type: \"fast\"` for $1 per 1,000 when latency and cost matter more than depth",
          "On 429 wait for Retry-After, then back off; on 402 stop and ask the user to add credits",
          "Use the Search API for sources and the Agent API's web_search tool for a written answer with citations"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.2
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 82,
          "payments": 25,
          "reliability": 80,
          "schema": 89,
          "security": 56,
          "transparency": 51
        },
        "provenanceScore": 80,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install perplexityai",
        "http": "curl -X POST https://api.perplexity.ai/search \\\n  -H \"Authorization: Bearer $PERPLEXITY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"renewable energy technologies\", \"max_results\": 10, \"max_tokens\": 50000, \"max_tokens_per_page\": 4096}'",
        "claudeCode": "claude mcp add --transport http perplexity https://api.perplexity.ai/mcp",
        "config": {
          "mcpServers": {
            "perplexity": {
              "url": "https://api.perplexity.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/perplexity-search-api"
      },
      "sameCompany": [
        "perplexity-space",
        "pplx-decider",
        "pplx-decider-flash"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search API request",
          "unit": "1k-requests",
          "usd": 5,
          "note": "Up to five queries in one request billed once; failed and rate-limited requests not billed"
        },
        {
          "item": "Search API request with Fast Search",
          "unit": "1k-requests",
          "usd": 1,
          "note": "`search_type: \"fast\"`"
        },
        {
          "item": "Agent API web_search call",
          "unit": "1k-calls",
          "usd": 2.5,
          "note": "Plus model tokens; $1.00 with Fast Search"
        },
        {
          "item": "Agent API fetch_url call",
          "unit": "1k-calls",
          "usd": 0.5,
          "note": "Plus model tokens"
        }
      ],
      "provenance": {
        "legalEntity": "Perplexity AI, Inc.",
        "domain": "perplexity.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.perplexity.ai/hub/legal/perplexity-api-terms-of-service",
        "privacy": "https://www.perplexity.ai/hub/legal/privacy-notice",
        "statusPage": "https://status.perplexity.com/",
        "changelog": "https://docs.perplexity.ai/docs/resources/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The API Terms of Service (last updated 23 January 2026) name Perplexity AI, Inc. and California law. The Data Processing Addendum (last updated 13 August 2026) deletes personal data within 30 days of the service ending and notes that Perplexity Search may follow different data terms.",
          "www.perplexity.ai/.well-known/security.txt is valid until 31 December 2027 and links www.perplexity.ai/security.",
          "The status page moved to incident.io on 10 September 2026 and has Website, App, Computer and API components, with no separate Search component.",
          "docs.perplexity.ai/robots.txt allows the docs and carries Content-Signal ai-train=yes, search=yes, ai-input=yes. The terms have no clause on automated access to the website.",
          "The changelog dates entries by month only. Domain registration was not checked."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/perplexity-search-api.json",
      "live": {
        "slug": "perplexity-search-api",
        "probe": {
          "target": "https://api.perplexity.ai/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:25.812257306Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 194,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 165,
          "p95ms24h": 266,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.perplexity.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:23:08.772447999Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "ai.perplexity/mcp-server",
            "version": "1.2.1",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@perplexity-ai/mcp-server",
            "version": "1.3.0",
            "seenAt": "2026-11-06T23:55:31.394431614Z"
          },
          {
            "registry": "npm",
            "name": "@perplexity-ai/perplexity_ai",
            "version": "0.41.0",
            "seenAt": "2026-11-06T23:55:30.575713692Z"
          },
          {
            "registry": "pypi",
            "name": "perplexityai",
            "version": "0.46.1",
            "released": "2026-10-23",
            "seenAt": "2026-11-06T23:55:30.34668899Z"
          }
        ],
        "githubStars": 2612,
        "npmWeekly": 97298,
        "pypiWeekly": 401537,
        "securityTxt": {
          "url": "https://perplexity.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-12-31T00:00:00Z",
          "checkedAt": "2026-11-07T16:01:03.917430365Z"
        },
        "llmsTxt": {
          "url": "https://docs.perplexity.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:36.681222085Z"
        },
        "pages": [
          {
            "url": "https://docs.perplexity.ai/docs/resources/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:07:27.675707255Z",
            "changedAt": "2026-11-06T13:29:48.535494355Z",
            "fingerprint": "a52a171e1f1f"
          },
          {
            "url": "https://www.perplexity.ai/hub/legal/privacy-notice",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:32:54.875760985Z",
            "changedAt": "2026-11-06T13:53:25.792168971Z",
            "fingerprint": "29c9dd01613d"
          },
          {
            "url": "https://www.perplexity.ai/hub/legal/perplexity-api-terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:32:50.897959644Z",
            "changedAt": "2026-11-06T13:53:22.592031411Z",
            "fingerprint": "6a7e4a95f45b"
          }
        ],
        "mcpTools": {
          "url": "https://api.perplexity.ai/mcp",
          "checkedAt": "2026-11-07T01:46:49.011542458Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:49.011542458Z"
        },
        "updatedAt": "2026-11-07T19:23:08.772447999Z"
      }
    },
    "edges": [
      {
        "by": 22,
        "category": "ergonomics",
        "leads": "perplexity-search-api",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Results are small by default (URL, title, description), and `limit` caps them at 1 to 10. The default provider, Ceramic.ai, returns descriptions of up to 8,000 characters a result with no parameter to shorten them (15 of 25). `limit` is the only control. No pagination, offset, domain, date, country or freshness filters (6 of 20). Errors come back with `category` (gateway, credential, provider, internal), `code`, `status`, `retryable` and `gatewayRequestId`. The codes themselves aren't listed (16 of 20). Searches only read, the error body says whether a retry helps, and gateways can retry upstream failures up to five times. No idempotency keys, which a read doesn't need (16 of 20). Only `query` and the gateway ID are required. The Workers binding is TypeScript, and the Cloudflare TypeScript SDK 7.3.0 of 3 October has no web search method. We didn't check the Python or Go SDKs (10 of 15).",
          "b": "`max_results` 1 to 20, `max_tokens` and `max_tokens_per_page` cap the extracted text, and results are title, url, snippet and two dates. The MCP server has four tools (23 of 25). Domain, language, recency, publication and update date filters and `country`, with up to five queries in one request. No pagination or offset (16 of 20). 429 bodies name the limit hit, the SDKs map status codes to typed errors, and 402 marks an empty balance. Search-specific error bodies beyond 422 validation are not documented (13 of 20). Searches only read, failed and rate-limited requests are not billed, and the MCP server sets readOnlyHint true, destructiveHint false and idempotentHint false on every tool (18 of 20). Only `query` is required. Official Python and TypeScript SDKs, a CLI and a Python Search SDK (15). 23 + 16 + 13 + 18 + 15 = 85."
        },
        "scores": {
          "a": 63,
          "b": 85
        }
      },
      {
        "by": 18,
        "category": "security",
        "leads": "cloudflare-web-search",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Cloudflare API tokens are scoped by permission and revocable, and web search needs only Workers AI Read and AI Gateway Read. Permission is per account, not per gateway or provider. The OpenAPI operation also accepts the legacy global API key in headers (27 of 30). Every call reads. Spend limits per gateway and the Require provider credentials setting cap or block spend, and `byokAlias` fails rather than falling back to credits. Read permission is enough to spend credits (14 of 20). Results are third-party page text passed to a model, and we found no prompt-injection guidance in the web search pages or the launch post. AI Gateway Guardrails aren't documented for web search (0 of 15). Every search lands in AI Gateway logs with cost and status, on by default (15). security.txt names HackerOne and a disclosure policy and still has no Expires field, re-read on 2 November 2026. Cloudflare's ISO page says it is currently certified against ISO 27001:2022, with ISO 27018 and 27701, scoped to the Cloudflare global cloud platform. 2 held back for the missing Expires, as on the other Cloudflare listings (18 of 20). 27 + 14 + 0 + 15 + 18 = 74.",
          "b": "Project API keys, shown once, revocable, and generated and revoked through two documented endpoints with a rotation guide. No per-key scopes or spending limits were found. The hosted MCP server also takes Sign in with Perplexity (OAuth). Keys go in the Authorization header only (22 of 30, as on the Decisions API listing). Search only reads, and MCP clients can disable tools, but any key reaches every API on the account, including the Agent API's sandbox and MCP tools (8 of 20). Snippets are third-party page text, and no guidance on treating them as untrusted was found in the docs, the MCP server or its SECURITY.md (0 of 15). Responses carry a request `id`, and the console shows usage by key. The Audit API covers enterprise organisations' web app events with its own keys, not API calls (8 of 15). security.txt valid until 31 December 2027 linking a security page, a SOC 2 Type II report, a 2025 HIPAA gap assessment and a CAIQlite listed on the trust centre, and a SECURITY.md on the MCP server that takes private reports through GitHub advisories or security@perplexity.ai. The trust centre is drawn by script and wasn't read (18 of 20). 22 + 8 + 0 + 8 + 18 = 56."
        },
        "scores": {
          "a": 74,
          "b": 56
        }
      },
      {
        "by": 11,
        "category": "maintenance",
        "leads": "perplexity-search-api",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read for a closed service. The web search launch entry is dated 2 October 2026, 31 days ago. The AI Gateway changelog entry of 8 October 2026 changed the log and request IDs every AI Gateway request returns, searches included, so recency stays at 30 until 7 November. Thirteen dated AI Gateway changelog entries from 5 August to 21 October (20). A public changelog with RSS and a developer Discord. We didn't check support response times (8 of 15). The Workers binding has the method. The Cloudflare TypeScript SDK's newest tag is still 7.3.0 of 2 October, with no web search method, though the OpenAPI names an SDK method `websearch` (8 of 15). The OpenAPI spec carries the path. Nothing else to measure for a hosted endpoint (5 of 10). 30 + 20 + 8 + 8 + 5 = 71.",
          "b": "Read as a closed service with official SDKs and an open-source MCP server. perplexityai 0.46.1 on PyPI on 23 October 2026 and the MCP server's last commit on 21 October, with changelog entries into November 2026 (30). In the 90 days from 8 August, perplexityai 0.43.7 to 0.46.1 (six releases from 2 October), MCP server 1.2.1 (27 August) and 1.3.0 (25 September, Fast Search on perplexity_search), and Fast Search itself in September (20). A changelog with several entries a month, a community forum with a bug-report category, a GitHub discussion repository and api@perplexity.ai. MCP issue reply times weren't read (10 of 15). The MCP server is in the official registry under the domain-verified ai.perplexity namespace, and the Python and TypeScript SDKs are current (15). The MCP repository runs tests in CI and validates its plugin manifests. Its 1.4.0, prepared on 16 October, is not on npm, which still serves 1.3.0, and the registry's latest entry is 1.2.1 of 27 August (7 of 10). 30 + 20 + 10 + 15 + 7 = 82."
        },
        "scores": {
          "a": 71,
          "b": 82
        }
      },
      {
        "by": 8,
        "category": "schema",
        "leads": "perplexity-search-api",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Cloudflare's public OpenAPI has `/accounts/{account_id}/ai/websearch` with a typed body, `additionalProperties: false` and typed 200, 400, 403 and 502 responses. `provider` is a free string there where the docs give an enum (22 of 25). llms.txt for the product and Markdown for every page (10). The providers page says which provider suits which job, such as Ceramic.ai for agents that run many searches and Exa for short query-relevant excerpts. Nothing says when not to use the endpoint, and the OpenAPI description is one line (12 of 20). `query` 1 to 1,024 characters, `limit` 1 to 10, `provider` enum in the docs, `byokAlias` with a pattern (14 of 15). curl and Worker examples, a response example, and a typed error body with category, code and `retryable`. No catalogue of error codes or messages found (11 of 15). Dated launch entry in the AI Gateway changelog, still the only web search entry on 2 November 2026. The API path carries v4 for the whole Cloudflare API, nothing specific to web search (12 of 15). The OpenAPI operation, re-read from a clone on 2 November, is unchanged.",
          "b": "OpenAPI 3.1.0 at docs.perplexity.ai/openapi.json describes `POST /search` with typed request and response schemas, listed in llms.txt (25). llms.txt indexes every page, each with a Markdown twin (10). The overview says what a result holds, that snippets can be empty, when to use the Search API instead of the Agent API, and that it takes queries not URLs and does not re-fetch pages (19 of 20). `search_type` is an enum, `max_results`, `max_tokens` and `max_tokens_per_page` carry minimum and maximum, country and language codes carry lengths, and `query` is a string or an array. The recency filter is an enum in the docs, and date filters are `MM/DD/YYYY` strings (14 of 15). Python, TypeScript and cURL examples with a recorded response. The spec documents only 200 and 422 for `/search`, and status codes are listed on the SDK error-handling page and the rate-limit page rather than for Search (11 of 15). A public changelog with several entries a month, dated by month only, and an unversioned `/search` path (10 of 15). 25 + 10 + 19 + 14 + 11 + 10 = 89."
        },
        "scores": {
          "a": 81,
          "b": 89
        }
      },
      {
        "by": 7,
        "category": "transparency",
        "leads": "cloudflare-web-search",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under Cloudflare's terms, with each provider's terms linked from the providers page (15 of 30). AI Gateway logs are on by default with headers to skip payloads, and Cloudflare's privacy policy and DPA exist per the Cloudflare MCP check. The providers page gives Zero Data Retention for Ceramic.ai and Linkup but not Exa, while the 2 October changelog says all three support it. No retention period for web search logs on the pages we read (15 of 30). No deprecation policy found. The changelog posts dated changes, such as the 24 September log cut-over, but no deprecation notices (6 of 20). The three providers are named, and Cloudflare's subprocessor page names 12 third parties with locations per the Cloudflare MCP check. Where searches are processed isn't stated (14 of 20). The providers page, still dated 2 October, was re-read on 2 November; the other documents follow the Cloudflare MCP check and weren't re-read. 15 + 15 + 6 + 14 = 50.",
          "b": "Closed service under terms naming Perplexity AI, Inc. and California law. The MCP server is MIT and the SDKs Apache-2.0 (18 of 30). The terms and DPA say Customer Content and personal data don't train Perplexity's models, the DPA deletes personal data within 30 days of the service ending, and the Privacy and Security page says retention varies by API and zero data retention is not the default. The DPA also says Perplexity Search may follow different data terms, which weren't found, and no retention period for search queries is stated (15 of 30). Sonar Chat Completions support ended on 27 September 2026 with a migration guide and requests reformulated rather than refused, and sonar-reasoning was removed on 15 December 2025 with a named replacement. Notices are dated by month and there is no standing notice period beyond the terms' 30 days for termination (10 of 20). A sub-processor list on the trust centre, which is drawn by script and wasn't read, ten business days' notice of new non-model subprocessors, and SCCs for EU and UK transfers. No data location is stated (8 of 20). 18 + 15 + 10 + 8 = 51."
        },
        "scores": {
          "a": 73,
          "b": 66
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "perplexity-search-api",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 on /ai/websearch. AI Gateway Machine Payments covers only /ai/run for four open models (0, Machine Payments page unchanged since 30 September and still limited to `/ai/run`). Per-search prices published without a login, $0.25, $5.00 and $7.00 per 1,000 by provider. The 5 per cent fee on credit purchases sits on the Unified Billing page, not the providers page (20). No free allowance found. Credits need a payment method, and the BYOK route needs an account with the provider (0). A person signs up for Cloudflare in a browser and buys credits or stores a provider key (0). 0 + 20 + 0 + 0 = 20.",
          "b": "No x402, MPP or L402 in the docs, pricing page, OpenAPI or llms.txt (0). $5 per 1,000 successful requests, $1 with Fast Search, published without a login, with failed and rate-limited requests not billed (20). Usage is prepaid with a card on the billing page, and no free allowance was found. The console playground needs no key but is a page for a person, not an API allowance (0). A person signs up in the console. The Stripe Projects route provisions a project, key and credits from a terminal, but needs a person's Stripe account with a payment method and a $10 minimum purchase (5 of 20, as on the Decisions API listing). 0 + 20 + 0 + 5 = 25."
        },
        "scores": {
          "a": 20,
          "b": 25
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Cloudflare, Inc.",
        "b": "Perplexity",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.perplexity.ai/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$0.25 per 1,000 requests",
        "b": "$1 per 1,000 requests",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Cloudflare's terms. Each search provider's own terms are linked from the providers page",
        "b": "Proprietary service under the Perplexity API Terms of Service. The MCP server is MIT and the official SDKs Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "4",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "ai.perplexity/mcp-server",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-02",
        "b": "2026-10-23",
        "name": "Last release"
      },
      {
        "a": "2025-09-12",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Perplexity Search API scores 70.2 (BB) on agent readiness against Cloudflare Web Search API's 66.9 (B), and leads in 5 of 7 scored categories. Cloudflare Web Search API leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Cloudflare Web Search API or Perplexity Search API?"
      },
      {
        "answer": "Cloudflare Web Search API, at $0.25 per 1,000 requests against $1 per 1,000 requests for Perplexity Search API. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for web search, Cloudflare Web Search API or Perplexity Search API?"
      },
      {
        "answer": "Cloudflare Web Search API needs an API key. Perplexity Search API takes an API key or an OAuth sign-in.",
        "question": "Do Cloudflare Web Search API and Perplexity Search API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Cloudflare Web Search API. Perplexity Search API has a hosted endpoint at https://api.perplexity.ai/mcp.",
        "question": "Can an agent call Cloudflare Web Search API and Perplexity Search API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 74 against 56",
          "Transparency \u0026 trust, 73 against 66"
        ],
        "also": [
          "Cheaper for web search, $0.25 against $1 per 1,000 requests"
        ],
        "goodFor": "Agents and apps already on Cloudflare Workers or AI Gateway that want cheap snippet search ($0.25 per 1,000 with Ceramic.ai) on the same bill and logs as their inference.",
        "slug": "cloudflare-web-search",
        "watchFor": "Open beta, with no SLA found for AI Gateway"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 89 against 81",
          "Agent ergonomics, 85 against 63",
          "Payments \u0026 pricing, 25 against 20",
          "Maintenance \u0026 community, 82 against 71"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "goodFor": "Agents on any model that need raw ranked sources with extracted text at a low per-request price, and teams that want cited answers from the same key through the Agent API.",
        "slug": "perplexity-search-api",
        "watchFor": "The FAQ says uptime and recovery time are not guaranteed, and the terms carry no SLA"
      }
    ],
    "history": {
      "cloudflare-web-search": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-02",
          "delta": 5,
          "from": 61.9,
          "fromGrade": "C",
          "to": 66.9,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 62.1,
          "fromGrade": "B",
          "to": 61.9,
          "toGrade": "C"
        }
      ],
      "perplexity-search-api": null
    },
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-cloudflare-web-search.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Cloudflare Web Search API",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-cloudflare-web-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-perplexity-search-api.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-cloudflare-web-search.json",
        "title": "Arcmira vs Cloudflare Web Search API",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-cloudflare-web-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-cloudflare-web-search.json",
        "title": "Grounding with Bing Search vs Cloudflare Web Search API",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-cloudflare-web-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-perplexity-search-api.json",
        "title": "Grounding with Bing Search vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search.json",
        "title": "Brave Search API + MCP vs Cloudflare Web Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api.json",
        "title": "Brave Search API + MCP vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-deepseek-search-api.json",
        "title": "Cloudflare Web Search API vs DeepSeek Search and Fetch API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-deepseek-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-exa-mcp.json",
        "title": "Cloudflare Web Search API vs Exa API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-exa-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-firecrawl-mcp.json",
        "title": "Cloudflare Web Search API vs Firecrawl MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-firecrawl-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-grep-ai.json",
        "title": "Cloudflare Web Search API vs Grep AI",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-grep-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search.json",
        "title": "Cloudflare Web Search API vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-linkup.json",
        "title": "Cloudflare Web Search API vs Linkup",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-linkup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek.json",
        "title": "Cloudflare Web Search API vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher.json",
        "title": "Cloudflare Web Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-parallel-search-api.json",
        "title": "Cloudflare Web Search API vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-searchapi-io.json",
        "title": "Cloudflare Web Search API vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi.json",
        "title": "Cloudflare Web Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serper.json",
        "title": "Cloudflare Web Search API vs Serper",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.json",
        "title": "Cloudflare Web Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite.json",
        "title": "Cloudflare Web Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-specstream.json",
        "title": "Cloudflare Web Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.json",
        "title": "Cloudflare Web Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search.json",
        "title": "Cloudflare Web Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-valyu.json",
        "title": "Cloudflare Web Search API vs Valyu",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-you-com-api.json",
        "title": "Cloudflare Web Search API vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-perplexity-search-api.json",
        "title": "DeepSeek Search and Fetch API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-perplexity-search-api.json",
        "title": "Exa API + MCP vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-perplexity-search-api.json",
        "title": "Firecrawl MCP vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api.json",
        "title": "Kagi Search API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-perplexity-search-api.json",
        "title": "Linkup vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api.json",
        "title": "Mojeek Web Search API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api.json",
        "title": "NewsCatcher vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-perplexity-search-api.json",
        "title": "Parallel Search and Task APIs vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-searchapi-io.json",
        "title": "Perplexity Search API vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.json",
        "title": "Perplexity Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serper.json",
        "title": "Perplexity Search API vs Serper",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.json",
        "title": "Perplexity Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite.json",
        "title": "Perplexity Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream.json",
        "title": "Perplexity Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-tavily-mcp.json",
        "title": "Perplexity Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-tinyfish-search.json",
        "title": "Perplexity Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-valyu.json",
        "title": "Perplexity Search API vs Valyu",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-you-com-api.json",
        "title": "Perplexity Search API vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-perplexity-search-api.json",
        "title": "Arcmira vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-perplexity-search-api.json",
        "title": "Grep AI vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liner-mcp-vs-perplexity-search-api.json",
        "title": "Liner Search MCP vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/liner-mcp-vs-perplexity-search-api"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 3,
        "cloudflare-web-search": 77,
        "edge": "perplexity-search-api",
        "key": "reliability",
        "name": "Reliability",
        "perplexity-search-api": 80,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "cloudflare-web-search": 81,
        "edge": "perplexity-search-api",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "perplexity-search-api": 89,
        "weight": 13
      },
      {
        "by": 22,
        "cloudflare-web-search": 63,
        "edge": "perplexity-search-api",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "perplexity-search-api": 85,
        "weight": 13
      },
      {
        "by": 18,
        "cloudflare-web-search": 74,
        "edge": "cloudflare-web-search",
        "key": "security",
        "name": "Security \u0026 auth",
        "perplexity-search-api": 56,
        "weight": 14
      },
      {
        "by": 5,
        "cloudflare-web-search": 20,
        "edge": "perplexity-search-api",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "perplexity-search-api": 25,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "cloudflare-web-search": 71,
        "edge": "perplexity-search-api",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "perplexity-search-api": 82,
        "weight": 7
      },
      {
        "by": 7,
        "cloudflare-web-search": 73,
        "edge": "cloudflare-web-search",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "perplexity-search-api": 66,
        "weight": 7
      }
    ],
    "summary": "Perplexity Search API scores 70.2 (BB) on agent readiness against Cloudflare Web Search API's 66.9 (B), and leads in 5 of 7 scored categories. Cloudflare Web Search API leads on security \u0026 auth and transparency \u0026 trust. Both do web search. Cloudflare Web Search API is cheaper for web search, $0.25 against $1 per 1,000 requests.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "cloudflare-web-search": "One endpoint that sends a search to Ceramic.ai, Exa or Linkup and returns results in one format, logged and billed through AI Gateway, whose status shows no incidents in 90 days. Ceramic.ai costs $0.25 per 1,000 searches. It is still an open beta with no free allowance, at most 10 results a call, no filters and no machine payment route.",
      "perplexity-search-api": "Raw ranked results with token-capped page text from Perplexity's own index, $5 per 1,000 requests or $1 with Fast Search, an OpenAPI description and a hosted MCP server with read-only annotations. Uptime is not guaranteed, there is no free allowance, keys carry no scopes, and no guidance on untrusted page text was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api",
    "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api.min.md"
  },
  "markdown": "Perplexity Search API scores 70.2 (BB) on agent readiness against Cloudflare Web Search API's 66.9 (B), and leads in 5 of 7 scored categories. Cloudflare Web Search API leads on security \u0026 auth and transparency \u0026 trust. Both do web search. Cloudflare Web Search API is cheaper for web search, $0.25 against $1 per 1,000 requests.\n\n- Cloudflare Web Search API: grade B, 66.9/100, rank #348 of 1510. Markdown https://www.anchorterminal.com/tools/cloudflare-web-search.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-web-search.json\n- Perplexity Search API: grade BB, 70.2/100, rank #211 of 1510. Markdown https://www.anchorterminal.com/tools/perplexity-search-api.md · JSON https://www.anchorterminal.com/api/v1/tools/perplexity-search-api.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 326 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### Cloudflare Web Search API (B)\n\nGood for: Agents and apps already on Cloudflare Workers or AI Gateway that want cheap snippet search ($0.25 per 1,000 with Ceramic.ai) on the same bill and logs as their inference.\n\nAhead on:\n- Security \u0026 auth, 74 against 56\n- Transparency \u0026 trust, 73 against 66\n\nAlso in its favour:\n- Cheaper for web search, $0.25 against $1 per 1,000 requests\n\nWatch for: Open beta, with no SLA found for AI Gateway\n\n### Perplexity Search API (BB)\n\nGood for: Agents on any model that need raw ranked sources with extracted text at a low per-request price, and teams that want cited answers from the same key through the Agent API.\n\nAhead on:\n- Schema \u0026 documentation, 89 against 81\n- Agent ergonomics, 85 against 63\n- Payments \u0026 pricing, 25 against 20\n- Maintenance \u0026 community, 82 against 71\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: The FAQ says uptime and recovery time are not guaranteed, and the terms carry no SLA\n\n\n## Why the edge\n\n### Agent ergonomics: Perplexity Search API +22\n\n- Cloudflare Web Search API (63): Results are small by default (URL, title, description), and `limit` caps them at 1 to 10. The default provider, Ceramic.ai, returns descriptions of up to 8,000 characters a result with no parameter to shorten them (15 of 25). `limit` is the only control. No pagination, offset, domain, date, country or freshness filters (6 of 20). Errors come back with `category` (gateway, credential, provider, internal), `code`, `status`, `retryable` and `gatewayRequestId`. The codes themselves aren't listed (16 of 20). Searches only read, the error body says whether a retry helps, and gateways can retry upstream failures up to five times. No idempotency keys, which a read doesn't need (16 of 20). Only `query` and the gateway ID are required. The Workers binding is TypeScript, and the Cloudflare TypeScript SDK 7.3.0 of 3 October has no web search method. We didn't check the Python or Go SDKs (10 of 15).\n- Perplexity Search API (85): `max_results` 1 to 20, `max_tokens` and `max_tokens_per_page` cap the extracted text, and results are title, url, snippet and two dates. The MCP server has four tools (23 of 25). Domain, language, recency, publication and update date filters and `country`, with up to five queries in one request. No pagination or offset (16 of 20). 429 bodies name the limit hit, the SDKs map status codes to typed errors, and 402 marks an empty balance. Search-specific error bodies beyond 422 validation are not documented (13 of 20). Searches only read, failed and rate-limited requests are not billed, and the MCP server sets readOnlyHint true, destructiveHint false and idempotentHint false on every tool (18 of 20). Only `query` is required. Official Python and TypeScript SDKs, a CLI and a Python Search SDK (15). 23 + 16 + 13 + 18 + 15 = 85.\n\n### Security \u0026 auth: Cloudflare Web Search API +18\n\n- Cloudflare Web Search API (74): Cloudflare API tokens are scoped by permission and revocable, and web search needs only Workers AI Read and AI Gateway Read. Permission is per account, not per gateway or provider. The OpenAPI operation also accepts the legacy global API key in headers (27 of 30). Every call reads. Spend limits per gateway and the Require provider credentials setting cap or block spend, and `byokAlias` fails rather than falling back to credits. Read permission is enough to spend credits (14 of 20). Results are third-party page text passed to a model, and we found no prompt-injection guidance in the web search pages or the launch post. AI Gateway Guardrails aren't documented for web search (0 of 15). Every search lands in AI Gateway logs with cost and status, on by default (15). security.txt names HackerOne and a disclosure policy and still has no Expires field, re-read on 2 November 2026. Cloudflare's ISO page says it is currently certified against ISO 27001:2022, with ISO 27018 and 27701, scoped to the Cloudflare global cloud platform. 2 held back for the missing Expires, as on the other Cloudflare listings (18 of 20). 27 + 14 + 0 + 15 + 18 = 74.\n- Perplexity Search API (56): Project API keys, shown once, revocable, and generated and revoked through two documented endpoints with a rotation guide. No per-key scopes or spending limits were found. The hosted MCP server also takes Sign in with Perplexity (OAuth). Keys go in the Authorization header only (22 of 30, as on the Decisions API listing). Search only reads, and MCP clients can disable tools, but any key reaches every API on the account, including the Agent API's sandbox and MCP tools (8 of 20). Snippets are third-party page text, and no guidance on treating them as untrusted was found in the docs, the MCP server or its SECURITY.md (0 of 15). Responses carry a request `id`, and the console shows usage by key. The Audit API covers enterprise organisations' web app events with its own keys, not API calls (8 of 15). security.txt valid until 31 December 2027 linking a security page, a SOC 2 Type II report, a 2025 HIPAA gap assessment and a CAIQlite listed on the trust centre, and a SECURITY.md on the MCP server that takes private reports through GitHub advisories or security@perplexity.ai. The trust centre is drawn by script and wasn't read (18 of 20). 22 + 8 + 0 + 8 + 18 = 56.\n\n### Maintenance \u0026 community: Perplexity Search API +11\n\n- Cloudflare Web Search API (71): Read for a closed service. The web search launch entry is dated 2 October 2026, 31 days ago. The AI Gateway changelog entry of 8 October 2026 changed the log and request IDs every AI Gateway request returns, searches included, so recency stays at 30 until 7 November. Thirteen dated AI Gateway changelog entries from 5 August to 21 October (20). A public changelog with RSS and a developer Discord. We didn't check support response times (8 of 15). The Workers binding has the method. The Cloudflare TypeScript SDK's newest tag is still 7.3.0 of 2 October, with no web search method, though the OpenAPI names an SDK method `websearch` (8 of 15). The OpenAPI spec carries the path. Nothing else to measure for a hosted endpoint (5 of 10). 30 + 20 + 8 + 8 + 5 = 71.\n- Perplexity Search API (82): Read as a closed service with official SDKs and an open-source MCP server. perplexityai 0.46.1 on PyPI on 23 October 2026 and the MCP server's last commit on 21 October, with changelog entries into November 2026 (30). In the 90 days from 8 August, perplexityai 0.43.7 to 0.46.1 (six releases from 2 October), MCP server 1.2.1 (27 August) and 1.3.0 (25 September, Fast Search on perplexity_search), and Fast Search itself in September (20). A changelog with several entries a month, a community forum with a bug-report category, a GitHub discussion repository and api@perplexity.ai. MCP issue reply times weren't read (10 of 15). The MCP server is in the official registry under the domain-verified ai.perplexity namespace, and the Python and TypeScript SDKs are current (15). The MCP repository runs tests in CI and validates its plugin manifests. Its 1.4.0, prepared on 16 October, is not on npm, which still serves 1.3.0, and the registry's latest entry is 1.2.1 of 27 August (7 of 10). 30 + 20 + 10 + 15 + 7 = 82.\n\n### Schema \u0026 documentation: Perplexity Search API +8\n\n- Cloudflare Web Search API (81): Cloudflare's public OpenAPI has `/accounts/{account_id}/ai/websearch` with a typed body, `additionalProperties: false` and typed 200, 400, 403 and 502 responses. `provider` is a free string there where the docs give an enum (22 of 25). llms.txt for the product and Markdown for every page (10). The providers page says which provider suits which job, such as Ceramic.ai for agents that run many searches and Exa for short query-relevant excerpts. Nothing says when not to use the endpoint, and the OpenAPI description is one line (12 of 20). `query` 1 to 1,024 characters, `limit` 1 to 10, `provider` enum in the docs, `byokAlias` with a pattern (14 of 15). curl and Worker examples, a response example, and a typed error body with category, code and `retryable`. No catalogue of error codes or messages found (11 of 15). Dated launch entry in the AI Gateway changelog, still the only web search entry on 2 November 2026. The API path carries v4 for the whole Cloudflare API, nothing specific to web search (12 of 15). The OpenAPI operation, re-read from a clone on 2 November, is unchanged.\n- Perplexity Search API (89): OpenAPI 3.1.0 at docs.perplexity.ai/openapi.json describes `POST /search` with typed request and response schemas, listed in llms.txt (25). llms.txt indexes every page, each with a Markdown twin (10). The overview says what a result holds, that snippets can be empty, when to use the Search API instead of the Agent API, and that it takes queries not URLs and does not re-fetch pages (19 of 20). `search_type` is an enum, `max_results`, `max_tokens` and `max_tokens_per_page` carry minimum and maximum, country and language codes carry lengths, and `query` is a string or an array. The recency filter is an enum in the docs, and date filters are `MM/DD/YYYY` strings (14 of 15). Python, TypeScript and cURL examples with a recorded response. The spec documents only 200 and 422 for `/search`, and status codes are listed on the SDK error-handling page and the rate-limit page rather than for Search (11 of 15). A public changelog with several entries a month, dated by month only, and an unversioned `/search` path (10 of 15). 25 + 10 + 19 + 14 + 11 + 10 = 89.\n\n### Transparency \u0026 trust: Cloudflare Web Search API +7\n\n- Cloudflare Web Search API (73): Closed service under Cloudflare's terms, with each provider's terms linked from the providers page (15 of 30). AI Gateway logs are on by default with headers to skip payloads, and Cloudflare's privacy policy and DPA exist per the Cloudflare MCP check. The providers page gives Zero Data Retention for Ceramic.ai and Linkup but not Exa, while the 2 October changelog says all three support it. No retention period for web search logs on the pages we read (15 of 30). No deprecation policy found. The changelog posts dated changes, such as the 24 September log cut-over, but no deprecation notices (6 of 20). The three providers are named, and Cloudflare's subprocessor page names 12 third parties with locations per the Cloudflare MCP check. Where searches are processed isn't stated (14 of 20). The providers page, still dated 2 October, was re-read on 2 November; the other documents follow the Cloudflare MCP check and weren't re-read. 15 + 15 + 6 + 14 = 50.\n- Perplexity Search API (66): Closed service under terms naming Perplexity AI, Inc. and California law. The MCP server is MIT and the SDKs Apache-2.0 (18 of 30). The terms and DPA say Customer Content and personal data don't train Perplexity's models, the DPA deletes personal data within 30 days of the service ending, and the Privacy and Security page says retention varies by API and zero data retention is not the default. The DPA also says Perplexity Search may follow different data terms, which weren't found, and no retention period for search queries is stated (15 of 30). Sonar Chat Completions support ended on 27 September 2026 with a migration guide and requests reformulated rather than refused, and sonar-reasoning was removed on 15 December 2025 with a named replacement. Notices are dated by month and there is no standing notice period beyond the terms' 30 days for termination (10 of 20). A sub-processor list on the trust centre, which is drawn by script and wasn't read, ten business days' notice of new non-model subprocessors, and SCCs for EU and UK transfers. No data location is stated (8 of 20). 18 + 15 + 10 + 8 = 51.\n\n### Payments \u0026 pricing: Perplexity Search API +5\n\n- Cloudflare Web Search API (20): No x402, MPP or L402 on /ai/websearch. AI Gateway Machine Payments covers only /ai/run for four open models (0, Machine Payments page unchanged since 30 September and still limited to `/ai/run`). Per-search prices published without a login, $0.25, $5.00 and $7.00 per 1,000 by provider. The 5 per cent fee on credit purchases sits on the Unified Billing page, not the providers page (20). No free allowance found. Credits need a payment method, and the BYOK route needs an account with the provider (0). A person signs up for Cloudflare in a browser and buys credits or stores a provider key (0). 0 + 20 + 0 + 0 = 20.\n- Perplexity Search API (25): No x402, MPP or L402 in the docs, pricing page, OpenAPI or llms.txt (0). $5 per 1,000 successful requests, $1 with Fast Search, published without a login, with failed and rate-limited requests not billed (20). Usage is prepaid with a card on the billing page, and no free allowance was found. The console playground needs no key but is a page for a person, not an API allowance (0). A person signs up in the console. The Stripe Projects route provisions a project, key and credits from a terminal, but needs a person's Stripe account with a payment method and a $10 minimum purchase (5 of 20, as on the Decisions API listing). 0 + 20 + 0 + 5 = 25.\n\n## Score by category\n\n| Category | Weight | Cloudflare Web Search API | Perplexity Search API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 77 | 80 | Perplexity Search API +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 89 | Perplexity Search API +8 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 85 | Perplexity Search API +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 74 | 56 | Cloudflare Web Search API +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 25 | Perplexity Search API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 82 | Perplexity Search API +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 66 | Cloudflare Web Search API +7 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.9 · B** | **70.2 · BB** | |\n\n## Facts side by side\n\n| Fact | Cloudflare Web Search API | Perplexity Search API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cloudflare, Inc. | Perplexity |\n| Hosted endpoint | no (local only) | `https://api.perplexity.ai/mcp` |\n| Transports | HTTP | Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| Price for web search | $0.25 per 1,000 requests | $1 per 1,000 requests |\n| x402 | no | no |\n| Licence | Proprietary service under Cloudflare's terms. Each search provider's own terms are linked from the providers page | Proprietary service under the Perplexity API Terms of Service. The MCP server is MIT and the official SDKs Apache-2.0 |\n| Tools exposed | none | 4 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `ai.perplexity/mcp-server` |\n| Last release | 2026-10-02 | 2026-10-23 |\n| Terms last updated | 2025-09-12 | couldn't be read |\n| Privacy policy last updated | no date given | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\n\n### Cloudflare Web Search API\n\n- +5.0 on 2 November 2026 (C to B): new evidence\n- -0.2 on 8 October 2026 (B to C): checklist\n\n### Perplexity Search API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Cloudflare Web Search API.** One endpoint that sends a search to Ceramic.ai, Exa or Linkup and returns results in one format, logged and billed through AI Gateway, whose status shows no incidents in 90 days. Ceramic.ai costs $0.25 per 1,000 searches. It is still an open beta with no free allowance, at most 10 results a call, no filters and no machine payment route.\n\n**Perplexity Search API.** Raw ranked results with token-capped page text from Perplexity's own index, $5 per 1,000 requests or $1 with Fast Search, an OpenAPI description and a hosted MCP server with read-only annotations. Uptime is not guaranteed, there is no free allowance, keys carry no scopes, and no guidance on untrusted page text was found.\n\n## Before you call either\n\n### Cloudflare Web Search API\n\n1. Set `options.gateway.id`. Every account has a gateway named `default`\n2. Pass `provider` explicitly. It defaults to Ceramic.ai, whose descriptions can run to 8,000 characters a result\n3. Set `limit` to the results you'll read, between 1 and 10\n4. Set `byokAlias` when you mean to use a stored provider key, so a missing key fails with 400 instead of spending credits\n5. Send `cf-aig-collect-log-payload: false` if queries shouldn't be stored in gateway logs\n\n### Perplexity Search API\n\n1. Set `max_tokens_per_page` and `max_tokens` before calling; extracted text otherwise fills the context, and the price does not change with size\n2. Skip results with an empty `snippet` and dedupe by `url` when sending a `query` array; each query costs one rate-limit unit\n3. Use `search_type: \"fast\"` for $1 per 1,000 when latency and cost matter more than depth\n4. On 429 wait for Retry-After, then back off; on 402 stop and ask the user to add credits\n5. Use the Search API for sources and the Agent API's web_search tool for a written answer with citations\n\n## Questions\n\n### Which is better for AI agents, Cloudflare Web Search API or Perplexity Search API?\n\nPerplexity Search API scores 70.2 (BB) on agent readiness against Cloudflare Web Search API's 66.9 (B), and leads in 5 of 7 scored categories. Cloudflare Web Search API leads on security \u0026 auth and transparency \u0026 trust.\n\n### Which is cheaper for web search, Cloudflare Web Search API or Perplexity Search API?\n\nCloudflare Web Search API, at $0.25 per 1,000 requests against $1 per 1,000 requests for Perplexity Search API. These are the vendors' published prices for the job.\n\n### Do Cloudflare Web Search API and Perplexity Search API need an API key?\n\nCloudflare Web Search API needs an API key. Perplexity Search API takes an API key or an OAuth sign-in.\n\n### Can an agent call Cloudflare Web Search API and Perplexity Search API without installing anything?\n\nNo hosted endpoint is listed for Cloudflare Web Search API. Perplexity Search API has a hosted endpoint at https://api.perplexity.ai/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cloudflare-web-search\", \"b\": \"perplexity-search-api\"}`. From a terminal: `anchor compare cloudflare-web-search perplexity-search-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-web-search.json and https://www.anchorterminal.com/api/v1/tools/perplexity-search-api.json\n\n## Other comparisons with Cloudflare Web Search API or Perplexity Search API\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs Cloudflare Web Search API](https://www.anchorterminal.com/compare/agentcore-web-search-vs-cloudflare-web-search.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs Perplexity Search API](https://www.anchorterminal.com/compare/agentcore-web-search-vs-perplexity-search-api.md)\n- [Arcmira vs Cloudflare Web Search API](https://www.anchorterminal.com/compare/arcmira-vs-cloudflare-web-search.md)\n- [Grounding with Bing Search vs Cloudflare Web Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-cloudflare-web-search.md)\n- [Grounding with Bing Search vs Perplexity Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-perplexity-search-api.md)\n- [Brave Search API + MCP vs Cloudflare Web Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search.md)\n- [Brave Search API + MCP vs Perplexity Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api.md)\n- [Cloudflare Web Search API vs DeepSeek Search and Fetch API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-deepseek-search-api.md)\n- [Cloudflare Web Search API vs Exa API + MCP](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-exa-mcp.md)\n- [Cloudflare Web Search API vs Firecrawl MCP](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-firecrawl-mcp.md)\n- [Cloudflare Web Search API vs Grep AI](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-grep-ai.md)\n- [Cloudflare Web Search API vs Kagi Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search.md)\n- [Cloudflare Web Search API vs Linkup](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-linkup.md)\n- [Cloudflare Web Search API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek.md)\n- [Cloudflare Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher.md)\n- [Cloudflare Web Search API vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-parallel-search-api.md)\n- [Cloudflare Web Search API vs SearchAPI.io](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-searchapi-io.md)\n- [Cloudflare Web Search API vs SerpApi](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi.md)\n- [Cloudflare Web Search API vs Serper](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serper.md)\n- [Cloudflare Web Search API vs SERPHouse](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.md)\n- [Cloudflare Web Search API vs SerpKite](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite.md)\n- [Cloudflare Web Search API vs SpecStream](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-specstream.md)\n- [Cloudflare Web Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.md)\n- [Cloudflare Web Search API vs TinyFish Search](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search.md)\n- [Cloudflare Web Search API vs Valyu](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-valyu.md)\n- [Cloudflare Web Search API vs You.com APIs](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-you-com-api.md)\n- [DeepSeek Search and Fetch API vs Perplexity Search API](https://www.anchorterminal.com/compare/deepseek-search-api-vs-perplexity-search-api.md)\n- [Exa API + MCP vs Perplexity Search API](https://www.anchorterminal.com/compare/exa-mcp-vs-perplexity-search-api.md)\n- [Firecrawl MCP vs Perplexity Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-perplexity-search-api.md)\n- [Kagi Search API vs Perplexity Search API](https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api.md)\n- [Linkup vs Perplexity Search API](https://www.anchorterminal.com/compare/linkup-vs-perplexity-search-api.md)\n- [Mojeek Web Search API vs Perplexity Search API](https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api.md)\n- [NewsCatcher vs Perplexity Search API](https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api.md)\n- [Parallel Search and Task APIs vs Perplexity Search API](https://www.anchorterminal.com/compare/parallel-search-api-vs-perplexity-search-api.md)\n- [Perplexity Search API vs SearchAPI.io](https://www.anchorterminal.com/compare/perplexity-search-api-vs-searchapi-io.md)\n- [Perplexity Search API vs SerpApi](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.md)\n- [Perplexity Search API vs Serper](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serper.md)\n- [Perplexity Search API vs SERPHouse](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.md)\n- [Perplexity Search API vs SerpKite](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite.md)\n- [Perplexity Search API vs SpecStream](https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream.md)\n- [Perplexity Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/perplexity-search-api-vs-tavily-mcp.md)\n- [Perplexity Search API vs TinyFish Search](https://www.anchorterminal.com/compare/perplexity-search-api-vs-tinyfish-search.md)\n- [Perplexity Search API vs Valyu](https://www.anchorterminal.com/compare/perplexity-search-api-vs-valyu.md)\n- [Perplexity Search API vs You.com APIs](https://www.anchorterminal.com/compare/perplexity-search-api-vs-you-com-api.md)\n- [Arcmira vs Perplexity Search API](https://www.anchorterminal.com/compare/arcmira-vs-perplexity-search-api.md)\n- [Grep AI vs Perplexity Search API](https://www.anchorterminal.com/compare/grep-ai-vs-perplexity-search-api.md)\n- [Liner Search MCP vs Perplexity Search API](https://www.anchorterminal.com/compare/liner-mcp-vs-perplexity-search-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cloudflare Web Search API vs Perplexity Search API",
        "url": ""
      }
    ],
    "description": "Perplexity Search scores 70.2 (BB) to Cloudflare Web Search's 66.9 (B) for web search. Cloudflare Web Search is cheaper for web search, $0.25 against $1 per 1,000 requests. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cloudflare Web Search API B 66.9",
      "Perplexity Search API BB 70.2",
      "scores"
    ],
    "h1": "Cloudflare Web Search API vs Perplexity Search API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/cloudflare-web-search-vs-perplexity-search-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare Web Search vs Perplexity Search for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-perplexity-search-api"
  },
  "tokens": {
    "markdown": 6700,
    "slim": 3880
  },
  "version": 1
}
