Документація API проксі: отримання списку проксі через REST API
API Socks5Proxy - це REST API, який дозволяє отримувати баланс, активні тарифи та списки проксі у форматі JSON, txt або csv за допомогою одного API-ключа з панелі керування. Базовий URL: https://socks5proxy.io/api/v1, ліміт - 300 запитів на хвилину на один ключ.
Що можна робити через API?
API використовується, коли програма має автоматично отримувати оновлений список проксі. Наприклад, отримувати список при кожному запуску скрапера або автоматично оновлювати його при зміні тарифу. Дані API ідентичні списку з панелі керування.
API доступний лише для читання. Підтримується перевірка балансу, отримання списків тарифів і проксі, а оплата та покупки здійснюються в панелі керування. Всі відповіді у UTF-8, дати у форматі ISO 8601 UTC.
| Метод | Шлях | Опис |
|---|---|---|
| GET | /account | Код акаунту, баланс (USD), кількість активних планів, кількість проксі |
| GET | /plans | Список куплених планів (останні 200), статус і час закінчення |
| GET | /proxies | Список активних проксі (JSON), фільтрація за країною/тарифом |
| GET | /proxies/download | Список проксі у форматі txt або csv (один рядок на проксі) |
Як створити та надіслати API-ключ?
Створіть API ключ на сторінці API ключів на панелі керування. Ключ починається з spx_ і має 44 символи, і він показується лише один раз під час створення. На сервері зберігається лише хеш ключа, тому якщо ви його втратите, можна створити новий, а старий ключ буде негайно деактивований.
Додавайте ключ у заголовок Authorization за допомогою Bearer. Метод з ключем у параметрах запиту не підтримується. Якщо ключ відсутній або невірний, ви отримаєте відповідь 401 unauthorized.
curl -H "Authorization: Bearer spx_your_api_key" https://socks5proxy.io/api/v1/accountОтримання інформації про баланс і акаунт: GET /account
Повертає код акаунту, баланс, кількість активних планів і проксі. Баланс відображається з точністю до другого знаку після коми (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"
}Отримати список тарифів: GET /plans
Повертає список куплених планів, починаючи з найновішого. Статус може бути active (активний), expired (закінчився), або canceled (скасований). id - це код плану (починається з P-), який можна використовувати як значення plan у /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"
}
]
}Отримання списку проксі: GET /proxies
Повертає проксі з вашого активного тарифу у форматі JSON. Кожен проксі містить адресу, HTTP-порт, SOCKS5-порт, ім'я користувача, пароль, країну, місто, код тарифу та час закінчення.
Ви можете фільтрувати за country (дволітерний код країни, напр. us) та plan (код тарифу). Поле protocol відображається у відповіді, а JSON містить обидва порти.
| Запит | Значення | Опис |
|---|---|---|
| country | us, de, jp тощо | Тільки проксі з цієї країни |
| plan | P-XXXXX-XXXXX | Тільки проксі з цього плану |
| protocol | http, socks5 | Базовий http |
| format | json | За замовчуванням, інші формати доступні через /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"
}
]
}Завантажити список: GET /proxies/download
Список повертається у текстовому форматі, по одному проксі на рядок. Якщо protocol=socks5, у списку будуть SOCKS5-порти, якщо protocol=http - HTTP-порти. format=url додає відповідний префікс (socks5:// або http://) до кожної адреси.
Якщо увімкнено IP-авторизацію, ви можете використовувати проксі у форматі ip:port без логіна. CSV містить заголовки та обидва порти (HTTP/SOCKS5).
| format | Приклад у один рядок (protocol=socks5) |
|---|---|
| ip:port:user:pass (стандартний) | 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,Нью-Йорк |
curl -H "Authorization: Bearer spx_your_api_key" \
"https://socks5proxy.io/api/v1/proxies/download?format=url&protocol=socks5" -o proxies.txtПриклади коду: Python, Node.js, PHP
Наведений нижче приклад отримує список та надсилає запит через перший проксі. Для використання SOCKS5 у Python потрібен пакет requests[socks], а socks5h також виконує розв'язання доменних імен через проксі.
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";Коди помилок та ліміти запитів
Помилки повертаються у форматі { "error": { "code", "message" } } разом із HTTP статусом. Ліміт - 300 запитів на ключ за хвилину. При перевищенні повертається 429 на 1 хвилину. Списки змінюються лише при покупці або закінченні терміну, тому рекомендуємо завантажувати їх раз на кілька хвилин і використовувати локально.
Виклики API не сплачуються. Баланс зменшується лише при покупці тарифів у панелі керування.
| Статус | code | Значення |
|---|---|---|
| 401 | unauthorized | Якщо ключ відсутній або неправильний, або ви створили новий ключ, використовуйте новий ключ |
| 400 | bad_format | значення format відсутнє у списку |
| 404 | not_found | Invalid path |
| 429 | rate_limited | Понад 300 запитів на хвилину |