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" }| Status | Message | What to do |
|---|---|---|
400 | Invalid IP address format | Send a valid IPv4 or IPv6 address in the path, like /v1/lookup/8.8.8.8. |
401 | Invalid API key | Check the key, and that it's in the x-api-key header. A revoked key returns this too. |
403 | Usually Python urllib's default User-Agent. Use requests or set a User-Agent header. | |
404 | The address is new to us and couldn't be classified right now. Rare. Try again later. | |
429 | Daily limit reached, or Rate limit exceeded | You're over your limit. Wait for the number of seconds in Retry-After. See Rate limits. |
5xx | Something 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.