Two error bodies
Write endpoints (PUT/DELETE /listings/{externalReference}, POST /listings/{externalReference}/status, POST /listings/bulk-upsert) return an object with a stable code and a readable message. Build your logic on code; the message text may change.
code and message:
GET /listings, GET /locations, GET /locations/{id}/listings) return a plain message:
200 with per-item errors in data.errors[]; each entry has index, externalReference, code, message, status and, for validation errors, issues.
HTTP status codes
Error codes of the write endpoints
A photo that cannot be downloaded is not an error: the listing is saved and the photo is reported in
warnings.skippedImages (see Image Handling).
Errors of the read endpoints
Invalid query parameters never give an error: they fall back to their default or are ignored.
Retrying
All write calls can be repeated safely: sending the samePUT, DELETE or status change twice gives the same result. Retry 429 after Retry-After, and 500 with increasing delays. Do not retry 400, 403, 409 or 422 unchanged.
Contacting support
Send info@okasie.be theexternalReference, the time of the call, the code you received and, if you sent one, your X-Request-Id. Okasie keeps a log of saved and refused cars, so it can look up why a car did not come through.