Error envelope
details array is present on some errors and identifies what to fix. Its entries take one of these shapes: field_error (a bad field), constraint_violation (a limit exceeded), retry_info (when to retry), or upload_not_ready (an upload still processing).
Error codes
Rate limits
Chunk uploads (
PUT /v1/uploads/{id}) and status checks (GET /v1/uploads/{id}) are not rate-limited. When you are rate-limited, the response includes a Retry-After header telling you how many seconds to wait.
The Adclear API’s 60/minute budget is shared across every /v1/* endpoint, so frequent polling of evaluation status competes with your create and evaluate calls. Prefer webhooks to receive results without spending the budget.
Common issues
403 Forbidden
403 Forbidden
The API key authenticates but isn’t fully configured for your organisation. Contact Adclear support with the
correlationId from the error response.429 Rate limited
429 Rate limited
Honour the
Retry-After header. If you’re regularly hitting the limit, batch requests or contact support to discuss your usage.502 from the Adclear API
502 from the Adclear API
A transient upstream issue. Retry after 2 to 5 seconds. If it persists, contact support with the
correlationId.General tips
- Pass your own trace ID in the
X-Correlation-IDrequest header. Adclear echoes it back in every response. - Always include the
correlationIdin support requests. It lets us trace the full request lifecycle. - Test against staging before production.
- Cache reference data (products, channels, jurisdictions, target markets) and refresh daily.