locate-me
IP address in, location out.
Playground
CheckingLook up any IPv4 or IPv6 address. Leave the field empty to locate yourself.
Waiting for the first lookup.
Endpoints(8)
Lookups need an API key in a header. Health checks and the playground do not.
- GET/v1/lookup/{ip}Locate one address
- GET/v1/lookup/meLocate the caller
- POST/v1/lookupLocate up to 100 addresses at once
- GET/v1/infoDatabase build, key limits, attribution
- GET/healthzLiveness
- GET/readyzReadiness: a database is loaded
- GET/metricsPrometheus metrics on port 9090
- GET/playground/lookup/{ip}Keyless lookups for this page
Quick Start
-
Create a key
The server prints the key once and a config entry that stores only its SHA-256.
docker run --rm locate-me:latest gen-key --name my-client -
Register it and start
Paste the printed
[[api_keys]]block intoconfig.toml. The first start downloads the current DB-IP database.docker compose up -d -
Look up an address
Send the key in a header. Keys are never accepted in the URL.
curl -H "X-API-Key: $LOCATE_ME_KEY" \ http://localhost:8080/v1/lookup/8.8.8.8
Performance
Lookup and decode960 ns
With JSON encoding1.4 µs
HTTP, p99 latency1.45 ms
Single thread, random addresses, October 2026 database. HTTP: 64 keep-alive connections at about 81,000 requests per second on a 16-core Windows 11 machine.