Resources
Projects
A Project is a unit of work for a client. Projects move through five lifecycle states from initial lead to completed handover.
List projects
GET
/api/v1/projectsReturns projects in your org, newest first, cursor-paginated.
Query parameters:
limit,cursor— see pagination.status— optional filter, one ofLEAD,QUOTED,CONFIRMED,IN_PROGRESS,COMPLETED. Case-insensitive; invalid values are silently ignored.
terminal
curl "https://www.zengbook.com/api/v1/projects?status=IN_PROGRESS" \
-H "Authorization: Bearer zb_live_..."200 OK
{
"data": [
{
"id": "prj_01HX...",
"name": "Tampines BTO Reno — Blk 421A",
"status": "IN_PROGRESS",
"clientId": "cli_01HX...",
"budget": 65000,
"startDate": "2026-04-15T00:00:00.000Z",
"endDate": null,
"notes": null,
"createdAt": "2026-04-01T08:11:00.000Z",
"updatedAt": "2026-05-09T14:22:01.000Z"
}
],
"hasMore": false,
"nextCursor": null
}Get a project
GET
/api/v1/projects/{id}Returns a single project. 404 if the ID does not exist in your org.
terminal
curl https://www.zengbook.com/api/v1/projects/prj_01HX... \
-H "Authorization: Bearer zb_live_..."Fields
| Field | Type | Notes |
|---|---|---|
| id | string | Prefix prj_. |
| name | string | Project name. |
| status | enum | One of the values above. |
| clientId | string | Foreign key to Client. |
| budget | number | null | Float, in the org's currency. |
| startDate | string | null | ISO 8601 UTC. |
| endDate | string | null | ISO 8601 UTC. |
| notes | string | null | Internal notes. |
| createdAt | string | ISO 8601 UTC. |
| updatedAt | string | ISO 8601 UTC; updates on any mutation. |
Related webhook events
project.created— fires when a new project is added.project.status_changed— fires on every transition between status values.
Full payload shapes in the event reference.