Same answer as the page, one curl away.
Every endpoint answers for the address the request comes from. No key, no account, no tracking beyond a per-address rate limit. Example outputs below use documentation addresses (203.0.113.0/24, 2001:db8::/32).
Your address, plain text
curl, wget and HTTPie get the bare address and a newline on the home page. Browsers get the full Truth Check.
$ curl peekip.com 203.0.113.24
$ curl peekip.com/ip.txt 203.0.113.24
Force IPv4 or IPv6
The 4. host has only an IPv4 address and the 6. host only an IPv6 one, so each shows the address your machine uses for that family. If your connection has no IPv6, the 6 host can’t be reached and curl reports a connection error.
$ curl 4.peekip.com/ip.txt 203.0.113.24
$ curl 6.peekip.com/ip.txt 2001:db8:4f2a::17
The whole Truth Check as JSON
The verdict state, each source’s answer with its licence string, the flags (Tor, iCloud Private Relay, hosting ranges) and a link that explains it in a browser. Values from DB-IP carry “IP Geolocation by DB-IP”; values from IPinfo carry its attribution.
$ curl peekip.com/json { "ip": "203.0.113.24", "family": "ipv4", "asn": 64500, "org": "Example Networks", "country": "US", "city_dbip": { "city": "Example City", "region": "Example", "country": "US" }, "verdict": { "state": "agree", "sentence": "…", "inputs": [ … ] }, "sources": [ { "key": "dbip", "state": "agree", "value": "…", "licence": "IP Geolocation by DB-IP · City Lite, CC BY 4.0" }, { "key": "ipinfo", "state": "unchecked", "value": "Not checked", "licence": "…" }, { "key": "registry", … }, { "key": "geofeed", … } ], "flags": { "tor": false, "private_relay": false, "hosting": [], "cgnat": false }, "checked_at": "2026-10-05T14:02:11.000Z", "explain": "https://peekip.com/" }
$ curl -s peekip.com/json | jq -r .country US
Limits and privacy
/and/ip.txt: 600 requests a minute per address./json: 30 a minute, because it queries the registry and other sources.- Over the limit you get HTTP 429 with
Retry-After: 60. - We count requests per endpoint for capacity planning. Addresses are only held by the in-memory rate limiter; see our policy and data sources.