Skip to content
ROAD RUNNER

GUIDE

Errors

Every non-2xx response uses one envelope:

{
  "error": {
    "type": "validation_error",
    "code": "address_not_zimbabwean",
    "message": "We only deliver within Zimbabwe.",
    "details": [{ "field": "dropoff.address", "issue": "unserviceable" }],
    "request_id": "req_01JAV3K2QX8M4N7P"
  }
}

type is a small stable set you can branch on. code is specific. request_id is also returned in the X-Request-Id header: quote it to us.

type HTTP Meaning
authentication_error 401 Key, signature or timestamp problem
permission_error 403 Valid key, missing scope
not_found 404 Unknown resource, or one that is not yours
validation_error 422 Understood, contents rejected
conflict 409 Idempotency clash or illegal state change
rate_limit_error 429 Too many requests; see Retry-After
provider_error 502 Courier network rejected or unreachable
server_error 500 Our fault: send us the request_id

A delivery belonging to another client returns 404, never 403.