Developers
Network check API
What the network and the server see about a connection: IP, location, ASN, reverse DNS, TCP/IP and TLS fingerprints, DNS resolvers and optional risk data.
Write to admin@myipcheck.net with your use case and expected volume.
Base URLs
| Host | Stack | Use |
|---|---|---|
https://probe4.myipcheck.net | IPv4 | The default host. |
https://probe6.myipcheck.net | IPv6 | IPv6-only clients and checks. |
https://probe.myipcheck.net | dual stack | Compatibility host; the client resolves it normally. |
All responses are JSON. Requests and responses use HTTP/1.1 or HTTP/2; the server reports which one it saw.
Authentication
Free read endpoints work without a key. Send an API key when you need usage accounting or a paid feature:
Authorization: Bearer mip_live_<kid>.<secret>
The key is shown once when it is issued. Treat it as a password. Admin endpoints use a separate X-Check-Token and are not part of the public API.
Endpoints
| Method and path | What it returns |
|---|---|
GET /v1/echo | IP, port, TCP/IP fingerprint, TLS, HTTP headers and frame order, GeoLite2 location and ASN. This is the main connection check. |
GET /v1/echo?risk=1 | The same, plus a MaxMind minFraud score (paid). |
GET /v1/geo?ip=<ip> | Country, city, timezone, ASN and organisation for an address. |
GET /v1/ip/<ip> | The address view: GeoLite2, network and optional 30-day visitor history. ?history=0 skips history. |
GET /v1/rdap/<ip> | RDAP network range, name and country. |
GET /v1/dns/<token> | Resolvers that asked for a test name. Generate a token in the browser or app first; ?wait=1500 waits for the first resolvers. |
GET /v1/risk?ip=<ip> | MaxMind minFraud Score (paid; app JWT, paid key or admin). |
GET /v1/me | The caller, tier, limits, monthly usage and key metadata. |
GET /v1/health | Version and service state. |
Examples
curl https://probe4.myipcheck.net/v1/echo curl "https://probe4.myipcheck.net/v1/geo?ip=1.1.1.1" curl "https://probe4.myipcheck.net/v1/rdap/1.1.1.1" curl -H "Authorization: Bearer $MYIPCHECK_KEY" \ https://probe4.myipcheck.net/v1/me
The connection check must reach the host through the connection you want to measure. If you use a proxy, make the HTTP request through that proxy; the server then reports the proxy's exit.
Limits
| Tier | Rate | Monthly | MaxMind |
|---|---|---|---|
| Free | 60/min | 10,000 | No |
| Paid | 1,200/min (burst 40) | 1,000,000 | Within the account quota |
Keyed responses carry X-RateLimit-Limit, X-Quota-Limit, X-Quota-Used and X-Quota-Reset. Exceeding the rate returns 429 RATE_LIMITED; exhausting the month returns 429 QUOTA_EXCEEDED with Retry-After. More than 200 distinct source prefixes for one key in 10 minutes returns 429 KEY_IP_LIMIT for one minute.
Errors
Every error has a stable code and an English message. Branch on the code, never on the message.
INVALID_IP | The address is not a public IP. |
INVALID_TOKEN | The DNS token is malformed. |
AUTH_REQUIRED | A missing, revoked or invalid API key/JWT. |
PAID_FEATURE_REQUIRED | The key does not include MaxMind. |
RATE_LIMITED | Per-IP or per-key rate limit. |
QUOTA_EXCEEDED | The monthly key quota is exhausted. |
KEY_IP_LIMIT | Too many distinct source prefixes for one key. |
Privacy
The server keeps a seven-day request log for keyed calls: key id, account, source prefix (IPv4 /24 or IPv6 /64), method, path without query, status, latency and time. It does not store headers or bodies. Free anonymous checks are counted without storing the address in that log.
Access
Early-access keys are issued by hand. Email admin@myipcheck.net and include the account name, the expected requests per month and whether you need MaxMind.