Прямая совместимость

Совместимость со старым API

Если вы уже используете sms-activate.org или похожий сервис, перейдите на SMSBulk, изменив только базовый URL. Все эндпоинты, имена действий и форматы ответов остаются идентичными.

Переключение в одну строку

https://sms-activate.org/stubs/handler_api.php
https://smsbulk.net/stubs/handler_api.php

Существующие скрипты, бот-библиотеки и интеграции работают без изменений кода. ID стран соответствуют каноническому маппингу (TR=187, US=12, RU=0, и т.д.).

Авторизация

Как в SMS-Activate: передавайте API-ключ как query string параметр.

# Query string (sms-activate convention)
curl "https://smsbulk.net/stubs/handler_api.php?api_key=YOUR_KEY&action=getBalance"

# Response (plain text)
ACCESS_BALANCE:42.50

Справочник действий

Все 7 действий поддерживаются. Имена, параметры и форматы ответов идентичны SMS-Activate.

getBalance

Возвращает текущий баланс вашего кошелька в USD.

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getBalance
Ответ
ACCESS_BALANCE:42.50

getNumber

Резервирует виртуальный номер. Обязательно: код сервиса (wa/tg/ig/и т.д.) и страна (целочисленный ID, ISO или slug).

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getNumber&service=wa&country=187
Ответ
ACCESS_NUMBER:12345678:79991234567

getStatus

Опрашивает статус активации. Возвращает STATUS_WAIT_CODE, STATUS_OK:<code> или STATUS_CANCEL.

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getStatus&id=12345678
Ответ
STATUS_OK:123456

setStatus

Обновляет состояние активации. status=1 (SMS отправлено), 3 (запросить ещё), 6 (завершить), 8 (отменить).

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=setStatus&id=12345678&status=6
Ответ
ACCESS_ACTIVATION

getNumbersStatus

Возвращает количество в наличии по комбинации сервис-страна. JSON dict с ключами вида 'wa_187'.

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getNumbersStatus&country=187
Ответ
{"wa_187":1234,"tg_187":567}

getPrices

Возвращает цены и наличие для service+country комбинаций. Вложенный JSON по ID страны.

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getPrices&service=wa&country=187
Ответ
{"187":{"wa":{"cost":0.5,"count":1234}}}

getCountries

Возвращает канонический список поддерживаемых стран с ID SMS-Activate и кодами ISO.

Запрос
GET /stubs/handler_api.php?api_key=KEY&action=getCountries
Ответ
[{"id":187,"iso":"TR"},...]

Значения setStatus

Что делает каждый код статуса и какой ответ вы получите.

ЗначениеДействиеОтвет
1Сообщить об отправке SMS (no-op)ACCESS_READY
3Запросить ещё SMSACCESS_RETRY_GET
6Отметить активацию завершённойACCESS_ACTIVATION
8Отменить активациюACCESS_CANCEL

ID стран

Канонические ID SMS-Activate сохранены. Топ страны:

Turkey
ID: 187 · ISO: TR
Russia
ID: 0 · ISO: RU
USA
ID: 12 · ISO: US
United Kingdom
ID: 16 · ISO: GB
Germany
ID: 42 · ISO: DE
France
ID: 77 · ISO: FR
India
ID: 22 · ISO: IN
Brazil
ID: 72 · ISO: BR

Тройная поддержка форматов: Параметр country принимает целочисленный ID (187), ISO-код (TR) или slug (turkey).

Коды ошибок

Все ошибки возвращают plain text коды (text/plain). Никогда не переводятся — совместимость с бот-библиотеками.

КодЗначение
BAD_KEYНеверный или отсутствующий API-ключ
BAD_ACTIONПараметр action отсутствует или некорректен
BAD_SERVICEКод сервиса не распознан
BAD_COUNTRYПараметр country не распознан
BAD_STATUSНеверное значение status для setStatus
WRONG_ACTIONИмя действия не поддерживается
NO_BALANCEНедостаточный баланс кошелька
NO_NUMBERSНет доступных номеров для этой service+country
NO_ACTIVATIONID активации не найден или не ваш
RATE_LIMITEDПревышена дневная квота API — см. заголовок Retry-After
ERROR_SQLВнутренняя ошибка сервера
Совместимость с бот-библиотеками: Коды ошибок — стабильные идентификаторы, не переводятся. Существующие скрипты, сопоставляющие эти строки, работают без изменений.

Готовы к миграции?

Получите API-ключ и начните с одной curl-команды. Без SDK, без изменений кода.