ReachCheck API
Check whether a server IP is reachable from real residential connections, by country, state and network provider. Every request carries your key in the X-API-Key header.
Base URL
https://ip.builtforyou.dev/api/v1Auth header
X-API-Key: rc_your_key_here
Keys are issued by the operator. Countries available now: GB, US, CA.
Start a check
POST /api/v1/checks
Content-Type: application/json
X-API-Key: rc_your_key_here
{
"ip": "203.0.113.10",
"port": 8080,
"protocol": "http", // tcp | http | https
"country": "GB",
"states": ["gb-sct", "gb-eng"], // optional; omit for whole country
"providers": [5089, 2856], // optional ASN list; omit = busiest networks
"top_providers": 3, // used when providers omitted
"webhook_url": "https://you.example.com/hook" // optional, called when done
}
Returns 202 with an id and a poll URL:
{ "id": "chk_1a2b3c4d", "status": "queued", "poll": "https://ip.builtforyou.dev/api/v1/checks/chk_1a2b3c4d" }
Get the result
GET /api/v1/checks/chk_1a2b3c4d GET /api/v1/checks/chk_1a2b3c4d?wait=30 // long-poll up to 30s for it to finish
{
"id": "chk_1a2b3c4d",
"status": "done",
"message": "reachable from 5 of 6 lines",
"ip": "203.0.113.10", "port": 8080, "protocol": "http", "country": "GB",
"tested_as": "203-0-113-10.ip.example.com",
"summary": { "total": 6, "reachable": 5, "not_reachable": 1, "reachable_percent": 83 },
"results": [
{ "state_name": "Scotland", "provider": "Virgin Media", "provider_asn": 5089,
"reachable": true, "stage": "http", "latency_ms": 412, "http_status": 200,
"feedback": "Reached port 8080 from Virgin Media in Scotland in 412 ms, HTTP 200" },
{ "state_name": "England", "provider": "Sky Broadband", "provider_asn": 5607,
"reachable": false, "stage": "connect", "error": "timed out after 15s",
"feedback": "Not reached from Sky Broadband in England: timed out after 15s" }
]
}
While status is queued, dns or running, poll again. Final status is done or failed.
Helpers
GET /api/v1/me # your plan and usage this month GET /api/v1/countries # countries you can test GET /api/v1/states?country=GB GET /api/v1/providers?country=GB&state=gb-sct # ASNs with the most lines
Errors
JSON body with an error string. 401 bad key, 402 monthly limit reached, 403 account paused, 429 too fast, 400 bad input.
curl example
curl -s https://ip.builtforyou.dev/api/v1/checks \
-H "X-API-Key: rc_your_key_here" -H "Content-Type: application/json" \
-d '{"ip":"203.0.113.10","port":443,"protocol":"https","country":"GB","top_providers":3}'
ReachCheck ยท powered by residential lines from Byteful.