syschecks · ip · API

ipcheck API

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

OpenAPI spec: /openapi.json — import into Swagger UI, Postman or Insomnia

IP

GET /text/plain
Your IP — plain text for curl, HTML page in a browser
curl ip.syschecks.com/
203.0.113.7
GET /iptext/plain
Your IP address, always plain text
curl ip.syschecks.com/ip
203.0.113.7

Everything

GET /jsontext/plain · application/json
Full info as JSON (CORS enabled)
curl 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"}
GET /alltext/plain
All fields as key: value lines
curl ip.syschecks.com/all
ip_addr: 203.0.113.7
ip_family: IPv4
country: PL
asn: AS9141
org: Play
GET /all.jsontext/plain · application/json
All fields as JSON
curl ip.syschecks.com/all.json
{"ip_addr":"203.0.113.7","ip_family":"IPv4","country":"PL","asn":"AS9141"}

Geolocation

GET /countrytext/plain
Country ISO code (GeoLite2)
curl ip.syschecks.com/country
PL
GET /citytext/plain
City (GeoLite2)
curl ip.syschecks.com/city
Warsaw
GET /asntext/plain
Autonomous system number (GeoLite2)
curl ip.syschecks.com/asn
AS9141

Privacy

GET /typetext/plain
IP type: residential | hosting | vpn | tor
curl ip.syschecks.com/type
hosting

Speed test

GET /speedtesttext/plain
Ready curl one-liner for a CLI download test
curl ip.syschecks.com/speedtest
curl -o /dev/null -w "%{speed_download} B/s\n" .../speedtest/download?mb=100
GET /speedtest/downloadtext/plain
Streams ?mb= MB (1..500) of data to measure download speed
curl ip.syschecks.com/speedtest/download
<binary>
GET /speedtest/uploadtext/plain
POST sink — measures upload speed
curl ip.syschecks.com/speedtest/upload
received 12345 bytes

Blacklist

GET /rbltext/plain
DNSBL / blacklist status of your IP (IPv4), per-list breakdown
curl 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 listed

Whois

GET /rdaptext/plain
RDAP whois: network name, RIR, allocation date, abuse contact, and RPKI validity (append ?format=json for JSON)
curl 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)

Network tools

GET /ping?target=example.comtext/plain
ICMP ping from our server to a host: latency (min/avg/max/mdev) and loss, with ASN/geo. Add &format=json. Rate-limited; private targets blocked.
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 ms
GET /trace?target=example.comtext/plain
Traceroute from our server to a host: every hop with ASN, geolocation, loss and RTT. Add &format=json for a hop array (map on the web page).
curl 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.3ms
GET /mtr?target=example.comtext/plain
MTR (my-traceroute): like /trace but probes each hop 10x for per-hop packet loss and best/avg/worst/stddev latency. Add &format=json.
curl 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.9

Request fields

GET /headerstext/plain
Echo the request headers
curl ip.syschecks.com/headers
Accept: */*
User-Agent: curl/8.8.0
GET /uatext/plain
Your User-Agent
curl ip.syschecks.com/ua
curl/8.8.0
GET /hosttext/plain
Reverse DNS (PTR)
curl ip.syschecks.com/host
host.example.net
GET /porttext/plain
Your source port
curl ip.syschecks.com/port
54318
GET /langtext/plain
Accept-Language header
curl ip.syschecks.com/lang
en-US,en
GET /encodingtext/plain
Accept-Encoding header
curl ip.syschecks.com/encoding
gzip, br
GET /mimetext/plain
Accept header
curl ip.syschecks.com/mime
*/*
GET /charsettext/plain
Accept-Charset header
curl ip.syschecks.com/charset
-
GET /forwardedtext/plain
X-Forwarded-For header
curl ip.syschecks.com/forwarded
-
GET /viatext/plain
Via header
curl ip.syschecks.com/via
-
GET /referertext/plain
Referer header
curl ip.syschecks.com/referer
-

Ops

GET /healthztext/plain
Liveness probe
curl ip.syschecks.com/healthz
ok
Built by systeam.pl · powered by syschecks.com · back to the tool