API - это протокол взаимодействия между вашим ПО и нашим сервером активаций.

API нужен для того, чтобы автоматизировать процесс получение смс сообщений на вашей стороне

Наше API полностью совместимо с сайтами конкурентов

Все запросы должны идти на https://sms-activate.ru/stubs/handler_api.php

POST или GET запросом.

Во всех запросах должен присутствовать API ключ в виде параметра api_key

Скачать готовую реализацию протокола на php

API Активаций

Запрос количества доступных номеров

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getNumbersStatus&country=$country&operator=$operator

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$country * - страна номера смотрите таблицу

* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.

$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):

Россияmegafon, mts, beeline, tele2, rostelecom, any
Украинаkyivstar, life, utel, mts, vodafone
Казахстанtele2, beeline, aktiv, altel

* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.

** доступно для $country = 0, $country = 1, $country = 2

ОТВЕТ:

Ответ сервиса будет в json формате. Пример:

{"vk_0":43,"ok_0":252,"wa_0":17,"vi_0":133,"tg_0":162,"wb_0":115,"go_0":114,"av_0":29,"av_1":212,"fb_0":10}

Где до черточки - название сервиса, после обозначение нужно ли включать переадресацию. 0 - нет. 1 - да.

Полный список сервисов

Запрос баланса

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getBalance

Запрос баланса вместе с кэшбэк-счетом:

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getBalanceAndCashBack

* возвращает баланс с учётом накопленного кэшбэка, если установлена галочка в настройках кэшбэк-счёта  "Тратить кэшбэк на активации"

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТ:

ACCESS_BALANCE:'баланс на счету'

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

ERROR_SQL - ошибка SQL-сервера

Заказ номера

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getNumber&service=$service&forward=$forward&operator=$operator&ref=$ref&country=$country&phoneException=$phoneException

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - сервис для заказа смотрите таблицу

$forward * - необходимо ли запросить номер с переадресацией

$phoneException * - исключающие префиксы для номеров России. Указывать через запятую. Формат записи: код страны и от 3 до 6 цифр маски ( например 7918,7900111). По умолчанию берётся значение, заданное в левом меню.

* необязательный параметр, принимает  0(не выполнять , установлено по умолчанию),  1(выполнять)

$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):

Россияmegafon, mts, beeline,tele2,any
Украинаkyivstar,life,utel,mts,vodafone
Казахстанtele2,beeline,aktiv,altel

* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.

** доступно для $country = 0, $country = 1, $country = 2

$ref - передать реферальный идентификатор. Подробнее

$country - страна номера смотрите таблицу

Получая номер через API вы подтверждаете согласие с правилами проекта

ОТВЕТЫ:

NO_NUMBERS - нет номеров

NO_BALANCE - закончился баланс

ACCESS_NUMBER:$id:$number , где ($id - id операции,$number - номер телефона)

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_ACTION - некорректное действие

BAD_SERVICE - некорректное наименование сервиса

BAD_KEY - неверный API-ключ

ERROR_SQL - ошибка SQL-сервера

BANNED:'YYYY-m-d H-i-s' - время на которое аккаунт заблокирован

WRONG_EXCEPTION_PHONE - некорректные исключающие префиксы

Заказ номера для нескольких сервисов

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getMultiServiceNumber&multiService=$service&multiForward=$forward&operator=$operator&ref=$ref&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - сервисы для заказа. Указывать через запятую, например "vk,ok,vi,av" смотрите таблицу

$forward * - необходимо ли запросить номер с переадресацией

* необязательный параметр, символы переадресации указываются через запятую, количество цифр переадресации должно совпадать с количеством передаваемых сервисов в параметре $service Допустимо передавать только 1 сервис с переадресацией, например "0,1,0,0" - корректно, "0,1,1,0" - некорректно. Принимает 0(не выполнять , установлено по умолчанию),  1(выполнять)

$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):

Россияmegafon, mts, beeline,tele2,any
Украинаkyivstar,life,utel,mts,vodafone
Казахстанtele2,beeline,aktiv,altel

* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.

$ref - передать реферальный идентификатор. Подробнее

$country - страна номера смотрите таблицу

Получая номер через API вы подтверждаете согласие с правилами проекта

ОТВЕТЫ:

NO_NUMBERS - нет номеров

NO_BALANCE - закончился баланс

{{'phone':phone,'activation':activation,'service':service},{'phone':phone,'activation':activation,'service':service}}, где (phone - id операции,activation - номер телефона,service - сервис)

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_ACTION - некорректное действие

BAD_SERVICE - некорректное наименование сервиса

BAD_KEY - неверный API-ключ

BAD_FORWARD - некорректно указана переадресация

NOT_AVAILABLE - для страны, которую вы используете, недоступна покупка мультисервисов

ERROR_SQL - ошибка SQL-сервера

BANNED:'YYYY-m-d H-i-s' - время на которое аккаунт заблокирован

Изменение статуса активации

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=setStatus&status=$status&id=$id&forward=$forward

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id активации

$forward * - номер телефона на который нужно выполнить переадресацию

* обязательно, только если при getNumber был передан параметр forward=1.

$status - статус активации

1сообщить о готовности номера (смс на номер отправлено)
3запросить еще один код (бесплатно)
6завершить активацию *
8сообщить о том, что номер использован и отменить активацию

* если был статус 'код получен' - помечает успешно и завершает, если был 'подготовка' - удаляет и помечает ошибка, если был статус 'ожидает повтора' - переводит активацию в ожидание смс.

Простая логика хронологии работы с апи:

Получить номер используя метод getNumber
после этого доступны следующие действия:
8 - Отменить активацию (если номер вам не подошел)
1 - Сообщить, что SMS отправлена (необязательно)
Для активации со статусом 1:
8 - Отменить активацию
Сразу после получения кода:
3 - Запросить еще одну смс
6 - Подтвердить SMS-код и завершить активацию
Для активации со статусом 3:
6 - Подтвердить SMS-код и завершить активацию

ОТВЕТЫ:

ACCESS_READY - готовность номера подтверждена

ACCESS_RETRY_GET - ожидание нового смс

ACCESS_ACTIVATION - сервис успешно активирован

ACCESS_CANCEL - активация отменена

ВОЗМОЖНЫЕ ОШИБКИ:

ERROR_SQL - ошибка SQL-сервера

NO_ACTIVATION - id активации не существует

BAD_SERVICE - некорректное наименование сервиса

BAD_STATUS - некорректный статус

BAD_KEY - неверный API-ключ

BAD_ACTION - некорректное действие

Получить состояние активации

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getStatus&id=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id активации

ОТВЕТЫ:

STATUS_WAIT_CODE - ожидание смс

STATUS_WAIT_RETRY:'прошлый, неподошедший код' - ожидание уточнения кода

STATUS_WAIT_RESEND - ожидание повторной отправки смс *

* софт должен нажать повторно выслать смс и выполнить изменение статуса на  6

STATUS_CANCEL - активация отменена

STATUS_OK:'код активации' - код получен

ВОЗМОЖНЫЕ ОШИБКИ:

NO_ACTIVATION - id активации не существует

ERROR_SQL - ошибка SQL-сервера

BAD_KEY - неверный API-ключ

BAD_ACTION - некорректное действие

Получить полный текст смс

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getFullSms&id=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id активации

ОТВЕТЫ:

STATUS_WAIT_CODE - ожидание смс

STATUS_CANCEL - активация отменена

FULL_SMS:полный текст получен

ВОЗМОЖНЫЕ ОШИБКИ:

NO_ACTIVATION - id активации не существует

ERROR_SQL - ошибка SQL-сервера

BAD_KEY - неверный API-ключ

BAD_ACTION - некорректное действие

Получить актуальные цены по странам

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getPrices&service=$service&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - краткое наименование сервиса (необязательно, по умолчанию все сервисы) смотрите таблицу

$country - кодовое наименование страны (необязательно, по умолчанию все страны) смотрите таблицу

ОТВЕТЫ:

