The checker sends one real request through the proxy you enter and reports what came out the other side. Our server is the client. It connects to your proxy, asks it to fetch http://ip-api.com/json/, and reads back the address that ip-api.com saw. That address is the proxy’s exit, and the rest of the result describes it.
Reading the result
| Field | What it is |
|---|---|
| Exit IP | The address the target saw. For a rotating proxy it changes between runs; that is the rotation working. |
| Country, city, ISP, ASN | ip-api.com’s view of the exit address. A residential proxy should name a consumer ISP here, not a hosting company. |
| Hosting / datacenter | Whether ip-api.com places the exit in a hosting range. Some sites treat hosting ranges with more suspicion than consumer ones. |
| Connect time | Time to open the connection to the proxy itself, measured from our server. |
| Total time | Connect plus the proxy fetching the target and returning the answer. |
Both times are measured from our server, not from your machine. They tell you how the proxy behaved for one request from one place, which is useful for spotting a dead or overloaded endpoint and useless as a benchmark.
Reading a failure
A failure says where the request stopped. That decides what to change.
- The proxy refused the credentials (HTTP 407). The proxy answered and rejected the login. Check the username, the password and the port: some providers select behaviour by port, and some encode country or session settings in the username. See 403 vs 407 vs 429.
- Connection refused or timed out. Nothing answered on that host and port. The endpoint is down, the port is wrong, or the provider only accepts your whitelisted address, which is not ours.
- A SOCKS error with an HTTP proxy, or the reverse. The protocol does not match what the endpoint speaks. Try the other one.
Which protocol to pick
| Option | Use it when |
|---|---|
| HTTP / HTTPS | The provider gave you an HTTP proxy address, usually written host:port. |
| SOCKS5 | The endpoint speaks SOCKS5. Our server resolves the target’s name and hands the proxy an address. |
| SOCKS5h | The endpoint speaks SOCKS5 and should resolve names itself, so the lookup happens at the exit. |
| SOCKS4 | An old endpoint that only speaks SOCKS4. It cannot carry IPv6 or remote names. |
The same test with curl
curl -s -x http://user:pass@gw.example.net:8000 http://ip-api.com/json/
curl -s -x socks5h://user:pass@gw.example.net:1080 http://ip-api.com/json/
Run from your own machine, this also tests the proxy from your network, which the checker cannot do.
Limits
The checker refuses private and reserved addresses and stops after 12 seconds. It tests a single request, so it cannot tell you a pool’s success rate or how often an exit changes. Credentials are used for that one request and are not stored.