API для разработчиков

Управляйте планами из своих скриптов и сервисов: узнавайте остаток трафика, получайте строки прокси, добавляйте IP-адреса и докупайте гигабайты с баланса без входа в кабинет.

Быстрый старт

Создайте ключ в кабинете: «Настройки» → «API». Ключ показываем полностью только один раз — сразу сохраните его в менеджере паролей или переменной окружения. Действует до 5 ключей на аккаунт; ненужный ключ отзовите там же.

Все адреса начинаются с https://prokso.com/api/v1, ответы — JSON, деньги — в центах доллара (USD), трафик — в байтах и ГБ, время — UTC в формате ISO 8601.

curl https://prokso.com/api/v1/me \
  -H "Authorization: Bearer $PROKSO_KEY"

Авторизация

Передавайте ключ в заголовке Authorization: Bearer <ключ> или X-API-Key. Сессия кабинета в браузере для API не действует. Запросы с заблокированного или удалённого аккаунта и с отозванным ключом получают ответ 401.

Ограничения

  • До 60 запросов в минуту на один ключ. Больше — ответ 429 и заголовок Retry-After с числом секунд до следующей попытки.
  • До 20 неудачных попыток авторизации за 10 минут с одного IP-адреса (для IPv6 — из сети /64), дальше — 429.
  • Не больше 1000 строк прокси за один запрос, до 5 IP-адресов в белом списке плана.

Ошибки

Ошибка всегда приходит в одном формате с подходящим HTTP-кодом:

{"error": {"code": "insufficient_balance", "message": "Not enough money on the balance. Top it up in the dashboard."}}
HTTPcodeЧто значит
400validation_error, invalid_json, below_minimum_orderНеверные параметры или заказ не проходит условия из GET /api/v1/prices.
401unauthorizedНет ключа, ключ неверный или отозван.
402insufficient_balanceНа балансе недостаточно средств. Ничего не списано.
404not_foundПлана или заказа нет либо они принадлежат другому аккаунту.
409 / 422idempotency_in_progress, idempotency_key_reusedЗапрос с этим Idempotency-Key ещё выполняется или ключ уже использован с другими данными.
429rate_limitedПревышен лимит запросов — подождите столько секунд, сколько в Retry-After.
503service_unavailableСеть прокси временно не отвечает — повторите через минуту.

Покупки без дублей

Покупка через API списывает деньги только с баланса (пополняется в кабинете). Чтобы повтор запроса после обрыва связи не купил гигабайты дважды, добавьте заголовок Idempotency-Key — любую уникальную строку до 100 символов. В течение 24 часов повторный запрос с тем же ключом вернёт первый заказ (заголовок Idempotent-Replayed: true), а не создаст новый. Если запрос отклонён (например, не хватает средств), ключ можно использовать снова.

Методы

GET /api/v1/me

Почта аккаунта и баланс.

curl https://prokso.com/api/v1/me \
  -H "Authorization: Bearer $PROKSO_KEY"
{
  "email": "you@example.com",
  "balance_cents": 4250,
  "balance": "$42.50",
  "currency": "USD"
}

GET /api/v1/prices

Цены за 1 ГБ и условия одного заказа для каждого типа прокси — актуальные, как в кабинете.

curl https://prokso.com/api/v1/prices -H "Authorization: Bearer $PROKSO_KEY"
{
  "currency": "USD",
  "max_gb_per_order": 5000,
  "pools": {
    "residential": {
      "tiers": [
        {
          "from_gb": 1,
          "price_per_gb_cents": 159,
          "price_per_gb": "$1.59"
        }
      ],
      "min_order_cents": 100,
      "min_order": "$1.00",
      "min_gb": 1
    },
    "mobile": {...},
    "datacenter": {...}
  }
}

GET /api/v1/plans

Все планы: тип, статус (active, paused, limited), логин, купленные ГБ и остаток трафика.

curl https://prokso.com/api/v1/plans -H "Authorization: Bearer $PROKSO_KEY"
{
  "plans": [{
    "id": 17, "label": "Instagram UA", "pool": "residential",
    "status": "active", "paused": false, "login": "a1b2c3d4", "gb_bought": 10,
    "traffic": {"left_bytes": 8053063680, "used_bytes": 2684354560, "total_bytes": 10737418240,
                "left_gb": 7.5, "used_gb": 2.5, "total_gb": 10.0},
    "created_at": "2026-10-05T09:12:44Z"
  }]
}

GET /api/v1/plans/{id}

Один план: хост, порты, логин и пароль, белый список IP, настройки пула.

curl https://prokso.com/api/v1/plans/17 -H "Authorization: Bearer $PROKSO_KEY"
{
  "id": 17, "label": "Instagram UA", "pool": "residential", "status": "active", ...,
  "host": "gw.prokso.com", "login": "a1b2c3d4", "password": "********",
  "ports": {"http_rotating": 823, "socks5_rotating": 824, "sticky_from": 10000, "sticky_to": 20000},
  "ip_whitelist": ["203.0.113.7"], "ip_whitelist_max": 5,
  "pool_settings": {"countries": [], "exclude_countries": [], "exclude_asn": [], "anonymous_filter": false,
                    "rotation_interval_minutes": null, "blocked_hosts": [], "traffic_limit": null}
}

