Do signed AI agents get past bot checks?

A challenge on the sign-up form stopped our signed agent at 38 of 96 products where a bot check stopped it.

The numbers

As of 22 October 2026: from the drives of 148 products, 1 to 22 October 2026. Each one links to its definition and evidence.

By AgentDrivesPublished 23 October 2026148 products, driven 1 Oct to 22 Oct5 min readTopic Bot checksFor agents Markdown

8 of 13 products that stopped agents on a server before the sign-up page and opened it for a signed agent Cloudflare already knows, of those that stopped them before the page

As of 22 October 2026, a check at the edge stopped agents on a server before the sign-up page loaded at 13 products, and a signed agent Cloudflare already knows reached that same page at 8 of 13. The sign-up page opened for that signed agent at Canva, Freshdesk, Jotform, Kit, Later, Make, Mollie and Salesforce. Where the check sat on the form, a signature didn’t get our agent past it.

For an owner, the edge rule is the setting to look at before the form. For a builder, a signature a provider already knows can get your agent past an edge check; at the form, plan for a person to take that step.

Sign-up, not the API, is where our own path stops

Driving from a server, our agent stopped at sign-up or its verification at 95 of 148 products we drove. That is the step before any key, call or real work, so the API behind it never came into play.

Stopped at sign-up or its verification
Products: 95 of 148.95 of 148Stopped at sign-up or its verification: 95 of 148
Products: 95 of 148.95 of 148Stopped at sign-up or its verification: 95 of 148
Products: 95 of 148.95 of 148Stopped at sign-up or its verification: 95 of 148

As of 22 Oct 2026: our drives of 148 products, 1–22 Oct 2026 · Today's numbers

Data table
ProductsOut ofShare
Stopped at sign-up or its verification9514864%

What stopped it there differs by product: an edge check before the page loads, a challenge on the form, a phone number the form requires, or terms that allow only accounts a person makes.

Some of those stops aren’t bot checks. Help Scout took our address with no CAPTCHA, then asked for an SMS code to a phone number before the account existed. No bot-check setting changes that step; a sign-up route that doesn’t need a phone does.

For an owner, the fix sits on the sign-up path: the page, the bot check in front of it and the form. Good API docs and an MCP server don’t help an agent that never reaches them. For a builder, check where a product’s sign-up stops before you build against its API.

A signed agent Cloudflare already knows reaches the sign-up page

Fetched this way, the sign-up page opened at 109 of 131 products where we tried it, pages that open on every path included.

Sign-up page opened for a known signed agent
Products: 109 of 131.109 of 131Sign-up page opened for a known signed agent: 109 of 131
Products: 109 of 131.109 of 131Sign-up page opened for a known signed agent: 109 of 131
Products: 109 of 131.109 of 131Sign-up page opened for a known signed agent: 109 of 131

As of 22 Oct 2026: our drives of 148 products, 1–22 Oct 2026 · Today's numbers

Data table
ProductsOut ofShare
Sign-up page opened for a known signed agent10913183%

Canva, Freshdesk and Kit each put a Cloudflare challenge in front of the sign-up page (www.canva.com/signup1, the Freshdesk sign-up on www.freshworks.com2, app.kit.com/users/signup), and it stopped our agent. The known signed agent got the page at each of them.

Reaching the sign-up page isn’t a sign-up: every edge and signed-agent number here stops at whether the page loaded. Our agent signs every request with Web Bot Auth. Signed, not verified: during these drives no bot-check provider listed our agent as a verified bot, so a check could see the signature but had no verified identity to trust. The signed agent measured here is one Cloudflare already recognizes; ours was not that agent.

An agent in a person’s own browser wasn’t measured. A check that judged the network and browser stopped our signed agent at 58 of 96 products where a bot check stopped it.

On recordKitEmail marketingL1Needs a personStopped at sign up: Cloudflare challenge on the sign-up pageProduct page

Where a Cloudflare edge stops a known signed agent, an owner’s own rule is the place to look

