> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clearproxy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Check Proxies

> Check proxies using JSON format with optional custom URL validation

## Authentication

<ParamField header="X-API-Key" type="string" required>
  Your ClearProxy API key (format: clearpx\_yourkey)
</ParamField>

Alternatively, you can use Bearer token authentication:

<ParamField header="Authorization" type="string">
  Bearer token (format: Bearer clearpx\_yourkey)
</ParamField>

## Request Body

<ParamField body="proxies" type="array" required>
  Array of proxy addresses
</ParamField>

<ParamField body="jobId" type="string">
  Optional client-side generated job ID for real-time progress tracking via WebSockets
</ParamField>

<ParamField body="region" type="string">
  Region code (default: us1)
</ParamField>

<ParamField body="type" type="string">
  Proxy type: http, socks4, socks5 (default: http)
</ParamField>

<ParamField body="timeout" type="integer">
  Timeout in ms (1000-20000)
</ParamField>

<ParamField body="customUrls" type="array">
  Array of custom URLs to validate working proxies against
</ParamField>

### Custom URL Parameters

<ParamField body="customUrls[].url" type="string" required>
  Target URL to test proxies against
</ParamField>

<ParamField body="customUrls[].requiredStatusCodes" type="array">
  HTTP status codes to accept (default: \[200])
</ParamField>

<ParamField body="customUrls[].requiredText" type="string">
  Text that must appear in response body
</ParamField>

<ParamField body="customUrls[].caseSensitive" type="boolean">
  Case-sensitive text matching (default: false)
</ParamField>

## Example Request

```bash theme={null}
curl -X POST https://api.clearproxy.io/check \
  -H "X-API-Key: clearpx_yourkey" \
  -H "Content-Type: application/json" \
  -d '{
    "proxies": ["1.2.3.4:8080", "user:pass@5.6.7.8:3128"],
    "region": "sg1",
    "type": "http",
    "timeout": 2000,
    "jobId": "my_unique_job_id_123"
  }'
```

## Example with Custom URL Validation

```bash theme={null}
curl -X POST https://api.clearproxy.io/check \
  -H "X-API-Key: clearpx_yourkey" \
  -H "Content-Type: application/json" \
  -d '{
    "proxies": ["1.2.3.4:8080"],
    "customUrls": [
      {
        "url": "https://discord.com",
        "requiredStatusCodes": [200, 301, 302]
      }
    ]
  }'
```

## Response

<ResponseField name="summary" type="object">
  Summary of check results

  <Expandable title="properties">
    <ResponseField name="total_working" type="integer">
      Number of working proxies found
    </ResponseField>

    <ResponseField name="countries" type="object">
      Breakdown by country
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata" type="object">
  Detailed metadata about the request

  <Expandable title="properties">
    <ResponseField name="user" type="object">
      <Expandable title="properties">
        <ResponseField name="subscription_detail" type="object">
          <Expandable title="properties">
            <ResponseField name="UnlimitedPro" type="boolean">
              If the UnlimitedPro plan is active
            </ResponseField>

            <ResponseField name="unlimited_expired_at" type="string">
              Expiration date of the unlimited plan
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="result_url" type="string">
  URL to download full results
</ResponseField>
