How to use the Youform API
Updated today
The Youform API lets you pull your forms and submissions into your own tools and manage form webhooks over authenticated HTTPS requests. Every request needs a personal API token sent as a bearer token, and the API accepts up to 60 requests per minute per account. The complete, always-current endpoint documentation lives at youform.com/api-docs; this guide covers token setup, the core endpoints, and the plan limits that apply.
API tokens are available on every plan, including the Free plan.
Get your API token
Create and manage tokens from your account page in the Youform app.
Open Account Settings in the Youform app.
Scroll down to the API Tokens section and create a token.
Give the token a name of up to 30 characters and copy the generated token.
Anyone who has a token can act as your account, so store it like a password and revoke tokens you no longer use from the same section.
Authenticate every request
Send your token in the Authorization header on each call:
Authorization: Bearer YOUR_API_TOKENThe API base URL is https://app.youform.com/api; the endpoints below are shown with that prefix. Requests are rate limited to 60 per minute per account, so pace batch jobs accordingly.
Account and form endpoints
Use GET /api/me to confirm your token works: it returns your account's id, first_name, last_name, and email.
Method | Endpoint | What it does |
|---|---|---|
GET |
| Lists the forms in your workspaces, newest first. Results are paginated at 100 per page. |
GET |
| Returns a single form. |
PUT |
| Updates the form name. |
POST |
| Publishes the form's draft. |
POST |
| Restores the draft fields from the last published version. |
POST |
| Adds a block to the form. |
PUT |
| Updates a block. |
POST |
| Duplicates a block. |
DELETE |
| Deletes a block. |
You cannot create forms through the API. Create the form in the dashboard, then manage it through the endpoints above.
Fetch submissions
GET /api/forms/{form_slug}/submissions returns a form's submissions, paginated inside a data property. A form slug that doesn't exist or belongs to another account returns a 404 with the message The requested form doesn't exist.
Parameter | Values |
|---|---|
| 1 to 100, default 20. Out-of-range values return a 400 error. |
| Page number for pagination. |
|
|
|
|
| Filter for completed or partial submissions. |
Fetching partial submissions requires a Pro plan or higher. On lower plans the endpoint returns only completed submissions, and passing is_complete=false returns an error asking you to upgrade.
GET /api/forms/{form_slug}/submissions/latest returns the most recent submission in the same payload shape webhooks use, or an empty data array when the form has no submissions. Unlike the paginated endpoint, it does not filter by completion status, so it can return a partial submission.
Create and delete webhooks through the API
The API can register and remove form webhooks. Webhooks are not gated by plan.
Method | Endpoint | What it does |
|---|---|---|
POST |
| Creates a webhook subscription. Send |
DELETE |
| Deletes the webhook subscription. |
Both operations work on forms in your current workspace: an unknown form slug returns a 404, and a webhook whose form belongs to another workspace returns a 403. There is no API endpoint for listing webhooks; view and edit your webhooks in the form's Integrations page, which is also where you set up custom payloads, signing secrets, and delivery logs.
Each webhook fires a submission event when the form receives a new submission, and the delivery body includes event_id, event_type, form_id, form_name, submission_id, started_at, completed_at, answers, and fields. For the full payload format, signature verification, retries, and delivery logs, see How to use webhooks in Youform?
Plan limits that apply to the API
API tokens are available on every plan, including the Free plan.
Partial submissions through the API require a Pro plan or higher; other plans receive completed submissions only.
Webhooks are available on all plans.
The API accepts up to 60 requests per minute per account.
Creating forms through the API is not supported.