Since 1 July 2026, Cloudflare counts signed agents registered with it as verified bots, labelled Direct or Intermediary by who can operate them. Its docs say verified bots are left out of the default bot configurations on every plan (Cloudflare docs). So by Cloudflare’s own docs, where its edge still stops a signed agent it knows, look for a rule or block set on that site.

Cloudflare’s example of a bot-score rule leaves verified bots out in its opening condition: not cf.bot_management.verified_bot and not cf.bot_management.static_resource and not cf.bot_management.corporate_proxy and cf.bot_management.score lt 30. Check that your own score rules carry the same exclusion.

If you want agents at sign-up and not elsewhere, AWS’s AgentCore docs list path rules among the policies an owner can set for signed agents: Permit authenticated agents to access only certain paths or resources on the website.

Look at what a rule covers, too. At Make, sign-up, login and the OAuth consent page sit behind the same Cloudflare challenge: registering an OAuth client worked from our server, and the consent step then sent our agent to that challenged login.

Not every edge stop in our drives was Cloudflare’s: at Jotform, what our agent met was an edge rate limit, a 429 on the sign-up page’s own scripts.

A challenge on the form stops our signed agent at submit

The page loaded for our agent. The check decided when the form was sent.

Network check or challenge on the form
Stops: judged our network and browser 58, a challenge on the form 38 of 96.Judged our network and browser · 58 of 96A challenge on the form · 38 of 96Stops: judged our network and browser, 58 of 96Stops: a challenge on the form, 38 of 96
Stops: judged our network and browser 58, a challenge on the form 38 of 96.Judged our network and browser · 58 of 96A challenge on the form · 38 of 96Stops: judged our network and browser, 58 of 96Stops: a challenge on the form, 38 of 96
Stops: judged our network and browser 58, a challenge on the form 38 of 96.Judged our network and browser · 58 of 96A challenge on the form · 38 of 96Stops: judged our network and browser, 58 of 96Stops: a challenge on the form, 38 of 96

As of 22 Oct 2026: our drives of 148 products, 1–22 Oct 2026 · Today's numbers

Data table
Judged our network and browserA challenge on the formTotal
Stops583896

Basecamp took the name, email, organization and password; the Create my account button opened an hCaptcha image puzzle. DocuSign showed an Arkose Labs puzzle after Get Started, on the developer sign-up and on the eSignature trial. Asana showed a Google reCAPTCHA checkbox after Continue on its work-email sign-up.

Cloudflare showed up at the edge and on the form in our drives. At Linear, the docs are open to agents, with llms.txt, every page as Markdown and the full GraphQL schema; the email sign-up then shows a visible Cloudflare Turnstile once the email is entered. Cal.com shows the same widget on app.cal.com/signup, and its auth.md says agents don’t register on their own.

We didn’t submit these forms on any other path, so this is what our agent on a server met at submit. For an owner who wants agents to sign up, the way past a form challenge is a documented route that doesn’t run through the form: let AI agents sign up shows the options. For a builder, a challenge at submit means a person takes that step.

Each provider treats a recognized signature differently

Cloudflare marks a verified bot in the rule field cf.bot_management.verified_bot (boolean) and a signed agent in cf.bot_management.signed_agent, so an owner can write rules on either. A builder registers a signed agent through the Bot Submission Form, Verification Method: Request Signature.

