Free IP Geolocation & Risk Analysis API

Free IP Geolocation & IP Risk Detection API

High performance, IPv4/IPv6 dual-stack, multi-language IP lookup API. Rate limit: 1 request/sec, no total call limits.

⏱️
Rate Limit Maximum 1 request per second (1 req/s).
♾️
Total Quota No daily or total quota limits. 100% free to use.

API Endpoints

GET https://api.myipdns.com/
IPv4 IPv6 JSON Format
GET https://v4.api.myipdns.com/
IPv4 Only Text Format
GET https://v6.api.myipdns.com/
IPv6 Only Text Format

Parameters

Parameter Description Example
ip The IP address to query. If omitted, returns the caller's IP. ?ip=8.8.8.8
lang Response language. Supported: en, cn, ru, ja, fr, de, es, pt. ?lang=zh-CN

JSON Response Example

Request: GET https://api.myipdns.com/?ip=8.8.8.8&lang=en

{
  "ip": "8.8.8.8",
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_code": "US",
  "timezone": "America/Chicago",
  "latitude": 37.751,
  "longitude": -97.822,
  "asn": 15169,
  "as_org": "Google LLC",
  "native_type": "native",
  "rir_registry": "arin",
  "is_hosting": true,
  "usage_type": "DCH",
  "query_time": "0.03",
  "source": "maxmind.com"
}

Terminal Protocol Stack & Privacy Diagnostics API (/check)

High-accuracy, non-proxy direct protocol stack and egress topology inspection endpoint for curl, wget, and automated scripts.

Read Rate Limit 1 request/second (burst 5) per IP. Exceeding returns HTTP 429.
🔗
Share Creation Quota 5 writes/hour per IP. Exceeding gracefully continues returning diagnosis without share URL (HTTP 200).

API Endpoints

GET https://myipdns.com/check
Dual-Stack Default Output (ANSI Color / Terminal Text)
GET https://myipdns.com/check?format=line
Dual-Stack Line Format (KEY=VALUE for Shell / Automation Parsing)
GET https://myipdns.com/check?format=json
Dual-Stack Structured JSON Format

Parameters

Parameter Description Example
format Output format specification: json (Structured JSON) or line (KEY=VALUE format) ?format=line / ?format=json
share Generate 30-day shareable report URL and SVG badge (rate limited to 5 writes/hour/IP) ?share=1
color Disable ANSI color escape codes: ?color=0 or ?plain=1 ?color=0 / ?plain=1
-4 / -6 Explicitly probe IPv4 or IPv6 stack: curl -4 or curl -6 curl -4 https://myipdns.com/check

JSON Fields Complete Specification

Field Type Description
ipstringClient egress IP address
ip_versionstringIP version (IPv4 or IPv6) (IPv4 / IPv6)
countrystringCountry name resolved by multi-source consensus voting
country_codestringISO 3166-1 alpha-2 two-letter uppercase country code
citystring | nullCity name resolved by multi-source consensus voting (or null if unmeasured)
asnstringAutonomous System Number (e.g. AS15169)
as_orgstringASN organization or ISP name
is_datacenterbooleanBoolean flag indicating data center or hosting network
is_proxybooleanBoolean flag indicating commercial proxy or VPN exit
transportobjectTransport layer object. 🔴 Red-line: all unmeasured metrics are strictly null (never 0 or false)
transport.mssstringObserved TCP Maximum Segment Size (e.g. 1380, or "n/a")
transport.mtuinteger | nullDerived Path MTU based on MSS (e.g. 1420 for WireGuard, or null)
transport.mtu_notestring | nullHeuristic link type classification based on MTU (or null)
transport.wscaleinteger | nullTCP Window Scale exponent (or null)
transport.syn_wininteger | nullTCP Initial SYN Window size (or null)
transport.syn_ttlinteger | nullEstimated Initial SYN Time to Live (or null)
transport.option_orderstring | nullComma-separated TCP SYN options order (or null)
transport.ts_valinteger | nullTCP Timestamp value (or null)
transport.ts_hzinteger | nullDerived TCP timestamp clock frequency in Hz (or null)
transport.ecn_enabledboolean | nullExplicit Congestion Notification boolean status (or null)
cryptoobjectApplication & cryptographic handshake object (HTTP version, TLS version, JA4, JA3, ALPN)
verdictobjectTopology classification verdict, inference basis, and summary description
share_urlstring (optional)30-day shareable report link generated when ?share=1 is requested within quota
badge_urlstring (optional)SVG status badge URL generated when ?share=1 is requested within quota

