Przejdź do treści
royalproxy

Dokumentacja API proxy

Za pomocą REST API RoyalProxy odczytasz saldo i dane połączenia, sprawdzisz ceny, złożysz zamówienia z salda i utworzysz nazwy użytkowników proxy z własnego kodu.

Jak zacząć?

  1. 1Zarejestruj się i zaloguj do panelu.
  2. 2Otwórz sekcję Connect i utwórz klucz API. Pełny klucz jest pokazywany tylko raz, więc zapisz go w bezpiecznym miejscu.
  3. 3Wysyłaj klucz w nagłówku Authorization w każdym zapytaniu, które go wymaga.
  4. 4Wywoł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 jako token Bearer w nagłówku Authorization. Ceny, kraje i wyceny są publiczne i nie wymagają klucza.

Przechowujemy tylko skrót (hash) klucza. Jeśli go zgubisz, utwórz nowy w panelu, a stary klucz od razu przestanie działać. Nie umieszczaj klucza w kodzie przeglądarki ani w publicznych repozytoriach.

HTTP header
Authorization: Bearer rpk_your_api_key

Bazowy URL i format

Bazowy URL
https://royalproxy.online/api/v1
Treść zapytania i odpowiedzi
application/json
Kwoty
Liczby w USD, na przykład 807.90
Czas
ISO 8601 (UTC)

Czy jest limit wywołań?

Każdy klucz API może wysłać do 60 zapytań na minutę. Publiczne endpointy przyjmują 60 zapytań na minutę z jednego IP. Po przekroczeniu limitu dostaniesz HTTP 429, więc odczekaj minutę i spróbuj ponownie.

Jak wyglądają błędy?

Błędy zwracają kod statusu HTTP i treść JSON z krótkim kodem i komunikatem.

Przykład
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Brakuje wartości lub jest ona niedozwolona dla tego produktu.
unauthorizedHTTP 401Brak klucza API lub klucz jest nieprawidłowy.
insufficient_balanceHTTP 402Saldo jest niższe niż kwota zamówienia. Nic nie zostało pobrane.
not_foundHTTP 404Na twoim koncie nie ma zamówienia o tym id.
rate_limitedHTTP 429Za dużo zapytań w ciągu minuty.
server_errorHTTP 500Nie udało się wykonać zapytania. Nic nie zostało pobrane.

Endpointy

Pobierz dane konta

GET/api/v1/accountKlucz API

Zwraca saldo, host proxy, porty, nazwę użytkownika i hasło oraz dozwolone IP.

Zapytanie
curl https://royalproxy.online/api/v1/account \
  -H "Authorization: Bearer rpk_your_api_key"
Odpowiedź
{
  "username": "royal_user",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.royalproxy.online",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "rpexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Lista produktów i cen

GET/api/v1/productsBez klucza

Zwraca wszystkie produkty z limitami, progami cenowymi i rabatami. Ceny pochodzą z tej samej tabeli co cennik.

Zapytanie
curl https://royalproxy.online/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",
      "...": "..."
    }
  ]
}

Lista krajów i miast

GET/api/v1/countriesBez klucza

Zwraca kraje dostępne dla produktu wraz z wartościami miast, które można wpisać w nazwie użytkownika proxy.

PoleZnaczenie
productOpcjonalneunlimited, residential, isp lub datacenter. Domyślnie residential.
Zapytanie
curl "https://royalproxy.online/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"
        }
      ]
    }
  ]
}

Pobierz wycenę

POST/api/v1/quoteBez klucza

Oblicza kwotę zamówienia bez pobierania pieniędzy. Użyj tej samej treści co przy składaniu zamówienia.

PoleZnaczenie
productWymaganeunlimited, residential, isp lub datacenter.
quantityWymaganeDni dla unlimited (1~365), GB dla residential (5~5,000), IP dla isp (1~1,000) lub datacenter (5~5,000).
concurrencyOpcjonalneTylko unlimited: 200, 500, 1000 lub 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps: 100, 200, 500 lub 1000.
monthsOpcjonalneTylko isp i datacenter: 1, 3, 6 lub 12.
countryOpcjonalneTylko isp i datacenter: dwuliterowy kod kraju, na przykład jp. Zobacz /countries.
Zapytanie
curl -X POST https://royalproxy.online/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.97,
  "unit": "day",
  "total_usd": 269.1
}

