Can an AI agent use Formspree?
As of 6 Oct 2026, an AI agent can't use Formspree on its own: reCAPTCHA picture puzzle on the sign-up form.
- Find: Some docs for agents: llms.txt.
- Access: Can't sign up.
- Use: Work not reached.
- Pay: Payment not reached.
- Leave: Leaving not reached.
To reach L2 · Gets in: let an agent sign up on its own.
With an account set up by a person: not measured yet.
What the levels meanDriven 6 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverStopped by a CAPTCHA on the sign-up form.
- Signed agentsThe sign-up page opens. The CAPTCHA on the form stops them too.
- Agents in a person's browserNot measured yet.
Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Formspree.
On its own
- Read all of Formspree's help pages in a clean, easy-to-parse format
- Copy ready-made contact form templates from the public form library
What it can't, and why
- Create an accountThe sign-up page shows a picture puzzle
- Create a working formEvery way to make one needs a signed-in account first
- Read submitted form data through the APIThat feature needs both an account and a paid plan
Can an AI agent sign up for Formspree on its own?
No. Sign-up: needs a human. Web form only (no sign-up API). In the browser, Register raised a reCAPTCHA v2 image challenge.
Does Formspree have an MCP server, and can an agent connect to it?
No. The drive found no MCP server for Formspree.
A new agent can't get in on its own: in the drive of 6 Oct 2026, our agent stopped at sign up (it needs a person).
What the drive found
API–OpenAPI–MCPCLISDKllms.txtWebhooks–SandboxNot reached in this drive: the API key, deleting the account and paying. Every checkpoint, in detail
For the team behind Formspree.
Where agents stop in Formspree today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Let verified agents sign upStep-by-step guide
- Let agents create unclaimed formsStep-by-step guide
- Offer account API keys on free planStep-by-step guide
1 more fix
- Publish an OpenAPI spec Step-by-step guide
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
Our agent couldn't get into Formspree, so the work, its reliability and the crash test aren't measured. The part scores are what it could judge from the outside.
Part scores · level history · paid plans
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: not found
- MCP server: not found
- CLI: found
Not measured in this drive: Holds up, Docs match (part of an Audit).
Level history
- 2 Oct 2026L1Needs a person
- 6 Oct 2026L1Needs a person
Needs a paid plan
Not counted in the level.
| Capability | Plan |
|---|---|
| Fetch submissions programmatically | Professional, Business |
| Export submissions to CSV/JSON | paid (Personal/Professional/Business) |
| Send auto-response confirmation email to submitter | paid (Personal/Professional/Business) |
| Route submissions by rules (rules engine) | paid (Personal/Professional/Business) |
| Accept file upload attachments on a form | paid (Personal/Professional/Business) |
| Search submissions by keyword | paid (Personal/Professional/Business) |
| Connect productivity integrations (Airtable, Asana, GitHub, Google Sheets, Notion, Trello, Linear) | paid (Personal/Professional/Business) |
| Connect CRM integrations (HubSpot, Pipedrive, Salesforce, Zoho) | paid (Personal/Professional/Business) |
| Connect newsletter integrations (Mailchimp, MailerLite, ConvertKit, Klaviyo, Constant Contact, ActiveCampaign) | paid (Personal/Professional/Business) |
| Connect support-desk integrations (Freshdesk, Gladly, Gorgias, Zendesk) | paid (Personal/Professional/Business) |
| Send submissions to a custom webhook URL | paid (Personal/Professional/Business) |
| Trigger Stripe payment on submission | paid (Personal/Professional/Business) |
| Verify webhook signatures | paid (Personal/Professional/Business) |
| Set custom spam rules / blocklist | paid (Personal/Professional/Business) |
| Customize 'Thank You' redirect page | paid (Personal/Professional/Business) |
| Customize notification/autoresponse email templates | paid (Personal/Professional/Business) |
| Set a custom email sending domain | paid (Personal/Professional/Business) |
| Add and manage team members on an account | paid (Personal/Professional/Business) |
| Link client email addresses for managed form setup | paid (Personal/Professional/Business) |
For agents and builders.
The drive as data, every checkpoint and all 47 attempts.
How an agent connects · 4 tips
/api/tools/formspree.json/tools/formspree.mdMCP get_tool {"slug":"formspree"}
- Start at https://formspree.io/llms.txt: the designed agent flow is a claim URL a human opens, then pastes the /f/<id> endpoint back
- With a deploy key from a human, `formspree deploy -k <key>` over formspree.json is fully headless
- Send Accept: application/json to /f/<id> for JSON errors with codes
- Help articles serve Markdown: add .md or send Accept: text/markdown
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessllms.txt with a claim-URL guide for agents; help articles serve Markdown via Accept: text/markdown and .md
- Sign upNeeds a humanWeb form only (no sign-up API). In the browser, Register raised a reCAPTCHA v2 image challenge.
- VerifyNot reachedNever reached: sign-up did not complete
- KeyNot reachedCLI deploy key and form API keys come only from the dashboard (API keys on Professional/Business only); no account
- First callNot reachedNo credentials and no form of our own; unauthenticated POST /f/<id> only returns FORM_NOT_FOUND
- First actionNot reachedCreating a form needs an account: dashboard, claim URL (302 to /register) or formspree deploy with a deploy key
- PayNot reachedNo 402 rail, no UCP, not in the x402 Bazaar or on mpp.dev. Paid plans are bought with a card in the web app, reachable only after the captcha-gated sign-up; the payment step itself was not reached.
- CancelNot reachedNo plan was started. Docs give no cancel API; the web app has a billing page (web UI). Not exercised.
- DeleteNot reachedNo account was created. Docs: delete in the web UI (Account > Delete account, with password and 2FA), done within 24 h; no API.
The attempt log · 47 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| llms.txt: Fetch /llms.txt | api | done ✓ | https://formspree.io/llms.txt 200 text/plain; H1 '# Formspree'; claim-URL guide for agents; robots.txt points to it |
| robots/aipref: Read robots.txt and Content-Usage | api | done ✓ | robots.txt: 'User-agent: *' 'Disallow: /legal', Sitemap; no Content-Usage or Content-signal lines; no Content-Usage header on / |
| markdown docs: Accept: text/markdown and .md URL on help article | api | done ✓ | help.formspree.io/articles/using-the-cli/the-formspree-cli with Accept: text/markdown -> 200 content-type text/markdown, vary: accept-encoding, accept; same URL + .md -> 200 text/markdown; formspree.io/ also negotiates markdown (vary: Accept) |
| agent cards: AI catalog, A2A card, MCP server card | api | failed ✓ | /.well-known/ai-catalog.json, /.well-known/agent-card.json, /.well-known/agent.json, /.well-known/mcp/server-card.json all 404 text/html |
| MCP: Find an MCP endpoint | api | failed ✓ | formspree.io/mcp 405 text/html; no MCP mentioned in llms.txt or docs; web search finds no official or third-party Formspree MCP server |
| OAuth/agent registration: PRM, AS metadata, auth.md, SKILL.md | api | failed ✓ | /.well-known/oauth-protected-resource 404, /.well-known/oauth-authorization-server 404, /auth.md 405 html, /SKILL.md 405 html |
| OpenAPI: Find an OpenAPI spec | api | failed ✓ | /openapi.json 405 text/html; docs list REST endpoints (Forms API) in prose, no spec found |
| Sign up: Register via the web form in a real browser | browser | blocked | Filled First/Last/Email/Password, ticked terms, clicked Register -> reCAPTCHA v2 image challenge 'Select all images with bicycles' (visible_challenge true, screenshot browser/shots/005.png). |
| Browse and copy example forms from the Form Library: Find a contact form template and copy its HTML | api | done ✓ | GET https://formspree.io/library/ 200 (13 categories); /library/contact/contact-me-form/ with Accept: text/markdown 200 text/markdown containing '<form action="https://formspree.io/f/{FORM_ID}"' HTML and React variants |
| Claim a pre-configured form via Claim URL: Open claim URL name=Contact+Us&field.email=email,required&action.email=the agent's inbox | api | blocked | GET https://formspree.io/claim?... -> 302 https://formspree.io/register; claiming needs a signed-in account; sign-up blocked by reCAPTCHA image challenge |
| Submit a form (HTML POST / AJAX): POST a test submission to a form endpoint | api | blocked | No form of our own (sign-up blocked). POST /f/xyzzyabc with Accept: application/json -> 404 application/json {"error":"Form not found","errors":[{"code":"FORM_NOT_FOUND",...}]} |
| Create a form endpoint: New endpoint https://formspree.io/f/{hashid} returns 200/validation error on POST | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| View submissions in inbox with daily analytics: Dashboard inbox lists the submitted entry with timestamp and analytics chart updates | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Fetch submissions programmatically: GET returns JSON with submissions array containing the field values and _status delivery info | none | plan_gated | Paid feature per https://help.formspree.io/articles/the-forms-api/form-submissions-api / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Export submissions to CSV/JSON: Downloaded file contains rows matching submissions shown in inbox | none | plan_gated | Paid feature per https://formspree.io/plans/ / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Receive email notification per submission: Submitting the form delivers an email to the configured address | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Send auto-response confirmation email to submitter: Submitter receives a reply email matching the configured subject/body | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/sending-a-confirmation-or-response-email / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Filter spam submissions (Formshield / reCAPTCHA / honeypot): Spam-pattern submission is flagged/excluded from inbox and appears only with ?spam=true | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Define field types and server-side validation rules: Submission missing a required/invalid field is rejected with a validation error response | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Route submissions by rules (rules engine): A submission matching a rule condition is routed/flagged/redirected per the configured rule | none | plan_gated | Paid feature per https://help.formspree.io/articles/advanced-features/form-rules / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Send submissions to multiple/custom recipient emails: All listed recipients receive the notification email for one submission | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Accept file upload attachments on a form: Submission with a file attached stores it and notification email/dashboard shows a download link | none | plan_gated | Paid feature per https://help.formspree.io/articles/building-your-form/file-uploads / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Group forms into projects: New form appears nested under the named project in the dashboard | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Search submissions by keyword: Search query returns only submissions containing the matching text | none | plan_gated | Paid feature per https://formspree.io/plans/ / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Connect notification integrations (Slack, Discord, Telegram): Submission triggers a message posted into the connected Slack/Discord/Telegram channel | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Connect productivity integrations (Airtable, Asana, GitHub, Google Sheets, Notion, Trello, Linear): Submission creates/updates a row, card, or issue in the connected app | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/plugins / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Connect CRM integrations (HubSpot, Pipedrive, Salesforce, Zoho): Submission creates a lead/contact/deal record visible in the connected CRM | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/use-hubspot-to-create-leads-and-contacts / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Connect newsletter integrations (Mailchimp, MailerLite, ConvertKit, Klaviyo, Constant Contact, ActiveCampaign): Submitter email appears as a new subscriber in the connected list | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/use-mailchimp-to-collect-email-addresses / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Connect support-desk integrations (Freshdesk, Gladly, Gorgias, Zendesk): Submission opens a new ticket in the connected helpdesk | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/use-zende[redacted] / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Send submissions to a custom webhook URL: Configured endpoint receives an HTTP POST with the submission payload, and the signature validates per docs | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/webhooks / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Trigger Stripe payment on submission: Submission with payment fields creates a Stripe charge/PaymentIntent visible in Stripe dashboard | none | plan_gated | Paid feature per https://help.formspree.io/articles/plugins/use-stripe-to-accept-payments-with-sca / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Verify webhook signatures: Webhook request includes a signature header that validates against the documented HMAC scheme | none | plan_gated | Paid feature per https://help.formspree.io/articles/advanced-features/verify-webhook-signatures / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Restrict form submissions to a specific domain: Submission from an unlisted origin domain is rejected | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Set custom spam rules / blocklist: Submission matching a custom blocklist pattern is discarded instead of reaching the inbox | none | plan_gated | Paid feature per https://help.formspree.io/articles/advanced-features/setting-a-blocklist / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Customize 'Thank You' redirect page: Non-AJAX submission redirects to the configured custom URL instead of the default Formspree page | none | plan_gated | Paid feature per https://help.formspree.io/articles/form-and-project-settings/thank-you-redirect / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Customize notification/autoresponse email templates: Received notification email shows the custom markup/branding instead of the default template | none | plan_gated | Paid feature per https://help.formspree.io/articles/advanced-features/setting-custom-email-templates / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Configure and deploy forms via CLI with CI/CD: CLI deploy command creates/updates a form matching the local formspree.json config, confirmed in dashboard | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Set a custom email sending domain: Submission notification email's From header shows the custom domain instead of formspree.io | none | plan_gated | Paid feature per https://help.formspree.io/articles/advanced-features/setting-email-domain / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Add and manage team members on an account: Invited teammate gains login access and appears in the team member list | none | plan_gated | Paid feature per https://help.formspree.io/articles/account-management/adding-team-members / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Link client email addresses for managed form setup: Linked email address becomes selectable as a form's notification recipient without re-verification | none | plan_gated | Paid feature per https://formspree.io/plans/ / https://formspree.io/plans (Free plan: 50 submissions/mo, paid from $15/mo); not reachable anyway: sign-up blocked by reCAPTCHA image challenge |
| Enable two-factor authentication: Login subsequently requires a 2FA code after password entry | none | blocked | Needs a Formspree account (dashboard, claim URL, or CLI deploy key from project Settings); sign-up blocked by reCAPTCHA v2 image challenge |
| Configure and deploy forms via CLI with CI/CD: Install @formspree/cli and deploy a formspree.json with one form | cli | blocked | npm i @formspree/cli -> v0.9.6 installed in run dir; 'formspree deploy' without key prints how to add FORMSPREE_DEPLOY_KEY to .env; 'formspree deploy -k bogus' -> '✕ Deploy key is not valid'. A deploy key only comes from a CLI project's Settings in the dashboard, which needs an account (sign-up blocked). |
| Get API credentials: Get a deploy key (CLI) or form API key (Forms API) | none | blocked | Deploy key: project Settings in dashboard (CLI docs). Form API keys: dashboard, Professional/Business plans (Form Submissions API docs: 'Available on: Professional, Business plans'). No OAuth, no PRM, no agent registration. Needs an account: sign-up blocked. |
| Buy a plan: Probe 402 rails, discovery, registries, checkout | api | failed ✓ | No 402 anywhere: /f/<bad> 404 JSON, /api/0/forms 404 html; x402./mpp./agents.formspree.io do not resolve; /.well-known/ucp 404; /openapi.json 405 html; no 'formspree' in CDP x402 Bazaar or mpp.dev/api/services. Plans page: Free $0 (50 submissions/mo), Personal $15/mo, Professional $30/mo, Business $90/mo. Web app bundle loads Stripe.js / react-stripe-js and calls /api-int/account/setup-intent and /api-int/start-subscription (in-app card form). Checkout needs an account first (sign-up behind reCAPTCHA image challenge). |
| Cancel plan: Find a cancel route | none | skipped | No plan started. Docs (cancellation-and-refund-policy) describe no API; web app bundle has /account/billing and /api-int/cancel, /api-int/cancel-trial -> cancel lives in the web UI |
| Delete account: Find a delete route | none | skipped | Docs deleting-your-account: 'log into your account, click "Account" then "Delete account" enter your password and two factor authentication code ... Your account will be deleted within 24 hours'. Web UI only, no API. No account was created, so nothing to delete. |
| Find docs: Find docs and agent guidance | api | done ✓ | llms.txt with claim-URL guide; help.formspree.io articles serve markdown (Accept: text/markdown and .md); Forms API and CLI docs fetched |
Also in Forms.
FormbricksL4Gets in on its ownFormspree vs Formbricks
TallyL4Gets in on its ownFormspree vs Tally
FilloutL4Gets in on its ownFormspree vs Fillout
JotformL1Can't sign up on its ownFormspree vs Jotform