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.

get /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
post /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"

get /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"

put /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"

patch /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"

delete /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.

post /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