Let Agents In

Agent readiness · Headless CMS

contentful.com

3 of 6 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. 9 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

  • FAIL
    Answers an agent user-agentAnswered 429 to LetAgentsIn/1.0 (+https://letagentsin.com/methodology) with a JavaScript challenge from your edge, so no agent reaches the site at all
  • FAIL
    llms.txt publishedNo llms.txt at any of the 3 locations probed
  • UNMEASURED
    Docs readable without JavaScriptUnmeasurable: no documentation page could be found to readLink your documentation from your home page or list it in llms.txt.
  • UNMEASURED
    On-demand agents not blockedUnmeasurable: your edge answered our request for robots.txt with a refusal rather than the file, so what it permits is not something we measuredServe robots.txt to ordinary HTTP clients. Every crawler you want has to read it too.
  • UNMEASURED
    Paths robots.txt points at answerUnmeasurable: robots.txt was refused rather than absent, so nothing in it could be followedServe robots.txt to ordinary HTTP clients and this becomes measurable.
  • UNMEASURED
    No punishing crawl delayUnmeasurable: robots.txt was refused rather than absent, so any Crawl-delay in it is unreadServe robots.txt to ordinary HTTP clients and this becomes measurable.

B · Agent entry

  • UNMEASURED
    Agent entry pointUnmeasurable: 9 of the 9 known agent entry paths answered with a refusal rather than a file or a 404, so what you publish there is not something we measuredLet ordinary HTTP reach these paths and this becomes measurable.
  • PASS
    OAuth dynamic client registrationregistration_endpoint published, but none of the 2 advertised grants (authorization_code, refresh_token) finishes without a person at a browser
  • PASS
    MCP surfaceLive MCP endpoint at https://mcp.contentful.com/mcp, answered 401 with an auth challenge

C · Registration

  • UNMEASURED
    No CAPTCHA in the signup HTMLUnmeasurable: the signup form at https://contentful.com/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.
  • UNMEASURED
    Signup reachable without a browserUnmeasurable: https://contentful.com/signup answered 429, which is a limit we triggered rather than a rule about agentsNothing for you to do. We will rescan later and this becomes measurable.

D · Provisioning

  • UNMEASURED
    Programmatic key provisioningUnmeasurable: we could not read a single documentation page, so there was nothing to look inLink your API reference from your docs index or from llms.txt and this becomes measurable.
  • UNMEASURED
    Free tier or no-card trial stated in textUnmeasurable: no pricing page could be fetchedLink a pricing page from your home page, or list one in llms.txt.

E · Integration

  • PASS
    Typed SDK on the registrycontentful@11.12.9 ships types, matched from the registry by who publishes it rather than by a link on your site
  • FAIL
    Machine-readable API descriptionNo OpenAPI spec at the 5 usual paths, none declared by https://contentful.com, and no markdown negotiationPoint at your spec from your docs page with rel="service-desc" and an agent finds it without guessing.

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 contentful.com 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.

Scan a domain yourself