Create a form
Creates a form. Only title is required, a form may start empty and gain fields later. New forms default to draft status (not publicly visible). Set status: "published" to accept submissions immediately. A slug, if given, must be unique for your account. Send an Idempotency-Key header to make retries safe: a repeat with the same key returns the originally created form instead of a duplicate.
The form to create.
Payload for creating a new form. Only title is required; a form may start with no fields and have them added later.
- Type: stringtitlemin length:1max length:200required
Form title, shown as the heading on the public form page.
- Type: stringdescriptionmax length:2000
Optional longer description shown beneath the title on the public form page.
- Type: array · …100fields
Ordered list of a form’s fields (max 100). Field
keys must be unique within the form. The order here is the order fields render on the public page. - Type: stringslugmin length:2max length:64
Pattern: ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$Optional human-friendly URL segment for the public form (
/f/{slug}). Lowercase alphanumeric with dashes; must be unique per owner. The form’sidalways works as a URL even without a slug. - Type: string enumstatus
Lifecycle state.
draftforms are private (not publicly viewable or submittable);publishedforms accept public submissions;closedforms are viewable but reject new submissions.values- draft
- published
- closed
- application/json
- application/problem+json
- application/problem+json
- application/problem+json
- application/problem+json
ffforms forms create --title 'Contact us' --description 'Questions, feedback, or partnership ideas. Send them our way.' --slug 'contact-us' --status 'draft'
{
"id": "frm_3Qk9v2Xb7Lm",
"slug": "contact-us",
"title": "Contact us",
"description": "Questions, feedback, or partnership ideas. Send them our way.",
"status": "published",
"fields": [
{
"key": "name",
"type": "text",
"label": "Your name",
"required": true
},
{
"key": "email",
"type": "email",
"label": "Email address",
"required": true
},
{
"key": "topic",
"type": "select",
"label": "Topic",
"required": true,
"options": [
{
"value": "sales",
"label": "Sales"
},
{
"value": "support",
"label": "Support"
}
]
}
],
"createdAt": "2026-07-28T10:15:30.000Z",
"updatedAt": "2026-07-28T12:40:05.000Z"
}