Line Format (KEY=VALUE for Shell / Automation Parsing) Example:

ip=35.212.190.31
ip_version=IPv4
country=United States
country_code=US
city=San Jose
asn=AS15169
as_org=Google LLC
is_datacenter=true
is_proxy=false
mss=1380
mtu=1420
mtu_note=Encapsulated Tunnel (WireGuard / Tailscale / CDN)
wscale=7
syn_win=65535
syn_ttl=64
option_order=MSS,SACK_PERM,TS,NOP,WS
ts_val=987654
ts_hz=1000
ecn_enabled=true
http_proto=HTTP/2.0
tls_version=TLS 1.3
ja4=t13d1516h2_8daaf6152771_000000000000
verdict=topo_terminated_remote_protocol
verdict_basis=reputation
verdict_summary=Data Center / Proxy Egress (Hosting Network)

Structured JSON Format Example:

{
  "ip": "35.212.190.31",
  "ip_version": "IPv4",
  "country": "United States",
  "country_code": "US",
  "city": "San Jose",
  "asn": "AS15169",
  "as_org": "Google LLC",
  "is_datacenter": true,
  "is_proxy": false,
  "transport": {
    "mss": "1380",
    "mtu": 1420,
    "mtu_note": "Encapsulated Tunnel (WireGuard / Tailscale / CDN)",
    "wscale": 7,
    "syn_win": 65535,
    "syn_ttl": 64,
    "option_order": "MSS,SACK_PERM,TS,NOP,WS",
    "ts_val": 987654,
    "ts_hz": 1000,
    "ecn_enabled": true
  },
  "crypto": {
    "http_proto": "HTTP/2.0",
    "tls_version": "TLS 1.3",
    "ja4": "t13d1516h2_8daaf6152771_000000000000"
  },
  "verdict": {
    "key": "topo_terminated_remote_protocol",
    "basis": "reputation",
    "summary": "Data Center / Proxy Egress (Hosting Network)"
  }
}

Command Line (CLI / curl) Interface

No complex API integration required. Execute commands directly in your terminal to fetch IP data or plain text IP. CLI requests are rate-limited to 1 request per second.

1. Get standard JSON profile of your own IP:

curl https://myipdns.com

2. Get standard JSON profile of a target IP (e.g., 8.8.8.8):

curl https://myipdns.com/ip/8.8.8.8

3. Get plain text IP string (ideal for shell scripts):

curl https://myipdns.com/ip

API Technical Architecture & FAQs

Understand /check protocol stack inspection, null-safety rules, and automation script integration.

/check issues an HTTP 302 redirect directly to our dual-stack direct probe domain (check_dns.myipdns.com). By bypassing reverse proxies and CDNs, our kernel directly inspects the incoming TCP SYN packet, capturing genuine MTU, Window Scale, and TCP Options.

To prevent falsification and misleading downstream systems. In TCP analysis, an MTU of 0 is invalid, and a disabled ECN is distinct from an unmeasured ECN (e.g. when connecting over HTTP/3 QUIC). Unmeasured parameters strictly return null.

Use curl -sL 'https://myipdns.com/check?format=line' for KEY=VALUE parsing with standard utilities like awk -F= '$1=="mtu"{print $2}' or grep, or use ?format=json combined with jq.

Read requests exceeding 1 req/s (burst 5) receive HTTP 429 with a Retry-After header. Share creation requests exceeding 5 writes/hour/IP gracefully return standard HTTP 200 diagnostic data without generating share links.

Credits & Acknowledgements

We use the following third-party APIs to verify network egress points.