Go to app

Developers

Send requests, manage forms and receive the answers from your own code, or let an AI agent do it.


What you can do

  • Call the REST API to send a request to one person and read the answers, or to create, publish and change forms, share links, webhooks and translations.

  • Receive events: a webhook posts every submission of a form to your URL, and a request callback posts once, when a request ends.
  • Connect an AI agent over MCP, so Claude, ChatGPT, Cursor and other agents can do the same through tools.

No code needed?

Zapier, Make and n8n connect Formstep click by click. See the Automation guides.

Pages in this section

Endpoint

The REST API has one URL. Every call is a POST with a JSON body that names the method and its parameters.

text

Authentication

Send an API token as a bearer token in the Authorization header. A token reaches the one workspace it was created in. Create one from OAuth and API Keys in the workspace sidebar.

Request and response

The body has two fields: method and params. Every method and its parameters are in the API reference.

request body
json
{
  "method": "forms.list",
  "params": { "workspaceId": "abc123..." }
}

Every response has an ok field. On success, the result is in data. On failure, error holds a code, a message, and usually details.reason, which says what to fix. The codes and reasons are listed in the error reference.

responses
json
{ "ok": true, "data": { ... } }

{ "ok": false, "error": { "code": "VALIDATION_ERROR", "message": "Field 'name' is required." } }

Rate limits

  • 120 calls a minute per token, shared with the MCP server.

  • requests.create and documents.create also share a limit of 60 calls a minute per token.

A call over a limit fails with 429 RATE_LIMITED and details.retryAfterMs. Wait that long, then retry.