Forms API
These are the Forms endpoints of the Keila API.
For Keila Cloud, the base URL is https://app.keila.io.
All endpoints, unless stated differently, require Bearer authentication.
/api/v1/forms Index forms
Retrieve all forms from your project.
Responses
200 Form response
- dataobject[]
- fieldsobject[]
- idstring
Form ID
Example:
"frm_12345" - namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
- metaobject
/api/v1/forms Create Form
Request body
- dataobject
- fieldsobject[]
- namestring required
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
Responses
200 Form response
- dataobject
- fieldsobject[]
- idstring
Form ID
Example:
"frm_12345" - namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
/api/v1/forms/{id} Show Form
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Form ID |
Responses
200 Form response
- dataobject
- fieldsobject[]
- idstring
Form ID
Example:
"frm_12345" - namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
/api/v1/forms/{id} Update Form
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Form ID |
Request body
- dataobject
- fieldsobject[]
- namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
Responses
200 Form response
- dataobject
- fieldsobject[]
- idstring
Form ID
Example:
"frm_12345" - namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
/api/v1/forms/{id} Update Form
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Form ID |
Request body
- dataobject
- fieldsobject[]
- namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
Responses
200 Form response
- dataobject
- fieldsobject[]
- idstring
Form ID
Example:
"frm_12345" - namestring
Example:
"My Form" - sender_idstring
Example:
"ms_12345" - settingsobject
- template_idstring
Example:
"tpl_12345"
/api/v1/forms/{id} Delete Form
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Form ID |
Responses
204 Form was deleted successfully or didn’t exist.
/api/v1/forms/{id}/actions/submit Submit Form
Submits a form. This is particularly useful if you want to start the Double-Opt-In process from the API or want to take advantage of the validation of custom fields provided by forms. **Note:** Even if `captcha_required` is set to `true`, submitting a Form from the API never requires a CAPTCHA.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Campaign ID |
Request body
- dataobject
- dataobject
Custom data fields
Example:
{"city":"Munich","interests":["chess","books"]} - emailstring required
Example:
"jane.doe@example.com" - external_idstring
Example:
"abc-123" - first_namestring
Example:
"Jane" - last_namestring
Example:
"Doe" - status"active" | "unsubscribed" | "unreachable"
Example:
"active"
Responses
200 Contact response
- dataobject
- dataobject
Custom data fields
Example:
{"city":"Munich","interests":["chess","books"]} - emailstring
Example:
"jane.doe@example.com" - external_idstring
Example:
"abc-123" - first_namestring
Example:
"Jane" - idstring
Contact ID
Example:
"c_12345" - inserted_atstring
Example:
"2026-05-25T08:53:38.862437Z" - last_namestring
Example:
"Doe" - status"active" | "unsubscribed" | "unreachable"
Example:
"active" - updated_atstring
Example:
"2026-05-25T08:53:38.862451Z"
202 Double-Opt-In response
- dataobject
- double_opt_in_requiredtrue