ProxyWorld API

To, co robisz w panelu, możesz też zrobić z poziomu kodu. Odczytasz saldo, sprawdzisz ceny, zamówisz z salda i pobierzesz nazwy użytkownika proxy z opcjami, wszystko przez jedno REST API.

Jesteś tu pierwszy raz? Wykonaj te kroki

  1. 1Zarejestruj się e-mailem i hasłem albo tokenem i otwórz panel.
  2. 2Wygeneruj klucz API w karcie Połączenie. Pełny klucz pokazuje się tylko raz, w chwili wygenerowania, więc od razu go zapisz.
  3. 3Umieść klucz w nagłówku Authorization każdego zapytania, które go wymaga.
  4. 4Najpierw wywołaj /account, aby sprawdzić, czy klucz działa, a potem składaj zamówienia przez /orders.

Jak działa uwierzytelnianie?

Zapytania dotyczące twojego konta (account, orders, proxy-user) wymagają klucza API. Wysyłaj go w nagłówku jako Authorization: Bearer pwk_... Ceny, kraje i wyceny są dostępne dla wszystkich i można je wywołać bez klucza.

Serwery ProxyWorld nigdy nie przechowują samego klucza, tylko jego hash. Jeśli zgubisz klucz, utwórz nowy w panelu, a stary zostanie od razu zablokowany. Klucze umieszczaj tylko w kodzie po stronie serwera. Jeśli klucz trafi do kodu działającego w przeglądarce lub do publicznego repozytorium, ktoś inny może go użyć.

HTTP header
Authorization: Bearer pwk_your_api_key

Bazowy URL i format danych

Bazowy URL
https://proxyworld.shop/api/v1
Treść zapytań i odpowiedzi
application/json
Kwoty
USD jako liczba, na przykład 1058.50
Znaczniki czasu
ISO 8601 (UTC)

Ile wywołań mogę wykonać?

Każdy klucz API może wykonać 60 wywołań na minutę. Publiczne endpointy wywoływane bez klucza pozwalają na 60 wywołań na minutę z jednego IP. Po przekroczeniu limitu dostaniesz HTTP 429. Odczekaj około minuty i spróbuj ponownie.

Co zwraca API w razie błędu?

Dostajesz kod statusu HTTP i treść JSON z krótkim kodem błędu i wyjaśnieniem.

Przykład
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Brakuje wymaganej wartości albo wysłano wartość, której ten produkt nie przyjmuje.
unauthorizedHTTP 401Brak klucza API albo klucz jest nieprawidłowy.
insufficient_balanceHTTP 402Saldo jest niższe niż wartość zamówienia. Saldo nie zostało obciążone.
not_foundHTTP 404Twoje konto nie ma zamówienia o tym numerze.
rate_limitedHTTP 429Przekroczono dozwoloną liczbę wywołań na minutę.
server_errorHTTP 500Serwer nie mógł dokończyć zapytania. Saldo nie zostało obciążone.

Endpointy

Dane konta

GET/api/v1/accountWymaga klucza API

Zwraca sposób logowania (login: email lub token), e-mail, saldo, host i porty proxy, nazwę użytkownika i hasło proxy oraz dozwolone IP. Dla kont założonych tokenem email ma wartość null.

Zapytanie
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Odpowiedź
{
  "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"
  ]
}

Produkty i ceny

GET/api/v1/productsDziała bez klucza

Zwraca zakres zamówienia dla każdego produktu, cenę jednostkową dla każdego progu ilości i rabaty za okres. Korzysta z tej samej tabeli cen co strona cennika.

Zapytanie
curl https://proxyworld.shop/api/v1/products
Odpowiedź
{
  "currency": "USD",
  "prices_as_of": "2026-10-31",
  "products": [
    {
      "id": "unlimited",
      "unit": "day",
      "quantity": {
        "meaning": "days",
        "min": 1,
        "max": 365
      },
      "...": "..."
    },
    {
      "id": "residential",
      "unit": "gb",
      "...": "..."
    }
  ]
}

Kraje i miasta

GET/api/v1/countriesDziała bez klucza

Zwraca kraje dostępne dla każdego produktu wraz z wartościami miast do opcji -city- w nazwie użytkownika.

NazwaZnaczenie
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Domyślnie residential.
Zapytanie
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
Odpowiedź
{
  "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"
        }
      ]
    }
  ]
}

