For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Get API key
HomeAPI Reference
HomeAPI Reference
  • Get started
    • Lucanto API
    • Quickstart
    • Authentication
    • Pagination
    • Idempotency
    • Errors
    • MCP server
  • Changelog
    • Changelog
Get API key
LogoLogo
On this page
  • Status codes
Get started

Errors

The canonical error envelope
||View as Markdown|
Was this page helpful?
Edit this page
Previous

Idempotency

Next

MCP server

Built with

Every error response shares one envelope:

1{
2 "error": "forbidden",
3 "message": "You do not have permission to perform this action.",
4 "request_id": "8f9e4c2b-0c1a-4f3e-9a8d-1b2c3d4e5f60",
5 "docs_url": "https://docs.lucanto.eu/api/v1/errors/forbidden"
6}
  • error — a stable, machine-readable code. Branch on this, not the message.
  • message — human-readable; wording may change between releases.
  • request_id — also returned as the X-Request-Id header. Quote it in support tickets so we can pull the matching server log line.
  • docs_url — deep link to the per-code documentation page.

Validation failures add an errors array of individual messages.

Status codes

StatuserrorMeaning
400bad_requestMalformed request
401unauthenticatedMissing or invalid token
402subscription_requiredWorkspace has no active subscription
403forbiddenToken scope or role doesn’t permit this action
404not_foundResource doesn’t exist or isn’t visible to you
409conflict / idempotency_key_conflict / idempotency_in_progressConflicting state (see Idempotency)
422unprocessable_entityValidation failed (see errors array)
429rate_limited / feature_limit_exceededThrottled or plan limit reached

Cross-workspace access returns 404, not 403, so the API never leaks the existence of records you can’t see.