API Docs

Errors and Limits

Getting Started

Errors and Limits

Public endpoints use standard HTTP status codes, structured error payloads in the detail field, and explicit rate-limit headers for successful and throttled responses.

Build retries deliberately

429 responses include both Retry-After headers and retry_after in the error payload. Honor those values instead of retrying immediately.

Rate Limits

EndpointLimitNotes
GET /api/v1/vin/decode60 requests per minutePer API key. Success and 429 responses include X-RateLimit-* headers.
GET /api/v1/explorer/vehicle/by-vin60 requests per minutePer API key. Explorer responses use the same X-RateLimit-* header contract.
GET /api/v1/explorer/vehicle/by-ymm60 requests per minutePer API key. Monthly plan exhaustion can also surface as a 429 with reason_code API_LIMIT_REACHED.
POST /api/v1/vin/decode-batch10 requests per minutePer API key. Intended for bulk jobs; each successful VIN decode is billed individually.

Rate-Limit Headers

HeaderTypeDescription
X-RateLimit-LimitintegerMaximum requests allowed in the current bucket.
X-RateLimit-RemainingintegerRequests remaining before the current bucket is exhausted.
X-RateLimit-Resetunix timestampUTC timestamp for when the current bucket resets.
Retry-AfterintegerReturned on 429 responses to indicate how many seconds to wait before retrying.
Error Response Example
{
  "detail": {
    "error": "Invalid VIN",
    "message": "VIN check digit (position 9) is invalid"
  }
}
429 Response Example
{
  "detail": {
    "error": "Rate limit exceeded",
    "message": "Too many requests. Limit: 60 requests per minute. Try again in 41 seconds.",
    "retry_after": 41
  }
}

Common Errors

HTTPErrorWhen It Happens
400Invalid VINA single VIN fails format or check-digit validation before decode begins.
400Invalid batch requestThe batch payload is empty, malformed, or exceeds the maximum batch size.
401Missing API key / Invalid API keyThe X-API-Key header is missing or the provided key cannot be validated.
402Payment requiredThe account behind the API key does not currently have API access.
404Decode failedThe upstream vehicle data source returns no vehicle record for the requested VIN.
422Validation errorTyped input is invalid, such as an out-of-range year or missing required query parameter.
429Rate limit exceeded / Limit reachedThe request bucket is exhausted or a monthly API entitlement limit has been reached.
500Decode failedAn unexpected internal error occurs during decode processing.
502Decode failedThe upstream VIN provider timed out, failed, or returned an unusable payload.
503Database unavailableExplorer lookup data is temporarily unavailable. Retry the request shortly.

Batch Partial Failures

Batch decode can succeed overall while returning per-VIN failures in the errors array. Successful VINs are still returned in results.