Official Python client for ipdata.info — a free, fast IP geolocation, ASN, and threat-intelligence API. Look up country, city, ASN, timezone, currency, and security flags (proxy/VPN/Tor/hosting) for any IPv4 or IPv6 address. Powered by ipdata.info.
The public endpoint is free — 50 requests/min, no signup, no key. For higher rate limits and batch lookups, create a free API key at ipdata.info/register and manage it in your dashboard.
pip install ipdatainfo
from ipdatainfo import Client
# Free tier — no API key needed. For higher limits + batch, get a free key
# at https://ipdata.info/register and use Client(api_key="...").
client = Client()
info = client.lookup("8.8.8.8")
print(info.city, info.country, info.asn_org) # Mountain View United States Google LLC| Method | What it returns |
|---|---|
lookup(ip="") |
Full geolocation record (own IP if omitted) |
geo(ip) |
Geo subset (city/region/country/lat/lon/tz) |
asn(ip) |
ASN + ISP/registry for an IP |
batch(ips) |
Many IPs at once (requires an API key) |
asn_detail(n) |
ASN detail incl. prefixes |
asn_whois_history(n) |
ASN whois history |
asn_changes() |
ASN change feed |
threat_domain/threat_hash/threat_url(x) |
Threat-intel lookup (domain / file hash / URL) |
Full response schema: ipdata.info API docs · SDK contract.
from ipdatainfo import Client
client = Client(
api_key="KEY", # sent as X-Api-Key; switches to pro.ipdata.info
base_url="https://ipdata.info", # override the host
timeout=10.0, # seconds
)Errors from non-2xx responses are raised as ipdatainfo.IpDataError with
.status and .message.
- Free (
ipdata.info): 50 req/min, no key. - Paid (
pro.ipdata.info): higher limits +batch, with an API key.
12 official SDKs — see the full list at ipdata.info/docs/sdks: Python, Node.js, Go, PHP, Java, Rust, .NET, Kotlin, Swift, Dart, Bash, Objective-C.
MIT © ipdata.info