З чого почати?
- 1Зареєструйтеся з логіном і увійдіть у кабінет.
- 2Створіть API-ключ на вкладці «Підключення». Повний ключ показується лише один раз, тож одразу збережіть його в надійному місці.
- 3Додавайте ключ у заголовок Authorization кожного запиту, якому він потрібен.
- 4Спершу викличте /account, щоб переконатися, що ключ працює, потім замовляйте через /orders.
Як працює автентифікація?
Запити щодо вашого акаунта (account, orders, proxy-user) потребують API-ключа. Надсилайте його в заголовку як Authorization: Bearer hpk_... Ціни, країни й розрахунок вартості доступні всім і не потребують ключа.
HiProxy зберігає лише хеш вашого ключа, а не сам ключ. Якщо ви його втратите, створіть новий у кабінеті, і старий ключ буде заблоковано в ту ж мить. Тримайте ключ лише в серверному коді, ніколи в коді, що виконується в браузері, чи в публічному репозиторії.
Authorization: Bearer hpk_your_api_key
Базова URL-адреса та формат даних
- Базова URL-адреса
- https://hiproxy.shop/api/v1
- Тіло запиту та відповіді
- application/json
- Суми
- USD числом, наприклад 1036.60
- Позначки часу
- 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."
}
}| HTTP | code | Що це означає |
|---|---|---|
| bad_requestHTTP 400Бракує обов'язкового значення, або цей продукт не приймає таке значення. | Бракує обов'язкового значення, або цей продукт не приймає таке значення. | |
| unauthorizedHTTP 401API-ключ не надіслано, або ключ неправильний. | API-ключ не надіслано, або ключ неправильний. | |
| insufficient_balanceHTTP 402Баланс менший за суму замовлення. Баланс не змінено. | Баланс менший за суму замовлення. Баланс не змінено. | |
| not_foundHTTP 404У вашому акаунті немає замовлення з таким id. | У вашому акаунті немає замовлення з таким id. | |
| rate_limitedHTTP 429Ви перевищили ліміт запитів на хвилину. | Ви перевищили ліміт запитів на хвилину. | |
| server_errorHTTP 500Сервер не зміг завершити запит. Баланс не змінено. | Сервер не зміг завершити запит. Баланс не змінено. |
Ендпоінти
Дані акаунта
GET/api/v1/accountПотрібен API-ключ
Показує баланс, хост і порти проксі, логін і пароль проксі та список «Дозволені IP».
curl https://hiproxy.shop/api/v1/account \ -H "Authorization: Bearer hpk_your_api_key"
{
"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"
]
}Продукти й ціни
GET/api/v1/productsБез ключа
Показує ліміти замовлення кожного продукту, ціну для кожного рівня та знижки за термін. Використовує ту саму таблицю цін, що й сторінка цін.
curl https://hiproxy.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Необов'язковий | string | Одне з unlimited, residential, isp, datacenter. Порожнє значення означає residential. |
curl "https://hiproxy.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Обов'язковий | string | Одне з: unlimited, residential, isp, datacenter. |
quantityОбов'язковий | integer | Дні для unlimited (1~365), GB для residential (5~5,000), кількість IP для isp (1~1,000) або datacenter (5~5,000). |
concurrencyНеобов'язковий | integer | Лише для unlimited. Оберіть 200, 500, 1000 або 2000. |
bandwidthНеобов'язковий | integer | Лише для unlimited, у Mbps. Оберіть 100, 200, 500 або 1000. |
monthsНеобов'язковий | integer | Лише для isp і datacenter. Оберіть 1, 3, 6 або 12. |
countryНеобов'язковий | string | Лише для isp і datacenter. Дволітерний код країни, наприклад jp. Допустимі значення наведено в /countries. |
curl -X POST https://hiproxy.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.78,
"unit": "day",
"total_usd": 263.4
}Оформити замовлення
POST/api/v1/ordersПотрібен API-ключ
Списує суму з балансу й створює замовлення. Спочатку воно має статус pending (активується), а коли буде готове, переходить в active. Замовлення, яке не вдалося активувати, отримує статус refunded, і вся сплачена сума повертається на баланс. Якщо балансу не вистачає, ви отримаєте 402.
| Поле | Тип | Що це означає |
|---|---|---|
productОбов'язковий | string | Одне з: unlimited, residential, isp, datacenter. |
quantityОбов'язковий | integer | Дні для unlimited (1~365), GB для residential (5~5,000), кількість IP для isp (1~1,000) або datacenter (5~5,000). |
concurrencyНеобов'язковий | integer | Лише для unlimited. Оберіть 200, 500, 1000 або 2000. |
bandwidthНеобов'язковий | integer | Лише для unlimited, у Mbps. Оберіть 100, 200, 500 або 1000. |
monthsНеобов'язковий | integer | Лише для isp і datacenter. Оберіть 1, 3, 6 або 12. |
countryНеобов'язковий | string | Лише для isp і datacenter. Дволітерний код країни, наприклад jp. Допустимі значення наведено в /countries. |
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}'{
"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
}Список замовлень
GET/api/v1/ordersПотрібен API-ключ
Показує до 100 ваших замовлень, від найновіших.
| Поле | Тип | Що це означає |
|---|---|---|
statusНеобов'язковий | string | Одне з pending, active, refunded. Порожнє значення повертає замовлення з будь-яким статусом. |
curl "https://hiproxy.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer hpk_your_api_key"
{
"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"
}
]
}Одне замовлення
GET/api/v1/orders/{id}Потрібен API-ключ
Показує одне замовлення за його id. Зручно, щоб перевірити, чи завершилася активація.
| Поле | Тип | Що це означає |
|---|---|---|
idОбов'язковий | string | id замовлення, наприклад HP-7KQ2M-X4HTD. |
curl https://hiproxy.shop/api/v1/orders/HP-7KQ2M-X4HTD \ -H "Authorization: Bearer hpk_your_api_key"
{
"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"
}
}Зібрати логін проксі
GET/api/v1/proxy-userПотрібен API-ключ
Повертає логін проксі з вашими параметрами, а також URL для HTTP і SOCKS5, які можна одразу вставити. Без session IP змінюється з кожним запитом.
| Поле | Тип | Що це означає |
|---|---|---|
productНеобов'язковий | string | Одне з unlimited, residential, isp, datacenter. Порожнє значення означає unlimited. |
countryНеобов'язковий | string | Дволітерний код країни, наприклад jp. |
cityНеобов'язковий | string | Значення міста з /countries, наприклад tokyo. Працює лише разом з country. |
sessionНеобов'язковий | string | 1~32 літери або цифри. Запити з однаковим session використовують той самий IP. |
ttlНеобов'язковий | integer | Скільки хвилин утримувати IP сесії, 1~60. Порожнє значення означає 30. |
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"
{
"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"
}Покроковий приклад
Один скрипт, який перевіряє ціну, замовляє з балансу й підключається через японський IP.
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())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);Замовлення через API обробляються так само, як замовлення з кабінету, і з'являються на вкладці «Історія». Замініть hpk_your_api_key у прикладах на свій API-ключ.