apyhub
Back

Check Proxy Connectivity and Anonymity API

What it does

Proxy Checker lets you verify one proxy or a large proxy list and get back status, connectivity, and network details.

Send a single proxy string to the GET endpoint, or send a proxies array to the batch and streaming endpoints. For each proxy, the response can include the original input, status, alive, protocols, ip, port, latency_ms, anonymity, country_code, city, region, asn, asn_org, exit_ip, is_datacenter, and any error or failure reason when a proxy is dead or unresolved. The streaming endpoint also accepts optional retries, protocols, timeout_ms, measure_udp, and measure_speed settings so you can tune how proxies are checked.

Use Proxy Checker to filter scraped proxy lists, validate vendor-supplied endpoints, or score traffic routes before routing production requests. The batch endpoint returns count, results, complete, and unchecked so you can see how many proxies were processed and which ones need another pass.

The streaming endpoint is built for very large lists, returning NDJSON lines as each proxy settles. It also emits progress and end events, which makes it a good fit when you want partial results quickly instead of waiting for the full batch to finish.

▣ ENDPOINT 01 / 03
GET
Check one proxy
https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check

QUICKSTART

GUIDE

Quickstart

Check a single proxy by passing it as a query parameter.

curl -X GET "https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check?proxy=203.0.113.7:1080" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with proxy status details. The response includes required top-level fields input (the proxy string you checked), status (a string verdict such as alive), alive (a boolean), and protocols (an array of supported proxy protocols), plus other optional fields when available.

{
  "ip": "203.0.113.7",
  "asn": 14061,
  "city": "New York",
  "port": 1080,
  "alive": true,
  "error": null,
  "input": "203.0.113.7:1080",
  "region": "New York",
  "status": "alive",
  "asn_org": "DigitalOcean, LLC",
  "exit_ip": "203.0.113.7",
  "failure": null,
  "anonymity": "elite",
  "protocols": ["socks5"],
  "latency_ms": 184,
  "speed_mbps": null,
  "country_code": "US",
  "supports_udp": null,
  "is_datacenter": true
}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks whether a single proxy is alive and returns its detected details, including supported protocols, anonymity grade, latency, and location. The request takes one proxy string and the response returns a JSON object with the proxy check result fields.

Query Parameter(s)

AttributeTypeMandatoryDescription
proxyStringYesThe proxy string to check.

Response

Returns a JSON object with proxy check details.

ParameterTypeDescription
ipStringIP address of the proxy; null if it could not be resolved.
asnIntegerAutonomous System Number identifying the network operator.
cityStringCity name where the proxy IP is located.
portIntegerPort number the proxy is listening on.
aliveBooleanWhether the proxy is currently alive and responding.
errorStringHuman-readable error message describing what went wrong.
inputStringThe proxy string as provided in the request.
regionStringState or region name within the country.
statusENUMVerdict on the proxy status. Allowed values: alive, dead, invalid, unresolved, forbidden, unchecked.
asn_orgStringOrganization name running the ASN.
exit_ipStringExit IP where traffic comes out; may differ from the input IP for gateway proxies.
failureENUMReason for failure if status is dead. Allowed values: refused, timeout, tls_error, bad_status, no_echo.
anonymityENUMAnonymity grade. Allowed values: elite, anonymous, transparent.
protocolsString ArrayArray of supported proxy protocols. Allowed values for each item: http, https, socks4, socks5.
latency_msIntegerLatency in milliseconds.
speed_mbpsNumberDownload speed in Mbps; included only if measure_speed=true was requested.
country_codeString2-letter ISO country code.
supports_udpBooleanWhether a SOCKS5 proxy supports UDP relay; included only if measure_udp=true was requested.
is_datacenterBooleantrue if the IP belongs to a datacenter provider such as AWS, Azure, or DigitalOcean.
▣ ENDPOINT 02 / 03
POST
Check up to 1,000 at once
https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check/batch

QUICKSTART

GUIDE

Quickstart

Check a small batch of proxies by sending them as a JSON array in proxies.

curl -X POST "https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check/batch" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"proxies":["203.0.113.10:8080"]}'

What you'll get back

Returns a JSON object with count and unchecked integers, complete as a boolean, and results as an array of per-proxy result objects. Each result includes the original input, a status, alive, and protocols, plus additional fields like ip, port, and error when available.

{
  "count": 1,
  "results": [
    {
      "input": "203.0.113.10:8080",
      "status": "alive",
      "alive": true,
      "protocols": ["socks5"]
    }
  ],
  "complete": true,
  "unchecked": 0
}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
proxies*
Up to 1,000 proxy lines per request (ip:port, host:port:user:pass or user:pass@host:port).

About this endpoint

What it does

Checks up to 1,000 proxy lines in a single POST request and returns one batch response with a summary plus per-proxy results. The request sends an array of proxy strings and the response includes a top-level count, whether the batch completed, how many were unchecked, and a result object for each input proxy.

Request Body

