Errors
Gauzr uses conventional HTTP status codes and a consistent error body. 2xx
means success, 4xx means the request was rejected (and usually tells you how to
fix it), and 5xx means something failed on our side.
Error shape
{
"error": {
"type": "invalid_request_error",
"message": "vehicle.vin is not a valid VIN.",
"param": "vehicle.vin"
}
}
| Field | Description |
|---|---|
type | Machine-readable category (see below). |
message | Human-readable explanation. Safe to log; don't parse. |
param | The offending field, when the error is field-specific. |
Status codes
| Status | Type | Meaning |
|---|---|---|
400 | invalid_request_error | Malformed request or missing parameter. |
401 | authentication_error | Missing, invalid, or revoked API key. |
403 | permission_error | Key lacks access to the resource. |
404 | not_found_error | No such resource. |
409 | conflict_error | The resource is in a state that forbids the action. |
422 | validation_error | Well-formed request that failed validation. |
429 | rate_limit_error | Too many requests — back off and retry. |
500 | api_error | Something went wrong on our end. |
Rate limits
When you exceed a limit you get 429 with a Retry-After header (seconds).
Respect it and retry with exponential backoff. Idempotency keys make those
retries safe on POST requests — see the API Reference.