Skip to content

Projects

Projects represent client engagements, internal initiatives, or any body of work. Assign projects to workflows, track value, manage deliverables, and log time.

FieldTypeDescription
iduuidUnique identifier for the project
account_iduuidID of the account that owns the project
created_byuuidID of the user who created the project
namestringProject name
descriptionstringFree-form project description
stage_iduuid?ID of the workflow stage the project is currently in
stage_labelstringDisplay label of the current workflow stage (read-only, populated via join)
stage_colorstringColor of the current workflow stage (read-only, populated via join)
company_iduuid?ID of the company (client) associated with the project, if any
company_namestringName of the associated company (read-only, populated via join)
assigned_touuid?ID of the user the project is assigned to, if any
assigned_namestringName 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_retainerboolWhether 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)
notesstringFree-form notes about the project
tagsstring[]List of tags applied to the project
custom_fieldsobjectAccount-defined custom field values as a JSON object
workflow_iduuid?ID of the workflow (pipeline) the project belongs to
created_atdatetimeTimestamp the project was created, ISO 8601
updated_atdatetimeTimestamp the project was last updated, ISO 8601

Endpoint: projects-contacts-add

FieldTypeRequiredDescription
project_idstringYesID of the project to link the contact to
contact_idstringYesID of the contact to link
rolestringNoRole the contact plays on the project (free-form, e.g. Stakeholder)
Terminal window
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

FieldTypeRequiredDescription
project_idstringYesID of the project whose linked contacts to list
Terminal window
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

FieldTypeRequiredDescription
project_idstringYesID of the project to remove the contact from
contact_idstringYesID of the contact to unlink
Terminal window
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

FieldTypeRequiredDescription
namestringYesProject name (required)
descriptionstringNoFree-form project description
stage_idstring?NoID of the workflow stage to place the project in; defaults to the workflow’s first stage
workflow_idstring?NoID of the workflow (pipeline) for the project; defaults to the account’s default workflow
company_idstring?NoID of the company (client) to associate with the project
assigned_tostring?NoID of the user to assign the project to
valueint?NoProject value as an integer in the smallest currency unit (cents)
start_datestring?NoProject start date in ISO 8601 (YYYY-MM-DD) format
end_datestring?NoProject end date in ISO 8601 (YYYY-MM-DD) format
is_retainerboolNoWhether the project is an ongoing retainer engagement rather than fixed-scope
renewal_datestring?NoRenewal date for retainer projects in ISO 8601 (YYYY-MM-DD) format
currencystring?NoISO 4217 currency code for the project value; defaults to the account currency when a value is set
timezonestring?NoIANA timezone name for the project (e.g. America/New_York)
notesstringNoFree-form notes about the project
tagsstring[]NoList of tags to apply to the project
custom_fieldsobject?NoAccount-defined custom field values as a JSON object
Terminal window
curl -X POST https://api.driftwoodapp.com/api/projects-create \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "..."}'

Endpoint: projects-delete

FieldTypeRequiredDescription
idstringYesID of the project to delete
Terminal window
curl -X POST https://api.driftwoodapp.com/api/projects-delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'

Endpoint: projects-get

FieldTypeRequiredDescription
idstringYesID of the project to retrieve
Terminal window
curl -X POST https://api.driftwoodapp.com/api/projects-get \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'

Endpoint: projects-list

FieldTypeRequiredDescription
searchstringNoFull-text search query matched against project fields
tagsstring[]NoFilter to projects that have all of these tags
stage_idstring?NoFilter to projects in this workflow stage
company_idstring?NoFilter to projects associated with this company
assigned_tostring?NoFilter to projects assigned to this user
cursorstringNoOpaque pagination cursor from a previous response
limitintNoMaximum number of projects to return
Terminal window
curl -X POST https://api.driftwoodapp.com/api/projects-list \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'

Endpoint: projects-update

FieldTypeRequiredDescription
idstringYesID of the project to update
workflow_idstring?NoMove the project to this workflow (pipeline)
namestring?NoUpdated project name
descriptionstring?NoUpdated project description
stage_idstring?NoMove the project to this workflow stage
company_idstring?NoID of the company to associate; empty string clears it
assigned_tostring?NoID of the user to assign; empty string clears the assignment
valueint?NoProject value as an integer in the smallest currency unit (cents)
start_datestring?NoProject start date in ISO 8601 (YYYY-MM-DD) format
end_datestring?NoProject end date in ISO 8601 (YYYY-MM-DD) format
is_retainerbool?NoWhether the project is an ongoing retainer engagement rather than fixed-scope
renewal_datestring?NoRenewal date for retainer projects in ISO 8601 (YYYY-MM-DD) format
currencystring?NoISO 4217 currency code for the project value
timezonestring?NoIANA timezone name for the project (e.g. America/New_York)
notesstring?NoUpdated free-form notes
tagsstring[]NoReplacement list of tags for the project
custom_fieldsobject?NoCustom field values to merge into the project, as a JSON object
Terminal window
curl -X POST https://api.driftwoodapp.com/api/projects-update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'
CodeDescription
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