Comment commencer ?
- 1Inscrivez-vous avec un nom d'utilisateur et connectez-vous au tableau de bord.
- 2Générez une clé API dans l'onglet Connexion. La clé complète n'apparaît qu'une seule fois : enregistrez-la tout de suite en lieu sûr.
- 3Mettez la clé dans l'en-tête Authorization de chaque requête qui en a besoin.
- 4Appelez d'abord /account pour vérifier que la clé fonctionne, puis commandez avec /orders.
Comment fonctionne l'authentification ?
Les requêtes qui concernent votre propre compte (account, orders, proxy-user) demandent une clé API. Envoyez-la dans l'en-tête sous la forme Authorization: Bearer hpk_... Les prix, les pays et les devis sont accessibles à tous, sans clé.
HiProxy enregistre uniquement un hash de votre clé, jamais la clé elle-même. Si vous la perdez, générez-en une nouvelle dans le tableau de bord : l'ancienne clé est bloquée à ce moment-là. Gardez la clé uniquement dans du code côté serveur, jamais dans du code exécuté dans un navigateur ni dans un dépôt public.
Authorization: Bearer hpk_your_api_key
URL de base et format des données
- URL de base
- https://hiproxy.shop/api/v1
- Corps de requête et de réponse
- application/json
- Montants
- USD sous forme de nombre, ex. 1036.60
- Horodatages
- ISO 8601 (UTC)
Y a-t-il des limites de requêtes ?
Chaque clé API peut faire jusqu'à 60 appels par minute. Les endpoints publics appelés sans clé acceptent 60 appels par minute et par IP. Au-delà de la limite, vous recevez HTTP 429. Attendez une minute, puis renvoyez la requête.
À quoi ressemble une réponse d'erreur ?
Vous recevez un code de statut HTTP et un corps JSON avec un code d'erreur court et un message.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Signification |
|---|---|---|
| bad_requestHTTP 400Une valeur obligatoire manque, ou ce produit n'accepte pas cette valeur. | Une valeur obligatoire manque, ou ce produit n'accepte pas cette valeur. | |
| unauthorizedHTTP 401Aucune clé API n'a été envoyée, ou la clé est incorrecte. | Aucune clé API n'a été envoyée, ou la clé est incorrecte. | |
| insufficient_balanceHTTP 402Votre solde est inférieur au total de la commande. Votre solde n'a pas été modifié. | Votre solde est inférieur au total de la commande. Votre solde n'a pas été modifié. | |
| not_foundHTTP 404Votre compte n'a aucune commande avec cet id. | Votre compte n'a aucune commande avec cet id. | |
| rate_limitedHTTP 429Vous avez dépassé la limite de requêtes par minute. | Vous avez dépassé la limite de requêtes par minute. | |
| server_errorHTTP 500Le serveur n'a pas pu terminer la requête. Votre solde n'a pas été modifié. | Le serveur n'a pas pu terminer la requête. Votre solde n'a pas été modifié. |
Endpoints
Consulter votre compte
GET/api/v1/accountClé API requise
Affiche votre solde, l'hôte et les ports du proxy, l'identifiant et le mot de passe proxy, et la liste des IP autorisées.
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"
]
}Consulter les produits et les prix
GET/api/v1/productsSans clé
Affiche les limites de commande de chaque produit, le prix par palier et les remises sur la durée. Utilise la même grille de prix que la page des tarifs.
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",
"...": "..."
}
]
}Lister les pays et les villes
GET/api/v1/countriesSans clé
Affiche les pays pris en charge par chaque produit et les valeurs de ville à utiliser dans l'option -city- de l'identifiant.
| Champ | Type | Signification |
|---|---|---|
productFacultatif | string | Une valeur parmi unlimited, residential, isp, datacenter. Vide signifie 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"
}
]
}
]
}Obtenir un devis
POST/api/v1/quoteSans clé
Calcule le total de la commande sans toucher à votre solde. Envoyez le même corps que pour passer la commande.
| Champ | Type | Signification |
|---|---|---|
productObligatoire | string | L'une des valeurs unlimited, residential, isp, datacenter. |
quantityObligatoire | integer | Jours pour unlimited (1~365), GB pour residential (5~5,000), nombre d'IP pour isp (1~1,000) ou datacenter (5~5,000). |
concurrencyFacultatif | integer | Unlimited uniquement. Choisissez 200, 500, 1000 ou 2000. |
bandwidthFacultatif | integer | Unlimited uniquement, en Mbps. Choisissez 100, 200, 500 ou 1000. |
monthsFacultatif | integer | isp et datacenter uniquement. Choisissez 1, 3, 6 ou 12. |
countryFacultatif | string | isp et datacenter uniquement. Un code pays de deux lettres comme jp. Les valeurs valides sont listées dans /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
}Passer une commande
POST/api/v1/ordersClé API requise
Débite le total de votre solde et crée la commande. Elle commence en pending (en activation) et passe en active une fois prête. Une commande qui ne peut pas être activée passe en refunded, et tout ce que vous avez payé revient sur votre solde. Si votre solde est insuffisant, vous recevez 402.
| Champ | Type | Signification |
|---|---|---|
productObligatoire | string | L'une des valeurs unlimited, residential, isp, datacenter. |
quantityObligatoire | integer | Jours pour unlimited (1~365), GB pour residential (5~5,000), nombre d'IP pour isp (1~1,000) ou datacenter (5~5,000). |
concurrencyFacultatif | integer | Unlimited uniquement. Choisissez 200, 500, 1000 ou 2000. |
bandwidthFacultatif | integer | Unlimited uniquement, en Mbps. Choisissez 100, 200, 500 ou 1000. |
monthsFacultatif | integer | isp et datacenter uniquement. Choisissez 1, 3, 6 ou 12. |
countryFacultatif | string | isp et datacenter uniquement. Un code pays de deux lettres comme jp. Les valeurs valides sont listées dans /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
}Lister les commandes
GET/api/v1/ordersClé API requise
Affiche jusqu'à 100 de vos commandes, les plus récentes en premier.
| Champ | Type | Signification |
|---|---|---|
statusFacultatif | string | Une valeur parmi pending, active, refunded. Vide renvoie les commandes de tous les statuts. |
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"
}
]
}Consulter une commande
GET/api/v1/orders/{id}Clé API requise
Affiche une seule commande par son id. Pratique pour vérifier si l'activation est terminée.
| Champ | Type | Signification |
|---|---|---|
idObligatoire | string | L'id de la commande, comme 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"
}
}Générer un identifiant proxy
GET/api/v1/proxy-userClé API requise
Vous donne un identifiant proxy contenant vos options, ainsi que des URL HTTP et SOCKS5 à coller directement. Sans session, l'IP change à chaque requête.
| Champ | Type | Signification |
|---|---|---|
productFacultatif | string | Une valeur parmi unlimited, residential, isp, datacenter. Vide signifie unlimited. |
countryFacultatif | string | Un code pays à deux lettres, par exemple jp. |
cityFacultatif | string | Une valeur de ville issue de /countries, comme tokyo. Fonctionne uniquement avec country. |
sessionFacultatif | string | 1~32 lettres ou chiffres. Les requêtes avec la même session utilisent la même IP. |
ttlFacultatif | integer | Nombre de minutes pendant lesquelles garder l'IP de session, 1~60. Vide signifie 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"
}Exemple étape par étape
Un script qui vérifie le prix, commande avec votre solde et se connecte via une IP japonaise.
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);Les commandes passées via l'API sont traitées comme celles du tableau de bord et apparaissent dans l'onglet Historique. Remplacez hpk_your_api_key dans les exemples par votre propre clé API.