API ProxyWorld

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

Впервые здесь? Выполните эти шаги

  1. 1Зарегистрируйтесь по email и паролю или по токену и откройте личный кабинет.
  2. 2Выпустите API-ключ на вкладке Connect. Полный ключ показывается только один раз, в момент выпуска, поэтому сразу сохраните его.
  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-ключ в личном кабинете, и можно сразу отправлять запросы.