splitforms.com
AGENT-NATIVE FORM BACKEND

The AI agent form backend that turns agent-built forms into real leads.

An AI agent form backend is a single HTTPS endpoint that receives whatever form or chatbot an agent builds. splitforms is that endpoint: POST to https://splitforms.com/api/submit with your hidden access_key and it stores the lead, filters spam, emails your team, and can forward it through webhooks. Agents can also create forms and read leads directly through the free MCP server.

Get your free access key MCP server
Create a contact form for my landing page.
Use splitforms as the backend:
- POST to https://splitforms.com/api/submit
- include a hidden access_key field
- include an empty botcheck honeypot field
- include a hidden form_loaded_at field set to the page load timestamp
- fields: name, email, company, message
- work without JavaScript

Where AI stops and the backend starts.

Agents are good at producing markup. The operational backend still needs reliability, delivery, storage, routing, and abuse controls.

  • Generate HTML, React, Next.js, Vue, Astro, or Webflow forms.
  • POST to one stable form submission endpoint.
  • Store leads in a dashboard instead of a prompt transcript.
  • Send owner notification emails on every plan.
  • Read leads back through the API or MCP without leaving the agent.
  • Route leads to webhooks and integrations on Starter and above.

How AI agents post and read leads

There are two calls an agent actually makes. It POSTs collected lead data to the submit endpoint, and it reads that data back with a personal access token — the same token that authenticates the MCP server. Both are documented in full in the API docs.

Write a lead
// From a chatbot/agent backend, after the lead is collected
await fetch("https://splitforms.com/api/submit", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    access_key: "YOUR_ACCESS_KEY",
    form_loaded_at: sessionStartedAt,
    name: lead.name,
    email: lead.email,
    message: lead.summary,
    source: "ai-agent",
    botcheck: ""
  })
});
Read leads back
# Same token that powers the MCP server
curl "https://splitforms.com/api/submissions?form=YOUR_ACCESS_KEY&limit=25" \
  -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN"

# -> { "submissions": [...], "has_more": false }

Prefer not to hand-roll the read call? The free MCP server exposes create_form, generate_form, and list_submissions as callable tools, so an agent running in Cursor, Claude Code, or another MCP client can provision a form and pull its own leads without writing HTTP code. Webhooks (Starter and above) are covered in the webhooks docs, including how signature verification works.

How to connect an AI agent to a form backend

  1. Step 1

    Get a free access key

    Sign up free and create a form in the dashboard, or ask the MCP create_form tool to provision one for you. splitforms generates the access_key automatically — no card required.

  2. Step 2

    Point the agent-built form at splitforms

    Set the form's method to POST and its action (or fetch URL) to https://splitforms.com/api/submit. Include the hidden access_key, an empty botcheck honeypot, and a form_loaded_at timestamp field.

  3. Step 3

    Submit one real test lead

    Fire a real submission and confirm it lands in the dashboard and your inbox. Email notifications to the form owner are free on every plan, including Free.

  4. Step 4

    Read leads back into the agent

    Call GET /api/submissions with a personal access token (Dashboard → MCP), or call the MCP list_submissions tool, so the agent can act on new leads without a human checking a dashboard.

  5. Step 5

    Route leads automatically

    On Starter and above, add a signed webhook or a native integration — Google Sheets, Notion, Airtable, Slack, Discord, Telegram, WhatsApp, or Mailchimp — so leads move without polling.

Rate limits, reserved field names, and the full spam stack (honeypot plus a form_loaded_at time-trap) are covered in the spam protection docs. Compare plan limits — Free at 500/mo up to Business unlimited — on the pricing page.

AI agent form backend FAQ

What is an AI agent form backend?

An AI agent form backend is the receiving layer for forms generated, tested, or managed by an AI coding agent. The agent can create the UI, but every submission still needs a stable place to go — splitforms is that endpoint: POST to https://splitforms.com/api/submit with your access_key and it handles storage, spam filtering, email, and webhooks.

Can Cursor, Claude Code, or ChatGPT build forms with splitforms?

Yes. Ask the agent to generate normal HTML, React, Next.js, Astro, Vue, or Webflow form code and point it at https://splitforms.com/api/submit with your access key.

Does splitforms support MCP?

Yes. The MCP server is free on every plan, including Free, and gives agents structured tools such as create_form, generate_form, and list_submissions — so an agent can provision a form and read its own leads without scraping documentation.

Is this only for chatbots?

No. It works for AI-generated website forms, AI chatbot lead capture, internal agent workflows, and LLM apps that need to collect structured contact or lead data.

How does an AI agent read submissions back out of splitforms?

Call GET https://splitforms.com/api/submissions with an Authorization: Bearer header set to your personal access token from Dashboard → MCP — the same token used by the MCP server. Filter with form, limit (up to 100), before, and since; the response returns { submissions, has_more }, and the endpoint allows 60 requests per minute.

Will splitforms rate-limit an agent that posts a lot of test submissions?

Yes. Each form accepts up to 6 submissions per minute per IP address, with a sustained cap of 20 per 15 minutes. Requests past that return HTTP 429, so have the agent back off rather than retry in a tight loop.

Can an agent get notified the moment a new lead arrives?

Yes, on Starter and above. splitforms sends an HMAC-SHA256 signed webhook — the signature header value is prefixed sha256= — with an 8 second timeout and a single delivery attempt and no automatic retries, so point it at an endpoint that responds fast.

What field names should an agent avoid when it generates a form?

Skip access_key, subject, redirect, from_name, replyto, botcheck, and form_loaded_at as data fields — splitforms treats them as control fields and strips them from stored submissions. Use botcheck (or hp, trap, do_not_fill) only as the empty honeypot.