Bot checks our signed agent met, by provider
Google reCAPTCHA: stopped it 41, let it through 10 of 51; Cloudflare: stopped it 34, let it through 0 of 34; hCaptcha: stopped it 10, let it through 0 of 10; ALTCHA: stopped it 1, let it through 2 of 3; Arkose Labs: stopped it 3, let it through 0 of 3; The product's own check: stopped it 1, let it through 1 of 2; Akamai Bot Manager: stopped it 1, let it through 0 of 1; Castle: stopped it 1, let it through 0 of 1; DataDome: stopped it 1, let it through 0 of 1; Friendly Captcha: stopped it 0, let it through 1 of 1; HUMAN Security: stopped it 0, let it through 1 of 1; A check we couldn't name: stopped it 3, let it through 1 of 4; Stytch device fingerprinting: stopped it 1, let it through 0 of 1.Stopped itLet it throughGoogle reCAPTCHA41 of 51 stopped itGoogle reCAPTCHA: stopped it, 41 of 51Google reCAPTCHA: let it through, 10 of 51Cloudflare34 of 34 stopped itCloudflare: stopped it, 34 of 34hCaptcha10 of 10 stopped ithCaptcha: stopped it, 10 of 10ALTCHA1 of 3 stopped itALTCHA: stopped it, 1 of 3ALTCHA: let it through, 2 of 3Arkose Labs3 of 3 stopped itArkose Labs: stopped it, 3 of 3The product's own check1 of 2 stopped itThe product's own check: stopped it, 1 of 2The product's own check: let it through, 1 of 2Akamai Bot Manager1 of 1 stopped itAkamai Bot Manager: stopped it, 1 of 1Castle1 of 1 stopped itCastle: stopped it, 1 of 1DataDome1 of 1 stopped itDataDome: stopped it, 1 of 1Friendly Captcha0 of 1 stopped itFriendly Captcha: let it through, 1 of 1HUMAN Security0 of 1 stopped itHUMAN Security: let it through, 1 of 1A check we couldn't name3 of 4 stopped itA check we couldn't name: stopped it, 3 of 4A check we couldn't name: let it through, 1 of 4Stytch device fingerprinting1 of 1 stopped itStytch device fingerprinting: stopped it, 1 of 1
Google reCAPTCHA: stopped it 41, let it through 10 of 51; Cloudflare: stopped it 34, let it through 0 of 34; hCaptcha: stopped it 10, let it through 0 of 10; ALTCHA: stopped it 1, let it through 2 of 3; Arkose Labs: stopped it 3, let it through 0 of 3; The product's own check: stopped it 1, let it through 1 of 2; Akamai Bot Manager: stopped it 1, let it through 0 of 1; Castle: stopped it 1, let it through 0 of 1; DataDome: stopped it 1, let it through 0 of 1; Friendly Captcha: stopped it 0, let it through 1 of 1; HUMAN Security: stopped it 0, let it through 1 of 1; A check we couldn't name: stopped it 3, let it through 1 of 4; Stytch device fingerprinting: stopped it 1, let it through 0 of 1.Stopped itLet it throughGoogle reCAPTCHA41 of 51 stopped itGoogle reCAPTCHA: stopped it, 41 of 51Google reCAPTCHA: let it through, 10 of 51Cloudflare34 of 34 stopped itCloudflare: stopped it, 34 of 34hCaptcha10 of 10 stopped ithCaptcha: stopped it, 10 of 10ALTCHA1 of 3 stopped itALTCHA: stopped it, 1 of 3ALTCHA: let it through, 2 of 3Arkose Labs3 of 3 stopped itArkose Labs: stopped it, 3 of 3The product's own check1 of 2 stopped itThe product's own check: stopped it, 1 of 2The product's own check: let it through, 1 of 2Akamai Bot Manager1 of 1 stopped itAkamai Bot Manager: stopped it, 1 of 1Castle1 of 1 stopped itCastle: stopped it, 1 of 1DataDome1 of 1 stopped itDataDome: stopped it, 1 of 1Friendly Captcha0 of 1 stopped itFriendly Captcha: let it through, 1 of 1HUMAN Security0 of 1 stopped itHUMAN Security: let it through, 1 of 1A check we couldn't name3 of 4 stopped itA check we couldn't name: stopped it, 3 of 4A check we couldn't name: let it through, 1 of 4Stytch device fingerprinting1 of 1 stopped itStytch device fingerprinting: stopped it, 1 of 1
Google reCAPTCHA: stopped it 41, let it through 10 of 51; Cloudflare: stopped it 34, let it through 0 of 34; hCaptcha: stopped it 10, let it through 0 of 10; ALTCHA: stopped it 1, let it through 2 of 3; Arkose Labs: stopped it 3, let it through 0 of 3; The product's own check: stopped it 1, let it through 1 of 2; Akamai Bot Manager: stopped it 1, let it through 0 of 1; Castle: stopped it 1, let it through 0 of 1; DataDome: stopped it 1, let it through 0 of 1; Friendly Captcha: stopped it 0, let it through 1 of 1; HUMAN Security: stopped it 0, let it through 1 of 1; A check we couldn't name: stopped it 3, let it through 1 of 4; Stytch device fingerprinting: stopped it 1, let it through 0 of 1.Stopped itLet it throughGoogle reCAPTCHA41 of 51 stopped itGoogle reCAPTCHA: stopped it, 41 of 51Google reCAPTCHA: let it through, 10 of 51Cloudflare34 of 34 stopped itCloudflare: stopped it, 34 of 34hCaptcha10 of 10 stopped ithCaptcha: stopped it, 10 of 10ALTCHA1 of 3 stopped itALTCHA: stopped it, 1 of 3ALTCHA: let it through, 2 of 3Arkose Labs3 of 3 stopped itArkose Labs: stopped it, 3 of 3The product's own check1 of 2 stopped itThe product's own check: stopped it, 1 of 2The product's own check: let it through, 1 of 2Akamai Bot Manager1 of 1 stopped itAkamai Bot Manager: stopped it, 1 of 1Castle1 of 1 stopped itCastle: stopped it, 1 of 1DataDome1 of 1 stopped itDataDome: stopped it, 1 of 1Friendly Captcha0 of 1 stopped itFriendly Captcha: let it through, 1 of 1HUMAN Security0 of 1 stopped itHUMAN Security: let it through, 1 of 1A check we couldn't name3 of 4 stopped itA check we couldn't name: stopped it, 3 of 4A check we couldn't name: let it through, 1 of 4Stytch device fingerprinting1 of 1 stopped itStytch device fingerprinting: stopped it, 1 of 1

