Developer API
Free, no auth, CORS-enabled. Just GET the endpoints — JSON in, JSON out.
Endpoints
GET
/api/ip?ip={ip}Full IP check: geo, ASN, purity/risk, native IP, use-case scores, AI availability
GET
/api/bgp?asn={asn}&ip={ip}BGP routing: announced prefix, upstream/downstream ASNs (via RIPEstat)
GET
/api/reverse-ip?ip={ip}Reverse IP: domains hosted on the same IP
Example
# Full IP check: geo, ASN, purity/risk, native IP, use-case scores, AI availability
curl "https://ipok.io/api/ip?ip=1.1.1.1"
# BGP routing: announced prefix, upstream/downstream ASNs (via RIPEstat)
curl "https://ipok.io/api/bgp?asn=AS13335&ip=1.1.1.1"
# Reverse IP: domains hosted on the same IP
curl "https://ipok.io/api/reverse-ip?ip=1.1.1.1"Key response fields
{
"geo": { "ip", "version", "country", "city", "asn", "asName", "isp", "lat", "lon" },
"ipType": "residential | hosting | mobile",
"risk": 0,
"signals": ["proxy", "hosting", ...],
"nativeType": "native | broadcast | unknown",
"scenarios": [{ "key": "tiktok", "stars": 3, "verdict": "try" }],
"services": [{ "key": "chatgpt", "status": "available" }],
"sources": [{ "source": "ip-api", "risk": 10, "flags": {} }],
"rdap?": { "registry", "country", "registered", "org" } // optional, omitted if RDAP unavailable
}Status / errors
| 200 | OK |
| 400 | Bad request: invalid/private IP, missing ip/asn, etc. |
| 502 | Upstream data source unavailable or timed out |
Rate limits & caching
No hard per-key rate limit; effectively bounded by upstream free-tier quotas (some endpoints are edge-cached). Add your own cache for high-volume or commercial use. Errors are { "error": "..." }.
Please use responsibly; add your own cache for high-volume or commercial use.