Wycena

POST/api/v1/quoteDziała bez klucza

Oblicza wartość zamówienia bez obciążania salda. Wyślij tę samą treść, którą wysłałbyś przy składaniu zamówienia.

NazwaZnaczenie
productWymaganeJedno z: unlimited, residential, isp, datacenter.
quantityWymaganeIlość do zamówienia: dni dla unlimited (1~365), GB dla residential (5~5,000), liczba IP dla isp (1~1,000) lub datacenter (5~5,000).
concurrencyOpcjonalneTylko unlimited. Jedno z: 200, 500, 1000, 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps. Jedno z: 100, 200, 500, 1000.
monthsOpcjonalneTylko isp i datacenter. Jedno z: 1, 3, 6, 12.
countryOpcjonalneTylko isp i datacenter. Dwuliterowy kod kraju, np. jp. Akceptowane wartości są w /countries.
Zapytanie
curl -X POST https://proxyworld.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Odpowiedź
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.05,
  "unit": "day",
  "total_usd": 241.5
}

Złóż zamówienie

POST/api/v1/ordersWymaga klucza API

Pobiera kwotę z salda i tworzy zamówienie. Zamówienie ma najpierw status pending (aktywacja), a po uruchomieniu active. Zamówienie, którego nie da się aktywować, dostaje status refunded, a cała zapłacona kwota wraca na saldo. Przy zbyt niskim saldzie dostaniesz 402.

NazwaZnaczenie
productWymaganeJedno z: unlimited, residential, isp, datacenter.
quantityWymaganeIlość do zamówienia: dni dla unlimited (1~365), GB dla residential (5~5,000), liczba IP dla isp (1~1,000) lub datacenter (5~5,000).
concurrencyOpcjonalneTylko unlimited. Jedno z: 200, 500, 1000, 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps. Jedno z: 100, 200, 500, 1000.
monthsOpcjonalneTylko isp i datacenter. Jedno z: 1, 3, 6, 12.
countryOpcjonalneTylko isp i datacenter. Dwuliterowy kod kraju, np. jp. Akceptowane wartości są w /countries.
Zapytanie
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}'
Odpowiedź
{
  "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
}

Lista zamówień

GET/api/v1/ordersWymaga klucza API

Pokazuje do 100 zamówień, od najnowszych.

NazwaZnaczenie
statusOpcjonalneJedno z: pending, active, refunded. Pomiń, aby pobrać zamówienia o dowolnym statusie.
Zapytanie
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Odpowiedź
{
  "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"
    }
  ]
}

Jedno zamówienie

GET/api/v1/orders/{id}Wymaga klucza API

Zwraca zamówienie o podanym numerze. Przydaje się do sprawdzania, czy aktywacja się zakończyła.

NazwaZnaczenie
idWymaganeNumer zamówienia, na przykład PW-7KQ2M-X4HTD.
Zapytanie
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Odpowiedź
{
  "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"
  }
}

Zbuduj nazwę użytkownika proxy

GET/api/v1/proxy-userWymaga klucza API

Zwraca nazwę użytkownika proxy z dołączonymi opcjami oraz adresy URL HTTP i SOCKS5 do wklejenia bez zmian. Jeśli nie wyślesz session, IP zmienia się przy każdym zapytaniu.

NazwaZnaczenie
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Domyślnie unlimited.
countryOpcjonalneDwuliterowy kod kraju, na przykład jp.
cityOpcjonalneWartość miasta z /countries, na przykład tokyo. Wyślij razem z country.
sessionOpcjonalneOd 1 do 32 liter i cyfr. Zapytania z tą samą sesją używają tego samego IP.
ttlOpcjonalneJak długo sesja trzyma IP, od 1 do 60 minut. Domyślnie 30 minut.
Zapytanie
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"
Odpowiedź
{
  "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"
}

Pełny przykład

Jeden skrypt, który pobiera wycenę, zamawia z salda, a potem łączy się przez IP w Japonii.

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);

Zamówienia złożone przez API są obsługiwane tak samo jak zamówienia z panelu i pojawiają się w karcie Historia razem z pozostałymi. W przykładach zamień pwk_your_api_key na swój klucz API.

Połącz ProxyWorld ze swoim kodem

Zarejestruj się e-mailem lub tokenem, utwórz klucz API w panelu i od razu możesz wysyłać zapytania.