Developer API

Build integrations and plugins on CrewKeel. The REST API covers jobs, estimates, invoices, and customers. When you are ready, submit your plugin to the marketplace.

Getting started

  1. Open Settings, then API and Integrations, and create a token. The full token is shown once, so copy it immediately.
  2. Send the token on every request as an Authorization header: Authorization: Bearer ck_live_...
  3. Base URL is /api/v1. All responses are JSON. Errors use the shape { error: { code, message } }.

Base URL: /api/v1

Auth

Send your token as a bearer header on every request. Tokens are created in Settings, then API and Integrations (a Pro plan or above).

curl https://crewkeel.com/api/v1/me \
  -H "Authorization: Bearer ck_live_..."

Errors always use this shape:

{ "error": { "code": "forbidden_scope", "message": "This token is missing the required scope: jobs:write." } }

Endpoint reference

Identity

GET/api/v1/me

The token's contractor and granted scopes.

GET/api/v1/scopes

Granted scopes plus the full scope catalog.

Jobs

GET/api/v1/jobs

List jobs, newest first.

jobs:read
GET/api/v1/jobs/{ref}

A single job by reference or id, with line items and documents.

jobs:read
POST/api/v1/jobs

Create a job. Requires a title.

jobs:write
PATCH/api/v1/jobs/{ref}

Update a job's status.

jobs:write

Estimates

GET/api/v1/estimates

List estimates across your jobs.

documents:read
GET/api/v1/estimates/{id}

A single estimate.

documents:read
POST/api/v1/estimates

Create an estimate from a job's line items. Pass send: true (with documents:send) to issue a PDF.

documents:write

Invoices

GET/api/v1/invoices

List invoices across your jobs.

documents:read
GET/api/v1/invoices/{id}

A single invoice.

documents:read
POST/api/v1/invoices

Create an invoice from a job's line items. Pass send: true (with documents:send) to issue a PDF.

documents:write

Customers

GET/api/v1/customers

List customers seen across your jobs.

customers:read
POST/api/v1/customers

Create a customer. Requires display_name.

customers:write

Rate limits

Each token is limited to 100 requests per minute. Exceeding it returns 429 with code rate_limited.

Scopes

jobs:readList and read jobs.
jobs:writeCreate jobs and update job status.
documents:readList and read estimates and invoices.
documents:writeCreate estimates and invoices.
documents:sendIssue and send estimates and invoices as PDFs.
customers:readList customers.
customers:writeCreate customers.