Projects represent client engagements, internal initiatives, or any body of work. Assign projects to workflows, track value, manage deliverables, and log time.
Field Type Description iduuid Unique identifier for the project account_iduuid ID of the account that owns the project created_byuuid ID of the user who created the project namestring Project name descriptionstring Free-form project description stage_iduuid? ID of the workflow stage the project is currently in stage_labelstring Display label of the current workflow stage (read-only, populated via join) stage_colorstring Color of the current workflow stage (read-only, populated via join) company_iduuid? ID of the company (client) associated with the project, if any company_namestring Name of the associated company (read-only, populated via join) assigned_touuid? ID of the user the project is assigned to, if any assigned_namestring Name of the assigned user (read-only, populated via join) valueint? Project value as an integer in the smallest currency unit (cents) start_datestring? Project start date in ISO 8601 (YYYY-MM-DD) format end_datestring? Project end date in ISO 8601 (YYYY-MM-DD) format is_retainerbool Whether the project is an ongoing retainer engagement rather than a fixed-scope project renewal_datestring? Renewal date for retainer projects in ISO 8601 (YYYY-MM-DD) format currencystring? ISO 4217 currency code for the project value (e.g. USD) timezonestring? IANA timezone name for the project (e.g. America/New_York) notesstring Free-form notes about the project tagsstring[] List of tags applied to the project custom_fieldsobject Account-defined custom field values as a JSON object workflow_iduuid? ID of the workflow (pipeline) the project belongs to created_atdatetime Timestamp the project was created, ISO 8601 updated_atdatetime Timestamp the project was last updated, ISO 8601
Endpoint: projects-contacts-add
Field Type Required Description project_idstring Yes ID of the project to link the contact to contact_idstring Yes ID of the contact to link rolestring No Role the contact plays on the project (free-form, e.g. Stakeholder)
curl -X POST https://api.driftwoodapp.com/api/projects-contacts-add \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "...", "contact_id": "..."} '
Endpoint: projects-contacts-list
Field Type Required Description project_idstring Yes ID of the project whose linked contacts to list
curl -X POST https://api.driftwoodapp.com/api/projects-contacts-list \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "..."} '
Endpoint: projects-contacts-remove
Field Type Required Description project_idstring Yes ID of the project to remove the contact from contact_idstring Yes ID of the contact to unlink
curl -X POST https://api.driftwoodapp.com/api/projects-contacts-remove \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "...", "contact_id": "..."} '
Endpoint: projects-create
Field Type Required Description namestring Yes Project name (required) descriptionstring No Free-form project description stage_idstring? No ID of the workflow stage to place the project in; defaults to the workflow’s first stage workflow_idstring? No ID of the workflow (pipeline) for the project; defaults to the account’s default workflow company_idstring? No ID of the company (client) to associate with the project assigned_tostring? No ID of the user to assign the project to valueint? No Project value as an integer in the smallest currency unit (cents) start_datestring? No Project start date in ISO 8601 (YYYY-MM-DD) format end_datestring? No Project end date in ISO 8601 (YYYY-MM-DD) format is_retainerbool No Whether the project is an ongoing retainer engagement rather than fixed-scope renewal_datestring? No Renewal date for retainer projects in ISO 8601 (YYYY-MM-DD) format currencystring? No ISO 4217 currency code for the project value; defaults to the account currency when a value is set timezonestring? No IANA timezone name for the project (e.g. America/New_York) notesstring No Free-form notes about the project tagsstring[] No List of tags to apply to the project custom_fieldsobject? No Account-defined custom field values as a JSON object
curl -X POST https://api.driftwoodapp.com/api/projects-create \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: projects-delete
Field Type Required Description idstring Yes ID of the project to delete
curl -X POST https://api.driftwoodapp.com/api/projects-delete \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: projects-get
Field Type Required Description idstring Yes ID of the project to retrieve
curl -X POST https://api.driftwoodapp.com/api/projects-get \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: projects-list
Field Type Required Description searchstring No Full-text search query matched against project fields tagsstring[] No Filter to projects that have all of these tags stage_idstring? No Filter to projects in this workflow stage company_idstring? No Filter to projects associated with this company assigned_tostring? No Filter to projects assigned to this user cursorstring No Opaque pagination cursor from a previous response limitint No Maximum number of projects to return
curl -X POST https://api.driftwoodapp.com/api/projects-list \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: projects-update
Field Type Required Description idstring Yes ID of the project to update workflow_idstring? No Move the project to this workflow (pipeline) namestring? No Updated project name descriptionstring? No Updated project description stage_idstring? No Move the project to this workflow stage company_idstring? No ID of the company to associate; empty string clears it assigned_tostring? No ID of the user to assign; empty string clears the assignment valueint? No Project value as an integer in the smallest currency unit (cents) start_datestring? No Project start date in ISO 8601 (YYYY-MM-DD) format end_datestring? No Project end date in ISO 8601 (YYYY-MM-DD) format is_retainerbool? No Whether the project is an ongoing retainer engagement rather than fixed-scope renewal_datestring? No Renewal date for retainer projects in ISO 8601 (YYYY-MM-DD) format currencystring? No ISO 4217 currency code for the project value timezonestring? No IANA timezone name for the project (e.g. America/New_York) notesstring? No Updated free-form notes tagsstring[] No Replacement list of tags for the project custom_fieldsobject? No Custom field values to merge into the project, as a JSON object
curl -X POST https://api.driftwoodapp.com/api/projects-update \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Code Description projects.invalid_idInvalid id projects.invalid_contact_idInvalid contact id projects.not_foundNot found projects.contact_not_foundContact not found projects.name_requiredName required projects.invalid_workflow_idInvalid workflow id projects.invalid_stage_idInvalid stage id projects.invalid_stageInvalid stage projects.invalid_company_idInvalid company id projects.invalid_assigned_toInvalid assigned to projects.invalid_custom_fieldsInvalid custom fields