ParameterTypeDescription
countIntegerNumber of proxy results returned in this response.
resultsObject ArrayArray of proxy results, one entry for every proxy sent, in the same order. Each item includes the proxy verdict and details.
completeBooleanWhether all proxies in the request were checked. false means some hit the time budget before completing.
uncheckedIntegerNumber of proxies that did not complete within the time budget. Retry these with the streaming endpoint.

Response

Returns a JSON object with a count integer, a results array containing one result object per submitted proxy in the same order as the input list, a complete boolean indicating whether all proxies were checked, and an unchecked integer showing how many did not complete within the time budget.

ParameterTypeDescription
results[].ipStringResolved IP address of the proxy.
results[].asnIntegerAutonomous System Number.
results[].cityStringCity location.
results[].portIntegerPort number.
results[].aliveBooleanWhether the proxy is currently working.
results[].errorStringHuman-readable error message.
results[].inputStringThe proxy line exactly as provided in the request.
results[].regionStringRegion or state.
results[].statusENUMVerdict on the proxy status. Allowed values: alive, dead, invalid, unresolved, forbidden, unchecked.
results[].asn_orgStringNetwork operator organization.
results[].exit_ipStringExit IP where traffic actually comes out.
results[].failureENUMFailure reason if status is dead. Allowed values: refused, timeout, tls_error, bad_status, no_echo.
results[].anonymityENUMAnonymity grade. Allowed values: elite, anonymous, transparent.
results[].protocolsString ArraySupported protocols. Allowed values for each item: http, https, socks4, socks5.
results[].latency_msIntegerResponse time in milliseconds.
results[].country_codeString2-letter country code.
results[].is_datacenterBooleanWhether IP is from a datacenter.
▣ ENDPOINT 03 / 03
POST
Stream a big list, up to 100,000
https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/free-proxy/check

QUICKSTART

GUIDE

Quickstart

Check a small list of proxies and stream back each result as it settles.

curl -X POST "https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/free-proxy/check" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"proxies":["203.0.113.10:8080"]}'

What you'll get back

Returns NDJSON, where each line is a JSON object. Result lines include input (the proxy line), status (alive, dead, invalid, unresolved, forbidden, or unchecked), alive (true or false), and protocols (an array of supported protocols). The stream can also include progress lines with _event: "progress" and a final line with _event: "end".

{"input":"203.0.113.7:1080","status":"alive","alive":true,"protocols":["socks5"]}
{"_event":"progress","done":500,"total":1000}
{"_event":"end","done":1000,"total":1000,"duration_ms":25000}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
proxies*
Up to 100,000 proxy lines.
Extra attempts for a proxy that does not answer, 0 to 3. Default 0.
protocols
Any of http, https, socks4, socks5. Default all four.
Per-probe budget, 1,000 to 60,000. Default 8,000.

About this endpoint

What it does

Checks a batch of proxy lines and streams back newline-delimited JSON results as each proxy settles, rather than waiting for the full batch to finish. The request accepts up to 100,000 proxy strings and optional probing settings; the response stream contains proxy result lines plus progress and end events.

Request Body

ParameterTypeMandatoryDescription
proxiesString ArrayYesUp to 100,000 proxy lines.
retriesIntegerNoExtra attempts for a proxy that does not answer, 0 to 3. Default 0.
protocolsString ArrayNoAny of http, https, socks4, socks5. Default all four.
timeout_msIntegerNoPer-probe budget, 1,000 to 60,000. Default 8,000.
measure_udpBooleanNoAlso test whether each working SOCKS5 proxy relays UDP (supports_udp).
measure_speedBooleanNoAlso measure download speed through each working proxy (speed_mbps).

Response

Returns an NDJSON stream, not a single JSON object. Each line is one of three object shapes: a proxy result line with fields such as input, status, alive, and protocols; a progress event line with _event, done, and total; or a final end event line with _event, done, total, and duration_ms. The HTTP response is streamed as results become available.

ParameterTypeDescription
inputStringThe proxy line as provided in the request.
statusENUMVerdict on the proxy: alive, dead, invalid, unresolved, forbidden, or unchecked.
aliveBooleanWhether the proxy is working.
protocolsString ArraySupported protocols.
ipStringResolved IP address.
asnIntegerASN.
cityStringCity.
portIntegerPort number.
regionStringRegion.
asn_orgStringASN organization.
exit_ipStringExit IP for the traffic.
failureStringFailure reason if dead.
latency_msIntegerResponse latency in milliseconds.
speed_mbpsNumberDownload speed, present if measure_speed=true in the request.
country_codeStringCountry code if available.
supports_udpBooleanUDP support for SOCKS5, present if measure_udp=true in the request.
is_datacenterBooleanWhether the proxy is a datacenter proxy.
_eventENUMEvent type identifier for non-result lines: progress or end.
doneIntegerNumber of proxies checked so far for progress events, or total proxies checked for the end event.
totalIntegerTotal number of proxies in the batch.
duration_msIntegerTotal time taken to check all proxies in milliseconds; present on the end event line.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.