List Projects

Retrieve a paginated list of projects. Supports: - Pagination (`page_size`, `page`) - Date filtering (`updated_after`, `updated_before`) - Sorting (`order_by`) - Field search (`title`, `address`, `primaryName`, `primaryPhone`, `primaryEmail`) - Full text search (`q`) **Note:** If a project has no `title` (empty or whitespace-only), the response returns the parent account's `title` instead. The stored value is not modified — this is a read-time fallback only. Title-based search (`title` query param, full-text `q`, or the `/projects/search` endpoint with `prop=title&op=contains`) also matches projects whose own title is null/empty when the parent account's title matches the search term.

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_afterstringOptionalformat: "date-time"

Filter items updated after this timestamp (ISO 8601)

updated_beforestringOptionalformat: "date-time"

Filter items updated before this timestamp (ISO 8601)

order_byenumOptionalDefaults to asc
Sort order for results
Allowed values:
include_virtual_propertiesbooleanOptionalDefaults to false
Whether to include virtual properties in the response. Defaults to false unless explicitly set to true.
include_archivedbooleanOptionalDefaults to false

Whether to include archived (inactive) records in the response. By default only active records are returned.

qstringOptional
Full text search query
titlestringOptional
Title search query
addressstringOptional
Address search query
primaryNamestringOptional
Contact name search query
primaryPhonestringOptional
Contact phone search query
primaryEmailstringOptional
Contact email search query

Response

List of projects
idinteger
Unique identifier
createdAtstringformat: "date-time"
Creation timestamp
updatedAtstringformat: "date-time"
Last update timestamp
titlestring

Record title/name

descriptionstring or null
Record description
addresslist of strings

Record location/address

isActiveboolean
Whether the record is active
primaryEmailstring or nullformat: "email"
Primary contact email
primaryPhonestring or null
Primary contact phone
numberinteger

Record number (e.g., 1234)

custommap from strings to any
Custom fields
tradeslist of strings
Array of trade types
valuedouble or null
Project value
sizedouble or null
Project size
workflowIdinteger or null
Associated workflow ID
accountIdinteger or null
Associated account ID
statusenum

Status of the project:

  • ACTIVE - Project is active and in progress
  • ON_HOLD - Project is temporarily paused
  • CANCELLED - Project has been cancelled
  • COMPLETED - Project has been completed
Allowed values:
stageobject

Current stage information (Workflows 1.0).

This object is present only for records still using the original Stage-based workflow engine. When the project is managed by Workflows 2.0 (Phase engine) the stage object and related fields (stageId, timeInStageDays, slaStatus) are omitted.

phaseobject

Current phase information (Workflows 2.0).

This object replaces stage when a project is attached to the Phase-based workflow engine. If the project is still on Workflows 1.0 this object will be omitted.

workflowNamestring
Name of the associated workflow.

Errors

401
Unauthorized Error