Skip to main content
Biqli uses HTTP status codes for the broad result and stable error codes for programmatic handling. Error messages are written for people and may become more specific over time; integrations should branch on error.code.

Error response

API errors use one JSON envelope:
Do not assume details is always present. Ignore unrecognized detail fields so Biqli can add useful context without breaking your integration.

Error catalog

Authentication and access

Read Authentication for workspace scope and permission dependencies.

Resources and conflicts

Biqli intentionally returns the same resource_not_found response for a missing resource and a resource belonging to another workspace.

Request and validation failures

Unknown JSON fields are rejected instead of silently ignored. For a validation failure, details.errors maps each invalid field to one or more explanations:
Correct every reported field before retrying.

Throttling and server failures

Read Rate limits before implementing 429 retries.

Request tracing

Every API error includes the same identifier in:
You may send your own non-empty X-Biq-Request-Id value of up to 100 characters. Use a unique value per logical request and include it in your logs. Do not place API keys, passwords, URLs containing secrets, or personal data in the request identifier.

Retry decisions

Never retry indefinitely. Preserve the original X-Biq-Request-Id for retries of the same logical operation, or record both the original and replacement IDs in your trace.

Bulk endpoint failures

Bulk create and bulk update can return 207 Multi-Status. This is a completed HTTP request, but one or more items failed. Always inspect every ordered results item and the summary object:
Retry only the failed items after correcting their errors. Do not assume that every 2xx response means every requested bulk operation succeeded.