Forms: list, read and create
GET /forms, GET /forms/:id and POST /forms, with the form object and the full form document.
FormsAI Pro
On this page
List forms
GET /forms returns up to 500 forms, most recently updated first. Filter with ?status=draft, published, closed or archived (archived forms are left out unless you ask for them).
{
"forms": [
{
"id": "f_8k2…",
"title": "Customer feedback",
"slug": "customer-feedback",
"url": "https://app.formsai.dev/f/customer-feedback",
"status": "published",
"response_count": 128,
"published_at": "2026-10-20T09:12:00.000Z",
"created_at": "2026-10-19T16:40:00.000Z",
"updated_at": "2026-10-24T11:02:00.000Z",
"questions": [
{ "id": "s_…", "ref": "nps", "type": "nps", "title": "How likely are you to recommend us?", "required": true }
]
}
]
}Get one form
GET /forms/:id returns form (as above) and document: the complete form document with screens, logic, theme and settings, the same as an exported form file.
Create a form
POST /forms with a JSON body. Send title for a new form, or document to create one from a form document (for example one you exported). It returns 201 with the form, as a draft.
curl -X POST https://app.formsai.dev/api/v1/forms \
-H "Authorization: Bearer fk_live_…" \
-H "content-type: application/json" \
-d '{"title": "Event sign-up"}'Creating counts towards your active forms, and an invalid document is refused with the reason.