Agent readiness · cloudinary.com
2026-08-12 10:01 UTC · formula v9.2 · 6.9s
You publish files for machines to read, but nothing that tells one how to become a customer.
None of the nine known agent entry paths answered, including /agent-signup.md and /.well-known/agent-access.json. Reading is solved on your site; joining is not.
- A · Discovery
- 5/5
- B · Agent entry
- 0/2
- C · Registration
- 0/1
- D · Provisioning
- 3/3
- E · Integration
- 2/2
of the 13 points that apply to you and we could measure · 4 of 17 were not scored
You 10 · category median 7 · best cloudflare.com 13 · 15 deterministic HTTP checks, published formula
Fix this first
This is the whole list: everything we could measure and you do not pass. Another 4 points sit behind checks we could not evaluate on your domain, and each of those lines below says what would make it measurable.
- 1OAuth dynamic client registrationa project · +1
Your OAuth metadata is already published and has no registration_endpoint in it. Adding that one field is the whole change: RFC 7591 is the only standard way an agent registers itself without a human.
Then, when you have room
- MCP surface a project · +1You already talk about MCP, and nothing answered at the addresses named above. If your server is at another path, declare it at /.well-known/mcp.json: that file is what an agent reads first, and it is what makes the path stop mattering.
- Signup reachable without a browser a project · +1Let https://console.cloudinary.com/signup render its form in server HTML and stop refusing non-browser requests to it.
Take it with you
4 of the checks an agent depends on, cloudinary.com does not pass.
Send yourself the list above with the checks that cost the most, and a permanent link. Whoever owns the fix is usually not the person who ran the scan.
One email with the report, and one follow-up asking what you did with it. No newsletter, no sequence. Delete on request at hello@letagentsin.com.
None of this tells you whether an agent picked you
Everything above is a file an agent could read. Whether one actually chose you is a different measurement, and we have not run it on cloudinary.com. What we have run it on is a rich text editor vendor: six agents, one brief, six isolated copies of a real codebase. All six picked the same competitor, and the vendor being studied was never named, not even on a rejection list, while the runs named and dismissed ten alternatives between them. In an earlier round, run before we isolated the copies, it was named twice and struck off both times in four words: Fully commercial, licence key required. That study is about them, not about you. It is here because it is the difference between a file and a decision.
Against file upload and storage
You are 2 of 9 in a category where a developer is trying to let users upload images and serve them back fast.
- 1cloudflare.com13/14
- 2cloudinary.comyou10/13
- 3imagekit.io11/16
- 4transloadit.com10/16
- 5bunny.net7/14
- 6tigrisdata.com7/15
- 7uploadcare.com7/15
- 8uploadthing.com6/14
- 9filestack.com5/13
Where competitors pass and cloudinary.com does not
- MCP surfacetransloadit.com · cloudflare.com
- Paths robots.txt points at answertransloadit.com
- OAuth dynamic client registrationcloudflare.com
- Signup reachable without a browserimagekit.io
Only domains we have actually scanned appear here, so the ranking is a floor: a competitor missing from the list has not been measured, not beaten.
By stage
Every check
Each line is one HTTP observation with a published rule, so you can rerun any of them yourself. Most are the same tomorrow if you are: the two that are not are the bot gate and the pricing page, which answer inconsistently on their own, which is why those run more than once and say so when the tries disagreed. PASS and PART are counted. UNMEASURED means we could not evaluate it, N/A means it does not apply to a product like yours, and neither is in the score or its denominator. See the formula
A · Discovery
- PASSAnswers an agent user-agentAnswered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/methodology)
- PASSllms.txt publishedllms.txt present at https://cloudinary.com/llms.txt and https://cloudinary.com/documentation/llms.txt, and the 12 links we sampled across the file all answer
- PASSDocs readable without JavaScript36,083 characters of text without JS, on https://cloudinary.com/documentation/ts_how_to_rotate_api_keys_in_the_console rather than on https://cloudinary.com/documentation
- 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
- UNMEASUREDAgent entry pointUnmeasurable: 4 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.
- FAILOAuth dynamic client registrationOAuth metadata published, but no registration_endpoint in itRFC 7591 is the only standard path by which an agent can register itself without a human.
- FAILMCP surfaceMCP mentioned 4x in your own files, but nothing answered at mcp.cloudinary.com, mcp.cloudinary.com/mcp, mcp.cloudinary.com/v1/mcp, api.cloudinary.com/mcp, /mcp or /api/mcpAn MCP server turns your API from something an agent reads about into something it can call.
C · Registration
- UNMEASUREDNo CAPTCHA in the signup HTMLUnmeasurable: the signup form at https://console.cloudinary.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.
- FAILSignup reachable without a browserhttps://console.cloudinary.com/signup is reachable, but its form needs JavaScriptIf a bare HTTP request gets a 403, the agent never sees the form at all.
D · Provisioning
- PASSProgrammatic key provisioning2 of 7 provisioning phrases across the 6 documents we read: "management api", "provisioning api"
- PASSFree tier or no-card trial stated in textFree tier or no-card signals at https://cloudinary.com/pricing: "No credit card", "Free forever", "$0"
E · Integration
- PASSTyped SDK on the registrycloudinary@2.10.0 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://cloudinary.com/documentation
What we discovered on the way
- Docs
- https://cloudinary.com/documentation · from your llms.txt
- Pricing
- https://cloudinary.com/pricing · linked from the site
- Signup
- https://console.cloudinary.com/signup · found on a subdomain
- npm package
- cloudinary (registry guess)
- GitHub
- cloudinary-community/cloudinary-laravel
- Package licence
- MIT
- Crawl-delay
- none
- Content-Signal
- none
- Blocked on-demand agents
- none