Documentation

Errors

One error envelope shared by every product on the platform.

Envelope

Failures always answer with an error object carrying a stable machine-readable code and a human-readable message. Branch on code, never on the message text.

401 Unauthorized
{
  "error": {
    "code": "invalid_api_key",
    "message": "The provided API key is invalid."
  }
}

Codes you should handle

StatusCodeMeaning
400invalid_ipThe address is not valid IPv4 or IPv6.
401invalid_api_keyMissing, unknown, disabled or revoked key.
403product_access_deniedThe key belongs to a different product.
403subscription_inactiveNo active subscription for this product.
422ip_lookup_unavailableThe address could not be resolved.
429rate_limit_exceededPer-minute limit reached. Retry-After applies.
429monthly_limit_exceededMonthly quota reached until the period resets.
500internal_errorUnexpected failure. Safe to retry once.

Quota errors carry context

429 Too Many Requests
{
  "error": {
    "code": "monthly_limit_exceeded",
    "message": "Your monthly API request limit has been reached.",
    "limit": 100000,
    "usage": 100000
  }
}