{"openapi":"3.1.0","info":{"title":"GeoIP API","version":"1.0.0","description":"Public IP and geolocation lookup endpoints for geoip.echovalue.dev."},"servers":[{"url":"https://geoip.echovalue.dev"}],"paths":{"/api/json":{"get":{"summary":"Return JSON details for the current request IP.","responses":{"200":{"description":"IP metadata payload.","content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string"},"ipv6":{"type":"string"},"isCurrentIpv6":{"type":"boolean"},"userAgent":{"type":"string"},"acceptLanguage":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"continent":{"type":"string"},"latitude":{"type":"string"},"longitude":{"type":"string"},"region":{"type":"string"},"regionCode":{"type":"string"},"timezone":{"type":"string"},"postalCode":{"type":"string"}}}}}}}}},"/api/ip":{"get":{"summary":"Return the current request IPv4 address.","responses":{"200":{"description":"Plain text IPv4 address.","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"This request did not include an IPv4 address.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/ipv6":{"get":{"summary":"Return the current request IPv6 address when available.","responses":{"200":{"description":"Plain text IPv6 address.","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"This request did not arrive over IPv6.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/health":{"get":{"summary":"Return service health information.","responses":{"200":{"description":"Health payload.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"}},"required":["ok","service"]}}}}}}}},"externalDocs":{"description":"Human-readable API documentation","url":"https://geoip.echovalue.dev/docs/api"},"jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema"}