Every non-2xx response returns a consistent error object.Documentation Index
Fetch the complete documentation index at: https://docs.cula.tech/llms.txt
Use this file to discover all available pages before exploring further.
Error response structure
| Field | Type | Description |
|---|---|---|
type | string | Error category (see below) |
code | string | Machine-readable error code |
message | string | Human-readable summary |
param | string? | The field that caused the error (if applicable) |
doc_url | string? | Link to relevant documentation |
request_id | string | Unique request identifier for support tickets |
details | array? | Per-field errors for multi-field validation failures |
Error types
| Type | Description |
|---|---|
validation_error | Request body or parameters failed validation |
conflict | Resource state conflict (duplicate external_id, finalised submission) |
not_found | Resource does not exist or is outside key scope |
auth_error | Missing, invalid, or expired API key |
rate_limit | Too many requests |
internal_error | Server-side failure |
HTTP status codes
| Status | Meaning |
|---|---|
| 200 | Success (GET, PUT) |
| 201 | Created (POST) |
| 204 | No content (DELETE) |
| 400 | Bad request (malformed JSON, missing required fields) |
| 401 | Unauthorized (missing or invalid API key) |
| 403 | Forbidden (resource outside key scope) |
| 404 | Not found |
| 409 | Conflict |
| 422 | Unprocessable entity (valid JSON, but semantically invalid) |
| 429 | Rate limited |
| 5xx | Server error |
Conflict handling
Duplicate external ID (409)
If youPOST a resource with an external_id that already exists, the server returns 409 with the existing resource reference:
id with PUT to update the resource.
Finalised submission (409)
APUT or PATCH on a resource whose downstream submission has been finalised returns:
Idempotency
POST with the same external_id is not idempotent. It returns 409 if the resource already exists, even when the payload matches. To update an existing resource, use PUT.
Multi-field validation
When multiple fields fail validation, the top-levelmessage provides a summary and details[] contains individual field errors:
Always include
request_id when contacting support about an error.