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, латиницею й цифрами.