Create a User Data Capture form
/user-data-capture/formsCreates a form that starts Disabled, from the old camelCase body (conditionLogic, a condition's reference or againstFieldName). It answers 201 without a Location. Each field needs a type; put requiredness in validator, such as required|string.
Deprecated: withdrawn on 2027-06-30. POST /data-capture-forms replaces it; the Link header names it.
Request body
application/json, required · UserDataCaptureFormCreate
Form-builder field definitions to seed. Each field carries a
type,label,reference, optionalvalidator(includerequiredto make it mandatory),placeholder,order,options, etc. A field may also include aconditionsarray to show it only when another field's answer matches — each condition is{ reference: <the controlling field's reference>, operator (=, !=, >, <, >=, <=, or ?? = has-value), value }; omitvalueonly when operator is??. Conditions are display-only. A field may also includeconditionLogic(ANDorOR, defaultAND) saying how its conditions combine. Theone_ofandnot_one_ofoperators take a non-empty list of values instead of a single one. On a single-answer controlling field they match when the answer is (or is not) one of the listed values; on a multi-select controlling field they match when the answer includes at least one of them (or none of them).Form-builder page definitions.
{
"name": "UK Investor Profile (KYC/AML)",
"fields": [
{
"type": "DATE",
"label": "Date of birth",
"reference": "date_of_birth",
"validator": "required|date",
"order": 1
},
{
"type": "TEXT",
"label": "Nationality",
"reference": "nationality",
"placeholder": "e.g. British",
"validator": "required|string",
"order": 2
},
{
"type": "DROPDOWN",
"label": "Country of tax residency",
"reference": "tax_residency",
"validator": "required|string",
"options": [
"United Kingdom",
"Ireland",
"Other"
],
"order": 3
},
{
"type": "TEXT",
"label": "National Insurance number",
"reference": "national_insurance_number",
"validator": "nullable|string",
"order": 4
},
{
"type": "CHECKBOX",
"label": "I am a US person for tax purposes",
"reference": "us_person",
"order": 5
}
]
}Responses
{
"data": {
"id": "b7e3f9a1-4c6d-4e8f-90a1-2b3c4d5e6f70",
"name": "AML declaration",
"status": "Disabled",
"field_count": 0,
"fields": [],
"created_at": "2026-06-21T11:02:18+00:00",
"updated_at": "2026-06-21T11:02:18+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
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 POST https://your-org-domain/kong/core/api/v2/user-data-capture/forms\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"name": "UK Investor Profile (KYC/AML)",
"fields": [
{
"type": "DATE",
"label": "Date of birth",
"reference": "date_of_birth",
"validator": "required|date",
"order": 1
},
{
"type": "TEXT",
"label": "Nationality",
"reference": "nationality",
"placeholder": "e.g. British",
"validator": "required|string",
"order": 2
},
{
"type": "DROPDOWN",
"label": "Country of tax residency",
"reference": "tax_residency",
"validator": "required|string",
"options": [
"United Kingdom",
"Ireland",
"Other"
],
"order": 3
},
{
"type": "TEXT",
"label": "National Insurance number",
"reference": "national_insurance_number",
"validator": "nullable|string",
"order": 4
},
{
"type": "CHECKBOX",
"label": "I am a US person for tax purposes",
"reference": "us_person",
"order": 5
}
]
}'