A curl-first "what's my IP" API — IP, geolocation, ASN, reverse DNS and a blacklist check.
Every endpoint returns plain text by default; add ?format=json, Accept: application/json,
or use a .json path for JSON. CORS is enabled, so you can call it from browser JS too.
Base URL: https://ip.syschecks.com
curl ip.syschecks.com/
203.0.113.7curl ip.syschecks.com/ip
203.0.113.7curl ip.syschecks.com/json
{"ip":"203.0.113.7","ip_family":"IPv4","rdns":"host.example.net","country":"PL","country_name":"Poland","city":"Warsaw","asn":"AS9141","org":"Play"}curl ip.syschecks.com/all
ip_addr: 203.0.113.7
ip_family: IPv4
country: PL
asn: AS9141
org: Playcurl ip.syschecks.com/all.json
{"ip_addr":"203.0.113.7","ip_family":"IPv4","country":"PL","asn":"AS9141"}curl ip.syschecks.com/country
PLcurl ip.syschecks.com/city
Warsawcurl ip.syschecks.com/asn
AS9141curl ip.syschecks.com/type
hostingcurl ip.syschecks.com/speedtest
curl -o /dev/null -w "%{speed_download} B/s\n" .../speedtest/download?mb=100curl ip.syschecks.com/speedtest/download
<binary>curl ip.syschecks.com/speedtest/upload
received 12345 bytescurl ip.syschecks.com/rbl
IP: 203.0.113.7
Status: CLEAN — not listed on any of 4 blacklists
[ ok ] zen.spamhaus.org not listed
[ ok ] bl.spamcop.net not listedcurl ip.syschecks.com/rdap
ip: 203.0.113.7
network_name: EXAMPLE-NET
rir: RIPE NCC
abuse_email: abuse@example.net
rpki: valid (AS9141 203.0.113.0/24)curl ip.syschecks.com/ping?target=example.com
PING example.com (93.184.216.34) — 5 packets, TTL 64
5 sent, 5 received, 0% loss
rtt min/avg/max/mdev = 1.09/1.16/1.23/0.05 mscurl ip.syschecks.com/trace?target=example.com
1 10.0.0.1 loss 0% avg 0.5ms
2 * (no response)
3 142.250.1.1 AS15169 Google Warsaw PL loss 0% avg 12.3mscurl ip.syschecks.com/mtr?target=example.com
hop host loss best avg worst stdev
9 198.51.100.7 60% 1.8 3.3 6.5 1.9curl ip.syschecks.com/headers
Accept: */*
User-Agent: curl/8.8.0curl ip.syschecks.com/ua
curl/8.8.0curl ip.syschecks.com/host
host.example.netcurl ip.syschecks.com/port
54318curl ip.syschecks.com/lang
en-US,encurl ip.syschecks.com/encoding
gzip, brcurl ip.syschecks.com/mime
*/*curl ip.syschecks.com/charset
-curl ip.syschecks.com/forwarded
-curl ip.syschecks.com/via
-curl ip.syschecks.com/referer
-curl ip.syschecks.com/healthz
ok