# Fix list: Cloudflare AI Search From Anchor Terminal's listing at https://www.anchorterminal.com/tools/cloudflare-ai-search, the October 2026 research run, assessed 17 October 2026. Grade BB, 73.5 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Cloudflare AI Search: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Payments & pricing, 45 out of 100, up to 6.9 more on the total Why it scored 45: No x402, MPP or L402 on AI Search endpoints (0). Unit prices for ingestion, image processing, storage and both query types are published without a login (20). Every account gets 5 million ingestion tokens, 10 GB-month of storage and 1,000 queries of each type a month, and limits are set by the Workers plan, including Free. We didn't sign up to confirm that no card is asked for (20). A person creates the account and the token in a browser. An outside agent can query an instance's public `/mcp` or `/search` endpoint with no key once its owner has switched it on, which counts for little since it isn't access the agent can obtain itself (5 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 2. Reliability, 70 out of 100, up to 6 more on the total Why it scored 70: Hosted reading. www.cloudflarestatus.com is a Statuspage with AI Search as its own component, beside Vectorize, Workers AI and AI Gateway (20). The incidents feed held 50 incidents from 5 to 16 October 2026. One named AI Search, increased Durable Objects errors in Denver on 15 October, minor and regional, displayed as resolved after about two and a half hours. Workers AI, which AI Search calls for embedding, had a minor incident of about two and a half hours that morning. The history page loads by script, so the rest of the 90 days went unread (10 of 30). Limits are published with numbers, 1,000 included semantic and 1,000 full-text queries a month, a default 120 requests a minute on public endpoints, 1,200 requests per five minutes per Cloudflare API token and one manual sync every 30 seconds (15). The OpenAPI lists 429 on search and chat with a `Retry-After` header. The error catalogue says to retry code 7114 after `Retry-After`, transient errors with exponential backoff, and the concurrent-change errors 7099 and 7104. Items take a create-or-update `PUT` and duplicate keys fail with 409 (15). No SLA for AI Search was found (0). The release notes declare general availability on 1 October 2026, while the OpenAPI still tags the operations beta. We scored from the docs (10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 3. Security & auth, 68 out of 100, up to 5.6 more on the total Why it scored 68: Cloudflare API tokens are revocable, carry an AI Search permission at Read, Run or Edit, and take an expiry and an IP address filter. Permission is per account, not per instance, the search guide asks for Edit and Run to query, and the OpenAPI also accepts the legacy global API key with an email (24 of 30). Run and Read levels exist, public endpoints switch on per path, and the docs include a human-approval pattern for agent writes. Public endpoints answer without authentication, and the default hostname keeps answering until `default_domain_enabled` is false even after Cloudflare Access is set up on a custom domain. The docs say so plainly (13 of 20). Results are the owner's indexed content, which can be crawled web pages. AI Gateway Guardrails can block prompts and responses for generation (codes 2016 and 2017). We found no prompt-injection guidance for retrieved chunks (5 of 15). A Metrics tab, job logs and item logs, and AI Gateway logs for generation and query rewriting. Embedding and reranking calls no longer appear in gateway logs, and account audit logs were not read (8 of 15). security.txt names HackerOne and a disclosure policy, read on 17 October. Certifications were not checked this run (15 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 4. Transparency & trust, 73 out of 100, up to 2.4 more on the total Made of editorial 51, provenance 95. Why it scored 73: Closed service under Cloudflare's agreement. The service-specific terms of 28 September 2026 have no AI Search section. The SDKs are Apache-2.0 and `ai-search-provider` is MIT (15 of 30). The docs state that crawled pages live in built-in storage, the similarity cache keeps answers for 10 minutes to 6 days (48 hours by default) and can be purged, and embedding calls are no longer logged in AI Gateway. No retention period for indexed content after deletion and no AI Search data-usage page were found. The privacy policy and DPA follow the Workers AI and AI Gateway checks (14 of 30). Models follow a documented lifecycle with announced end-of-life dates. The migration to managed infrastructure was announced on 12 May for 3 June 2026. The AutoRAG API keeps working with no end date, and the agreement lets Cloudflare change a service without notice (12 of 20). Embedding and generation can go to OpenAI, Anthropic and other providers the owner picks through AI Gateway, EU-jurisdiction R2 buckets are supported, and where indexing and queries run is not stated (10 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. Provenance checks not met in full (half of this category, computed from checked facts): - Terms of service: read, states 7 of the 7 things a reader expects, and has 2 clauses that cost points (6 of 10) - Privacy policy: read, states 7 of the 8 things a reader expects (9.3 of 10) ## 5. Agent ergonomics, 88 out of 100, up to 2 more on the total Why it scored 88: Search returns chunks with key, score and scoring details, bounded by `max_num_results` (default 10, at most 50), `match_threshold` and `context_expansion`. The MCP endpoint has one tool. We couldn't read its input schema or annotations without an instance (20 of 25). Metadata filters with eight operators run before retrieval, plus relevance boosting and cross-instance search over up to 10 instances. Search results have no pagination past 50 (17 of 20). Every documented error has a code, an HTTP status and a recommended action, and cross-instance search can return partial results with per-instance errors (20). Search and chat only read. Item writes use a create-or-update `PUT`, duplicate keys fail with 409, and concurrency errors say to retry. MCP annotations unread (15 of 20). Only `messages` or `query` is required, with hybrid search, reranking and model choice defaulted. Official SDKs for TypeScript and Python, Wrangler commands with `--json`, a Vercel AI SDK provider and a LangChain retriever (15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 6. Maintenance & community, 78 out of 100, up to 1.9 more on the total Why it scored 78: Read for a closed service. The newest changelog entry is 16 October 2026, CJK keyword search (30). Eight dated entries between 30 July and 16 October 2026, including general availability on 1 October (20). A product changelog with RSS, release notes and a developer Discord. We didn't sample support response times (8 of 15). `cloudflare` for TypeScript 7.3.0 has an `aisearch` resource, Python is installed with `pip install cloudflare`, Wrangler has `ai-search` commands, and `ai-search-provider` 0.1.2 dates from 11 September 2026 (14 of 15). The OpenAPI carries the namespaced paths and marks the old ones deprecated. Nothing else to measure for a hosted service (6 of 10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## 7. Schema & documentation, 89 out of 100, up to 1.8 more on the total Why it scored 89: Cloudflare's public OpenAPI carries 49 AI Search operations with typed request and response bodies and 400, 404, 429 and 502 responses on search. Metadata `filters` is a free object there (23 of 25). llms.txt for the product and Markdown for every page (10). The docs say when to use search and when chat completions, and the search modes page says when vector, keyword or hybrid fits, with examples. OpenAPI descriptions are one line, and the MCP tool's default description is a generic six-word line naming no content until the owner changes it (14 of 20). Enums for `retrieval_type`, `fusion_method`, `keyword_match_mode` and the cache threshold, bounds on `max_num_results` (1 to 50), `match_threshold` (0 to 1) and `context_expansion` (0 to 3), and required fields marked. `filters` takes any object (13 of 15). curl, Worker, Python and Wrangler examples, and an error catalogue listing each code with its HTTP status, meaning and recommended action (15). Dated release notes back to 7 April 2025 and a product changelog with RSS. Deprecated paths are marked in the OpenAPI. The API path carries v4 for the whole Cloudflare API (14 of 15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - unchecked: incident history on cloudflarestatus.com before 5 October 2026 (the history page loads by script) - unchecked: the MCP `search` tool's input schema and annotations, since no public instance URL was found to send `tools/list` to - unchecked: whether signup on the Workers Free plan asks for a card. We created no account - unchecked: Cloudflare's certifications, the DPA and the sub-processor list. They follow the Workers AI and AI Gateway checks - Whether AI Search is GA or beta. The release notes of 1 October 2026 say generally available and the OpenAPI operations carry `x-fern-availability: beta` - When the deprecated AutoRAG and un-namespaced endpoints stop working. No end date is given - How long indexed content and query logs are kept after an instance or item is deleted - firstReleased is the AutoRAG open beta of 7 April 2025, the earliest first-hand date. General availability was 1 October 2026 ## Weaknesses - Public endpoints, including MCP, answer anyone with the URL unless a custom domain sits behind Cloudflare Access - No SLA for AI Search found - No x402 or other machine payment route. A person signs up and creates the token - At most 50 results a query, with no pagination of search results - The search guide asks for Edit and Run permissions for a read, and the OpenAPI still tags operations beta ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Use `/ai-search/namespaces/default/instances/{id}/search`. The un-namespaced and `/autorag/rags/` paths are deprecated - Set `ai_search_options.retrieval.max_num_results` (1 to 50, default 10) and `match_threshold` (default 0.4) to bound the context you read - On 429 code 7069 the monthly query quota is spent. Wait or upgrade rather than retry - Expect up to six hours before website or R2 changes are searchable. Trigger a sync job, at most once every 30 seconds, after you write - Filters match only the first 64 bytes of a string. Use a `$gte`/`$lt` range on `folder` to match a folder and its subfolders ## What the review panel asked for - State whether failed queries are billed - Type the metadata filters - Prompt owners to name the indexed content in the MCP description - pagination past 50 results - content-specific default tool description - per-instance token scope - read-only permission for search ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.