Аутентификация
Все endpoint требуют Bearer-токен в заголовке Authorization.
Как получить API-ключ
- Войдите в аккаунт Proxnum и откройте страницу профиля
- Прокрутите до раздела «Управление API-ключами»
- Нажмите «Создать API-ключ»
- Скопируйте отображённый токен
Включайте API-токен в каждый запрос:
Authorization: Bearer YOUR_API_TOKEN_HERE Accept: application/json Content-Type: application/json
Быстрые ссылки:
Общий формат ответа
Ошибки используют нормализованную структуру с полем code. Все ошибки следуют этому шаблону:
{
"success": false,
"code": "no_numbers",
"message": "No numbers available for the selected service and country"
}
Endpoints
GET /api/v1/resell/price?service=&country=
Получить базовую и продажную цену для сервиса и страны. Используйте для оценки стоимости перед заказом.
Параметры (query): service (string), country (int)
Пример запроса:
curl -s -X GET "https://proxnum.com/api/v1/resell/price?service=ig&country=6" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Успешный ответ:
{
"country": "6",
"service": "ig",
"base_price": 0.0334,
"sell_price": 0.1114892
}
GET /api/v1/prices
Полная ценовая информация по всем сервисам и странам. Возвращает базовые и реселлерские цены.
Параметры (query, необязательные):
serviceservice (string) — фильтр по коду сервиса (например ig, wa, tg)countrycountry (int) — фильтр по коду страны
Пример запроса (все цены):
curl -s -X GET "https://proxnum.com/api/v1/prices" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Пример запроса (фильтр по стране):
curl -s -X GET "https://proxnum.com/api/v1/prices?country=6" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Успешный ответ (фильтр по стране):
{
"success": true,
"prices": {
"6": {
"ig": {
"base_price": 0.0334,
"sell_price": 0.1114892,
"available": 245
},
"wa": {
"base_price": 0.0389,
"sell_price": 0.1298737,
"available": 189
},
"tg": {
"base_price": 0.0223,
"sell_price": 0.0744551,
"available": 521
},
"go": {
"base_price": 0.0278,
"sell_price": 0.0928206,
"available": 312
}
}
}
}
Примечание: Ответ — вложенный объект: первый уровень — коды стран, второй — коды сервисов. Каждый сервис содержит base_price, sell_price и available (или null).
POST /api/v1/resell/virtual/buy
Купить временный (виртуальный) номер. Попытка выделить номер и списать средства.
Тело (JSON): {"service":"ig","country":6}
Пример запроса:
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/buy" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"service":"ig","country":6}'
Успешный ответ (нормализованный):
{
"success": true,
"activation": {
"id": 737,
"phone": "62895406203932",
"activation_id": "4390520873",
"msg": "Waiting Sms",
"date_created": "2025-11-08 21:50:34",
"amount_paid": 0.111489,
"status": 1
}
}
Частые коды ошибок:
{
"success": false,
"code": "no_numbers",
"message": "No numbers available for this service in the selected country"
}
{
"success": false,
"code": "insufficient_balance",
"message": "Not enough balance to place the order"
}
GET /api/v1/resell/virtual/{id}/status
Проверить статус активации. {id} — строка activation id из покупки.
Пример запроса:
curl -s -X GET "https://proxnum.com/api/v1/resell/virtual/4390520873/status" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Успех (когда код доступен):
{
"success": true,
"status": "completed",
"code": "1234",
"activation": { "id": 737, "phone": "628...", "activation_id": "4390520873" }
}
POST /api/v1/resell/virtual/resend
Запросить повтор/реактивацию. Передайте activation id в теле запроса.
Тело: {"activation_id":"4390520873"}
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/resend" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"activation_id":"4390520873"}'
Ответ (принято):
{
"success": true,
"message": "Resend requested; new activation created",
"activation": { "id": 738, "activation_id": "4390520874", "phone": "628..." }
}
POST /api/v1/resell/virtual/cancel
Запросить отмену и возврат. Сервер проверяет возможность возврата.
Тело: {"activation_id":"4390520873"}
curl -s -X POST "https://proxnum.com/api/v1/resell/virtual/cancel" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"activation_id":"4390520873"}'
Принято:
{
"success": true,
"code": "cancel_accepted",
"message": "Cancellation accepted, refund processed"
}
Отклонено:
{
"success": false,
"code": "cancel_rejected",
"message": "Cancellation rejected — activation already completed or not refundable"
}
GET /api/v1/resell/activations
Список активаций пользователя (с пагинацией). Поддерживает page и per_page.
curl -s -X GET "https://proxnum.com/api/v1/resell/activations?page=1&per_page=25" \ -H "Authorization: Bearer $TOKEN" \ -H "Accept: application/json"
Примечания по реализации
- Операции списания идемпотентны по заказу; проверяйте поля order или transaction.
- Используйте endpoint price для пробного расчёта перед оплатой.
- Коды ошибок: no_numbers, insufficient_balance, service_unavailable, cancel_rejected.
- Обрабатывайте успешные и ошибочные ответы
- Реализуйте обработку сетевых таймаутов
- Кэшируйте списки стран и сервисов
- Используйте webhooks для обновлений в реальном времени