Help

Errors

HTTP status codes the API returns, and what to do about each one.

Errors use a normal HTTP status code and a JSON body with a message:

GET /v1/lookup/not-an-ip

400 Bad Request
{ "message": "Invalid IP address format" }
StatusMessageWhat to do
400Invalid IP address formatSend a valid IPv4 or IPv6 address in the path, like /v1/lookup/8.8.8.8.
401Invalid API keyCheck the key, and that it's in the x-api-key header. A revoked key returns this too.
403Usually Python urllib's default User-Agent. Use requests or set a User-Agent header.
404The address is new to us and couldn't be classified right now. Rare. Try again later.
429Daily limit reached, or Rate limit exceededYou're over your limit. Wait for the number of seconds in Retry-After. See Rate limits.
5xxSomething went wrong on our side. Retry with a short backoff, and tell us if it keeps happening.

Every response includes meta.request_id. Include it when you write to support about a specific lookup.