Przejdź do treści

Przewodnik po API HiProxy

To, co robisz w panelu, możesz też zrobić z własnego kodu. Odczytuj saldo i dane połączenia, sprawdzaj ceny, zamawiaj z salda i buduj nazwy użytkownika proxy z opcjami, wszystko przez REST API.

Jak zacząć?

  1. 1Zarejestruj się nazwą użytkownika i zaloguj do panelu.
  2. 2Wygeneruj klucz API w zakładce Połączenie. Pełny klucz pojawia się tylko raz, więc od razu zapisz go w bezpiecznym miejscu.
  3. 3Wpisz klucz w nagłówek Authorization każdego zapytania, które go wymaga.
  4. 4Najpierw wywołaj /account, aby sprawdzić, czy klucz działa, a potem zamawiaj przez /orders.

Jak działa uwierzytelnianie?

Zapytania dotyczące twojego konta (account, orders, proxy-user) wymagają klucza API. Wyślij go w nagłówku jako Authorization: Bearer hpk_... Ceny, kraje i wyceny są dostępne dla każdego i nie wymagają klucza.

HiProxy przechowuje tylko skrót (hash) klucza, nigdy sam klucz. Jeśli go zgubisz, wygeneruj nowy w panelu, a stary zostanie w tej chwili zablokowany. Trzymaj klucz tylko w kodzie po stronie serwera, nigdy w kodzie działającym w przeglądarce ani w publicznym repozytorium.

HTTP header
Authorization: Bearer hpk_your_api_key

Bazowy URL i format danych

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

Czy są limity zapytań?

Każdy klucz API może wykonać do 60 wywołań na minutę. Publiczne endpointy wywoływane bez klucza pozwalają na 60 wywołań na minutę z jednego IP. Po przekroczeniu limitu dostajesz HTTP 429. Odczekaj minutę i wyślij ponownie.

Jak wygląda odpowiedź z błędem?

Dostajesz 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 ten produkt nie przyjmuje tej wartości.
unauthorizedHTTP 401Nie wysłano klucza API albo klucz jest błędny.
insufficient_balanceHTTP 402Saldo jest niższe niż kwota zamówienia. Saldo nie zostało naruszone.
not_foundHTTP 404Na twoim koncie nie ma zamówienia o tym id.
rate_limitedHTTP 429Przekroczono limit zapytań na minutę.
server_errorHTTP 500Serwer nie mógł dokończyć zapytania. Saldo nie zostało naruszone.

Endpointy

Odczyt konta

GET/api/v1/accountWymaga klucza API

Pokazuje saldo, host i porty proxy, nazwę użytkownika i hasło proxy oraz listę Dozwolonych IP.

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

Odczyt produktów i cen

GET/api/v1/productsBez klucza

Pokazuje limity zamówień każdego produktu, cenę dla każdego progu i rabaty za okres. Korzysta z tej samej tabeli cen co strona cennika.

Zapytanie
curl https://hiproxy.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

Pokazuje kraje obsługiwane przez każdy produkt i wartości miast do użycia w opcji -city- nazwy użytkownika.

PoleCo oznacza
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Puste oznacza residential.
Zapytanie
curl "https://hiproxy.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 obciążania salda. Wyślij tę samą treść, którą wysłałbyś przy składaniu zamówienia.

PoleCo oznacza
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. Wybierz 200, 500, 1000 lub 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps. Wybierz 100, 200, 500 lub 1000.
monthsOpcjonalneTylko isp i datacenter. Wybierz 1, 3, 6 lub 12.
countryOpcjonalneTylko isp i datacenter. Dwuliterowy kod kraju, np. jp. Poprawne wartości są w /countries.
Zapytanie
curl -X POST https://hiproxy.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.78,
  "unit": "day",
  "total_usd": 263.4
}

Złóż zamówienie

POST/api/v1/ordersWymaga klucza API

Pobiera kwotę z salda i tworzy zamówienie. Zaczyna jako pending (aktywacja) i zmienia się na active, gdy jest gotowe. Zamówienie, którego nie da się aktywować, otrzymuje status refunded, a cała zapłacona kwota wraca na saldo. Przy zbyt niskim saldzie dostajesz 402.

PoleCo oznacza
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. Wybierz 200, 500, 1000 lub 2000.
bandwidthOpcjonalneTylko unlimited, w Mbps. Wybierz 100, 200, 500 lub 1000.
monthsOpcjonalneTylko isp i datacenter. Wybierz 1, 3, 6 lub 12.
countryOpcjonalneTylko isp i datacenter. Dwuliterowy kod kraju, np. jp. Poprawne wartości są w /countries.
Zapytanie
curl -X POST https://hiproxy.shop/api/v1/orders \
  -H "Authorization: Bearer hpk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Odpowiedź
{
  "order": {
    "id": "HP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.78,
    "total_usd": 263.4,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1036.6
}

Lista zamówień

GET/api/v1/ordersWymaga klucza API

Pokazuje do 100 twoich zamówień, od najnowszych.

PoleCo oznacza
statusOpcjonalneJedno z: pending, active, refunded. Puste zwraca zamówienia w dowolnym statusie.
Zapytanie
curl "https://hiproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer hpk_your_api_key"
Odpowiedź
{
  "orders": [
    {
      "id": "HP-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.78,
      "total_usd": 263.4,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Odczyt jednego zamówienia

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

Pokazuje jedno zamówienie według jego id. Przydatne do sprawdzenia, czy aktywacja się zakończyła.

PoleCo oznacza
idWymaganeId zamówienia, np. HP-7KQ2M-X4HTD.
Zapytanie
curl https://hiproxy.shop/api/v1/orders/HP-7KQ2M-X4HTD \
  -H "Authorization: Bearer hpk_your_api_key"
Odpowiedź
{
  "order": {
    "id": "HP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.78,
    "total_usd": 263.4,
    "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 twoimi opcjami oraz URL dla HTTP i SOCKS5, które możesz od razu wkleić. Bez session IP zmienia się przy każdym zapytaniu.

PoleCo oznacza
productOpcjonalneJedno z: unlimited, residential, isp, datacenter. Puste oznacza unlimited.
countryOpcjonalneDwuliterowy kod kraju, np. jp.
cityOpcjonalneWartość miasta z /countries, np. tokyo. Działa tylko razem z country.
sessionOpcjonalne1~32 liter lub cyfr. Zapytania z tym samym session korzystają z tego samego IP.
ttlOpcjonalneIle minut trzymać IP sesji, 1~60. Puste oznacza 30.
Zapytanie
curl "https://hiproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer hpk_your_api_key"
Odpowiedź
{
  "username": "hpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://hpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.hiproxy.shop:6100",
  "socks5": "socks5h://hpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.hiproxy.shop:6200"
}

Przykład krok po kroku

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

Python (requests)
import requests

API = "https://hiproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer hpk_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://hiproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer hpk_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 zakładce Historia. Zastąp hpk_your_api_key w przykładach własnym kluczem API.

Wywołuj HiProxy z własnego kodu

Zarejestruj się nazwą użytkownika, wygeneruj klucz API w panelu i gotowe.