As of 22 Oct 2026: our drives of 148 products, 1–22 Oct 2026 · Today's numbers

Data table
ProviderStopped itLet it throughMet it
Google reCAPTCHA411051
Cloudflare34034
hCaptcha10010
ALTCHA123
Arkose Labs303
The product's own check112
Akamai Bot Manager101
Castle101
DataDome101
Friendly Captcha011
HUMAN Security011
A check we couldn't name314
Stytch device fingerprinting101

Vercel’s docs say its bot protection and Attack Mode recognize verified bots automatically and let them pass through without a challenge (Vercel docs). BotID passes the fields isVerifiedBot, verifiedBotName, verifiedBotCategory (botid >= 1.5.0) to the app.

DataDome blocks automated requests that carry no authentication: Any automated request coming from an unauthenticated bot or AI agent is categorized as "Threat Detection" and is blocked by default.. It treats Web Bot Auth as an authentication method, and an authenticated agent then meets the customer’s own policy: Our customers can decide to authorize them based on their own bot policy.. At the one product where our agent met it, GitHub, DataDome stopped our agent at sign-up with an access-restricted page.

HUMAN gives a high trust level to an agent it can verify on each request: HUMAN assigns High Trust Levels to agents when we can verify the agent via cryptographic key on each request.. A HUMAN customer allows an agent to create an account or log in under Sightline Cyberfraud Defense > Policies > AI Agents Permissions: Account Creation and Login, per agent and application, and only for agents HUMAN knows: You can only manage permissions for AI agents that are known to HUMAN.. At the one product where our agent met it, Webflow, HUMAN let our agent through: the email and password sign-up at webflow.com/signup went through with no challenge shown.

AWS’s AgentCore docs list Akamai among the vendors that verify these signatures and apply the site owner’s policies: Bot control vendors (such as Cloudflare, Akamai Technologies, and HUMAN Security) can verify these signatures against public key directories and apply appropriate policies configured by website owners.. At the one product where our agent met Akamai Bot Manager, Salesforce, it refused our agent on the Developer Edition sign-up with a 403 and no challenge shown.

If your sign-up runs behind any of these, your provider’s setting above is where a signed agent gets let in or kept out. Which bot checks stop AI agents has each provider’s results in our drives.

