---
title: "Hand over a big list as a job"
method: POST
path: "/api/v1/proxy-check/jobs"
tags: ["Proxy checker API"]
---

# Hand over a big list as a job

`POST /api/v1/proxy-check/jobs`

## Request

- Base URL: `https://hproxy.com`
- URL: `https://hproxy.com/api/v1/proxy-check/jobs`
- Auth: API key in header `X-API-Key`

For the lists that take minutes: hand the list over, get an id back immediately, come back for the results when it is done. Nothing has to stay connected, so a dropped line, a closed laptop or a restart on our side does not cost you the run — a job that is interrupted resumes on the line after the last one answered.

**Accounts only** (an API key, or signed in on the dashboard). The list costs the same as checking it any other way: every line is charged to your daily budget of 3,000,000 when the job is created, and refunded if the job could not be created at all.

The limits that keep this from becoming a flood: up to **100,000** lines per job, **3** queued or running jobs at a time per account, and 20 job creations an hour. Job probes run in the lowest lane, below every live check, so they pause while the service is under load and pick up again by themselves. Results live for **72 hours** after the job ends, then the files are deleted and the job reads `expired`.

Send the list as `{ "proxies": [...] }` with the same options the streaming endpoint takes, or as a `text/plain` body of one proxy per line (what `curl --data-binary @list.txt` sends). Answer is `202` with the job.

## Request body

- object
  - `X-API-Key` string, required: Your hpx_ key (or Authorization: Bearer hpx_...).
  - `proxies` unknown[], required: Up to 100,000 proxy lines. A text/plain body of one line per proxy works too.
    - unknown
  - `label` string: Your own name for the run, up to 64 characters. Shown in the dashboard.
  - `timeout_ms` integer: Per-probe budget, 1,000 to 60,000. Default 8,000.
  - `retries` integer: Extra attempts for a proxy that does not answer, 0 to 3. Default 0.
  - `protocols` unknown[]: Any of http, https, socks4, socks5. Default all four.
    - unknown
  - `measure_speed` boolean: Also measure download speed through each working proxy (speed_mbps).
  - `measure_udp` boolean: Also test whether each working SOCKS5 proxy relays UDP (supports_udp).

## Response `200`

Success

- object

## Other responses

- `400`: Invalid input. The body names the field and the accepted set.
- `401`: Missing or invalid API key.
- `429`: Rate limited. Retry after the delay in the response.

---

[API](https://skmtc.dev/hproxy/apis/hproxy-api.md) · [All operations](https://skmtc.dev/hproxy/apis/hproxy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hproxy/apis/hproxy-api/revisions/9f6898fe76e2?raw)