POST /api/v1/plans

Новый план с оплатой с баланса. pool — residential, mobile или datacenter; gb — целое число; label и promo — необязательные.

curl -X POST https://prokso.com/api/v1/plans \
  -H "Authorization: Bearer $PROKSO_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c2a90-order-1" \
  -d '{"pool": "residential", "gb": 10, "label": "Instagram UA"}'
201 Created
{
  "order": {"id": 311, "kind": "new", "status": "fulfilled", "pool": "residential", "gb": 10,
            "plan_id": 18, "amount_cents": 1590, "amount": "$15.90", ...},
  "plan": {"id": 18, "login": "e5f6a7b8", ...},
  "balance_cents": 2350, "balance": "$23.50"
}

POST /api/v1/plans/{id}/topup

Докупить ГБ в существующий план с баланса. Те же правила, что и для нового плана.

curl -X POST https://prokso.com/api/v1/plans/17/topup \
  -H "Authorization: Bearer $PROKSO_KEY" \
  -H "Idempotency-Key: 6f1c2a90-topup-1" \
  -d '{"gb": 50}'
201 Created
{"order": {"id": 312, "kind": "topup", "status": "fulfilled", "gb": 50, ...}, "plan": {...}, ...}

GET /api/v1/plans/{id}/proxies

Строки прокси для плана. JSON или обычный текст.

Добавьте заголовок Accept: text/plain — получите строки обычным текстом, по одной в строке.

curl "https://prokso.com/api/v1/plans/17/proxies?country=ua&count=3&protocol=http&session=sticky" \
  -H "Authorization: Bearer $PROKSO_KEY"
{
  "lines": [
    "a1b2c3d4__cr.ua:********@gw.prokso.com:10000",
    "a1b2c3d4__cr.ua:********@gw.prokso.com:10001",
    "a1b2c3d4__cr.ua:********@gw.prokso.com:10002"
  ],
  "count": 3,
  "precise_geo": false
}

GET /api/v1/plans/{id}/whitelist
POST /api/v1/plans/{id}/whitelist
DELETE /api/v1/plans/{id}/whitelist?ip=…

Белый список IP плана: посмотреть, добавить (POST с полем ip) и удалить (DELETE с параметром ip).

curl -X POST https://prokso.com/api/v1/plans/17/whitelist \
  -H "Authorization: Bearer $PROKSO_KEY" \
  -d '{"ip": "203.0.113.7"}'
{"ips": ["203.0.113.7"], "max": 5}

POST /api/v1/plans/{id}/pause
POST /api/v1/plans/{id}/resume

Приостановить план (прокси не работают, трафик не тратится) или возобновить.

curl -X POST https://prokso.com/api/v1/plans/17/pause -H "Authorization: Bearer $PROKSO_KEY"
{"id": 17, "status": "paused", "paused": true, ...}

PATCH /api/v1/plans/{id}

Переименовать план (label, до 60 символов).

curl -X PATCH https://prokso.com/api/v1/plans/17 \
  -H "Authorization: Bearer $PROKSO_KEY" \
  -d '{"label": "Ads Poland"}'
{"id": 17, "label": "Ads Poland", ...}

GET /api/v1/orders
GET /api/v1/orders/{id}

Последние заказы аккаунта (limit — до 100) и один заказ по номеру.

curl "https://prokso.com/api/v1/orders?limit=20" -H "Authorization: Bearer $PROKSO_KEY"
{"orders": [{"id": 312, "kind": "topup", "status": "fulfilled", "gb": 50, "amount": "$79.50", ...}]}

Параметры генератора прокси

Те же правила, что и в генераторе в кабинете (расширенный режим). Точное гео — штат, город, индекс, провайдер — списывает трафик вдвое.

ПараметрЗначение
countryКод страны (ua) или до 10 кодов через запятую; пусто — любая страна.
countКоличество строк, 1–1000 (по умолчанию 10). Для session=rotating достаточно одной строки.
protocolhttp или socks5.
sessionsticky — свой порт 10000–20000 на каждую строку и тот же IP; rotating — новый IP на каждый запрос (порт 823 HTTP, 824 SOCKS5); session — ротационный порт с номером сессии в логине.
formatlp@hp, hp:lp, url, hp@lp, lp:hp или hp (только хост и порт — для доступа по IP).
start_portПервый порт для sticky, 10000–20000.
state, city, zip, asnТочное гео и провайдер (ASN) — для одной страны; штат — только для США.
exclude_state, exclude_city, exclude_zipИсключить штаты, города или индексы.
session_prefixПрефикс номеров сессий для session, латиницей и цифрами.