GeoIP API
The GeoIP site exposes a small public API for IP lookup and service discovery. No OAuth flow is required: the endpoints are public, read-only and keyless.
Endpoints
Four GET routes. Ask over IPv4 or IPv6 and the JSON describes the address the request actually arrived with; it does not test the other family.
| Method | Endpoint | Returns |
|---|---|---|
| GET | /api/json | The full record: address, location, timezone and request metadata. |
| GET | /api/ip | The IPv4 address as plain text. 404 when this request has no IPv4 address. |
| GET | /api/ipv6 | The IPv6 address as plain text. 404 when this request did not arrive over IPv6. |
| GET | /api/health | Service status for monitors and automated checks. |
curl https://geoip.echovalue.dev/api/json
curl https://geoip.echovalue.dev/api/ip
curl https://geoip.echovalue.dev/api/ipv6
curl https://geoip.echovalue.dev/api/healthResponse fields
/api/json returns one flat object. Values the edge did not report are the string Unknown or an empty string.
| Field | Type | Description |
|---|---|---|
| ip | string | The IPv4 address, or an empty string. |
| ipv6 | string | The IPv6 address, or an empty string. |
| isCurrentIpv6 | boolean | Whether this request arrived over IPv6. |
| city | string | Approximate city from the edge lookup. |
| region / regionCode | string | Region name and code. |
| country / continent | string | ISO country code and continent. |
| latitude / longitude | string | Coordinates for the block. |
| timezone | string | IANA timezone name, for example Europe/Rome. |
| postalCode | string | Postal code when the edge reports one. |
| userAgent / acceptLanguage | string | Headers as sent. |
Discovery
Documents that describe the service to clients and agents. The homepage also answers Accept: text/markdown with a plain-text version of the record.
Authentication
No key, token or account is needed. OAuth discovery documents are intentionally not published: the API is public, and metadata for an authorization server that does not exist would misrepresent the service contract to agents.
Rate limits. There is no published quota. If you build on these routes, cache the response rather than polling the edge for every page view.
contact
Questions, feedback, or something not working? Get in touch.
support at echovalue dot dev