Przejdź do treści
starproxy
Zacznij

StarProxy API

Większość funkcji panelu jest dostępna z poziomu kodu. Sprawdzaj saldo i ceny, składaj zamówienia z salda i pobieraj nazwy użytkownika proxy z opcjami, wszystko przez jedno REST API.

Od czego zacząć?

  1. 1Zarejestruj się nazwą użytkownika i zaloguj do panelu.
  2. 2Utwórz klucz API w karcie Połączenie. Pełny klucz jest pokazywany raz, przy tworzeniu, więc od razu zapisz go w bezpiecznym miejscu.
  3. 3Wysyłaj klucz w nagłówku Authorization w każdym zapytaniu, które go wymaga.
  4. 4Najpierw wywołaj /account, aby sprawdzić, czy klucz działa, a potem składaj zamówienia przez /orders.

Uwierzytelnianie

Zapytania dotyczące twojego konta (account, orders, proxy-user) wymagają klucza API wysyłanego w nagłówku jako Authorization: Bearer spk_... Ceny, kraje i wyceny są publiczne i działają bez klucza.

StarProxy przechowuje tylko hash każdego klucza, a nie sam klucz. Jeśli zgubisz klucz, utwórz nowy w panelu. Stary klucz przestaje wtedy działać. Klucze trzymaj tylko w kodzie serwera. Nigdy nie umieszczaj ich w kodzie działającym w przeglądarce ani w publicznym repozytorium.

HTTP header
Authorization: Bearer spk_your_api_key

Bazowy URL i format danych

Bazowy URL
https://starproxy.shop/api/v1
Treść zapytania i odpowiedzi
application/json
Kwoty
USD jako liczba, np. 1047.70
Znaczniki czasu
ISO 8601 (UTC)

Czy jest limit wywołań?

Jeden klucz API może wykonać do 60 wywołań na minutę. Publiczne endpointy bez klucza pozwalają na 60 wywołań na minutę z jednego IP. Po przekroczeniu limitu dostaniesz HTTP 429, więc odczekaj minutę i wyślij ponownie.

Jak wyglądają błędy?

Kod statusu HTTP oraz treść JSON z krótkim kodem błędu 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 wymaganej wartości albo wartość jest nieprawidłowa dla tego produktu.
unauthorizedHTTP 401Brak klucza API albo klucz się nie zgadza.
insufficient_balanceHTTP 402Saldo jest niższe niż wartość 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 jednej minuty.
server_errorHTTP 500Serwer nie mógł dokończyć zapytania. Nic nie zostało pobrane.

Endpointy

Pobierz konto

GET/api/v1/accountWymaga klucza API

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

Zapytanie
curl https://starproxy.shop/api/v1/account \
  -H "Authorization: Bearer spk_your_api_key"
Odpowiedź
{
  "username": "star_user01",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.starproxy.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "spexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Pobierz produkty i ceny

GET/api/v1/productsBez klucza

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

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

Lista krajów i miast

GET/api/v1/countriesBez klucza

Zwraca kraje obsługiwane przez każdy produkt oraz wartości miast do opcji -city- w nazwie użytkownika.

PoleZnaczenie
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Domyślnie residential.
Zapytanie
curl "https://starproxy.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/quoteBez klucza

Oblicza wartość zamówienia bez naruszania salda. Wyślij tę samą treść, której użyłbyś przy zamówieniu.

PoleZnaczenie
productWymaganeJedno z: unlimited, residential, isp, datacenter.
quantityWymaganeDni 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. Prawidłowe wartości znajdziesz w /countries.
Zapytanie
curl -X POST https://starproxy.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.41,
  "unit": "day",
  "total_usd": 252.3
}

Utwórz zamówienie

POST/api/v1/ordersWymaga klucza API

Pobiera kwotę z salda i tworzy zamówienie. Status zaczyna się od pending (aktywacja) i zmienia na active, gdy zamówienie jest gotowe. Jeśli nie da się go aktywować, dostaje status refunded, a cała kwota wraca na saldo. Przy zbyt niskim saldzie zwracany jest kod 402.

PoleZnaczenie
productWymaganeJedno z: unlimited, residential, isp, datacenter.
quantityWymaganeDni 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. Prawidłowe wartości znajdziesz w /countries.
Zapytanie
curl -X POST https://starproxy.shop/api/v1/orders \
  -H "Authorization: Bearer spk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Odpowiedź
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1047.7
}

Lista zamówień

GET/api/v1/ordersWymaga klucza API

Zwraca do 100 zamówień, od najnowszych.

PoleZnaczenie
statusOpcjonalneJedno z: pending, active, refunded. Zostaw puste, aby pobrać wszystkie statusy.
Zapytanie
curl "https://starproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer spk_your_api_key"
Odpowiedź
{
  "orders": [
    {
      "id": "SP-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.41,
      "total_usd": 252.3,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Pobierz zamówienie

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

Zwraca jedno zamówienie według id. Użyj, aby sprawdzić, czy aktywacja się zakończyła.

PoleZnaczenie
idWymaganeId zamówienia, na przykład SP-7KQ2M-X4HTD.
Zapytanie
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \
  -H "Authorization: Bearer spk_your_api_key"
Odpowiedź
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "status": "active",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:40:02.511Z"
  }
}

Wygeneruj nazwę użytkownika proxy

GET/api/v1/proxy-userWymaga klucza API

Zwraca nazwę użytkownika proxy z wbudowanymi opcjami oraz gotowe do wklejenia adresy URL HTTP i SOCKS5. Bez session każde zapytanie dostaje nowe IP.

PoleZnaczenie
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Domyślnie unlimited.
countryOpcjonalneDwuliterowy kod kraju, np. jp.
cityOpcjonalneWartość miasta z /countries, np. tokyo. Wymaga country.
sessionOpcjonalneOd 1 do 32 liter lub cyfr. Zapytania z tą samą sesją korzystają z jednego IP.
ttlOpcjonalneLiczba minut trzymania IP sesji, od 1 do 60. Domyślnie 30.
Zapytanie
curl "https://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer spk_your_api_key"
Odpowiedź
{
  "username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
  "socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}

Pełny przykład

Jeden skrypt, który pobiera wycenę, zamawia z salda i łączy się przez japońskie IP.

Python (requests)
import requests

API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_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://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_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 przez API są realizowane tak samo jak zamówienia z panelu i pojawiają się w karcie Historia. W przykładach zamień spk_your_api_key na swój klucz.

Korzystaj ze StarProxy prosto ze swojego kodu

Zarejestruj się nazwą użytkownika, utwórz klucz API w panelu i zacznij wywoływać API.