Skip to content
Getting started

Errors

Errors use standard HTTP status codes and a consistent JSON body.

404 Not Found
{
  "error": {
    "code": "not_found",
    "message": "No data found for this request. You were not charged.",
    "request_id": "req_k3J9xQ2mT0aB"
  }
}

Always log the request_id. It is also in the x-request-id header and lets support find your exact request.

StatusCodeMeaningCharged
400missing_parameter / invalid_parameter / invalid_requestA parameter is missing or malformed, for example a VIN that is not 17 valid characters.No
401missing_api_key / invalid_api_keyNo key was sent, or the key is wrong or revoked.No
402insufficient_creditsYour credit balance can’t cover this request.No
403account_suspendedThe account has been suspended. Contact support.No
404not_found / endpoint_not_foundNo data exists for this lookup, or the route does not exist.No
429rate_limitedToo many requests. Honour the retry-after header.No
502upstream_error / upstream_unreachableOur data provider returned an error. Safe to retry.No
503maintenancePlanned maintenance. Retry after the retry-after header.No
504upstream_timeoutOur data provider took too long. Safe to retry.No

Handling failures

  • Treat 4xx as a problem with the request. Don’t retry unchanged, except 429.
  • Retry 502, 503 and 504 with exponential backoff. You are not charged for failed attempts.
  • Set a client timeout of at least 30 seconds; some lookups depend on slower upstream sources.