Console API
Forms
8 endpoints.
/api/v1/admin/businesses/{business_id}/form_submissionsList all form submissions
List all form submissions; cursor is the last ``id`` from the previous page (UUID v7).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
form_type | query | string | null | Filter by form identity (built-in or custom slug, e.g. lead, demo-request) |
limit | query | integer | default 25 |
cursor | query | string | null | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_list_FormSubmissionSummary__| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | FormSubmissionSummary[] | FormSubmissionSummary[] fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fields
|
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/form_submissions/{submission_id}Get form submission details
Get detailed form submission including form info.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
submission_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_FormSubmissionDetail_| Field | Type | Description | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||
datarequired | FormSubmissionDetail | FormSubmissionDetail fields
| |||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | |||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/form_submissions/{submission_id}Delete form submission
Soft delete a form submission. 404 if not found.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
submission_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
204Successful Response400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/formsList forms
List forms for a business (optionally filtered by status) with submission counts.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
status | query | string | null | Filter by status: draft, live, archived |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_list_FormSummary__| Field | Type | Description | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||
datarequired | FormSummary[] | FormSummary[] fields
| |||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | |||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/formsCreate a custom form
Create a custom form for a business.
``form_type`` is the immutable per-business identity; when omitted it is slugified from ``name``. A reserved built-in identity (``lead``, …) is rejected (400 RESERVED_FORM_TYPE); a duplicate identity → 409 FORM_ALREADY_EXISTS. New forms default to ``draft``. Snapshots are lazy: a draft gets no snapshot; the first snapshot is created when the form is created (or later set) ``live``.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonFormCreateRequest| Field | Type | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
namerequired | string | |||||||||||||||||||||||||||||||
form_type | string | null | |||||||||||||||||||||||||||||||
fields | (FormFieldSchema | FormFieldSchema[])[] | (FormFieldSchema | FormFieldSchema[])[] fieldsFormFieldSchemaFormFieldSchema (not expanded) FormFieldSchema[]Nested object (not expanded) | ||||||||||||||||||||||||||||||
settings | FormSettingsSchema | null | FormSettingsSchema fields
| ||||||||||||||||||||||||||||||
status | FormStatus | default "draft" | ||||||||||||||||||||||||||||||
description | string | null | |||||||||||||||||||||||||||||||
submit_button_label | string | null | |||||||||||||||||||||||||||||||
confirmation_message | string | null |
Responses
201Successful Responseapplication/jsonSuccessResponse_FormData_| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||
datarequired | FormData | FormData fields
| |||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | |||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/forms/{form_id}Get form details
Get detailed form including fields, settings, and submission count.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
form_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_FormData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | FormData | FormData fieldsFormData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/forms/{form_id}Update form
Update a form's name, fields, and/or settings.
Partial update: omitted keys are left unchanged. ``form_type`` is immutable; fields marked ``fixed: true`` cannot be removed, modified, or unmarked unless ``bypass_fixed: true`` is sent — which requires the caller to be a **platform admin** (role_id == 100). Changing a **custom** form's ``settings`` likewise requires platform admin (a no-op settings payload is allowed). 404 if the form does not exist.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
form_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonFormUpdateRequest| Field | Type | Description |
|---|---|---|
name | string | null | |
fields | (FormFieldSchema | FormFieldSchema[])[] | null | (FormFieldSchema | FormFieldSchema[])[] | null fieldsFormFieldSchemaFormFieldSchema (not expanded) FormFieldSchema[]Nested object (not expanded) |
settings | FormSettingsSchema | null | FormSettingsSchema fieldsFormSettingsSchema, expanded above. |
status | FormStatus | null | |
description | string | null | |
submit_button_label | string | null | |
confirmation_message | string | null | |
bypass_fixed | boolean | default false |
Responses
200Successful Responseapplication/jsonSuccessResponse_FormData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | FormData | FormData fieldsFormData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/forms/{form_id}/submissionsList submissions for a form
List submissions for a specific form; cursor is the last ``id`` from the previous page (UUID v7).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
form_idrequired | path | string (uuid) | |
limit | query | integer | default 25 |
cursor | query | string | null | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_list_FormSubmissionSummary__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | FormSubmissionSummary[] | FormSubmissionSummary[] fieldsFormSubmissionSummary, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.