Skip to navigation

List Forms

Retrieve a paginated list of forms across every project and opportunity in your company, including forms on account work orders. Field values are not included; fetch them with GET /forms/{form_id}.

Supports:

  • Pagination (page_size, page)
  • Date filtering (updated_after, updated_before)
  • Filtering by project_id, opportunity_id, account_id, work_order_id, template_id and status
  • Sorting by updated_at or created_at (order_by, order), oldest updated first by default

Note: Archiving a form doesn’t update its updatedAt, so updated_after doesn’t pick up archive changes.

Authentication

x-api-keystring
API Key authentication via header

Query parameters

page_sizeintegerOptional1-100Defaults to 20

Number of items per page (max 100)

pageintegerOptional>=1Defaults to 1

Page number (1-based)

updated_afterstringOptional

Only return forms updated after this timestamp (ISO 8601). Archiving a form doesn’t update its updatedAt, so updated_after doesn’t pick up archive changes.

updated_beforestringOptional

Only return forms updated before this timestamp (ISO 8601). Must not be earlier than updated_after.

project_idintegerOptional

Only return forms on this project. Use only one of project_id, opportunity_id or account_id.

opportunity_idintegerOptional

Only return forms on this opportunity. Use only one of project_id, opportunity_id or account_id.

account_idintegerOptional

Only return forms on this account’s work orders (forms can’t be added to an account directly). Use only one of project_id, opportunity_id or account_id.

work_order_idintegerOptional
Only return forms attached to this work order
template_idintegerOptional
Only return forms created from this form template
statusenumOptional
Only return forms with this status
include_archivedbooleanOptionalDefaults to false
Include forms whose file is archived. By default archived forms are excluded.
order_byenumOptionalDefaults to updated_at
Field to sort by. Ties are broken by form id so pages never overlap.
Allowed values:
orderenumOptionalDefaults to asc
Sort direction. Defaults to oldest first.
Allowed values:

Response

List of forms
idinteger
Form identifier
namestring or null
Form name
templateIdinteger or null
The form template this form was created from
projectIdinteger or null

The project the form is on; null if it’s on an opportunity or account

opportunityIdinteger or null

The opportunity the form is on; null otherwise

accountIdinteger or null

The account whose work order the form is on; null otherwise

workOrderIdinteger or null

The work order the form is attached to; null if it isn’t on a work order

statusenum or null
isCompletedboolean
completedAtstring or nullformat: "date-time"
isArchivedboolean

Whether the form’s file is archived. Only true when include_archived=true.

createdAtstringformat: "date-time"
updatedAtstringformat: "date-time"

When the form last changed, including answer edits. Archiving a form doesn’t update its updatedAt, so updated_after doesn’t pick up archive changes.

Errors

400
Bad Request Error
401
Unauthorized Error
500
Internal Server Error
502
Bad Gateway Error