Złóż zamówienie

POST/api/v1/ordersKlucz API

Pobiera kwotę z salda i tworzy zamówienie. Nowe zamówienia mają najpierw status pending (aktywacja), a gdy są gotowe, zmieniają go na active. Zamówienie, którego nie da się aktywować, dostaje status refunded, a cała kwota wraca na saldo. Przy zbyt niskim saldzie zwraca 402.

PoleZnaczenie
productWymaganeunlimited, residential, isp lub datacenter.
quantityWymaganeDni dla unlimited (1~365), GB dla residential (5~5,000), IP dla isp (1~1,000) lub datacenter (5~5,000).
concurrencyOpcjonalneTylko unlimited: 200, 500, 1000 lub 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps: 100, 200, 500 lub 1000.
monthsOpcjonalneTylko isp i datacenter: 1, 3, 6 lub 12.
countryOpcjonalneTylko isp i datacenter: dwuliterowy kod kraju, na przykład jp. Zobacz /countries.
Zapytanie
curl -X POST https://royalproxy.online/api/v1/orders \
  -H "Authorization: Bearer rpk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Odpowiedź
{
  "order": {
    "id": "RP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.97,
    "total_usd": 269.1,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1030.9
}

Lista zamówień

GET/api/v1/ordersKlucz API

Zwraca 100 ostatnich zamówień, od najnowszego.

PoleZnaczenie
statusOpcjonalnepending, active lub refunded. Pomiń, aby dostać wszystkie.
Zapytanie
curl "https://royalproxy.online/api/v1/orders?status=pending" \
  -H "Authorization: Bearer rpk_your_api_key"
Odpowiedź
{
  "orders": [
    {
      "id": "RP-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.97,
      "total_usd": 269.1,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Pobierz jedno zamówienie

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

Zwraca jedno zamówienie według id, na przykład aby sprawdzić, czy jest już aktywne.

PoleZnaczenie
idWymaganeId zamówienia, na przykład RP-7KQ2M-X4HTD.
Zapytanie
curl https://royalproxy.online/api/v1/orders/RP-7KQ2M-X4HTD \
  -H "Authorization: Bearer rpk_your_api_key"
Odpowiedź
{
  "order": {
    "id": "RP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.97,
    "total_usd": 269.1,
    "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-userKlucz API

Zwraca nazwę użytkownika proxy z twoimi opcjami oraz gotowe adresy proxy HTTP i SOCKS5. Bez session IP zmienia się przy każdym zapytaniu.

PoleZnaczenie
productOpcjonalneunlimited, residential, isp lub datacenter. Domyślnie unlimited.
countryOpcjonalneDwuliterowy kod kraju, na przykład jp.
cityOpcjonalneWartość miasta z /countries, na przykład tokyo. Wymaga country.
sessionOpcjonalneDowolne 1~32 litery lub cyfry. Zapytania z tą samą sesją zachowują to samo IP.
ttlOpcjonalneLiczba minut zachowania IP sesji, 1~60. Domyślnie 30.
Zapytanie
curl "https://royalproxy.online/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer rpk_your_api_key"
Odpowiedź
{
  "username": "rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.royalproxy.online:6100",
  "socks5": "socks5h://rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.royalproxy.online:6200"
}

Pełne przykłady

Te przykłady sprawdzają cenę, składają zamówienie z salda i łączą się przez japońskie IP.

Python (requests)
import requests

API = "https://royalproxy.online/api/v1"
HEAD = {"Authorization": "Bearer rpk_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://royalproxy.online/api/v1";
const HEAD = { Authorization: "Bearer rpk_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ą takie same jak zamówienia z panelu i pojawiają się w historii. Zamień rpk_your_api_key na swój klucz.

Połącz RoyalProxy z własnym systemem

Załóż konto, a potem utwórz klucz API w panelu.