API and AI agents

Create a key under API keys and send it in the Authorization header. Keys can be limited to one form and to these scopes:

  • forms:read: forms, actions, domains and your plan
  • submissions:read: submissions (and intake-cli listen)
  • forms:write: create and change forms, actions and domains; send test submissions
BASE=https://intake.starstorm.dev/public/v1
curl -H "Authorization: <key>" "$BASE/form?limit=10"
curl -H "Authorization: <key>" \
  "$BASE/form/<form id>/submission?getSpam=true"

The full reference is an OpenAPI 3.1 description at /public/v1/openapi.json; import it into Postman, Insomnia or your code generator. Errors use the same {"message", "name"} shape as above.

AI agents (MCP)

Intake is also an MCP server, so an agent such as Claude can set up forms and actions for you:

claude mcp add --transport http intake \
  https://intake.starstorm.dev/mcp \
  --header "Authorization: Bearer <key>"

Give the agent a key with forms:write. Add submissions:read only if it should read what visitors typed: that text is untrusted and could try to instruct the agent. Encrypted forms cannot be read by agents at all.


Was this article helpful?