Skip to Content

Errors

All API errors follow a consistent JSON format. Use the code field for programmatic handling and the message field for human-readable context.

Error Response Format

{ "error": { "code": "BAD_REQUEST", "message": "Description of what went wrong", "status": 400 } }

Some errors include additional detail in a fields object for programmatic handling.

Error Codes

CodeHTTP StatusWhen it occurs
BAD_REQUEST400Invalid JSON, missing required fields, invalid enum values, or trying to PATCH status directly
UNAUTHORIZED401Missing or invalid API key
FORBIDDEN403Valid key but insufficient scopes, agent attempting a done transition the workspace disallows, or agent attempting to reopen a done/canceled task
NOT_FOUND404Resource doesn’t exist or doesn’t belong to your workspace
CONFLICT409Operation conflicts with current state
INVALID_TRANSITION422Status transition not allowed by the state machine
INTERNAL_ERROR500Unexpected server error

Error responses follow the format shown above. Use the code field for programmatic handling.

Valid Enum Values

For reference, here are all valid enum values used across the API:

Task Status

backlog, todo, in_progress, waiting, done, canceled

Task Priority

p0, p1, p2, p3

Task Effort

xs, s, m, l, xl

Project Status

not_started, planning, in_progress, blocked, complete, canceled

Initiative Status

planned, active, paused, completed, canceled