Zeng Book
ProductIndustriesIntegrationsPricingResources
Sign inContact salesTry it free
Introduction
  • Overview
  • Quickstart
API reference
  • Authentication
  • Errors
  • Rate limits
  • Pagination
  • Interactive explorer
Resources
  • Organization
  • Leads
  • Clients
  • Projects
  • Quotations
  • Invoices
Integrations
  • Overview
  • Webhooks
  • Public portal
  • Zapier
  • Make / n8n recipes
  • Xero (coming soon)

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/projects

Returns projects in your org, newest first, cursor-paginated.

Query parameters:

  • limit, cursor — see pagination.
  • status — optional filter, one of LEAD, 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

FieldTypeNotes
idstringPrefix prj_.
namestringProject name.
statusenumOne of the values above.
clientIdstringForeign key to Client.
budgetnumber | nullFloat, in the org's currency.
startDatestring | nullISO 8601 UTC.
endDatestring | nullISO 8601 UTC.
notesstring | nullInternal notes.
createdAtstringISO 8601 UTC.
updatedAtstringISO 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.