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 (app → Developer, 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 # sandboxKeep secret keys server-side
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:writedeliverables: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.