locate-me
IP address in, location out.
Request and Response
The lookup above as a call to /v1/lookup, and the answer exactly as the server sent it.
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.
locate-me 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.