Beta
Guides / Errors

Errors

Every machine error code the API can return.

Errors share one shape: an HTTP status, a stable machine code, a human message, and the request_id of the call (also returned in the x-request-id header — quote it in support tickets).

{
"error": { "code": "summary.not_found", "message": "Summary not found" },
"request_id": "5f0c…"
}

Codes are contracts: stable strings you can branch on. Messages are for humans and may change — never parse them.

Registry

Auth & gating

CodeStatusWhen
auth.no_key401Keyed endpoint called without an Authorization header
auth.invalid_key401Malformed, unknown, or revoked key — uniform, no oracle
auth.unauthenticated401include_account_feeds present on /v1/summarize without a key
subscription.api_not_enabled403Plan lacks API access — every keyed endpoint
subscription.inactive403Chat send with an inactive subscription

Validation & routing

CodeStatusWhen
validation.invalid_input400Malformed ids, bounds, tri-states, unknown actions
validation.body_too_large400Body exceeds 256KB (400, not 413)
route.not_found404Nonexistent route
internal.error500Unhandled failure — sanitized; internals go to telemetry only

Rate limits

CodeStatusWhen
rate_limit.interval429Second call < 3s after the previous (+ exact Retry-After)
rate_limit.hourly_budget429500/hour exhausted
rate_limit.ip_per_min429Anonymous 30/min/IP exhausted
rate_limit.free_tier_daily429Keyless daily/global free-tier caps
rate_limit.daily_messages429Chat daily message cap
rate_limit.resend_window429Email verification resend inside the 5-minute window
rate_limit.support_messages429Support message 10-per-10-min user cap (+ Retry-After)

Summaries

CodeStatusWhen
summary.not_found404Foreign or unknown briefing — uniform across internal, share, and keyless-run ids
summary.not_completed400Sharing a briefing that isn't completed successfully
summary.not_saveable400Saving a briefing with no content
summary.not_shared400Unsharing a briefing that has no share id
summary.already_sent409send-early on a delivered briefing
summary.delivery_in_progress409send-early while delivery is mid-flight
summary.not_automatic422send-early on a non-automatic briefing
summary.not_ready422send-early on a briefing still generating
summary.dispatch_failed502The generation workflow failed to dispatch

Summarize

CodeStatusWhen
summarize.no_input_sources400Keyed trigger with no inputs
api.run_in_progress409A previous on-demand run is still in flight

Chat

CodeStatusWhen
chat.turn_in_progress409A live turn is running
chat.unresolved_failed_turn409A prior failed turn needs retry or delete first
chat.not_retryable409Retry on a turn that didn't fail
chat.no_pending_action409Approve/deny with nothing pending
chat.compacted400Message is part of a saved summary (compaction boundary)
chat.compaction_in_progress409A compaction roll is in flight
chat.not_last400Edit/delete target isn't the latest exchange
chat.message_not_found404Foreign or unknown message id
chatbot.disabled403Chatbot is disabled for the account

Feeds

CodeStatusWhen
feed.missing_params400url_or_handle absent
feed.invalid_type400Unknown platform value
feed.type_required400Platform not derivable from a bare handle
feed.already_added400Duplicate feed
feed.invalid_status400PATCH status not active/disabled
feed.invalid_transition400Transition out of resolving (locked)
feed.limit_reached400Plan feed cap
feed.platform_not_in_plan400Platform not in the plan
feed.platform_unavailable400Platform globally unavailable
feed.not_found404Foreign or unknown feed

Channels

CodeStatusWhen
channel.invalid_email400Add email fails validation
channel.email_in_use400Address active on another account
channel.invalid_url400Webhook URL fails https/host/no-credentials/≤2048 (+ SSRF block)
channel.invalid_code400Verification code wrong or expired
channel.invalid_status400PATCH status not active/disabled
channel.invalid_transition400Illegal status transition (e.g. off pending_verification)
channel.action_not_supported400e.g. test on a non-webhook channel
channel.not_found404Foreign or unknown channel
channel.not_pending400Resend-verification on a non-pending channel
channel.not_verified400Status toggle before verification
channel.not_patchable400PATCH on a web-push channel
channel.verification_pending400Telegram handshake incomplete
channel.type_not_in_plan403Plan lacks this channel type
channel.limit_reached403Plan channel cap
channel.webhook_test_failed400Test delivery failed (unreachable / non-2xx / timeout)

Manage & settings

CodeStatusWhen
manage.invalid_time400daily_time not strict HH:MM (24h)
manage.invalid_timezone400Timezone not in the supported set
manage.invalid_language400Language not in the supported set
manage.field_read_only400Writing a read-only field (chatbot language; trigger_early_hours)

Subscription & help

CodeStatusWhen
subscription.unknown_plan400plan_id not in the catalog
subscription.card_required409Upgrade with no card on file
subscription.cross_group_not_allowed409Upgrade across plan groups
subscription.not_an_upgrade409Target rank not strictly higher
attachments.invalid400Malformed attachment paths or multipart request exceeding the attachment budget
attachments.too_many400More than 5 attachments
help.ticket_not_found404Foreign or unknown ticket
help.ticket_closed400Reply/close on a closed ticket
help.request_not_found404Foreign or unknown feature request
help.request_not_withdrawable400Withdraw on a non-open request

Operational

CodeStatusWhen
deploy.in_progress503Brief window during service deploys (+ Retry-After)