Set form status
/forms/{formId}/statusPublishes a form or reverts it to draft, with the body { "status": "PUBLISHED" } or { "status": "DRAFT" }. A repeat returns the form unchanged; a failed DocuSign check returns 409 invalid_state. Emits form.published or form.unpublished; sends no email. Send the other status to undo it. It answers the old form shape (FormStatusAliasForm), not the form entity.
Deprecated: withdrawn on 2027-06-30. POST /forms/{id}/actions/publish and unpublish replace it; the Link header names the one that matches the requested status.
Path parameters
The form's public uuid.
Request body
application/json, required
- One of:
Form lifecycle state.
DRAFT= editable, not submittable by respondents;PUBLISHED= live and submittable.DRAFT,PUBLISHED
{
"status": "PUBLISHED"
}Responses
{
"data": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"name": "string",
"description": "string",
"type": "string",
"pages": [
{
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"name": "string",
"description": "string",
"order": 1
}
],
"fields": [
{
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"label": "string",
"description": "string",
"type": "string",
"required": true,
"options": [],
"order": 1,
"page_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"conditions": [],
"condition_logic": "AND"
}
],
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request conflicts with existing state (error.code = conflict),
e.g. a compliance flow with the requested name already exists.
Request validation failed (HTTP 422). The body is either the Laravel
validation envelope (message + field-keyed errors) or the API error
envelope for domain rejections (e.g. form_type_not_supported,
folder_locked, parent_not_found, folder_not_empty).
Examples
curl -X PATCH https://your-org-domain/kong/core/api/v2/forms/{formId}/status\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"status": "PUBLISHED"
}'