{"openapi":"3.1.0","info":{"title":"IPLookInfo IP Geolocation API","version":"1.0.0","description":"IP geolocation, ASN and risk data for IPv4 and IPv6. Daily quotas reset at 00:00 UTC."},"servers":[{"url":"https://iplookinfo.com/api/v1"}],"security":[{"bearer":[]},{}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"API key starting with ipl_"}},"schemas":{"IpResponse":{"type":"object","properties":{"ip":{"type":"string","example":"8.8.8.8"},"version":{"type":"string","enum":["IPv4","IPv6"]},"type":{"type":"string","description":"Address range type, e.g. unicast, private, loopback","example":"unicast"},"bogon":{"type":"boolean"},"network":{"type":"string","nullable":true,"example":"8.8.8.0/24"},"continent":{"type":"object","nullable":true,"properties":{"code":{"type":"string"},"name":{"type":"string"}}},"country":{"type":"object","nullable":true,"properties":{"code":{"type":"string","example":"US"},"name":{"type":"string"},"is_eu":{"type":"boolean"}}},"region":{"type":"object","nullable":true,"properties":{"code":{"type":"string","nullable":true},"name":{"type":"string"}}},"city":{"type":"string","nullable":true},"postal":{"type":"string","nullable":true},"location":{"type":"object","nullable":true,"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"accuracy_radius_km":{"type":"integer","nullable":true},"time_zone":{"type":"string","nullable":true}}},"asn":{"type":"object","nullable":true,"properties":{"asn":{"type":"integer","example":15169},"name":{"type":"string","example":"Google LLC"},"domain":{"type":"string","nullable":true},"route":{"type":"string","nullable":true}}},"risk":{"type":"object","nullable":true,"description":"Pro and Business plans only","properties":{"score":{"type":"integer","minimum":0,"maximum":100},"is_tor":{"type":"boolean"},"is_vpn":{"type":"boolean"},"is_datacenter":{"type":"boolean"},"provider":{"type":"string","nullable":true}}}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}},"paths":{"/{ip}":{"get":{"summary":"Look up an IP address","parameters":[{"name":"ip","in":"path","required":true,"schema":{"type":"string"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","es","pt","ru","ja"],"default":"en"}}],"responses":{"200":{"description":"IP data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpResponse"}}}},"400":{"description":"Invalid IP","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me":{"get":{"summary":"Look up the caller's IP address","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","es","pt","ru","ja"],"default":"en"}}],"responses":{"200":{"description":"IP data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/batch":{"post":{"summary":"Look up many IP addresses (paid plans)","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","zh","es","pt","ru","ja"],"default":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ips":{"type":"array","items":{"type":"string"},"maxItems":10000}}}},"text/plain":{"schema":{"type":"string","description":"Newline-separated IP addresses"}}}},"responses":{"200":{"description":"Results in input order (duplicates removed)","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/IpResponse"}}}}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Plan does not include batch lookups"},"413":{"description":"Too many IPs for your plan"},"429":{"description":"Rate limit or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}