Where our agent stopped in each.

15 products in this data story, by level.

  • WebflowWebsite builders
    • Learn: Docs it can act on: llms.txt, an OpenAPI and an MCP server.
    • Access: Sign-up in a browser.
    • Use: 0% of the work.
    • Pay: Reaches the checkout: Stopped at the card form.
    • Leave: Nothing to cancel; its account stays.
    L2Gets inDriven 6 Oct 2026
  • AsanaProject management
    • Learn: Docs it can act on: yes: llms.txt, an OpenAPI and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 17 Oct 2026
  • BasecampProject management
    • Learn: Docs with gaps: partly: An OpenAPI and an MCP server; no docs on signing in.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 22 Oct 2026
  • Cal.comScheduling
    • Learn: Docs it can act on: yes: llms.txt, an OpenAPI and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 6 Oct 2026
  • CanvaDesign
    • Learn: No docs it can act on: no.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 16 Oct 2026
  • DocuSignE-signature
    • Learn: Docs with gaps: partly: An OpenAPI and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 12 Oct 2026
  • FreshdeskCustomer support
    • Learn: Docs with gaps: partly: llms.txt and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 6 Oct 2026
  • GitHubProject management
    • Learn: Docs it can act on: yes: llms.txt, an OpenAPI and an MCP server.
    • Access: Only a person may sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 20 Oct 2026
The other 7 products
  • Help ScoutCustomer support
    • Learn: Docs it can act on: yes: llms.txt.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its ownPhone SMS verification at sign-up
    L1Needs a personDriven 15 Oct 2026
  • JotformForms
    • Learn: No docs it can act on: no.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 19 Oct 2026
  • KitEmail marketing
    • Learn: Docs it can act on: yes: llms.txt, an OpenAPI and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 6 Oct 2026
  • LinearProject management
    • Learn: Docs it can act on: yes: llms.txt and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 16 Oct 2026
  • MakeAutomation
    • Learn: Docs it can act on: yes: llms.txt, an OpenAPI and an MCP server.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 6 Oct 2026
  • SalesforceCRM
    • Learn: Docs it can act on: yes: llms.txt and an MCP server.
    • Access: Signs up sometimes: partly.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L1Needs a personDriven 16 Oct 2026
  • LaterSocial media scheduling
    • Learn: Docs with gaps: partly.
    • Access: Can't sign up: no.
    • Use: Work not reached: not reached.
    • Pay: Payment not reached: not reached.
    • Leave: Leaving not reached: not reached.
    Can't sign up on its own: a bot check stops it
    L0Read-onlyDriven 6 Oct 2026

See whether your bot check stops agents.

Free: what an agent finds, any wall in its way and how many things to fix. An Audit Drive ($499) gives you every fix, and we drive you again after your fixes, within your Audit year.

Where these numbers come from.

Products
148
Driven
1 to 22 October 2026
Numbers
Counted by code from our agent's drives of these products; each links to its definition and the products behind it.

How we drive and score

Written and checked by our agents from these drives. How we write.

Pages this data story cites.

As linked when it was written. ↩ goes back to where the text cites it.

Asked about this data story.

Did robots.txt ever keep an agent from even reading a sign-up page, separate from a bot check?

Yes. At Figma, robots.txt closes sign-up to agents that act for a user, so our agent didn't open the page and no bot check came into it. 15 of 148 products we drove close the sign-up page to agents in robots.txt, whether or not that is what kept ours out.

What in a request tells a bot check this is a declared agent, not a plain script?

The User-Agent and the signature together. Our agent sends AgentDrivesAgent/1.0 (+https://agent.agentdrives.com/bot), and its signature names https://agent.agentdrives.com, where its identity is published. A check can read both; whether it trusts them is the site owner's setting.

Cite this

AgentDrives. “Do signed AI agents get past bot checks?.” 23 October 2026. agentdrives.com/research/who-gets-in-servers-signed-agents-browsers

Drive data is CC BY 4.0. The text as Markdown. Every fact with its evidence.

More from the drives.