Scopes
Every key carries one scope. Scopes nest:
admin can do everything write can, and write
everything read can.
| Scope | Allows | Typical use |
|---|---|---|
read | Every GET: list and retrieve. | Reporting, dashboards, exports, a BI tool. |
write | read, plus create, update and delete business records. | Syncing a CRM, creating tasks from a form, Zapier. |
admin | write, plus managing API keys, webhook endpoints and the business's details. | Your own provisioning scripts. Rarely needed. |
Choose the narrowest scope that works. A
read key cannot form a request that changes anything, which is the
point of having one.Checking a key's scope
GET /v1/me returns the calling key's scope. A request that needs
more than the key carries answers 403 forbidden and
changes nothing.
Response · 403
{
"error": {
"type": "forbidden",
"message": "This API key does not carry the \"write\" scope."
},
"meta": { "request_id": "req_316f1c2a9e0b7d4c" }
}
Endpoints by scope
Generated from the live route table.
read
| Endpoint | What it does |
|---|---|
GET /v1/ping | Check the API is reachable |
GET /v1/me | Inspect the calling API key |
GET /v1/business | Retrieve the business |
GET /v1/contacts | List contacts |
GET /v1/contacts/{id} | Retrieve a contact |
GET /v1/contacts/{id}/notes | List a contact's notes |
GET /v1/deals | List deals |
GET /v1/deals/forecast | Pipeline forecast |
GET /v1/deals/{id} | Retrieve a deal |
GET /v1/deal-statuses | List pipeline statuses |
GET /v1/projects | List projects |
GET /v1/projects/{id} | Retrieve a project |
GET /v1/projects/{id}/milestones | List a project's milestones |
GET /v1/projects/{id}/deliverables | List a project's deliverables |
GET /v1/projects/{id}/scope-items | List a project's scope |
GET /v1/projects/{id}/requests | List requests to the client |
GET /v1/projects/{id}/clients | List the client logins on a project |
GET /v1/projects/{id}/updates | List client updates |
GET /v1/projects/{id}/portal | Retrieve the client portal settings |
GET /v1/tasks | List tasks |
GET /v1/tasks/{id} | Retrieve a task |
GET /v1/task-statuses | List task statuses |
GET /v1/task-categories | List task categories |
GET /v1/planner/events | List planner events |
GET /v1/planner/unscheduled | List the backlog |
GET /v1/meetings | List the calendar (meetings and bookings) |
GET /v1/meetings/{id} | Retrieve a meeting |
GET /v1/meetings/{id}/notes | Read a meeting's notes |
GET /v1/bookings | List bookings |
GET /v1/bookings/{id} | Retrieve a booking |
GET /v1/availability | Check a product's free slots |
GET /v1/products | List products |
GET /v1/products/{id} | Retrieve a product |
GET /v1/products/{id}/schedules | List a product's schedules |
GET /v1/categories | List product categories |
GET /v1/categories/{id} | Retrieve a product category |
GET /v1/packages | List packages |
GET /v1/packages/{id} | Retrieve a package |
GET /v1/coupons | List coupons |
GET /v1/coupons/{id} | Retrieve a coupon |
GET /v1/coupons/{id}/usage | A coupon's redemptions |
GET /v1/invoices | List invoices |
GET /v1/invoices/{id} | Retrieve an invoice |
GET /v1/invoices/{id}/line-items | List an invoice's line items |
GET /v1/invoices/{id}/payments | List an invoice's payments |
GET /v1/invoices/{id}/pdf | Download an invoice as PDF |
GET /v1/invoices/{id}/pay-link | Get an invoice's pay link |
GET /v1/proposals | List proposals |
GET /v1/proposals/{id} | Retrieve a proposal |
GET /v1/proposals/{id}/pdf | Download a proposal as PDF |
GET /v1/discoveries | List discoveries |
GET /v1/discoveries/{id} | Retrieve a discovery |
GET /v1/tickets | List tickets |
GET /v1/tickets/{id} | Retrieve a ticket |
GET /v1/tickets/{id}/replies | List a ticket's replies |
GET /v1/ticket-categories | List ticket categories |
GET /v1/forms | List forms |
GET /v1/forms/{id} | Retrieve a form |
GET /v1/forms/{id}/submissions | List a form's submissions |
GET /v1/submissions/{id} | Retrieve a submission |
GET /v1/subscribers | List subscribers |
GET /v1/campaigns | List campaigns |
GET /v1/campaigns/{id} | Retrieve a campaign |
GET /v1/staff | List staff |
GET /v1/notifications | List notifications |
GET /v1/events | List webhook event types |
write
| Endpoint | What it does |
|---|---|
POST /v1/contacts | Create a contact |
PATCH /v1/contacts/{id} | Update a contact |
DELETE /v1/contacts/{id} | Delete a contact |
POST /v1/contacts/{id}/notes | Add a note to a contact |
DELETE /v1/contacts/{id}/notes/{note_id} | Delete a contact note |
PATCH /v1/deals/{id}/status | Move a deal to another status |
POST /v1/deal-statuses | Create a pipeline status |
PATCH /v1/deal-statuses/{id} | Update a pipeline status |
DELETE /v1/deal-statuses/{id} | Delete a pipeline status |
POST /v1/projects | Create a project |
PATCH /v1/projects/{id} | Update a project |
DELETE /v1/projects/{id} | Delete a project |
POST /v1/projects/{id}/milestones | Add a milestone |
PATCH /v1/projects/{id}/milestones/{milestone_id} | Update a milestone |
DELETE /v1/projects/{id}/milestones/{milestone_id} | Delete a milestone |
POST /v1/projects/{id}/deliverables | Add a deliverable |
PATCH /v1/projects/{id}/deliverables/{deliverable_id} | Update a deliverable |
DELETE /v1/projects/{id}/deliverables/{deliverable_id} | Delete a deliverable |
POST /v1/projects/{id}/scope-items | Add a scope item |
PATCH /v1/projects/{id}/scope-items/{scope_id} | Update a scope item |
DELETE /v1/projects/{id}/scope-items/{scope_id} | Delete a scope item |
POST /v1/projects/{id}/requests | Ask the client for something |
DELETE /v1/projects/{id}/requests/{request_id} | Delete a request |
POST /v1/projects/{id}/clients | Give a client login access |
DELETE /v1/projects/{id}/clients/{user_id} | Remove a client login |
POST /v1/projects/{id}/updates | Draft a client update |
POST /v1/projects/{id}/updates/{update_id}/send | Send a client update |
POST /v1/projects/{id}/portal | Create or regenerate the portal link |
POST /v1/tasks | Create a task |
PATCH /v1/tasks/{id} | Update a task |
DELETE /v1/tasks/{id} | Delete a task |
POST /v1/task-statuses | Create a task status |
PATCH /v1/task-statuses/{id} | Update a task status |
DELETE /v1/task-statuses/{id} | Delete a task status |
POST /v1/task-categories | Create a task category |
PATCH /v1/task-categories/{id} | Update a task category |
DELETE /v1/task-categories/{id} | Delete a task category |
POST /v1/tasks/{id}/schedule | Schedule a task |
DELETE /v1/tasks/{id}/schedule | Unschedule a task |
POST /v1/meetings | Create a meeting |
PATCH /v1/meetings/{id} | Update a meeting |
PUT /v1/meetings/{id}/status | Set a meeting's status |
PATCH /v1/meetings/{id}/status | Set a meeting's status (PATCH) |
POST /v1/meetings/{id}/notes | Add to a meeting's notes |
PATCH /v1/bookings/{id}/status | Set a booking's status |
POST /v1/bookings/{id}/payment-link | Create a payment link for the balance |
POST /v1/bookings/{id}/payment-reminder | Email a balance reminder |
POST /v1/bookings/{id}/cash-payment | Record a cash payment |
POST /v1/bookings/{id}/refund | Refund a booking |
POST /v1/products | Create a product |
PATCH /v1/products/{id} | Update a product |
DELETE /v1/products/{id} | Delete a product |
PUT /v1/products/{id}/schedules | Replace a product's schedules |
POST /v1/categories | Create a product category |
PATCH /v1/categories/{id} | Update a product category |
DELETE /v1/categories/{id} | Delete a product category |
POST /v1/packages | Create a package |
PATCH /v1/packages/{id} | Update a package |
DELETE /v1/packages/{id} | Delete a package |
POST /v1/coupons | Create a coupon |
PATCH /v1/coupons/{id} | Update a coupon |
DELETE /v1/coupons/{id} | Delete a coupon |
POST /v1/invoices | Create a draft invoice |
PATCH /v1/invoices/{id} | Update a draft invoice |
DELETE /v1/invoices/{id} | Delete a draft invoice |
POST /v1/invoices/{id}/line-items | Add a line item |
PATCH /v1/invoices/{id}/line-items/{line_id} | Update a line item |
DELETE /v1/invoices/{id}/line-items/{line_id} | Remove a line item |
POST /v1/invoices/{id}/issue | Issue an invoice |
POST /v1/invoices/{id}/send | Email an invoice again |
POST /v1/invoices/{id}/void | Void an invoice |
POST /v1/invoices/{id}/payments | Record a payment |
POST /v1/proposals | Create a proposal |
PATCH /v1/proposals/{id} | Update a draft proposal |
DELETE /v1/proposals/{id} | Delete a proposal |
POST /v1/proposals/{id}/send | Send a proposal |
POST /v1/proposals/{id}/regenerate-link | Issue a new client link |
POST /v1/proposals/{id}/convert | Create the project from an accepted proposal |
POST /v1/proposals/{id}/deposit-invoice | Issue a deposit invoice |
POST /v1/discoveries | Create a discovery |
PATCH /v1/discoveries/{id} | Update a discovery |
DELETE /v1/discoveries/{id} | Delete a discovery |
POST /v1/discoveries/{id}/proposal | Create a proposal from the brief |
POST /v1/discoveries/{id}/extract | Extract a brief with AI |
POST /v1/discoveries/{id}/research | Write research notes with AI |
POST /v1/discoveries/{id}/questions | Draft client questions with AI |
POST /v1/tickets | Open a ticket |
PATCH /v1/tickets/{id} | Update a ticket |
DELETE /v1/tickets/{id} | Delete a ticket |
POST /v1/tickets/{id}/replies | Reply to a ticket |
POST /v1/subscribers | Add a subscriber |
DELETE /v1/subscribers/{id} | Remove a subscriber |
POST /v1/campaigns | Create a draft campaign |
PATCH /v1/campaigns/{id} | Update a draft campaign |
POST /v1/campaigns/{id}/send | Send a campaign |
POST /v1/notifications/read-all | Mark every notification read |
POST /v1/notifications/{id}/read | Mark a notification read |
admin
| Endpoint | What it does |
|---|---|
PATCH /v1/business | Update the business |
POST /v1/staff/{id} | Add a user to the business |
PATCH /v1/staff/{id} | Change a staff member's role |
DELETE /v1/staff/{id} | Remove a user from the business |
GET /v1/api-keys | List API keys |
POST /v1/api-keys | Create an API key |
DELETE /v1/api-keys/{id} | Revoke an API key |
GET /v1/webhook-endpoints | List webhook endpoints |
POST /v1/webhook-endpoints | Create a webhook endpoint |
GET /v1/webhook-endpoints/{id} | Retrieve a webhook endpoint |
PATCH /v1/webhook-endpoints/{id} | Update a webhook endpoint |
DELETE /v1/webhook-endpoints/{id} | Delete a webhook endpoint |
POST /v1/webhook-endpoints/{id}/rotate-secret | Rotate an endpoint's signing secret |
POST /v1/webhook-endpoints/{id}/test | Send a test event |
GET /v1/webhook-endpoints/{id}/deliveries | List recent deliveries |
POST /v1/webhook-endpoints/{id}/deliveries/{delivery_id}/retry | Redeliver |