API ProxyWorld

Усе, що ви робите в кабінеті, можна робити й з коду. Перевіряйте баланс і ціни, замовляйте з балансу й отримуйте логіни проксі з параметрами через один REST API.

Вперше тут? Виконайте ці кроки

  1. 1Зареєструйтеся через email і пароль або через токен і відкрийте кабінет.
  2. 2Створіть API-ключ на вкладці «Підключення». Повний ключ показується лише один раз, у момент створення, тож збережіть його одразу.
  3. 3Вказуйте ключ у заголовку Authorization кожного запиту, якому він потрібен.
  4. 4Спершу викличте /account, щоб переконатися, що ключ приймається, потім оформлюйте замовлення через /orders.

Як працює автентифікація?

Запити до вашого акаунта (account, orders, proxy-user) потребують API-ключа. Надсилайте його в заголовку як Authorization: Bearer pwk_... Ціни, країни та розрахунок вартості відкриті для всіх і доступні без ключа.

Сервери ProxyWorld не зберігають сам ключ, лише його хеш. Якщо ви втратили ключ, створіть новий у кабінеті, і старий одразу буде заблоковано. Використовуйте ключі лише в серверному коді. Якщо ключ потрапить у код, що працює в браузері, або в публічний репозиторій, ним зможе скористатися хтось інший.

HTTP header
Authorization: Bearer pwk_your_api_key

Базова URL-адреса та формат даних

Базова URL-адреса
https://proxyworld.shop/api/v1
Тіло запиту та відповіді
application/json
Суми
USD числом, наприклад 1058.50
Позначки часу
ISO 8601 (UTC)

Скільки запитів можна робити?

Кожен API-ключ може робити 60 запитів на хвилину. Публічні ендпоінти без ключа дозволяють 60 запитів на хвилину з кожного IP. Якщо перевищити ліміт, ви отримаєте HTTP 429. Зачекайте приблизно хвилину і спробуйте ще раз.

Що повертається в разі помилки?

Ви отримуєте код статусу HTTP і тіло JSON з коротким кодом помилки та поясненням.

Приклад
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Бракує обов'язкового значення або надіслано значення, яке цей продукт не приймає.
unauthorizedHTTP 401API-ключ відсутній або недійсний.
insufficient_balanceHTTP 402Баланс менший за суму замовлення. Кошти з балансу не списано.
not_foundHTTP 404У вашому акаунті немає замовлення з таким номером.
rate_limitedHTTP 429Ви перевищили дозволену кількість запитів на хвилину.
server_errorHTTP 500Сервер не зміг завершити запит. Кошти з балансу не списано.

Ендпоінти

Дані акаунта

GET/api/v1/accountПотрібен API-ключ

Повертає спосіб входу (login: email або token), ваш email, баланс, хост і порти проксі, логін і пароль проксі та дозволені IP. Для акаунтів, створених через токен, email має значення null.

Запит
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Відповідь
{
  "login": "email",
  "email": "you@example.com",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.proxyworld.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "pwexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Продукти та ціни

GET/api/v1/productsПрацює без ключа

Повертає діапазон замовлення для кожного продукту, ціну за одиницю для кожної сходинки обсягу та знижки за термін. Використовує ту саму таблицю цін, що й сторінка цін.

Запит
curl https://proxyworld.shop/api/v1/products
Відповідь
{
  "currency": "USD",
  "prices_as_of": "2026-10-31",
  "products": [
    {
      "id": "unlimited",
      "unit": "day",
      "quantity": {
        "meaning": "days",
        "min": 1,
        "max": 365
      },
      "...": "..."
    },
    {
      "id": "residential",
      "unit": "gb",
      "...": "..."
    }
  ]
}

Країни та міста

GET/api/v1/countriesПрацює без ключа

Повертає країни, доступні для кожного продукту, разом зі значеннями міст для параметра логіна -city-.

НазваЗначення
productНеобов'язковийОдне з: unlimited, residential, isp, datacenter. Якщо не вказано, використовується residential.
Запит
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
Відповідь
{
  "product": "datacenter",
  "countries": [
    {
      "code": "us",
      "name": "United States",
      "region": "americas",
      "datacenter": true,
      "cities": [
        {
          "name": "New York",
          "value": "new_york"
        },
        {
          "name": "Los Angeles",
          "value": "los_angeles"
        }
      ]
    }
  ]
}

Розрахунок вартості

POST/api/v1/quoteПрацює без ключа

Рахує суму замовлення, не торкаючись балансу. Надішліть те саме тіло, що й для оформлення замовлення.

НазваЗначення
productОбов'язковийОдне з: unlimited, residential, isp, datacenter.
quantityОбов'язковийОбсяг замовлення: дні для unlimited (1~365), GB для residential (5~5,000), кількість IP для isp (1~1,000) або datacenter (5~5,000).
concurrencyНеобов'язковийЛише для unlimited. Одне з: 200, 500, 1000, 2000.
bandwidthНеобов'язковийЛише для unlimited, у Mbps. Одне з: 100, 200, 500, 1000.
monthsНеобов'язковийЛише для isp і datacenter. Одне з: 1, 3, 6, 12.
countryНеобов'язковийЛише для isp і datacenter. Дволітерний код країни, наприклад jp. Допустимі значення наведено в /countries.
Запит
curl -X POST https://proxyworld.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Відповідь
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.05,
  "unit": "day",
  "total_usd": 241.5
}

