Como começo?
- 1Cadastre-se com um nome de usuário e entre no painel.
- 2Gere uma chave de API na aba Conectar. A chave completa aparece só uma vez, então guarde-a em um lugar seguro na hora.
- 3Coloque a chave no cabeçalho Authorization de toda requisição que precisar dela.
- 4Chame /account primeiro para confirmar que a chave funciona e depois faça pedidos com /orders.
Como funciona a autenticação?
Requisições sobre a sua própria conta (account, orders, proxy-user) precisam de chave de API. Envie no cabeçalho como Authorization: Bearer hpk_... Preços, países e orçamentos são abertos a todos e não precisam de chave.
A HiProxy guarda apenas um hash da sua chave, nunca a chave em si. Se você perdê-la, gere uma nova no painel e a chave antiga é bloqueada no mesmo momento. Mantenha a chave só em código do lado do servidor, nunca em código que roda no navegador nem em um repositório público.
Authorization: Bearer hpk_your_api_key
URL base e formato dos dados
- URL base
- https://hiproxy.shop/api/v1
- Corpo da requisição e da resposta
- application/json
- Valores
- USD como número, ex.: 1036.60
- Data e hora
- ISO 8601 (UTC)
Há limites de requisições?
Cada chave de API pode fazer até 60 chamadas por minuto. Endpoints públicos chamados sem chave aceitam 60 chamadas por minuto por IP. Se passar do limite, você recebe HTTP 429. Espere um minuto e envie de novo.
Como é uma resposta de erro?
Você recebe um código de status HTTP e um corpo JSON com um código de erro curto e uma mensagem.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | O que significa |
|---|---|---|
| bad_requestHTTP 400Falta um valor obrigatório, ou este produto não aceita o valor. | Falta um valor obrigatório, ou este produto não aceita o valor. | |
| unauthorizedHTTP 401Nenhuma chave de API foi enviada, ou a chave está errada. | Nenhuma chave de API foi enviada, ou a chave está errada. | |
| insufficient_balanceHTTP 402Seu saldo é menor que o total do pedido. O saldo não foi alterado. | Seu saldo é menor que o total do pedido. O saldo não foi alterado. | |
| not_foundHTTP 404Sua conta não tem nenhum pedido com este id. | Sua conta não tem nenhum pedido com este id. | |
| rate_limitedHTTP 429Você passou do limite de requisições por minuto. | Você passou do limite de requisições por minuto. | |
| server_errorHTTP 500O servidor não conseguiu concluir a requisição. O saldo não foi alterado. | O servidor não conseguiu concluir a requisição. O saldo não foi alterado. |
Endpoints
Consultar sua conta
GET/api/v1/accountPrecisa de chave de API
Mostra seu saldo, host e portas do proxy, usuário e senha do proxy e a lista de IPs autorizados.
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 produtos e preços
GET/api/v1/productsSem chave
Mostra os limites de pedido de cada produto, o preço por faixa e os descontos por período. Usa a mesma tabela de preços da página de preços.
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 e cidades
GET/api/v1/countriesSem chave
Mostra os países que cada produto atende e os valores de cidade para usar na opção -city- do usuário.
| Campo | Tipo | O que significa |
|---|---|---|
productOpcional | string | Um de unlimited, residential, isp, datacenter. Vazio 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"
}
]
}
]
}Obter cotação
POST/api/v1/quoteSem chave
Calcula o total do pedido sem mexer no saldo. Envie o mesmo corpo que você enviaria para fazer o pedido.
| Campo | Tipo | O que significa |
|---|---|---|
productObrigatório | string | Um de unlimited, residential, isp, datacenter. |
quantityObrigatório | integer | Dias para unlimited (1~365), GB para residential (5~5,000), número de IPs para isp (1~1,000) ou datacenter (5~5,000). |
concurrencyOpcional | integer | Só para unlimited. Escolha 200, 500, 1000 ou 2000. |
bandwidthOpcional | integer | Só para unlimited, em Mbps. Escolha 100, 200, 500 ou 1000. |
monthsOpcional | integer | Só para isp e datacenter. Escolha 1, 3, 6 ou 12. |
countryOpcional | string | Só para isp e datacenter. Um código de país de duas letras, como jp. Os valores válidos estão em /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
}Fazer um pedido
POST/api/v1/ordersPrecisa de chave de API
Desconta o total do saldo e cria o pedido. Ele começa como pending (ativando) e passa a active quando fica pronto. Um pedido que não pode ser ativado vira refunded, e tudo o que você pagou volta para o saldo. Se o saldo for insuficiente, você recebe 402.
| Campo | Tipo | O que significa |
|---|---|---|
productObrigatório | string | Um de unlimited, residential, isp, datacenter. |
quantityObrigatório | integer | Dias para unlimited (1~365), GB para residential (5~5,000), número de IPs para isp (1~1,000) ou datacenter (5~5,000). |
concurrencyOpcional | integer | Só para unlimited. Escolha 200, 500, 1000 ou 2000. |
bandwidthOpcional | integer | Só para unlimited, em Mbps. Escolha 100, 200, 500 ou 1000. |
monthsOpcional | integer | Só para isp e datacenter. Escolha 1, 3, 6 ou 12. |
countryOpcional | string | Só para isp e datacenter. Um código de país de duas letras, como jp. Os valores válidos estão em /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/ordersPrecisa de chave de API
Mostra até 100 dos seus pedidos, os mais recentes primeiro.
| Campo | Tipo | O que significa |
|---|---|---|
statusOpcional | string | Um de pending, active, refunded. Vazio retorna pedidos em qualquer status. |
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 um pedido
GET/api/v1/orders/{id}Precisa de chave de API
Mostra um único pedido pelo id. Útil para conferir se a ativação terminou.
| Campo | Tipo | O que significa |
|---|---|---|
idObrigatório | string | O id do 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"
}
}Montar um usuário de proxy
GET/api/v1/proxy-userPrecisa de chave de API
Entrega um usuário do proxy com as suas opções, além de URLs HTTP e SOCKS5 prontas para colar. Sem session, o IP muda a cada requisição.
| Campo | Tipo | O que significa |
|---|---|---|
productOpcional | string | Um de unlimited, residential, isp, datacenter. Vazio significa unlimited. |
countryOpcional | string | Um código de país de duas letras, como jp. |
cityOpcional | string | Um valor de cidade de /countries, como tokyo. Só funciona junto com country. |
sessionOpcional | string | 1~32 letras ou números. Requisições com a mesma session usam o mesmo IP. |
ttlOpcional | integer | Por quantos minutos manter o IP da sessão, 1~60. Vazio 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"
}Exemplo passo a passo
Um script que confere o preço, faz o pedido com o saldo e se conecta por um IP japonês.
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);Pedidos feitos pela API são tratados como os do painel e aparecem na aba Histórico. Troque hpk_your_api_key nos exemplos pela sua própria chave de API.