Add a form to an onboarding flow
/onboarding-flows/{onboarding_flow_id}/formsAdds a new form to the flow and returns it with a Location. It always creates a new hidden form from name and description; it does not attach an existing form. The flow is locked while it runs. dry_run shows the result without saving it. Sends no email and emits no webhook. DELETE /onboarding-flows/{onboarding_flow_id}/forms/{id} undoes it.
Path parameters
The onboarding flow's id, a uuid. An unknown or deleted id returns 404.
Query parameters
Validate and run the call without committing it, returning what the real call would return with
meta.dry_runset.
Headers
Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.
Request body
application/json, required · OnboardingFlowFormCreate
{
"name": "Source of wealth",
"description": "Where your funds come from."
}Responses
{
"data": {
"id": "6d8f3a52-9a41-4d6c-b7a1-2c9e5d1b7f33",
"name": "Source of wealth",
"description": "Where your funds come from.",
"is_start": false,
"created_at": "2026-11-08T10:30:00Z",
"updated_at": "2026-11-08T10:30:00Z"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl -X POST https://your-org-domain/kong/core/api/v2/onboarding-flows/{onboarding_flow_id}/forms\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"name": "Source of wealth",
"description": "Where your funds come from."
}'