API Keys

Authentication

Every API request is authenticated with a secret API key sent as a Bearer token.

Issue an API key

Open Developer in your dashboard sidebar (appDeveloper, requires an org admin) and click Create API key. Pick an environment and the scopes the key needs. The secret is shown once — copy it immediately.

Keys look like:

cw_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   # production
cw_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   # sandbox

Keep secret keys server-side

Secret keys grant full scoped access to your organization. Never embed them in client-side code or commit them. For browser use, use the embeddable widget's publishable keys instead.

Send the token

Pass the key as a Bearer token on every request:

curl https://www.createworker.com/api/v1/account \
  -H "Authorization: Bearer cw_live_…"

A missing or invalid key returns 401; a key missing a required scope returns 403. Every response carries a CW-Request-Id header for support.

Scopes

Scopes narrow what a key can do. Grant the least a key needs:

account:read
workers:read     workers:write
tasks:read       tasks:write      tasks:cancel
approvals:write
deliverables:read deliverables:write
chat:read        chat:write
knowledge:read   knowledge:write
integrations:read integrations:write
webhooks:write

deliverables:write, chat:read, and chat:write are used by external workers — an outside agent (e.g. Claude Code) that runs a worker's tasks and answers its chat.

Idempotency & rate limits

Send an Idempotency-Key header on any POST that creates a resource; retrying with the same key replays the original response instead of creating duplicates. The SDK does this automatically.

Rate-limited requests return 429 with a Retry-After header — the SDK retries with backoff.