Agent readiness · froala.com
2026-08-12 10:42 UTC · formula v9.2 · 6.6s
Your signup page answers 404 to anything that is not a browser.
https://froala.com/signup returned 404 across three tries. An agent that got this far still cannot open an account.
A dashed column is a stage we could not measure, not a stage you failed.
- A · Discovery
- 4/4
- B · Agent entry
- 0/2
- C · Registration
- 0/1
- D · Provisioning
- n/m
- E · Integration
- 1/2
of the 9 points that apply to you and we could measure · 8 of 17 were not scored
You 5 · category median 5.5 · best liveblocks.io 8 · 15 deterministic HTTP checks, published formula
Fix this first
This is the whole list: everything we could measure and you do not pass. Another 8 points sit behind checks we could not evaluate on your domain, and each of those lines below says what would make it measurable.
- 1No CAPTCHA in the signup HTMLan afternoon · +1
Trigger recaptcha on a risk signal instead of on every signup, or open an API path to an account. A CAPTCHA is a hard stop, not a speed bump.
- 2Machine-readable API descriptionan afternoon · +1
Publish an OpenAPI file at /openapi.json, or serve markdown when a client sends Accept: text/markdown. Either one stops agents guessing your API.
Then, when you have room
- OAuth dynamic client registration a project · +1Publish OAuth authorization server metadata with an RFC 7591 registration_endpoint in it. It is the only standard way an agent registers itself without a human.
- MCP surface a project · +1Wrap your top three API calls in an MCP server and declare it at /.well-known/mcp.json.
Take it with you
5 of the checks an agent depends on, froala.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 froala.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 embeddable rich text editors
You are 4 of 10 in a category where a developer is trying to put a real editor inside a product.
- 1liveblocks.io8/14
- 2ckeditor.com9/16
- 3tiptap.dev9/16
- 4froala.comyou5/9
- 5tiny.cloud8/15
- 6quilljs.com5/10
- 7slatejs.org6/13
- 8editorjs.io4/10
- 9lexical.dev4/10
- 10prosemirror.net4/11
Where competitors pass and froala.com does not
- Machine-readable API descriptionckeditor.com · tiptap.dev · slatejs.org · liveblocks.io
- OAuth dynamic client registrationtiny.cloud
- No CAPTCHA in the signup HTMLckeditor.com
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) across three tries (403, 200, 200)
- PASSllms.txt publishedllms.txt present at https://froala.com/llms.txt, and the 12 links we sampled across the file all answer
- UNMEASUREDDocs readable without JavaScriptUnmeasurable: no documentation page could be found to readLink your documentation from your home page or list it in llms.txt.
- 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: 3 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 registrationNo OAuth metadata on any of the 8 hosts probed, including the usual auth and api subdomainsRFC 7591 is the only standard path by which an agent can register itself without a human.
- FAILMCP surfaceNo MCP surface: nothing answered at mcp.froala.com, mcp.froala.com/mcp, mcp.froala.com/v1/mcp, api.froala.com/mcp, /mcp or /api/mcp, and no file mentions MCPAn MCP server turns your API from something an agent reads about into something it can call.
C · Registration
- FAILNo CAPTCHA in the signup HTMLrecaptcha appears in the signup page's server HTML, even though the form itself is assembled by JavaScriptA CAPTCHA is a hard stop. Permissions after signup beat a gate before it.
- UNMEASUREDSignup reachable without a browserUnmeasurable: https://froala.com/signup answers 404 to an agent and 403 to a Chrome user-agent, so nothing gets in from here and the difference we test for cannot be seenNothing for you to do here. It becomes measurable from a network your edge admits.
D · Provisioning
- UNMEASUREDProgrammatic key provisioningUnmeasurable: only 1 documentation page could be read, which is too little to conclude anythingLink your API reference from your docs index or from llms.txt and this becomes measurable.
- UNMEASUREDFree 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
- PASSTyped SDK on the registryfroala-editor@5.3.1 ships types
- FAILMachine-readable API descriptionNo OpenAPI spec at the 5 usual paths, none declared by https://froala.com, and no markdown negotiationAn OpenAPI file or markdown negotiation lets an agent read your API instead of guessing it.Point at your spec from your docs page with rel="service-desc" and an agent finds it without guessing.
What we discovered on the way
- Docs
- not found
- Pricing
- not found
- Signup
- https://froala.com/signup · guessed path
- npm package
- froala-editor
- GitHub
- not found
- Package licence
- https://www.froala.com/wysiwyg-editor/pricing
- Crawl-delay
- none
- Content-Signal
- none
- Blocked on-demand agents
- none
Your package declares https://www.froala.com/wysiwyg-editor/pricing rather than a plain licence identifier. We do not score this, because a commercial licence is a business model, not a defect. We report it because in six agent runs on a comparable decision, every model that hit a licence key requirement dropped that vendor in one line, without opening the product. What the runs showed