Skip to main content
Forms define the advanced fields you can attach to contacts, such as consents, surveys, level of support, custom fields, presence status, and tasks.

Form types

Fetching a form

Use GET /v1/forms/type/{type} to list all forms of a given type (the canonical route). GET /forms/{id} retrieves a single form by its numeric ID. Passing a type string to /{arg} (e.g. /forms/consent) is deprecated — use /v1/forms/type/consent instead.

Reading advanced fields on a contact

When you fetch a contact, advanced fields appear as formdatas entries. This is the lower-level structure used to associate a contact with a form and a selected value:
  • form_id — the ID of the form (advanced field definition)
  • form_ref_id — the ID of the selected value/option within that form
Use GET /forms/{id} to decode the form definition and map form_ref_id to a human-readable value.

Setting advanced fields on a contact

POST /contacts and PATCH /contacts/{id} can also use formdatas to link a contact to a form and a selected value. Use GET /v1/forms/type/{type} to discover form definitions and GET /forms/{id} to decode the form and option IDs. For write payload examples and endpoint-specific contact update guidance, see Create and update contacts.
Last modified on June 8, 2026