Skip to main content
Errors use standard HTTP status codes with a JSON body. Every response carries statusCode, message, the path you called, a timestamp, and a correlationId identifying that exact request. The one exception is 401 — a missing or invalid key is answered before the request enters the API, so that body carries only message. Quote the correlationId when you contact support: it is the fastest way for us to find what happened on our side. Send your own X-Request-Id and we echo it back here, provided it is at most 128 characters of letters, digits, ., _ or - — otherwise we generate one for you.
Validation error
The body failed validation — e.g. missing customerIds, empty items, or an unresolvable postcode. message names every field that is wrong.
For a field inside a batch, the message says which entry it was, so you can fix the record at source:
More than ten problems are summarised — the first ten, then and N more.
Auth failed
The x-api-key header is missing or invalid. Ensure you’re sending the full key, not the dzk_live_… prefix shown in the portal.
Customer not in your org
One or more customerIds don’t belong to your organisation. The whole request is rejected — no partial results.
Unknown quote id
GET /v1/org/quote/{quoteId} — no quote with that id.
Rate limited
You exceeded your per-minute limit. The seconds to wait are on the Retry-After response header — read them from there, not from the body.
See Rate limits.
An empty quotes array is not an error — it means nothing matched (e.g. filters excluded everything, or no rate applies to the lane). Check noQuoteMessage.