API ProxyWorld

Ce que vous faites dans le tableau de bord, vous pouvez aussi le faire depuis votre code. Consultez votre solde, vérifiez les prix, commandez avec votre solde et obtenez des identifiants proxy avec options, le tout via une seule API REST.

Vous débutez ? Suivez ces étapes

  1. 1Inscrivez-vous avec un email et un mot de passe, ou avec un jeton, puis ouvrez le tableau de bord.
  2. 2Créez une clé API dans l'onglet Connexion. La clé complète n'apparaît qu'une fois, au moment de sa création : enregistrez-la tout de suite.
  3. 3Placez la clé dans l'en-tête Authorization de chaque requête qui en a besoin.
  4. 4Appelez d'abord /account pour vérifier que la clé est acceptée, puis passez vos commandes avec /orders.

Comment fonctionne l'authentification ?

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

Les serveurs ProxyWorld ne stockent jamais la clé elle-même, seulement son hash. Si vous perdez une clé, créez-en une nouvelle dans le tableau de bord : l'ancienne est bloquée aussitôt. Utilisez les clés uniquement dans du code côté serveur. Si une clé se retrouve dans du code exécuté dans un navigateur ou dans un dépôt public, quelqu'un d'autre peut l'utiliser.

HTTP header
Authorization: Bearer pwk_your_api_key

URL de base et format des données

URL de base
https://proxyworld.shop/api/v1
Corps des requêtes et réponses
application/json
Montants
En USD, sous forme de nombre, par exemple 1058.50
Horodatages
ISO 8601 (UTC)

Combien d'appels puis-je faire ?

Chaque clé API peut faire 60 appels par minute. Les endpoints publics appelés sans clé acceptent 60 appels par minute pour chaque IP. Au-delà, vous recevez HTTP 429. Attendez environ une minute, puis réessayez.

Que reçoit-on en cas d'échec ?

Vous recevez un code de statut HTTP et un corps JSON avec un code d'erreur court et une explication.

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 une valeur envoyée n'est pas acceptée pour ce produit.
unauthorizedHTTP 401La clé API est absente ou n'est pas valide.
insufficient_balanceHTTP 402Votre solde est inférieur au total de la commande. Rien n'a été débité de votre solde.
not_foundHTTP 404Votre compte n'a aucune commande avec ce numéro.
rate_limitedHTTP 429Vous avez dépassé le nombre d'appels autorisés par minute.
server_errorHTTP 500Le serveur n'a pas pu terminer la requête. Rien n'a été débité de votre solde.

Endpoints

Consulter votre compte

GET/api/v1/accountClé API requise

Renvoie votre mode de connexion (login : email ou token), votre email, votre solde, l'hôte et les ports proxy, l'identifiant et le mot de passe proxy, ainsi que les IP autorisées. Pour les comptes créés avec un jeton, email vaut null.

Requête
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Réponse
{
  "login": "email",
  "email": "you@example.com",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.proxyworld.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "pwexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Consulter les produits et les prix

GET/api/v1/productsFonctionne sans clé

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

Requête
curl https://proxyworld.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",
      "...": "..."
    }
  ]
}

Pays et villes

GET/api/v1/countriesFonctionne sans clé

Renvoie les pays disponibles pour chaque produit, avec les valeurs de ville à utiliser dans l'option -city- de l'identifiant.

NomSignification
productFacultatifL'une des valeurs unlimited, residential, isp, datacenter. Si absent, residential est utilisé.
Requête
curl "https://proxyworld.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/quoteFonctionne sans clé

Calcule le total de la commande sans toucher à votre solde. Envoyez le même corps que pour passer la commande.

NomSignification
productObligatoireL'une des valeurs unlimited, residential, isp, datacenter.
quantityObligatoireQuantité à commander : jours 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. Choisissez parmi 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. Les valeurs acceptées sont listées dans /countries.
Requête
curl -X POST https://proxyworld.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.05,
  "unit": "day",
  "total_usd": 241.5
}

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 à active une fois prête. Une commande qui ne peut pas être activée passe à refunded, et tout ce que vous avez payé revient sur votre solde. Si votre solde est insuffisant, vous recevez 402.

NomSignification
productObligatoireL'une des valeurs unlimited, residential, isp, datacenter.
quantityObligatoireQuantité à commander : jours 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. Choisissez parmi 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. Les valeurs acceptées sont listées dans /countries.
Requête
curl -X POST https://proxyworld.shop/api/v1/orders \
  -H "Authorization: Bearer pwk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Réponse
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1058.5
}

Consulter vos commandes

GET/api/v1/ordersClé API requise

Affiche jusqu'à 100 commandes, des plus récentes aux plus anciennes.

NomSignification
statusFacultatifL'une des valeurs pending, active, refunded. Sans ce paramètre, les commandes de tous statuts sont renvoyées.
Requête
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Réponse
{
  "orders": [
    {
      "id": "PW-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.05,
      "total_usd": 241.5,
      "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

Renvoie la commande correspondant à un numéro de commande. Pratique pour vérifier si l'activation est terminée.

NomSignification
idObligatoireLe numéro de commande, par exemple PW-7KQ2M-X4HTD.
Requête
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Réponse
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "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, ainsi que des URL HTTP et SOCKS5 à coller telles quelles. Si vous n'envoyez pas session, l'IP change à chaque requête.

NomSignification
productFacultatifL'une des valeurs unlimited, residential, isp, datacenter. Si absent, unlimited est utilisé.
countryFacultatifUn code pays à deux lettres, par exemple jp.
cityFacultatifUne valeur de ville listée dans /countries, par exemple tokyo. Envoyez aussi country.
sessionFacultatif1~32 lettres et chiffres. Les requêtes avec la même session utilisent la même IP.
ttlFacultatifDurée pendant laquelle la session garde son IP, de 1~60 minutes. Si absent, 30 minutes.
Requête
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer pwk_your_api_key"
Réponse
{
  "username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
  "socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}

Exemple complet

Un seul script qui obtient un devis, commande avec votre solde, puis se connecte via une IP au Japon.

Python (requests)
import requests

API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_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://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_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 avec les autres dans l'onglet Historique. Remplacez pwk_your_api_key dans les exemples par votre propre clé API.

Connectez ProxyWorld à votre code

Inscrivez-vous avec un email ou un jeton, créez une clé API dans le tableau de bord, et vous pouvez commencer vos appels tout de suite.