Deliverables are the individual work items within a project. Create checklists, track completion, reorder by priority, and request client approvals.
| Field | Type | Description |
|---|
id | uuid | Unique identifier for the deliverable |
project_id | uuid | ID of the project this deliverable belongs to |
account_id | uuid | ID of the account that owns the deliverable |
title | string | Deliverable title |
is_completed | bool | Whether the deliverable has been marked complete |
completed_at | datetime? | Timestamp the deliverable was completed, ISO 8601; null if not completed |
display_order | int | Ordering position of the deliverable within its project |
approval_status | string | Client approval state of the deliverable One of: none, pending, approved, changes_requested |
approved_at | datetime? | Timestamp the deliverable was approved, ISO 8601; null if not approved |
created_at | datetime | Timestamp the deliverable was created, ISO 8601 |
updated_at | datetime | Timestamp the deliverable was last updated, ISO 8601 |
Endpoint: deliverables-create
| Field | Type | Required | Description |
|---|
project_id | string | Yes | ID of the project to add the deliverable to |
title | string | Yes | Deliverable title (required) |
curl -X POST https://api.driftwoodapp.com/api/deliverables-create \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project_id": "...", "title": "..."}'
Endpoint: deliverables-delete
| Field | Type | Required | Description |
|---|
id | string | Yes | ID of the deliverable to delete |
curl -X POST https://api.driftwoodapp.com/api/deliverables-delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
Endpoint: deliverables-list
| Field | Type | Required | Description |
|---|
project_id | string | Yes | ID of the project whose deliverables to list |
curl -X POST https://api.driftwoodapp.com/api/deliverables-list \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project_id": "..."}'
Endpoint: deliverables-reorder
| Field | Type | Required | Description |
|---|
project_id | string | Yes | ID of the project whose deliverables are being reordered |
ids | string[] | Yes | Deliverable IDs in the desired display order |
curl -X POST https://api.driftwoodapp.com/api/deliverables-reorder \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project_id": "...", "ids": []}'
Endpoint: deliverables-toggle
| Field | Type | Required | Description |
|---|
id | string | Yes | ID of the deliverable to toggle between complete and incomplete |
curl -X POST https://api.driftwoodapp.com/api/deliverables-toggle \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
Endpoint: deliverables-update
| Field | Type | Required | Description |
|---|
id | string | Yes | ID of the deliverable to update |
title | string | Yes | Updated deliverable title (required) |
curl -X POST https://api.driftwoodapp.com/api/deliverables-update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "...", "title": "..."}'
| Code | Description |
|---|
deliverables.invalid_project_id | Invalid project id |
deliverables.title_required | Title required |
deliverables.invalid_id | Invalid id |
deliverables.not_found | Not found |