Agent readiness · Headless CMS
sanity.io
11 of 15 measurable points under formula 9.2, measured on 2026-08-12. 15 checks exist; each is one HTTP request with a published rule, so every sentence below can be rerun and argued with. 1 of them could not be measured from where we ask, and those are left out of the denominator rather than counted as failures.
A · Discovery
- PASSAnswers an agent user-agentAnswered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/methodology)
- PASSllms.txt publishedllms.txt present at https://www.sanity.io/llms.txt and https://docs.sanity.io/llms.txt, and the 12 links we sampled across the file all answer
- PASSDocs readable without JavaScript9,378 characters of text without JS, on https://www.sanity.io/docs/blueprints/blueprints-robot-tokens rather than on https://www.sanity.io/docs
- PASSOn-demand agents not blockedNo on-demand agent is blocked
- N/APaths robots.txt points at answerrobots.txt names no concrete path, only patterns or nothing, so there is no claim to check
- PASSNo punishing crawl delayNo Crawl-delay applies to the agents we check
B · Agent entry
- FAILAgent entry pointNone of the 9 known agent entry paths returns a file rather than your page shell
- PASSOAuth dynamic client registrationregistration_endpoint published, but none of the 2 advertised grants (authorization_code, refresh_token) finishes without a person at a browser
- PASSMCP surfaceLive MCP endpoint at https://mcp.sanity.io/mcp, answered 401 with an auth challenge
C · Registration
- UNMEASUREDNo CAPTCHA in the signup HTMLUnmeasurable: the signup form at https://accounts.sanity.io/signup is not in the server HTML, so its gates are not eitherServer-render the form, or tell us the endpoint it posts to, and the gates become visible to us and to an agent.
- FAILSignup reachable without a browserhttps://accounts.sanity.io/signup is reachable, but its form needs JavaScript
D · Provisioning
- PARTProgrammatic key provisioning1 of 7 provisioning phrases across the 6 documents we read: "create an api key (or api token, access token, personal access token, service account, auth token, secret key), next to something programmatic"
- PASSFree tier or no-card trial stated in textFree tier or no-card signals at https://www.sanity.io/pricing?ref=navbar: "Free plan", "free trial", "Get started for free"
E · Integration
- PASSTyped SDK on the registrysanity@6.9.2 ships types, matched from the registry by who publishes it rather than by a link on your site
- PASSMachine-readable API descriptionDocs serve markdown to machines, at https://www.sanity.io/docs
Tell me when this changes
The failures here are the kind nobody notices. An edge rule that starts refusing agents changes nothing a person sees in a browser, so the first sign is usually an integration that quietly stopped working. We rescan weekly and write only when a verdict moves.
This page is the newest scan we hold for sanity.io and changes when we rescan. It is not a judgement of the product: we measure whether an unattended run can get through, not whether the thing is any good. The whole corpus is published as JSON and CSV.