Aller au contenu
starproxy
Commencer

API StarProxy

La plupart des fonctions du tableau de bord sont accessibles depuis votre code. Consultez votre solde, vérifiez les prix, commandez avec votre solde et récupérez des identifiants proxy avec options, le tout via une seule API REST.

Par où commencer ?

  1. 1Inscrivez-vous avec un nom d'utilisateur et connectez-vous au tableau de bord.
  2. 2Créez une clé API dans l'onglet Connexion. La clé complète n'est affichée qu'une fois, à sa création : conservez-la tout de suite en lieu sûr.
  3. 3Envoyez la clé dans l'en-tête Authorization avec chaque requête qui en a besoin.
  4. 4Appelez d'abord /account pour vérifier que la clé fonctionne, puis passez vos commandes avec /orders.

Authentification

Les requêtes qui concernent votre propre compte (account, orders, proxy-user) nécessitent une clé API, envoyée dans l'en-tête sous la forme Authorization: Bearer spk_... Les prix, pays et devis sont publics et fonctionnent sans clé.

StarProxy ne conserve que le hash de chaque clé, pas la clé elle-même. Si vous perdez une clé, créez-en une nouvelle dans le tableau de bord. L'ancienne cesse aussitôt de fonctionner. Gardez les clés uniquement dans du code serveur. Ne les placez jamais dans du code exécuté dans un navigateur ni dans un dépôt public.

HTTP header
Authorization: Bearer spk_your_api_key

URL de base et format des données

URL de base
https://starproxy.shop/api/v1
Corps de requête et de réponse
application/json
Montants
En USD, sous forme de nombre, ex. 1047.70
Horodatages
ISO 8601 (UTC)

Y a-t-il une limite d'appels ?

Une clé API peut faire jusqu'à 60 appels par minute. Les endpoints publics sans clé acceptent 60 appels par minute et par IP. Au-delà, vous recevez HTTP 429 : attendez une minute et renvoyez la requête.

À quoi ressemblent les erreurs ?

Un code de statut HTTP, avec un corps JSON contenant un code d'erreur court et un message.

Exemple
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Une valeur obligatoire manque, ou la valeur n'est pas valide pour ce produit.
unauthorizedHTTP 401La clé API est absente ou ne correspond pas.
insufficient_balanceHTTP 402Votre solde est inférieur au total de la commande. Rien n'a été débité.
not_foundHTTP 404Aucune commande avec cet id sur votre compte.
rate_limitedHTTP 429Trop de requêtes en une minute.
server_errorHTTP 500Le serveur n'a pas pu terminer la requête. Rien n'a été débité.

Endpoints

Obtenir le compte

GET/api/v1/accountClé API requise

Renvoie votre solde, l'hôte et les ports proxy, l'identifiant et le mot de passe proxy, ainsi que vos IP autorisées.

Requête
curl https://starproxy.shop/api/v1/account \
  -H "Authorization: Bearer spk_your_api_key"
