---
title: "Create a static proxy pool from proxy lines; bad lines are reported by number."
method: POST
path: "/v1/proxy-pools"
---

# Create a static proxy pool from proxy lines; bad lines are reported by number.

`POST /v1/proxy-pools`

## Request

- Base URL: `http://127.0.0.1:10108`
- URL: `http://127.0.0.1:10108/v1/proxy-pools`
- Auth: HTTP bearer

Creates a new static proxy pool from up to 1000 proxy lines, credentials included. Lines that do not parse are skipped and reported by number, never by content.

## Request body

- object
  - `lines` string[], required
  - `name` string, required
  - `type` 'static'

## Response `200`

The new pool, how many lines were imported, and the numbers of the lines refused.

- object
  - `imported` integer, required
  - `pool_id` string, uuid, required
  - `rejected` object[], required
    - `line` integer, required
    - `reason` string, required

## Other responses

- `400`: Empty name, a type other than static, more than 1000 lines, or no valid line at all.
- `401`: No bearer token, or not a token this app issued. The body is empty: it never says which.
- `403`: Refused by the plan: it no longer includes the local API (checked on every request), or it does not allow this action (profile or schedule limit, parallel runs). A request whose Host header is not loopback is also 403, with an empty body.
- `429`: Too many expensive calls from this token: launch, script run, batch, run schedule now, create profiles and import proxies count together, 30 per rolling 60 s. The Retry-After header gives the seconds to wait.
- `500`: Veilus failed: storage could not be read or written, or a task panicked. The message says what failed; retrying rarely helps.

---

[API](https://skmtc.dev/veilus/apis/veilus-local-api.md) · [All operations](https://skmtc.dev/veilus/apis/veilus-local-api/llms.txt) · [OpenAPI document](https://skmtc.dev/veilus/apis/veilus-local-api/revisions/67ac3818f9d2?raw)
