{"openapi":"3.1.0","info":{"title":"IP Geolocation API","description":"IP geolocation, batch lookup, distance calculation, and caller-IP introspection with x402 payments.","version":"1.0.0"},"paths":{"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pricing":{"get":{"summary":"Pricing","operationId":"pricing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lookup/ip":{"post":{"summary":"Post Lookup Ip","operationId":"post_lookup_ip_lookup_ip_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lookup/bulk":{"post":{"summary":"Post Lookup Bulk","operationId":"post_lookup_bulk_lookup_bulk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lookup/myip":{"post":{"summary":"Post Lookup Myip","operationId":"post_lookup_myip_lookup_myip_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lookup/distance":{"post":{"summary":"Post Lookup Distance","operationId":"post_lookup_distance_lookup_distance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BulkRequest":{"properties":{"ips":{"items":{"type":"string"},"type":"array","title":"Ips","examples":[["8.8.8.8","1.1.1.1"]]}},"type":"object","required":["ips"],"title":"BulkRequest"},"DistanceRequest":{"properties":{"ip1":{"type":"string","title":"Ip1","examples":["8.8.8.8"]},"ip2":{"type":"string","title":"Ip2","examples":["1.1.1.1"]}},"type":"object","required":["ip1","ip2"],"title":"DistanceRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IpRequest":{"properties":{"ip":{"type":"string","title":"Ip","examples":["8.8.8.8"]}},"type":"object","required":["ip"],"title":"IpRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}