Réponse
{
  "username": "star_user01",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.starproxy.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "spexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Obtenir les produits et les prix

GET/api/v1/productsSans clé

Renvoie la plage de commande de chaque produit, le prix par palier de quantité et les remises sur la durée, à partir de la même grille que la page des tarifs.

Requête
curl https://starproxy.shop/api/v1/products
Réponse
{
  "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é

Renvoie les pays disponibles pour chaque produit, ainsi que les valeurs de ville pour l'option -city- du nom d'utilisateur.

ChampSignification
productFacultatifL'une des valeurs unlimited, residential, isp, datacenter. Par défaut : residential.
Requête
curl "https://starproxy.shop/api/v1/countries?product=datacenter"
Réponse
{
  "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 la commande.

ChampSignification
productObligatoireL'une des valeurs unlimited, residential, isp, datacenter.
quantityObligatoireJours pour unlimited (1~365), GB pour residential (5~5,000), nombre d'IP pour isp (1~1,000) ou datacenter (5~5,000).
concurrencyFacultatifUnlimited uniquement. L'une des valeurs 200, 500, 1000, 2000.
bandwidthFacultatifUnlimited uniquement, en Mbps. L'une des valeurs 100, 200, 500, 1000.
monthsFacultatifisp et datacenter uniquement. L'une des valeurs 1, 3, 6, 12.
countryFacultatifisp et datacenter uniquement. Un code pays à deux lettres, par exemple jp. Consultez /countries pour les valeurs valides.
Requête
curl -X POST https://starproxy.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Réponse
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.41,
  "unit": "day",
  "total_usd": 252.3
}

Créer une commande

POST/api/v1/ordersClé API requise

Débite le total de votre solde et crée la commande. Le statut commence à pending (en activation) et passe à active quand la commande est prête. Si elle ne peut pas être activée, elle passe à refunded et le montant total revient sur votre solde. Un solde insuffisant renvoie 402.

ChampSignification
productObligatoireL'une des valeurs unlimited, residential, isp, datacenter.
quantityObligatoireJours pour unlimited (1~365), GB pour residential (5~5,000), nombre d'IP pour isp (1~1,000) ou datacenter (5~5,000).
concurrencyFacultatifUnlimited uniquement. L'une des valeurs 200, 500, 1000, 2000.
bandwidthFacultatifUnlimited uniquement, en Mbps. L'une des valeurs 100, 200, 500, 1000.
monthsFacultatifisp et datacenter uniquement. L'une des valeurs 1, 3, 6, 12.
countryFacultatifisp et datacenter uniquement. Un code pays à deux lettres, par exemple jp. Consultez /countries pour les valeurs valides.
Requête
curl -X POST https://starproxy.shop/api/v1/orders \
  -H "Authorization: Bearer spk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Réponse
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1047.7
}

Lister les commandes

GET/api/v1/ordersClé API requise

Renvoie jusqu'à 100 commandes, les plus récentes en premier.

ChampSignification
statusFacultatifL'une des valeurs pending, active, refunded. Laissez vide pour tous les statuts.
Requête
curl "https://starproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer spk_your_api_key"
Réponse
{
  "orders": [
    {
      "id": "SP-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.41,
      "total_usd": 252.3,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Obtenir une commande

GET/api/v1/orders/{id}Clé API requise

Renvoie une commande à partir de son id. Utile pour savoir si l'activation est terminée.

ChampSignification
idObligatoireL'id de la commande, par exemple SP-7KQ2M-X4HTD.
Requête
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \
  -H "Authorization: Bearer spk_your_api_key"
Réponse
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "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

Renvoie un identifiant proxy avec vos options intégrées, ainsi que des URL HTTP et SOCKS5 prêtes à coller. Sans session, chaque requête reçoit une nouvelle IP.

ChampSignification
productFacultatifL'une des valeurs unlimited, residential, isp, datacenter. Par défaut : unlimited.
countryFacultatifUn code pays à deux lettres, par exemple jp.
cityFacultatifUne valeur de ville issue de /countries, par exemple tokyo. Nécessite country.
sessionFacultatif1~32 lettres ou chiffres. Les requêtes avec la même session partagent une IP.
ttlFacultatifMinutes pendant lesquelles la session garde l'IP, de 1~60. Par défaut : 30.
Requête
curl "https://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer spk_your_api_key"
Réponse
{
  "username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
  "socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}

Exemple complet

Un seul script qui obtient un devis, commande avec votre solde et se connecte via une IP japonaise.

Python (requests)
import requests

API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_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())
Node.js 18+
const API = "https://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_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 spk_your_api_key dans les exemples par votre propre clé.

Utilisez StarProxy directement depuis votre code

Inscrivez-vous avec un nom d'utilisateur, créez une clé API dans le tableau de bord et commencez à appeler l'API.