Create a Form
How to create a form programmatically.
Create a Form
POST
/api/v1/formsRequired scope:write:forms
Request Body
| Name | Type | Description |
|---|---|---|
| title | string | Form title (1–200 characters)Customer Feedback |
| description | string | Optional form description (max 1000 chars) |
curl -X POST https://formalingo.com/api/v1/forms \
-H "Authorization: Bearer af_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Customer Satisfaction Survey",
"description": "Help us improve our service."
}'Response201
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"creatorId": "user-uuid",
"workspaceId": "workspace-uuid",
"title": "Customer Satisfaction Survey",
"description": "Help us improve our service.",
"status": "draft",
"branding": {},
"settings": {},
"publicToken": null,
"createdAt": "2026-02-25T10:00:00.000Z",
"updatedAt": "2026-02-25T10:00:00.000Z"
}
}Next steps
After creating a form, you'll typically:
- Add sections (optional)
- Add questions
- Customize branding (optional)
- Publish the form —
PUT /api/v1/forms/{id}with{ "status": "published" } - Add recipients
Publishing
Update the form status to published when ready:
curl -X PUT https://formalingo.com/api/v1/forms/FORM_ID \
-H "Authorization: Bearer af_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "published" }'Status transitions: draft → published → archived. You cannot go backwards.