Errors

All errors return a consistent JSON envelope with a machine-readable code, human message, and request ID for support.

Error shape

{
  "success": false,
  "error": {
    "code": "LOCATION_NOT_RESOLVED",
    "message": "The supplied location could not be resolved.",
    "request_id": "req_abc123"
  }
}

Error codes

CodeHTTPDescription
INVALID_INPUT400Request body or query failed validation.
UNAUTHORIZED401Missing or invalid credential.
FORBIDDEN403Credential valid but action not permitted.
NOT_FOUND404Resource does not exist.
CONFLICT409Duplicate or conflicting state.
QUOTA_EXCEEDED402Plan quota exceeded.
UNSUPPORTED_INPUT422Input format not recognized.
LOCATION_NOT_RESOLVED422Could not resolve a location.
LOCATION_AMBIGUOUS422Multiple candidates; refine input.
INVALID_COORDINATES400Coordinates out of valid range.
COUNTRY_NOT_SUPPORTED422Country not yet supported.
PROVIDER_UNAVAILABLE503Upstream provider unavailable.
PROVIDER_RATE_LIMITED503Upstream provider rate limited.
RATE_LIMITED429Too many requests.
INTERNAL500Unexpected server error.