https://api.forms.appThe list includes all forms that belong to your authenticated account, regardless of visibility (public, unlisted, or private), as long as they are not in the trash or archived.
- API key: best for server-side scripts, cron jobs, and backend integrations you control.
- OAuth bearer token: best when a third-party app needs access on behalf of a user.
For most getting-started scenarios, an API key is enough.
No. The API requires exactly one authentication method per request. Sending both returns 401 Unauthorized.
No. Keys are shown only once at creation. Revoke the old key in Account Settings → API Keys and create a new one.
You can create multiple keys (for example, one per environment or integration) and revoke any of them individually.
Every response wraps the payload in a consistent structure. On success, success is true and the payload is in data. On failure, success is false, data is null, and details are in errors. See The essentials.
- Check the HTTP status code.
- Parse the JSON body.
- If
successisfalse, read theerrorsarray forerrorCodeanderrorMessage.
The form may not exist, or it may belong to a different account. Confirm you are using the correct _id from GET /v1/form and the same credentials that own the form.
Answers are returned in pages. Start with pageNumber: 1, then increment for each subsequent page. Compare the number of records you have collected against totalCount in the response to know when you are done. See Fetching submissions.
Each page includes a searchAfter cursor pointing to the last record on that page. For most integrations, incrementing pageNumber is enough. The cursor is available for advanced cursor-based navigation.
The API returns 429 Too Many Requests. Wait briefly and retry. Avoid hammering the endpoint in a tight loop.
Yes. GET /__health returns the gateway status and does not require authentication. Use it for uptime monitoring.
- Quick start: create a key and make your first call
- API reference: endpoints, schemas, and examples
- forms.app support: account and product questions