JSON - объект в формате

{"Страна":{"Сервис":{"cost":Стоимость,"count":Количество}},"retry":Повторный приём смс}

Получить список всех стран

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getCountries

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТЫ:

JSON - объект в формате

{{'Страна':{'id':0,'rus':"Россия","eng:"Russia","chn":"俄罗斯","visible":1,"retry":1,"rent":1,"multiService":1}},
где (
id: id страны;
rus : наименование страны на русском;
eng : наименование страны на английском;
chn : наименование страны на китайском;
visible: 0 - страна не отображается на сайте, 1 - отображается;
retry: 0 - повторная смс НЕ доступна, 1 - доступна;
rent: 0-страны нет в аренде, 1 - есть в аренде;
multiService: 0-страна НЕ доступна для мультисервиса, 1- доступна.)

Получить актуальный кошелек пополнения для Qiwi

Вы можете интегрировать данный метод со своим платежным API для киви кошелька и пополнять счет на сайте полностью автоматически

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getQiwiRequisites

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТЫ:

JSON - объект в формате

{"status":"статус","wallet":"НОМЕР КОШЕЛЬКА ДЛЯ ОПЛАТЫ","upToDate":"ДАТА ДО КОТОРОЙ РЕКВИЗИТЫ АКТУАЛЬНЫ","comment":"КОММЕНТАРИЙ УКАЗЫВАЕМЫЙ ПРИ ОПЛАТЕ"}

ВНИМАНИЕ! Реквизиты иногда меняются и действуют только до даты в upToDate, для обновления реквизитов запросите еще раз.

Статус может быть принимать значения:

successоплату можно проводить
falseприем платежей киви невозможен

Дополнительный сервис для номеров с переадресацией

Получив первую смс для номеров с переадресацией можно докупить другие смежные сервисы такие как Юла, Яндекс, Авито, Любой другой

Стоимость дополнительного сервиса составляет всего 5р

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getAdditionalService&service=$service&id=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - краткое наименование сервиса смотрите таблицу

$id - ID родительской активации

ОТВЕТЫ:

ADDITIONAL:$id:$phone - Успешно создалась новая активация. Где ID - ID дополнительной активации, phone - номер телефона

ВОЗМОЖНЫЕ ОШИБКИ:

WRONG_ADDITIONAL_SERVICE - Неверный дополнительный сервис (допустимы только сервисы для переадресации)

WRONG_ACTIVATION_ID - Неверный ID родительской активации

WRONG_SECURITY - Ошибка при попытке передать ID активации без переадресации, или же завершенной/не активной активации

REPEAT_ADDITIONAL_SERVICE - Ошибка возникает при попытке заказать купленный сервис еще раз

NO_BALANCE - Не хватает средств

ERROR_SQL - Ошибка базы данных, обратитесь в поддержку

API Аренды

Запросить доступные страны и сервисы

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getRentServicesAndCountries&rent_time=$time&operator=$operator&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$time * - время аренды

* необязательный параметр. Если не указано, то по умолчанию будет 1 час.

$operator * - сотовый оператор номера, можно указывать несколько через запятую

$country * - страна (По умолчанию: Россия)

* необязательный параметр. Если не указано, то по умолчанию будет любой.

ОТВЕТ:

Ответ сервиса будет в json формате. Пример:

{ "countries": { "0": 0 }, "operators": { "0": "aiva", "1": "any", "2": "beeline", ... "16": "yota" }, "services": { "full": { "cost": 42.93, "quant": 20 }, "vk": { "cost": 21.95, "quant": 20 }, "ok": { "cost": 7.68, "quant": 55 }, "ot": { "cost": 5.2, "quant": 42 } } }

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

Заказ номера для Аренды

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getRentNumber&service=$service&rent_time=$time&operator=$operator&country=$country&url=$url

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - сервис на который необходимо получить номер

$time * - время аренды (По умолчанию: 1 час)

$operator * - сотовый оператор номера, можно указывать несколько через запятую (По умолчанию: Любой)

$country * - страна (По умолчанию: Россия)

$url * - ссылка для webhook (По умолчанию не учитывается)Что такое webHook?

* необязательный параметр. Если не указано, то будет использован параметр по умолчанию.

ОТВЕТ:

Ответ сервиса будет в json формате. Пример:

{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564" } }

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

Ответ в json формате:

{ "status": "error", "message": "*possible_answer*" }

Возможные ответы в поле "message":

BAD_SERVICE - сервис не указан или название неверно

NO_BALANCE - нет денег на счету

NO_NUMBERS - свободных номеров нет

ACCOUNT_INACTIVE - свободных номеров нет

SQL_ERROR - ошибка sql сервера

Получить статус для Аренды

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getRentStatus&id=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id аренды, полученный в ответе при заказе номера

ОТВЕТ:

Ответ сервиса будет в json формате* :

{ "status": "success", "quantity": "2", "values": { "0": { "phoneFrom": "79180230628", "text": "5", "service": "ot", "date": "2020-01-30 14:31:58" }, "1": { "phoneFrom": "79180230628", "text": "4", "service": "ot", "date": "2020-01-30 14:04:16" } } }

* успешно только в случае, когда есть смс ( поле 'quantity' > 0).

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

Ответ в json формате:

{ "status": "error", "message": "*possible_answer*" }

Возможные ответы в поле "message":

NO_ID_RENT - не указан id Аренды

INVALID_PHONE - номер арендован не вами (неправильный id аренды)

STATUS_FINISH - аренда оплачна и завершена

STATUS_CANCEL - аренда отменена с возвратом денег

STATUS_WAIT_CODE - ожидание первой смс

Изменение статуса для Аренды

https://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=setRentStatus&id=$id&status=$status

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id аренды, полученный в ответе при заказе номера

$status - код для смены статуса (число)

Статус может быть принимать значения:

1Финиш
2Отмена

ОТВЕТ:

Ответ сервиса будет в json формате:

{ "status": "success" }

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

Ответ в json формате:

{ "status": "error", "message": "*possible_answer*" }

Возможные ответы в поле "message":

NO_ID_RENT - не указан id Аренды

INCORECT_STATUS - отсутствует или неправильно указан статус

CANT_CANCEL - невозможно отменить аренду (более 20 мин.)

INVALID_PHONE - номер арендован не вами (неправильный id аренды)

ALREADY_FINISH - аренда уже завершена

ALREADY_CANCEL - аренда уже отменена

SQL_ERROR - ошибка sql сервера

Вывести список текущих активаций

http://sms-activate.ru/stubs/handler_api.php?api_key=$api_key&action=getRentList

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТ:

Ответ сервиса будет в json формате:

{ "status": "success", "values": { "0": { "id": "123456", "phone": "79181234567" }, "1": { "id": "123457", "phone": "79181234568" } } }

ВОЗМОЖНЫЕ ОШИБКИ:

BAD_KEY - неверный API-ключ

BAD_ACTION - некорректное действие

Ответ в json формате:

{ "status": "error", "message": "*possible_answer*" }

Возможные ответы в поле "message":

NO_NUMBERS - арендованных номеров нет

SQL_ERROR - ошибка sql сервера

                    <?php
                    include_once ("smsactivateApi.php");//Включение класса в проект

                        $sms = new SMSActivate($API_KEY);//Создать экземпляр класса SMSActivate

$freeSlots = $sms->getNumbersStatus(0, 'tele2');//Получить количество доступных номеров для страны Россия и оператора теле2 echo "Номеров Вконтакте: " . $freeSlots['vk']."\n";//Показать для Vk
echo "Номеров Whatsapp: " . $freeSlots['wa']."\n";//Показать для Whatsapp
var_dump($freeSlots); //Отобразить все сервисы с количеством
$balance = $sms->getBalance();//Получить баланс echo "На счету " . $balance." руб." ."\n";//Показать баланс
$balance = $sms->getBalanceAndCashBack();//Получить баланс с кэшбэком echo "На счету " . $balance." руб." ."\n";//Показать баланс с кэшбэком
$number = $sms->getNumber('ok',0, 0, 'tele2');//Получить номер Одноклассники без переадресации echo "Активация № " . $number['id']. "телефон ". $number['number'] \n";//Показать id и номер активации
try{ $newNumber = $sms->getNumber('vk',0, 1); echo $newNumber['number'] ."\n"; } catch (Exception $e) { echo $e->getResponseCode() ."\n"; }//Отловить код ошибки (например NO_BALANCE)
$number = $sms->getMultiServiceNumber('ok,vk,vi,av','0,0,0,1', 0, 'tele2');//Получить номер для сервисов Одноклассники, Вконтакте, Viber без переадресации и Авито с переадресацией foreach ($number as $value) { echo "Активация № " . $value['activation']. " для сервиса ". $value['service'] ."\n"; }
echo "Номер " . $value['phone'] ."\n";//Показать id активаций и номер
$status = $sms->setStatus($number['id'], 3);//Изменить статус активации по id (получить ещё 1 код) try{ $status = $sms->getStatus($number['id']);//Получить статус активации по id if ($status['status'] === 'STATUS_OK' && $status['code']) echo "Ваш код: " .$status['code']; } catch (Exception $e) { echo $e->getResponseCode() ."\n"; }//Отловить код ошибки $prices = $sms->getPrices(1, 'vk');//Получить актульную цену на сервис echo "Цена для Вк(Украина) : " .$prices[1]['vk']['cost']." руб. количество: ". $prices[1]['vk']['count'];//Показать результат $newQiwi = $sms->getQiwiRequisites();//Получить актуальный кошелек пополнения для Qiwi if ($newQiwi['status'] === 'success') echo "Номер кошелька " . $newQiwi['wallet']."\n";//Показать номер кошелька $getAvailableRentNumbers = $sms->getRentServicesAndCountries('2');//Запросить доступные для аренды страны и сервисы ( на 2 часа для всех операторов ) echo "Полная аренда - Стоимость:" . $getAvailableRentNumbers['services']['full']['cost'] . " Количество :" .$getAvailableRentNumbers['services']['full']['quant'] ." \n"; //Вывести информацию о полной стоимости
foreach( $getAvailableRentNumbers['operators'] as $value) { echo " Оператор " . $value ."\n"; }//Вывести список операторов
$getRentNumber = $sms->getRentNumber('vk','10','0','yota');//Получить номер для аренды для Вконтакте на 10 часов, опетатор 'Yota', страна - Россия if ($getRentNumber['status'] === 'success'){ echo "Аренда прошла успешно! Ваш номер: " . $getRentNumber['phone']['number']." \nДата окончания аренды : ". $getRentNumber['phone']['endDate']." \nId номера :" .$getRentNumber['phone']['id'] ; }//Вывести информацию об аренде
else echo "Код ошибки : " . $getRentNumber['message'];
$getRentStatus = $sms->getRentStatus($getRentNumber['phone']['id']);//Получить статус аренды с id от полученного номера if ($getRentStatus['status'] == 'success'){ foreach( $getRentStatus['values']as $index => $value) { echo " Сообщение " . $index .": от номера - " . $value['phoneFrom'] . " сервис - " . $value ['service'] . "текст сообщения - " . $value['text'] . "дата - " . $value['date']; } }//вывести список сообщений полученных во время аренды номера else echo "Код ошибки : " . $getRentStatus['message']; $setRentStatus = $sms->setRentStatus($getRentNumber['phone']['id'],1);//Установить статус аренды 'финиш' с id от полученного номера if ($setRentStatus['status'] == 'success') echo " Изменение статуса прошло успешно! "; else echo "Код ошибки : " . $setRentStatus['message']; $getRentList = $sms->getRentList();//Получить список арендованных номеров на данный момент if (getRentList['status'] == 'success') foreach( $getRentList['values'] as $value) { echo " ID " . $value["id"] . " Номер " . $value["phone"] ."\n"; }//Вывести список номеров else echo "Код ошибки : " . $getRentList['message'];
                    
                        <--Скоро-->