Documentación de API de proxies: Obtener listas mediante API REST
La API de Socks5Proxy permite consultar saldo, planes comprados y listas de proxies en JSON/txt/csv vía REST. URL base: https://socks5proxy.io/api/v1, hasta 300 llamadas/minuto por clave API.
¿Qué se puede hacer con la API?
Usa la API para que tus programas obtengan listas actualizadas automáticamente. Descarga listas al iniciar el scraper o cuando cambien los planes. Los datos son idénticos a los del dashboard.
La API es de solo lectura. Soporta consultar saldo, listar planes y listar proxies, mientras que los pagos y compras se hacen en el dashboard. Todas las respuestas son UTF-8 y las fechas están en formato ISO 8601 UTC.
| Método | Ruta | Descripción |
|---|---|---|
| GET | /account | Código de la cuenta, saldo (USD), número de planes activos, número de proxies |
| GET | /plans | Lista de planes comprados (últimos 200), estado y hora de expiración |
| GET | /proxies | Lista de proxies en uso (JSON), filtrar por país/plan |
| GET | /proxies/download | Lista de proxies en formato txt o csv, una línea por proxy |
¿Cómo se crean y envían las claves API?
Crea una clave API en la pantalla de claves API del panel de control. La clave comienza con spx_, tiene 44 caracteres y solo se muestra una vez al crearla. El servidor solo almacena el hash de la clave, por lo que si la pierdes, puedes crear una nueva. Al crear una nueva clave, la anterior dejará de funcionar de inmediato.
Incluye la clave API con autenticación Bearer en el header Authorization. No se admiten claves en parámetros de URL. Sin clave o con error: respuesta 401 unauthorized.
curl -H "Authorization: Bearer spx_your_api_key" https://socks5proxy.io/api/v1/accountConsulta saldo e información de cuenta: GET /account
Devuelve el código de la cuenta, el saldo, el número de planes activos y el número de proxies. El saldo se muestra con dos decimales (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"
}Consultar lista de planes: GET /plans
Muestra los planes comprados ordenados desde el más reciente. El estado puede ser active (en uso), expired (finalizado) o canceled (cancelado). El ID es el código del plan (comienza con P-) y se puede usar como valor 'plan' en /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"
}
]
}Consulta de lista de proxies: GET /proxies
Devuelve los proxies del plan en uso en formato JSON. Cada proxy incluye la dirección, puerto HTTP, puerto SOCKS5, nombre de usuario, contraseña, país, ciudad, código del plan y hora de expiración.
Puedes filtrar por country (código de país de dos letras, ej: us) y plan (código de plan). El valor de protocol se muestra en la respuesta, y ambos puertos están incluidos en el JSON.
| Consulta | Valor | Descripción |
|---|---|---|
| country | us, de, jp, etc. | Solo proxies de ese país |
| plan | P-XXXXX-XXXXX | Solo proxies de ese plan |
| protocol | http, socks5 | HTTP básico |
| format | json | Valor predeterminado, otros formatos en /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"
}
]
}Descargar lista: GET /proxies/download
Devuelve un proxy por línea para lectura directa por programas. Si protocol es socks5 usa puerto SOCKS5; si es http usa puerto HTTP. format=url añade prefijos (socks5:// o http://).
En servidores con autorización por IP activada, usa formato ip:port sin nombre de usuario. Los CSV incluyen encabezados y ambos puertos.
| format | Ejemplo en una línea (protocol=socks5) |
|---|---|
| ip:port:user:pass (predeterminado) | 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,Nueva York |
curl -H "Authorization: Bearer spx_your_api_key" \
"https://socks5proxy.io/api/v1/proxies/download?format=url&protocol=socks5" -o proxies.txtEjemplos de código: Python, Node.js, PHP
El siguiente ejemplo toma una lista y envía una solicitud a través del primer proxy. Python necesita el paquete requests[socks] para SOCKS5, y socks5h también resuelve nombres de dominio a través del 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";Códigos de error y límites de llamadas
Los errores devuelven { "error": { "code", "message" } } con códigos HTTP. Límite: 300 llamadas/minuto por clave. Excederlo devuelve 429 por 1 minuto. Como las listas solo cambian al comprar/expirar, recomendamos descargarlas cada pocos minutos y reusarlas localmente.
Las llamadas API no tienen costo. El saldo solo se deduce al comprar planes en el dashboard.
| Estado | code | Significado |
|---|---|---|
| 401 | unauthorized | Si la clave no existe o es incorrecta, o si creaste una nueva clave, usa la nueva clave |
| 400 | bad_format | el valor de format no está en la lista |
| 404 | not_found | Ruta no encontrada |
| 429 | rate_limited | Excede 300 solicitudes por minuto |