Documentation de l'API proxy : Obtenir des listes de proxies via l'API REST
L'API Socks5Proxy (https://socks5proxy.io/api/v1) est une API REST permettant avec une clé API (dashboard) de récupérer le solde, les abonnements et les listes de proxies (JSON/txt/csv). Limite : 300 appels/minute/clé.
Que puis-je faire avec l'API ?
Utilisez l'API pour que vos programmes récupèrent automatiquement les listes à jour. Par exemple, faire télécharger la liste au démarrage du crawler, ou mettre à jour automatiquement lors d'un changement d'abonnement. Les listes du dashboard et de l'API sont identiques.
L'API est en lecture seule. Elle permet de vérifier le solde, consulter les listes de plans et de proxies, tandis que les paiements et achats se font depuis le dashboard. Toutes les réponses sont en UTF-8 et les dates au format ISO 8601 UTC.
| Méthode | Chemin | Description |
|---|---|---|
| GET | /account | Code du compte, solde (USD), nombre de plans actifs, nombre de proxies |
| GET | /plans | Liste des plans achetés (200 max), statut et date d'expiration |
| GET | /proxies | Liste des proxies utilisés (JSON), filtrable par pays/plan |
| GET | /proxies/download | Liste des proxies au format txt ou csv, un par ligne |
Comment créer et envoyer une clé API ?
Créez une clé API dans l'écran des clés API du tableau de bord. La clé commence par spx_ et compte 44 caractères, et elle n'est affichée qu'une seule fois lors de sa création. Seul le hachage de la clé est stocké sur le serveur, donc si vous la perdez, vous pouvez simplement en créer une nouvelle, et l'ancienne clé sera immédiatement désactivée.
Ajoutez la clé en mode Bearer dans l'en-tête Authorization de chaque requête. Les clés dans les paramètres d'URL ne sont pas acceptées. Une clé manquante ou incorrecte renvoie une erreur 401 unauthorized.
curl -H "Authorization: Bearer spx_your_api_key" https://socks5proxy.io/api/v1/accountConsulter les informations de compte et de solde : GET /account
Retourne le code du compte, le solde, le nombre de plans actifs et le nombre de proxies. Le solde est une chaîne avec deux décimales (USD).
curl -H "Authorization: Bearer spx_your_api_key" https://socks5proxy.io/api/v1/account{
"code": "S5-7KQ2-M8PX-4HDA",
"balance": "125.40",
"currency": "USD",
"active_plans": 2,
"proxies": 125,
"created_at": "2026-10-22T08:15:02.114Z"
}Liste des plans : GET /plans
Retourne vos plans achetés, du plus récent. Statuts : active (en cours), expired (terminé), canceled (annulé). L'id (commençant par P-) peut être utilisé comme valeur 'plan' dans /proxies.
{
"plans": [
{
"id": "P-8WQ4C-NM2KT",
"product": "dc-private",
"product_name": "Private Datacenter Proxy",
"ips": 100,
"months": 1,
"country": "us",
"status": "active",
"amount": "49.40",
"created_at": "2026-10-22T08:20:11.002Z",
"expires_at": "2026-11-22T08:20:11.002Z"
}
]
}Consultation de la liste des proxies : GET /proxies
Retourne les proxies du plan actuel au format JSON. Chaque proxy contient l'adresse, le port HTTP, le port SOCKS5, le nom d'utilisateur, le mot de passe, le pays, la ville, le code du plan et l'heure d'expiration.
Filtrable par country (code pays à 2 lettres, ex : us) et plan (code forfait). Le champ protocol est affiché dans la réponse, et le JSON inclut les deux ports.
| Requête | Valeur | Description |
|---|---|---|
| country | us, de, jp, etc. | Uniquement les proxies de ce pays |
| plan | P-XXXXX-XXXXX | Uniquement les proxies de ce plan |
| protocol | http, socks5 | HTTP de base |
| format | json | Par défaut, autres formats via /proxies/download |
curl -H "Authorization: Bearer spx_your_api_key" \
"https://socks5proxy.io/api/v1/proxies?country=us&protocol=socks5"{
"count": 1,
"protocol": "socks5",
"proxies": [
{
"host": "198.51.100.23",
"http_port": 8231,
"socks5_port": 1080,
"username": "spx_k2m8qa",
"password": "q7rbx2wd9n",
"country": "us",
"city": "New York",
"plan": "P-8WQ4C-NM2KT",
"product": "dc-private",
"product_name": "Private Datacenter Proxy",
"expires_at": "2026-11-22T08:20:11.002Z"
}
]
}Télécharger la liste : GET /proxies/download
Le programme retourne un proxy par ligne sous forme de texte. Si le protocol est socks5, le port SOCKS5 est inclus ; si c'est http, le port HTTP est inclus. format=url ajoute le préfixe d'adresse correspondant (socks5:// ou http://).
Sur les serveurs avec IP authorization, connectez-vous en ip:port sans identifiant. Les CSV incluent les deux ports avec en-têtes.
| format | Exemple sur une ligne (protocol=socks5) |
|---|---|
| ip:port:user:pass (par défaut) | 198.51.100.23:1080:spx_k2m8qa:q7rbx2wd9n |
| user:pass@ip:port | spx_k2m8qa:q7rbx2wd9n@198.51.100.23:1080 |
| ip:port | 198.51.100.23:1080 |
| url | socks5://spx_k2m8qa:q7rbx2wd9n@198.51.100.23:1080 |
| csv | 198.51.100.23,8231,1080,spx_k2m8qa,q7rbx2wd9n,us,New York |
curl -H "Authorization: Bearer spx_your_api_key" \
"https://socks5proxy.io/api/v1/proxies/download?format=url&protocol=socks5" -o proxies.txtExemples de code : Python, Node.js, PHP
L'exemple ci-dessous récupère une liste et envoie une requête via le premier proxy. Python nécessite le package requests[socks] pour utiliser SOCKS5, et socks5h permet également la résolution DNS côté proxy.
import requests
API = "https://socks5proxy.io/api/v1"
H = {"Authorization": "Bearer spx_your_api_key"}
proxies = requests.get(f"{API}/proxies", headers=H, params={"country": "us"}).json()["proxies"]
p = proxies[0]
url = f"socks5h://{p['username']}:{p['password']}@{p['host']}:{p['socks5_port']}"
r = requests.get("https://api.ipify.org?format=json", proxies={"http": url, "https": url}, timeout=30)
print(r.json())import { ProxyAgent, fetch } from "undici";
const API = "https://socks5proxy.io/api/v1";
const H = { Authorization: "Bearer spx_your_api_key" };
const { proxies } = await (await fetch(`${API}/proxies?country=us`, { headers: H })).json();
const p = proxies[0];
const agent = new ProxyAgent(`http://${p.username}:${p.password}@${p.host}:${p.http_port}`);
const r = await fetch("https://api.ipify.org?format=json", { dispatcher: agent });
console.log(await r.json());<?php
$ch = curl_init("https://socks5proxy.io/api/v1/proxies/download?format=ip:port:user:pass&protocol=http");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer spx_your_api_key"],
CURLOPT_RETURNTRANSFER => true,
]);
$lines = explode("\n", trim(curl_exec($ch)));
[$host, $port, $user, $pass] = explode(":", $lines[0]);
echo "$host:$port\n";Codes erreur et limites d'appel
Les erreurs renvoient un objet { "error": { "code", "message" } } avec le code HTTP. Limite : 300 appels/clef/minute (dépassement = réponse 429 pendant 1 min). Les listes ne changent qu'à l'achat/expiration : on recommande de les récupérer une fois et de les réutiliser localement.
Les appels API ne génèrent pas de frais. Seuls les achats de plans depuis le dashboard sont déduits de votre solde.
| Statut | code | Signification |
|---|---|---|
| 401 | unauthorized | Clé absente ou incorrecte. Si vous en avez créé une nouvelle, utilisez-la. |
| 400 | bad_format | le format n'est pas dans la liste |
| 404 | not_found | Chemin introuvable |
| 429 | rate_limited | Dépassement de 300 requêtes/minute |