¿Cómo empiezo?
- 1Regístrate con un nombre de usuario e inicia sesión en el panel.
- 2Genera una clave de API en la pestaña Conectar. La clave completa aparece una sola vez, así que guárdala en un lugar seguro de inmediato.
- 3Pon la clave en el encabezado Authorization de cada solicitud que la necesite.
- 4Llama primero a /account para confirmar que la clave funciona y luego haz pedidos con /orders.
¿Cómo funciona la autenticación?
Las solicitudes sobre tu propia cuenta (account, orders, proxy-user) necesitan una clave de API. Envíala en el encabezado como Authorization: Bearer hpk_... Los precios, países y cotizaciones están abiertos a todos y no necesitan clave.
HiProxy guarda solo un hash de tu clave, nunca la clave en sí. Si la pierdes, genera una nueva en el panel y la clave anterior queda bloqueada en ese momento. Guarda la clave solo en código del lado del servidor, nunca en código que se ejecuta en un navegador ni en un repositorio público.
Authorization: Bearer hpk_your_api_key
URL base y formato de datos
- URL base
- https://hiproxy.shop/api/v1
- Cuerpo de solicitud y respuesta
- application/json
- Importes
- USD como número, p. ej. 1036.60
- Marcas de tiempo
- ISO 8601 (UTC)
¿Hay límites de solicitudes?
Cada clave de API puede hacer hasta 60 llamadas por minuto. Los endpoints públicos llamados sin clave permiten 60 llamadas por minuto por IP. Si pasas el límite, recibes HTTP 429. Espera un minuto y vuelve a enviar.
¿Cómo es una respuesta de error?
Recibes un código de estado HTTP y un cuerpo JSON con un código de error corto y un mensaje.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Qué significa |
|---|---|---|
| bad_requestHTTP 400Falta un valor obligatorio, o este producto no acepta ese valor. | Falta un valor obligatorio, o este producto no acepta ese valor. | |
| unauthorizedHTTP 401No se envió una clave de API, o la clave es incorrecta. | No se envió una clave de API, o la clave es incorrecta. | |
| insufficient_balanceHTTP 402Tu saldo es menor que el total del pedido. No se tocó tu saldo. | Tu saldo es menor que el total del pedido. No se tocó tu saldo. | |
| not_foundHTTP 404Tu cuenta no tiene ningún pedido con este id. | Tu cuenta no tiene ningún pedido con este id. | |
| rate_limitedHTTP 429Superaste el límite de solicitudes por minuto. | Superaste el límite de solicitudes por minuto. | |
| server_errorHTTP 500El servidor no pudo completar la solicitud. No se tocó tu saldo. | El servidor no pudo completar la solicitud. No se tocó tu saldo. |
Endpoints
Consultar tu cuenta
GET/api/v1/accountRequiere clave de API
Muestra tu saldo, el host y los puertos del proxy, el usuario y la contraseña del proxy, y la lista de IP autorizadas.
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"
]
}Consultar productos y precios
GET/api/v1/productsSin clave
Muestra los límites de pedido de cada producto, el precio por nivel y los descuentos por periodo. Usa la misma tabla de precios que la página de precios.
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",
"...": "..."
}
]
}Listar países y ciudades
GET/api/v1/countriesSin clave
Muestra los países que admite cada producto y los valores de ciudad para usar en la opción -city- del usuario.
| Campo | Tipo | Qué significa |
|---|---|---|
productOpcional | string | Uno de unlimited, residential, isp, datacenter. Vacío significa 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"
}
]
}
]
}Obtener una cotización
POST/api/v1/quoteSin clave
Calcula el total del pedido sin tocar tu saldo. Envía el mismo cuerpo que enviarías para hacer el pedido.
| Campo | Tipo | Qué significa |
|---|---|---|
productObligatorio | string | Uno de unlimited, residential, isp, datacenter. |
quantityObligatorio | integer | Días para unlimited (1~365), GB para residential (5~5,000), cantidad de IP para isp (1~1,000) o datacenter (5~5,000). |
concurrencyOpcional | integer | Solo unlimited. Elige 200, 500, 1000 o 2000. |
bandwidthOpcional | integer | Solo unlimited, en Mbps. Elige 100, 200, 500 o 1000. |
monthsOpcional | integer | Solo isp y datacenter. Elige 1, 3, 6 o 12. |
countryOpcional | string | Solo isp y datacenter. Un código de país de dos letras, como jp. Los valores válidos aparecen en /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
}Hacer un pedido
POST/api/v1/ordersRequiere clave de API
Descuenta el total de tu saldo y crea el pedido. Empieza como pending (activando) y pasa a active cuando está listo. Un pedido que no se puede activar pasa a refunded, y todo lo que pagaste vuelve a tu saldo. Si tu saldo no alcanza, recibes 402.
| Campo | Tipo | Qué significa |
|---|---|---|
productObligatorio | string | Uno de unlimited, residential, isp, datacenter. |
quantityObligatorio | integer | Días para unlimited (1~365), GB para residential (5~5,000), cantidad de IP para isp (1~1,000) o datacenter (5~5,000). |
concurrencyOpcional | integer | Solo unlimited. Elige 200, 500, 1000 o 2000. |
bandwidthOpcional | integer | Solo unlimited, en Mbps. Elige 100, 200, 500 o 1000. |
monthsOpcional | integer | Solo isp y datacenter. Elige 1, 3, 6 o 12. |
countryOpcional | string | Solo isp y datacenter. Un código de país de dos letras, como jp. Los valores válidos aparecen en /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
}Listar pedidos
GET/api/v1/ordersRequiere clave de API
Muestra hasta 100 de tus pedidos, los más recientes primero.
| Campo | Tipo | Qué significa |
|---|---|---|
statusOpcional | string | Uno de pending, active, refunded. Vacío devuelve pedidos en cualquier estado. |
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"
}
]
}Consultar un pedido
GET/api/v1/orders/{id}Requiere clave de API
Muestra un solo pedido por su id. Útil para comprobar si la activación terminó.
| Campo | Tipo | Qué significa |
|---|---|---|
idObligatorio | string | El id del pedido, como 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"
}
}Armar un usuario de proxy
GET/api/v1/proxy-userRequiere clave de API
Te da un usuario del proxy con tus opciones incluidas, más URL HTTP y SOCKS5 que puedes pegar directamente. Sin session, la IP cambia en cada solicitud.
| Campo | Tipo | Qué significa |
|---|---|---|
productOpcional | string | Uno de unlimited, residential, isp, datacenter. Vacío significa unlimited. |
countryOpcional | string | Un código de país de dos letras, como jp. |
cityOpcional | string | Un valor de ciudad de /countries, como tokyo. Solo funciona junto con country. |
sessionOpcional | string | De 1~32 letras o números. Las solicitudes con la misma session usan la misma IP. |
ttlOpcional | integer | Cuántos minutos mantener la IP de la sesión, de 1~60. Vacío significa 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"
}Ejemplo paso a paso
Un script que consulta el precio, hace un pedido con tu saldo y se conecta a través de una IP japonesa.
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);Los pedidos hechos por la API se gestionan igual que los del panel y aparecen en la pestaña Historial. Reemplaza hpk_your_api_key en los ejemplos por tu propia clave de API.