Оформити замовлення

POST/api/v1/ordersПотрібен API-ключ

Списує суму з балансу та створює замовлення. Спершу воно має статус pending (активується), а коли готове, стає active. Замовлення, яке не вдалося активувати, отримує статус refunded, і вся сплачена сума повертається на баланс. Якщо коштів недостатньо, повертається 402.

НазваЗначення
productОбов'язковийОдне з: unlimited, residential, isp, datacenter.
quantityОбов'язковийОбсяг замовлення: дні для unlimited (1~365), GB для residential (5~5,000), кількість IP для isp (1~1,000) або datacenter (5~5,000).
concurrencyНеобов'язковийЛише для unlimited. Одне з: 200, 500, 1000, 2000.
bandwidthНеобов'язковийЛише для unlimited, у Mbps. Одне з: 100, 200, 500, 1000.
monthsНеобов'язковийЛише для isp і datacenter. Одне з: 1, 3, 6, 12.
countryНеобов'язковийЛише для isp і datacenter. Дволітерний код країни, наприклад jp. Допустимі значення наведено в /countries.
Запит
curl -X POST https://proxyworld.shop/api/v1/orders \
  -H "Authorization: Bearer pwk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Відповідь
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1058.5
}

Ваші замовлення

GET/api/v1/ordersПотрібен API-ключ

Показує до 100 замовлень, починаючи з найновіших.

НазваЗначення
statusНеобов'язковийОдне з: pending, active, refunded. Не вказуйте, щоб отримати замовлення з будь-яким статусом.
Запит
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Відповідь
{
  "orders": [
    {
      "id": "PW-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.05,
      "total_usd": 241.5,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Одне замовлення

GET/api/v1/orders/{id}Потрібен API-ключ

Повертає замовлення за його номером. Зручно, щоб перевірити, чи завершилася активація.

НазваЗначення
idОбов'язковийНомер замовлення, наприклад PW-7KQ2M-X4HTD.
Запит
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Відповідь
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "status": "active",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:40:02.511Z"
  }
}

Зібрати логін проксі

GET/api/v1/proxy-userПотрібен API-ключ

Повертає логін проксі з вашими параметрами, а також URL для HTTP і SOCKS5, які можна вставити як є. Якщо не надіслати session, IP змінюється з кожним запитом.

НазваЗначення
productНеобов'язковийОдне з: unlimited, residential, isp, datacenter. Якщо не вказано, використовується unlimited.
countryНеобов'язковийДволітерний код країни, наприклад jp.
cityНеобов'язковийЗначення міста з /countries, наприклад tokyo. Надсилайте разом з country.
sessionНеобов'язковий1~32 літери та цифри. Запити з однаковим session використовують той самий IP.
ttlНеобов'язковийСкільки сесія утримує IP, 1~60 хвилин. Якщо не вказано, 30 хвилин.
Запит
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer pwk_your_api_key"
Відповідь
{
  "username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
  "socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}

Повний приклад

Один скрипт, який отримує розрахунок вартості, замовляє з балансу, а потім підключається через IP в Японії.

Python (requests)
import requests

API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_your_api_key"}

# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())

# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])

# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
                 params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())
Node.js 18+
const API = "https://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_your_api_key", "Content-Type": "application/json" };

// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);

// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
  method: "POST",
  headers: HEAD,
  body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);

Замовлення через API обробляються так само, як замовлення з кабінету, і з'являються на вкладці «Історія» разом з іншими. Замініть pwk_your_api_key у прикладах на свій API-ключ.

Підключіть ProxyWorld до свого коду

Зареєструйтеся через email або токен, створіть API-ключ у кабінеті, і можна одразу надсилати запити.