Skip to main content

Forms

Overview

Forms are reusable field collections belonging to a company. They are used by activations, ticket types, and other features. The API supports listing, creating, and updating forms and their fields. Subscription: All plans, including Free.

Form field types

Field type values fall into two categories:

Custom fields

General-purpose fields you can add freely to any form. Use the type value in the API when creating or updating fields.

Common fields

Pre-defined field types that map to standard lead attributes (birthdate, phone, job title, etc.). Each common field type can appear at most once per form — adding a second field with the same common type returns a validation error.

Field attributes by type

Options format

For option and select fields, options accepts:
  • A plain string array (recommended): ["Option A", "Option B"]
  • An array of {label, value} objects (also accepted)

Endpoints

List forms

  • Method: GET
  • Path: /api/v1/{company}/forms
  • Scope: forms:read
  • Subscription: All plans, including Free

Path parameters

Query parameters

Response 200

Use the form id (sqid) as form_id when attaching a form to a ticket type.

Form field fields


Show form

  • Method: GET
  • Path: /api/v1/{company}/forms/{form}
  • Scope: forms:read
  • Subscription: All plans, including Free

Response 200

Single FormResource with fields array.

Create form

  • Method: POST
  • Path: /api/v1/{company}/forms/create
  • Scope: forms:create
  • Subscription: All plans, including Free

Request body

See the request body table below for top-level field requirements. Individual form fields are validated when included in the fields array.

Response 201

Returns the created FormResource.

Update form

  • Method: PATCH
  • Path: /api/v1/{company}/forms/{form}
  • Scope: forms:update
  • Subscription: All plans, including Free

Request body

  • Include id on a field to update an existing field.
  • Omit id to create a new field on the form.
  • Only name can be changed at the form level.

Response 200

Returns the updated FormResource.

Not implemented

  • DELETE /api/v1/{company}/forms/{form} — no route exists (forms:delete scope is registered but unused). Forms created via the API cannot be deleted through the API.