---
title: "Test every proxy in a pool now: alive, latency, exit IP and geo."
method: POST
path: "/v1/proxy-pools/{id}/test"
---

# Test every proxy in a pool now: alive, latency, exit IP and geo.

`POST /v1/proxy-pools/{id}/test`

## Request

- Base URL: `http://127.0.0.1:10108`
- URL: `http://127.0.0.1:10108/v1/proxy-pools/{id}/test`
- Auth: HTTP bearer

Connects through every proxy in the pool now, measuring whether it answers, its latency, exit IP and geo. This sends real traffic through each proxy and refreshes the pool's stored geo.

## Path parameters

- `id` string, required

## Response `200`

One row per proxy: alive, latency, exit IP and geo. Errors never carry the password.

- object[]
  - `alive` boolean, required
  - `country` string, nullable, required
  - `error` string, nullable, required
  - `external_ip` string, nullable, required
  - `latency_ms` integer, nullable, required
  - `location_unstable` string, date-time
  - `proxy` string, required
  - `timezone` string, nullable, required

## Other responses

- `400`: The id is not a uuid.
- `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.
- `404`: No pool with this id.
- `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)
