С чего начать?
- 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-ключ.