Update Project
Authentication
Path parameters
Query parameters
Request
Project title/name
An array containing a single string, which represents the full project location/address.
Status of the project:
ACTIVE- Project is active and in progressON_HOLD- Project is temporarily pausedCANCELLED- Project has been cancelledCOMPLETED- Project has been completed
Contact IDs only (no name, email, phone, etc.). The contacts must be created first via POST /contacts. The first ID in the array is treated as the primary contact.
Response
Record title/name
Record location/address
Record number (e.g., 1234)
User who created the record. Null when the record was created by a non-user actor (e.g. automation or a contact).
User who last edited a field on the record, derived from the changelog. Null when the record has never been edited or the last edit was made by a non-user actor.
Status of the project:
ACTIVE- Project is active and in progressON_HOLD- Project is temporarily pausedCANCELLED- Project has been cancelledCOMPLETED- Project has been completed
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.
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.
Only populated on GET (list, search, get by id) — omitted on create/update responses.
Only present on GET /projects and /projects/search when entered_phase_id/exited_phase_id is used to filter the results. Contains the project’s full phase-transition history (not just the matched phase) in compact form — use GET /projects/{project_id} for the complete phaseInstances with names, positions, and SLA info.
Only present on GET /projects and /projects/search when include_line_item_updates=true is passed together with updated_after and/or updated_before. The most recent updatedAt among the project’s own scope line items (estimate/scope items; line items on quotes/invoices are excluded). null if the project has no scope line items. Useful for telling whether a row matched the date window via its own updatedAt or via a line item edit.
Contacts associated with this project (independent of, and not inherited from, the parent account’s contacts). Set on create or update via the contacts request field. On GET requests, only populated when include_contacts=true is passed. Always populated on POST (create) and PATCH (update) responses. Ordered with the primary contact first, capped at 20 contacts.
