Documented create and edit requests
These request bodies use the native KinoForms format. Send them to the dashboard API with Content-Type: application/json and an x-api-key header carrying forms:write access. Use the returned data.form.id as the form_id for the edit request.
Create a draft from a native schema
POST /papi/v1/management/forms
{
"name": "Contact intake",
"schema": {
"fields": [
{
"id": "email",
"type": "email",
"label": "Email",
"required": true
}
]
}
}
Edit fields with an ordered diff
PATCH /papi/v1/management/forms/{form_id}
{
"operations": [
{
"op": "updateField",
"fieldId": "email",
"set": {
"label": "Work email"
}
},
{
"op": "addField",
"field": {
"id": "phone",
"type": "phone",
"label": "Phone"
}
}
]
}
These examples describe the documented interfaces. Read the Builder Guide for response envelopes, PATCH errors, and the limits of expectedVersion. Creating or editing a draft is separate from publishing it.