---
title: Check Proxy Connectivity and Anonymity API
slug: check-proxy-connectivity-anonymity
url: https://apyhub.com/hproxy/service/check-proxy-connectivity-anonymity
provider: HProxy
tags: [proxy-validation, proxy-checking, socks5, http-proxy, network-utilities]
auth: api_key
version: 1.0.0
service_type: sync
endpoints: 3
atoms: 1
mcp: true
---

# Check Proxy Connectivity and Anonymity API

Validate single proxies or large lists, including HTTP, HTTPS, SOCKS4, and SOCKS5. Filter working proxies, test speed, and check UDP support.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check` | What it does Checks whether a single proxy is alive and returns its detected details, including sup… | 1 |
| POST | `https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check/batch` | What it does Checks up to 1,000 proxy lines in a single POST request and returns one batch response… | 1 |
| POST | `https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/free-proxy/check` | What it does Checks a batch of proxy lines and streams back newline-delimited JSON results as each… | 1 |

## Endpoint reference

### Check one proxy

`GET https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check` · 1 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `proxy` | query | string | yes |  |

#### Quickstart

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

```bash
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.

```json
{
  "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
}
```

### Check up to 1,000 at once

`POST https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/proxy-check/batch` · 1 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `proxies` | body | array of string | yes | Up to 1,000 proxy lines per request (ip:port, host:port:user:pass or user:pass@host:port). |

#### Quickstart

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

```bash
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.

```json
{
  "count": 1,
  "results": [
    {
      "input": "203.0.113.10:8080",
      "status": "alive",
      "alive": true,
      "protocols": ["socks5"]
    }
  ],
  "complete": true,
  "unchecked": 0
}
```

### Stream a big list, up to 100,000

`POST https://api.eu.apyhub.com/hproxy/check-proxy-connectivity-anonymity/free-proxy/check` · 1 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `proxies` | body | array of string | yes | Up to 100,000 proxy lines. |
| `retries` | body | integer | no | Extra attempts for a proxy that does not answer, 0 to 3. Default 0. |
| `protocols` | body | array of string | no | Any of http, https, socks4, socks5. Default all four. |
| `timeout_ms` | body | integer | no | Per-probe budget, 1,000 to 60,000. Default 8,000. |
| `measure_udp` | body | boolean | no | Also test whether each working SOCKS5 proxy relays UDP (supports_udp). |
| `measure_speed` | body | boolean | no | Also measure download speed through each working proxy (speed_mbps). |

#### Quickstart

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

```bash
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"`.

```json
{"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}
```

## About

## 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.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/hproxy/service/check-proxy-connectivity-anonymity
