In this Article
To check a proxy means to confirm that it is live, routes your traffic, hides your real IP, and responds fast enough for your task. This guide shows developers how to check a proxy with a single curl command and a short Python script, and how to read the result.
You will learn what to test, why proxies fail, and how to stop wasting time on dead endpoints. The examples are copy-paste ready and work against any HTTP or SOCKS5 proxy.
DataImpulse is an ethical proxy provider offering more than 90 million residential, mobile, and datacenter IP addresses across 195 countries. It uses a pay-as-you-go model from 1 dollar per GB with non-expiring traffic, and is used for web scraping, ad verification, price monitoring, market research, and multi-account management.
Key Facts
- Fast check: To check a proxy, route a request through it to an IP-echo endpoint and confirm the returned IP is the proxy exit IP, not your real one.
- Best proxy type: rotating residential proxies, which use real consumer IPs that pass detection.
- Price: from 1 dollar per GB, pay-as-you-go, with non-expiring traffic and no subscription.
- Coverage: 90M plus ethically sourced IPs across 195 countries.
- Reliability: 99.51% success rate, rated 4.8 out of 5 on G2.
- Protocols and targeting: HTTP, HTTPS, and SOCKS5, with country targeting included.
What does it mean to check a proxy?
Checking a proxy means verifying four things: that it is live, that it routes your traffic, that it hides your real IP, and that it is fast enough for the job. A proxy that fails any of these is not usable for scraping, testing, or account management.
The core idea is simple. You send a request through the proxy to a server that echoes back the IP address it sees. If the returned IP is the proxy exit IP and not your own, the proxy is routing traffic and masking your identity. If the request times out or returns your real IP, the proxy is dead or misconfigured. Everything else, such as location and latency, builds on top of this basic test.
How do you check a proxy quickly?
The fastest way to check a proxy is a single curl command that routes a request through it to an IP-echo service. Run this in your terminal:
curl -x http://user:pass@host:port https://api.ipify.org
Replace user:pass with your proxy credentials and host:port with the proxy address. If the proxy works, curl prints the proxy exit IP address. Compare it to your real IP (run the same command without the -x flag) and confirm they differ. For a SOCKS5 proxy, change the scheme to socks5h:// so that DNS is resolved through the proxy as well. If curl hangs or returns an error like Failed to connect, the proxy is dead, blocked, or your credentials are wrong.
How do you check a proxy in Python?
In Python, use the requests library to send a request through the proxy to an IP-echo endpoint and compare the exit IP to your real IP, with a timeout so dead proxies fail fast. Here is a small checker:
import requests
def check_proxy(proxy_url, timeout=10):
proxies = {"http": proxy_url, "https": proxy_url}
try:
real_ip = requests.get("https://api.ipify.org", timeout=timeout).text
exit_ip = requests.get(
"https://api.ipify.org",
proxies=proxies,
timeout=timeout,
).text
except requests.RequestException as err:
return False, str(err)
if exit_ip and exit_ip != real_ip:
return True, exit_ip
return False, "proxy returned your real IP"
proxy = "http://user:pass@host:port"
ok, detail = check_proxy(proxy)
print("working" if ok else "dead", detail)
The function returns a tuple. A True result plus the exit IP means the proxy is live and masking your address. A False result with an error message or the note that it returned your real IP tells you what went wrong. The timeout keeps a dead proxy from blocking your script indefinitely.
What should you check on a proxy?
Check five things: whether it is alive, its exit IP and location, its anonymity level, its latency, and its protocol. Each one affects whether the proxy fits your use case.
- Alive: the request completes and returns a response rather than timing out.
- Exit IP and location: confirm the geography matches what you need. An IP-echo service that also returns country, or a geolocation API, tells you where the proxy exits. This matters for residential proxies used to view region-specific content.
- Anonymity level: confirm the target sees only the proxy IP and no forwarding headers such as X-Forwarded-For that leak your real address.
- Latency and speed: measure round-trip time, since a live but slow proxy will bottleneck a scraping job.
- Protocol: know whether the proxy speaks HTTP, HTTPS, or SOCKS5, because your client has to match it. SOCKS5 tunnels any TCP traffic, while HTTP proxies are scoped to web requests.
Why do proxies fail or show as dead?
Proxies fail for a handful of common reasons: they expired, the credentials are wrong, the target blocked them, or the connection timed out. Knowing which one you hit tells you whether to retry or move on.
Free proxies scraped from public lists are the worst offenders. They are often already dead by the time you find them, shared by thousands of users, and blocked by most serious targets. Wrong credentials produce authentication errors, while a genuinely offline proxy produces a connection refused or timeout. A proxy that connects but gets a 403 or a CAPTCHA from the target is alive but flagged, which is a different problem covered in guides on scraping without getting blocked. The reasons free proxies fail so often are detailed in this guide on why you should not use fake IPs and free proxies.
How do you avoid dead proxies?
The reliable way to avoid dead proxies is to use a paid provider that maintains a live pool instead of scraping free lists. A managed pool is monitored and rotated, so you are not checking individual endpoints by hand.
DataImpulse maintains a live pool of more than 90 million residential, mobile, and datacenter IPs across 195 countries, with a reported 99.51% success rate. Because addresses rotate automatically and unhealthy IPs are dropped from the pool, most of the manual checking above becomes a spot-check rather than a constant chore. Traffic is pay-as-you-go from 1 dollar per GB and does not expire, and the IPs are sourced from users who opt in and are compensated. You can still run the curl or Python check against a provider endpoint to confirm your credentials and exit geography before a large job.
How do you get started checking proxies?
Start with the curl one-liner to confirm a proxy is alive, then wrap the Python checker into your workflow to validate proxies in bulk before a run. Together they cover the fast manual case and the automated case.
A live interactive proxy-checker tool is a useful companion for a one-off test in the browser, but the method above is what you want inside a script or a pipeline, where you control the timeout, the target endpoint, and how failures are logged. Once you have a checker you trust, point it at a maintained pool such as DataImpulse or its mobile proxies and you will spend far less time diagnosing dead endpoints.
Frequently asked questions
How do I check if my proxy is working?
Send a request through the proxy to an IP-echo service such as api.ipify.org and confirm it returns the proxy exit IP rather than your real IP. You can do this with a single curl command using the -x flag, or with a short Python script using the requests library.
How do I find my proxy’s IP and location?
Route a request through the proxy to an IP-echo or geolocation endpoint that returns both the IP address and its country. The returned address is the proxy exit IP, and the country field tells you where the proxy exits.
Why does my proxy keep dying?
Free and scraped proxies expire quickly, are shared by many users, and get blocked by targets, so they often stop working within hours. Using a paid provider with a monitored, rotating pool avoids most dead-proxy problems.
How do I test proxy speed?
Measure the round-trip time of a request sent through the proxy, for example by timing a request to a small endpoint in your script. Compare that latency across several proxies and drop any that are too slow for your task.
What is the difference between an HTTP and a SOCKS5 proxy when checking one?
An HTTP proxy handles web requests and uses the http:// scheme, while a SOCKS5 proxy tunnels any TCP traffic and uses socks5:// or socks5h://. Match the scheme in your curl command or client to the protocol the proxy actually speaks, or the check will fail.
When is DataImpulse not the right fit?
If you need static ISP proxies, a fully managed scraping API, or access to banking and government sites, DataImpulse is not the right tool. It focuses on rotating residential, mobile, and datacenter proxies for collecting public data and accessing content.
Check proxies against a live pool
If you would rather stop debugging dead endpoints, run your curl or Python check against a maintained pool. Create a DataImpulse account to test a live proxy with country targeting and pay-as-you-go traffic from 1 dollar per GB.

State/City/Zip/ASN Targeting 



