definition object:
Definition sections
Omitted sections remain unchanged. This makes it possible to update a form name or theme without resending its blocks.
Create with blocks, settings, and a theme
Create a complete form by passing adefinition to POST /v1/forms:
type is required. MULTI and SINGLE are available now. CONVERSATIONAL is reserved and returns 422 UNSUPPORTED_FORM_TYPE until that renderer is released.
Do not send the old single_page field or write definition.settings.singlePage; the top-level type is authoritative.
Block shape
Every block requires a stableid and supported type.
choicesfor choice-based questions.childrenfor nested groups.part_offor related display blocks.row_idfor blocks placed in the same row.propertiesfor type-specific settings.
Manage blocks directly
Use the focused block endpoints when you do not want to replace the rest of the form definition:
Add a question at position
1:
ETag, reorder the complete items array, then send it as blocks to PUT /v1/forms/{formId}/blocks with If-Match.
Focused block endpoints address top-level blocks. Nested questions are stored in a group block’s
children array; replace that parent group to edit its nested collection.Update a theme without changing content
blocks and settings are omitted, the request does not replace them.
Prevent lost updates with ETags
GET /v1/forms/{formId} returns an ETag header. Send that value as If-Match when updating the form:
412 FORM_VERSION_MISMATCH. Fetch the latest form, reconcile your change, and retry with the new ETag.
Plan restrictions
API writes enforce the same plan limits as the dashboard. Features such as custom CSS, redirects, branding removal, payment fields, file uploads, signatures, gates, and maximum question counts may require a paid plan. A restricted change returns403 PLAN_RESTRICTION.
Deletion behavior
DELETE /v1/forms/{formId} moves the form to trash and returns 204 No Content. It does not permanently remove the form.
Create a form
Create blocks, settings, and a theme in one request.
Add a block
Add a question or content block without replacing the form.