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":237,"ok_0":31,"wa_0":248,"vi_0":43,"tg_0":189,"wb_0":150,"go_0":172,"av_0":79,"av_1":127,"fb_0":142}

Где до черточки - название сервиса, после обозначение нужно ли включать переадресацию. 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

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

* необязательный параметр, принимает  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' - время на которое аккаунт заблокирован

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

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=getPrices&service=$service&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

ОТВЕТЫ:

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

{"Страна":{"Сервис":{"cost":Стоимость,"count":Количество}}}

Получить актуальный кошелек пополнения для 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 сервера

                    <?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)
$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'];
                    
                        <--Скоро-->