Every tool answers curl in plain text. Bare paths like curl ipq.sh/dns print their own usage. Your request curl ipq.sh your IP address curl ipq.sh/ip the same, by name curl ipq.sh/ip.json IP, version and country as JSON curl -4 ipq.sh your IPv4 address (-6 for IPv6) curl ipq.sh/headers the headers your client sent curl ipq.sh/headers.json the same as JSON curl ipq.sh/ua your user agent (/ua.json) curl ipq.sh/time the current time in UTC (/time.json) Check a site curl ipq.sh/check/example.com DNS, TCP, TLS and one HEAD / from every region curl ipq.sh/check/example.com?port=80 plain HTTP on port 80 instead of 443 Traceroute curl ipq.sh/trace traceroute to you from every region curl ipq.sh/trace/me the same, by name curl ipq.sh/trace/example.com traceroute to a site or address Ping curl ipq.sh/ping/example.com five pings to a site or address from every region curl ipq.sh/ping/me five pings to you DNS curl ipq.sh/dns/example.com A records, as each region's resolver sees them curl ipq.sh/dns/example.com?type=MX any of A AAAA CNAME MX NS TXT SOA CAA SRV PTR curl ipq.sh/dns/example.com?mail MX, SPF and DMARC together curl ipq.sh/dns/8.8.8.8 an address looks up its PTR Ports curl ipq.sh/port/22,443 are your own TCP ports reachable from outside (up to five) curl -6 ipq.sh/port/443 test your IPv6 address (-4 for IPv4) Only ever tests the address you connect from. GeoIP curl ipq.sh/geo where you are and who routes you curl ipq.sh/geo/8.8.8.8 location, network and reverse name of an address curl ipq.sh/geo/example.com the same for each address a name resolves to curl ipq.sh/asn/8.8.8.8 the same lookup, by another name Heartbeats curl -d period=1h -d grace=15m -d ntfy=mytopic ipq.sh/heartbeat create a check; prints its ping and manage URLs curl -d period=1d -d webhook=https://… ipq.sh/heartbeat alert a webhook instead; also -d name=…, -d remind=6h curl ipq.sh/hb/ ping: the job ran curl ipq.sh/hb//start the job started curl ipq.sh/hb//fail the job failed curl ipq.sh/hb//$? report an exit code; non-zero is a failure curl ipq.sh/heartbeat/ status and recent pings curl -d action=test ipq.sh/heartbeat/ send a test alert curl -d period=2h ipq.sh/heartbeat/ change settings curl -d action=delete ipq.sh/heartbeat/ delete the check curl -d ping= ipq.sh/heartbeat/recover lost the manage URL: a one-time link goes to the alert destination Internet health curl ipq.sh/health major services, as nine regions see them curl ipq.sh/health.json the same as JSON Options ?from=nyc,lon only these regions, on /check, /trace, /ping, /dns and /port ?json JSON instead of text; so does -H 'Accept: application/json' curl -4 or -6: pick which of your addresses /trace, /ping/me and /port test Regions: nyc New York, sfo San Francisco, sao São Paulo, lon London, jnb Johannesburg, blr Bangalore, sgp Singapore, tyo Tokyo, syd Sydney. Combine options with &, and quote the URL in your shell: curl 'ipq.sh/dns/example.com?type=TXT&from=lon&json'.