Dimar FZC LLC
Flamingo Villas A-32-01-05-03 25314 United Arab Emirates, Ajman
+971585072431, https://smsactivate.s3.eu-central-1.amazonaws.com/assets/img/icons/logo/logo.svg, [email protected]

API протокол для работы с SMS-Activate

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

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

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

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

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

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

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

API Активаций

Запрос количества доступных номеров
https://api.sms-activate.ae/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, activ, altel

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

ОТВЕТ:

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

{"vk_0":76,"ok_0":139,"wa_0":90,"vi_0":223,"tg_0":158,"wb_0":106,"go_0":182,"av_0":244,"av_1":211,"fb_0":107}
Где до черточки - название сервиса, после обозначение нужно ли включать переадресацию. 0 - нет. 1 - да.

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

Запрос топ стран по сервису FreePrice
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getTopCountriesByService&service=$service&freePrice=$freePrice

ПАРАМЕТРЫ:

$api_key - ключ API

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

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

$freePrice * - необязательный параметр. Если передано true, количество и цена будут переданы в соответствии с Free Price

ОТВЕТ:

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

{ 0: { "country: 0, "count": 43575, "price": 15.00, "retail_price": 30.00 }, ... }

$freePrice = true:

{ 0: { "country: 0, "count": 43575, "price": 15.00, "retail_price": 30.00, "freePriceMap": { "15.00": 43242, "18.00": 333 } }, ... }
Запрос баланса
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getBalance

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

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

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

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТ:

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

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

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

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

Запрос доступных операторов
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getOperators&country=$country

* возвращает всех операторов доступных по переданной стране, если страна не передана - вернет всех операторов доступных по каждой стране

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$country - код страны

ОТВЕТ:

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

{"status":"success", "countryOperators": {
"Country1Code": ["operator1Name","operator2Name","operator3Name", ...],
"Country2Code": ["operator1Name","operator2Name","operator3Name", ...],
...
}}

Пример:

{"status":"success", "countryOperators": {
"0": ["beeline","megafon","mts", ...],
"1": ["life","mts","kyivstar","utel" ...],
...
}}

* внутри 'countryOperators' - ключом будет код страны

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

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

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

OPERATORS_NOT_FOUND - записи не найдены (например передана несуществующая страна)

Запрос активных активаций
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getActiveActivations

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТ:

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

{"status":"success", "activeActivations": [
{
"activationId" : "635468021",
"serviceCode" : "vk",
"phoneNumber" : "79********1",
"activationCost" : 12.50,
"activationStatus" : "4",
"smsCode" : ["CODE"],
"smsText" : "[Ваш код для регистрации CODE]",
"activationTime" : "2022-06-01 16:59:16",
"discount" : "0.00",
"repeated" : "0",
"countryCode" : "0",
"countryName" : "Russia",
"canGetAnotherSms" : "1",
"currency": 840 //ISO 4217 Num
}]

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

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

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

NO_ACTIVATIONS - записи не найдены (нет активных активаций)

Запрос номера FreePrice
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getNumber&service=$service&forward=$forward&operator=$operator&ref=$ref&country=$country&phoneException=$phoneException&maxPrice=maxPrice&useCashBack=$useCashBack&activationType=$activationType&language=$language&userId=$userId

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

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

$maxPrice * - максимальная цена, за которую вы готовы купить номер по Free Price

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

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

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

$activationType - тип активации: 0 - смс (по умолчанию), 1 - по номеру, 2 - по голосу

$language - язык парсинга (обязателен для активации по голосу) смотрите таблицу

$userId * - идентификатор пользователя для бана за плохую статистику активаций, при этом не затрагивается аккаунт самого реселлера.

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

* необязательное поле

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

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

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

$useCashBack* - принимает значение boolean, при параметре 'true' покупка номера будет происходить за кешбэк. После окончания денег на кешбэке все последующие покупки будут покупаться за баланс. ВАЖНО помнить, что все последующие покупки будут в первую очередь использовать кешбэк, а потом уже основной баланс (даже если после передать параметр 'false'.)

* необязательный параметр, принимает 'true'

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

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

WRONG_MAX_PRICE:$min - указанная максимальная цена меньше допустимой

$min - минимальная допустимая цена

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

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

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

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

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

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

NO_BALANCE_FORWARD - недостаточно средств для покупки переадресации

CHANNELS_LIMIT - аккаунт заблокирован

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

При попытке получить номер конкретного оператора, не действующего в выбранной стране или у которого не обслуживается выбранный сервис - вернется номер первого подходящего под параметры запроса оператора

Запрос номера V2 FreePrice
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getNumberV2&service=$service&forward=$forward&operator=$operator&ref=$ref&country=$country&phoneException=$phoneException&maxPrice=maxPrice&activationType=$activationType&language=$language&userId=$userId

Метод работает аналогично методу getNumber, принимает те же параметры и дополнительно описанные ниже, но возвращает дополнительную информацию об активации

ПАРАМЕТРЫ:

$orderId - id активации из системы реселлера. При покупке эти данные сопоставляются с id активации и реселлером в нашей системе. Таким образом хотим достичь идемпотентности (вновь один и тот же ордер не обработается).

ОТВЕТ:

При успешном запросе ответ будет в формате:

{
"activationId": 635468024,
"phoneNumber": "79584******",
"activationCost": 12.50,
"currency": 840, //ISO 4217 Num
"countryCode": "0",
"canGetAnotherSms": "1",
"activationTime": "2022-06-01 17:30:57",
"activationOperator": "mtt"
}

При попытке получить номер конкретного оператора, не действующего в выбранной стране или у которого не обслуживается выбранный сервис - вернется номер первого подходящего под параметры запроса оператора

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

ORDER_ALREADY_EXISTS - ордер уже создан

Webhooks

При получении SMS на номер, если у вас включен функционал Webhooks в настройках, мы отправим на указанные вами адреса информацию о SMS POST-запросом

ОТВЕТ:

Формат ответа будет следующим:

{
"activationId": 635468024,
"service": "go",
"text": "Your sms text",
"code": "Your sms code",
"country": 0,
"receivedAt": "2022-06-01 17:30:57",
}

При отправке запроса мы будем ждать от вашего скрипта ответ с HTTP-статусом 200. Если ваш скрипт не ответит, мы будем отправлять запрос в течение 2 часов, но не более 8 раз.

Включить данный функционал Вы можете в настройках профиля

Заказ номера для нескольких сервисов
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getMultiServiceNumber&multiService=$service&multiForward=$forward&operator=$operator&ref=$ref&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

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

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

Россия
megafon, mts, beeline, tele2, rostelecom, any
Украина
kyivstar, life, utel, mts, vodafone
Казахстан
tele2, beeline, activ, 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-ключ

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

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

Изменение статуса активации
https://api.sms-activate.ae/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 - активация отменена

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

EARLY_CANCEL_DENIED - нельзя отменить номер в первые 2 минуты

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

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

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

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

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

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

WRONG_ACTIVATION_ID - неверный ID или ID не является числом.

Получить состояние активации
https://api.sms-activate.ae/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 - некорректное действие

Получить состояние активации Version 2
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getStatusV2&id=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

ОТВЕТ:

Формат ответа будет следующим:

{
"verificationType": 2,
"sms": {
"dateTime": "0000-00-00 00:00:00",
"code": "code",
"text": "sms text",
},
"call": {
"from": "phone",
"text": "voice text",
"code": "12345",
"dateTime": "0000-00-00 00:00:00",
"url": "voice file url",
"parsingCount": 1,
}
}

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

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

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

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

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

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

Получить историю активаций
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getHistory&start=$start&end=$end&offset=$offset&limit=$limit

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$start - временная метка в формате Unix Timestamp (необязательно) - с какой даты брать активации

$end - временная метка в формате Unix Timestamp (необязательно) - по какую дату брать активации

$offset - смещение первого элемента, возвращаемого в ответе. По-умолчанию 0

$limit - максимальное количество возвращаемых записей. Максимум 100. По-умолчанию 50.

ОТВЕТ:

Формат ответа будет следующим:

[{
"id": 635468024,
"date": "2022-11-12 15:58:39",
"phone": "79918529716",
"sms": "sms":"["Your sms code"]",
"cost": 100 //Для активных cost = 0
"status": "4",
"currency": 840 //ISO 4217 Num
}]

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

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

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

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

Получить топ 10 стран по сервису
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getListOfTopCountriesByService&service=$service

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$service - наименование сервиса

ОТВЕТ:

Формат ответа будет следующим:

[{
"country": 0,
"share": 50, // (Покупки выбранного сервиса по стране в процентном отношении к общему количеству покупок у нас на сервисе)
"rate": 50 // (% успешных активаций среди общего количества по стране)
}]

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

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

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

WRONG_SERVICE - неверный сервис

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

Получить статус входящего звонка
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getIncomingCallStatus&activationId=$id

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

ОТВЕТ:

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

{"status":"2","phone":false}

ВОЗМОЖНЫЕ СТАТУСЫ:

2 - новая активация

3 - успешно закрыта

4 - отменена

5 - возвращена

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

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

INVALID_ACTIVATION_ID - неверный id активации

Получить актуальные цены по странам
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getPrices&service=$service&country=$country

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

ОТВЕТ:

JSON - объект в формате
{"Страна":{"Сервис":{"cost":Стоимость,"count":Количество}}}

Получить актуальные цены по сервисам для верификации
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getPricesVerification&service=$service

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

ОТВЕТ:

JSON - объект в формате
{"Сервис":{"Страна":{"count":Количество,"price":"Цена"}}}

Получить список всех стран
https://api.sms-activate.ae/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- доступна.)

Получить список всех сервисов
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getServicesList

ПАРАМЕТРЫ:

$api_key- ключ API

$country *- ID страны. Если передали страну, возвращаем сервисы, у которых есть цена по выбранной стране

$lang *- язык на котором передавать `name`. Возможные значения: 'ru','en','es','cn'. По умолчанию будет 'en'

* необязательный параметр

ОТВЕТ:

JSON - объект в формате { "status": "success", "services": [ { "code": "aoo", "name": "Pegasus Airlines" } ] }

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

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

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

https://api.sms-activate.ae/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 - ошибка базы данных, обратитесь в поддержку

Дополнительная активация номера

Если вы совершили успешную активацию на номере, то вы можете совершить её повторно.

Стоимость дополнительной активации определяется в зависимости от страны и сервиса. Конкретную стоимость можно получить по этому запросу.

https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getExtraActivation&activationId=$activationId

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

ОТВЕТ:

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

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

RENEW_ACTIVATION_NOT_AVAILABLE - номер недоступен для дополнительной активации

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

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

NEW_ACTIVATION_IMPOSSIBLE - совершить дополнительную активацию невозможно

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

Получить цену за дополнительную активацию номера

Вы можете узнать доступность номера для совершения дополнительной активации и получить её стоимость

https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=checkExtraActivation&activationId=$activationId

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

ОТВЕТ:

JSON - объект в формате {'status': 'success', 'cost':200,"service":"tw","phone":777777777,"country":14},

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

RENEW_ACTIVATION_NOT_AVAILABLE - номер недоступен для дополнительной активации

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

SIM_OFFLINE - сим-карта офлайн

Повторный парсинг голоса
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=parseCall&id=$id&newLang=$newLang

ПАРАМЕТРЫ:

$api_keyключ АПИ

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

$newLang - новый язык парсинга смотрите таблицу

ОТВЕТ:

Формат ответа будет следующим:

{
"result": "OK"
}

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

NO_CALL - не было звонка

PARSE_COUNT_EXCEED - лимит попыток парсинга (максимум 4)

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

WRONG_ACTIVATION_ID - неверный id активации, её не существует или она неактивна

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

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

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

API АРЕНДЫ

Запросить доступные страны и сервисы
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getRentServicesAndCountries&rent_time=$time&operator=$operator&country=$country&incomingCall=$incomingCall

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

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

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

$currency* - iso code валюты, в которой отобразить цены

$incomingCall * - если передано "true", получить номер с возможностью приема звонка

ОТВЕТ:

Ответ сервиса будет в 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 } }, "currency": 840 }

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

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

OUT_OF_STOCK - закончились номера для этой страны

Заказ номера для Аренды
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getRentNumber&service=$service&rent_time=$time&operator=$operator&country=$country&url=$url&incomingCall=$incomingCall

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

$time * - время аренды в часах (по умолчанию: 4 часа). Следующий доступный временной период 12 часов, далее 24 часа. При запросе аренды на сутки и более, необходимо передавать: 24, 48, 72 и т.д.

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

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

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

$incomingCall * - если передано "true", получить номер с возможностью приема звонка

Что такое 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 - аккаунт не активен

SERVER_ERROR - ошибка сервера

CHANNELS_LIMIT - аккаунт заблокирован

Получить статус для Аренды
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getRentStatus&id=$id&page=$page&size=$size

ПАРАМЕТРЫ:

$api_key - ключ АПИ

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

$page* - номер страницы, с которой начинается выборка (нумерация страниц ведётся с 0, от новых к старым; по умолчанию 0)

$size* - размер страницы (по умолчанию 10)

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

ОТВЕТ:

Ответ сервиса будет в 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 - ожидание первой смс

STATUS_REVOKE - номер заблокирован, вам возвращены средства

Изменение статуса для Аренды
https://api.sms-activate.ae/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 - аренда уже отменена

SERVER_ERROR - ошибка сервера

Вывести список текущих активаций
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getRentList

👉Внимание! Данный метод отображает только последние 10 номеров. Если вам необходимо большее количество, воспользуйтесь методом getRentStatus для проверки статусов.

ПАРАМЕТРЫ:

$api_key - ключ АПИ

ОТВЕТ:

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

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

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

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

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


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

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


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

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

SERVER_ERROR - ошибка сервера

Продлить аренду
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=continueRentNumber&id=$id&rent_time=$time

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id аренды

$rent_time - время аренды (по умолчанию: 4 часа)

ОТВЕТ:

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

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

При продлении завершённой аренды она будет перезаказана, будет передан новый id

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

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

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

SERVER_ERROR - ошибка сервера


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

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


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

NO_ID_RENT - отсутствует ID аренды

INVALID_TIME - неверное время. Доступное количество часов от 4 до 1344

MAX_HOURS_EXCEED - превышено максимальное доступное время

info:

max - максимально доступное время

INVALID_PHONE - неверный ID аренды

RENT_DIE - аренду невозможно продлить, так как срок жизни номера истёк

NO_BALANCE - недостаточно средств

CHANNELS_LIMIT - аккаунт заблокирован

Получить стоимость продления аренды
https://api.sms-activate.ae/stubs/handler_api.php?api_key=$api_key&action=getContinueRentPriceNumber&id=$id&rent_time=$time

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - id аренды

$rent_time - время аренды

$currency* - iso code валюты, в которой отобразить цену

ОТВЕТ:

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

{ "status": "success", "price": 6.33, "currency": 840 }

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

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

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

SERVER_ERROR - ошибка сервера


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

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


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

NO_ID_RENT - отсутствует ID аренды

INVALID_PHONE - неверный ID аренды

INVALID_TIME - неверно заданное время

RENT_DIE - аренду невозможно продлить, так как срок жизни номера истёк

MAX_HOURS_EXCEED - превышено максимальное доступное время

info:

max - максимально доступное время

CHANNELS_LIMIT - аккаунт заблокирован

API Партнёрский софт

Купить партнерский софт
https://api.sms-activate.ae/stubs/handler_api.php?action=buyPartnerProduct&productId=$id&api_key=$api_key

ПАРАМЕТРЫ:

$api_key - ключ АПИ

$id - Id софта, который необходимо купить

ОТВЕТ:

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

{                            
                            "status": "success",
                            "key": "F5qrzFoY6afj3zrEq7SeMplbx",
                            "manual": "Ссылка на загрузку софта:"                            
                        }

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

BAD_DATA - неверный ID или ID не является числом

BAD_ACTION - неверный action или реселлер не верифицирован.

                        <?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); //Отобразить все сервисы с количеством
$array=$activate->getTopCountriesByService(); //Получить массив, элементы которого содержат информацию по каждой стране $balance = $sms->getBalance();//Получить баланс echo "На счету " . $balance." $.\n";//Показать баланс
$balance = $sms->getBalanceAndCashBack();//Получить баланс с кэшбэком echo "На счету " . $balance." $.\n";//Показать баланс с кэшбэком
$operators = $sms->getOperators(); //Получить операторов для всех стран if (in_array('mts', $operators['countryOperators'][0])) { //проверить доступен ли 'mts' для России //выполнить действие } if (in_array('chinamobile', $operators['countryOperators'][3])) { //проверить доступен ли 'chinamobile' для Китая //выполнить действие } $activations = $sms->getActiveActivations(); $number = $sms->getNumber('ok',0, 0, 'tele2');//Получить номер Одноклассники без переадресации echo "Активация № " . $number['id']. "телефон ". $number['number'] \n";//Показать id и номер активации
$result = $sms->getNumber('vk', 0 , 1); if (!is_array($result)) { echo 'Ошибка: ' . $result . '\n';//В случае ошибки вернется строка, в случае успеха - массив } else { echo 'Id: ' . $result['id'] ."\n"; echo 'Номер: ' . $result['number'] ."\n"; }
$result = $sms->getNumberV2('vk', 0 , 1); $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 код) $status = $sms->getStatus($number['id']);//Получить статус активации по id if (is_array($status) { echo "статус : " . $status['status'];//Может быть STATUS_OK или STATUS_WAIT_RETRY, в противном случае вернется строка с текстом ошибки echo "код: " . $status['code']; } else { echo $status ."\n"; } $incomingCall = $sms->getIncomingCallStatus($id);//Получить данные активации по звонку echo $incomingCall['phone'] //Показать входящий номер $prices = $sms->getPrices(1, 'vk');//Получить актуальную цену на сервис echo "Цена для Вк(Украина) : " .$prices[1]['vk']['cost']."$ количество: ". $prices[1]['vk']['count'];//Показать результат $countries = $sms->getCountries();//Получить список всех стран $additional = $sms->getAdditionalService('fx', $id);//Получить дополнительную активацию для сервиса PGbonus на основе активации id echo "Активация №: " . $additional[id] . " Телефон: " . $additional[number];//Показать результат $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']; $result = $sms->continueRentNumber($id);//Продлить аренду активации id на 4 часа (по умолчанию) if ($result['status'] == 'success') { echo "Номер: " . $result['phone']['number']"//Вывести номер echo "id: " . $result['phone']['id']"//Вывести id активации echo "Аренда действует до: " . $result['phone']['endDate']"//Вывести дату и время окончания аренды } else { echo "Код ошибки : " . $result['msg']; } $result = $sms->getContinueRentPriceNumber($id, 12);//Получить стоимость продления аренды для активации id на 12 часов if ($result['status'] == 'success') { echo " Стоимость продления: " . $result['price'];//Вывести стоимость } else { echo "Код ошибки: " . $result['message']; //Вывести код ошибки }
                    
                        from smsactivate.api import SMSActivateAPI
                         # SMSActivateAPI Содержит все основные инструменты для работы с API SMSActivate
                        sa = SMSActivateAPI(API_KEY)
sa.debug_mode = True # Используется для отладки. При активном debug_mode все ответы от сервера и класса будут выводиться в консоль print(sa.version()) # Возвращает текущую версию библиотеки status = sa.getNumbersStatus(country=0, operator='tele2') try: print(status['vk_0']) # 274789 except: print(status['message']) # Текст ошибки
result = sa.getTopCountriesByService('vk') try: print(result[0]['count']) # 2350 except: print(result['message']) # Текст ошибки balance = sa.getBalance() # {'balance': '100.00'} try: print(balance['balance']) # 100.00 except: print(balance['message']) # Текст ошибки
balance = sa.getBalanceAndCashBack() # {'balance': '100.00'} try: print(balance['balance']) # 100.00 except: print(balance['message']) # Текст ошибки
operators = sa.getOperators(country=0) try: print(operators['countryOperators']['0']) except: print(operators['error']) # Статус ошибки activations = sa.getActiveActivations() try: print(activations['activeActivations']) except: print(activations['error']) # Статус ошибки number = sa.getNumber(service='vk', operator='tele2', country=0, verification="true") # {'activation_id': 000000000, 'phone': 79999999999} try: print(number['phone']) # 79999999999 except: print(number['message']) # Текст ошибки number = sa.getNumberV2(service='vk', country=0) try: print(number['phoneNumber']) # 79999999999 except: print(number['message']) # Текст ошибки multinumber = sa.getMultiServiceNumber(service='fb,ig', operator='tele2', country=0) # [{'phone': '79999999999', 'activation': 000000000, 'service': 'fb'}, {'phone': '79999999999', 'activation': 000000001, 'service': 'ig'}] try: print(multinumber[0]['phone']) # 79999999999 except: print(multinumber['message']) # Текст ошибки status = sa.setStatus(id=000000000, status=1) # ACCESS_READY try: print(status) # ACCESS_READY except: print(status['message']) # Текст ошибки status = sa.getStatus(id=000000000) # STATUS_WAIT_CODE try: print(sa.activationStatus(status)) # {'status': 'STATUS_WAIT_CODE', 'message': 'Ожидание смс'} except: print(status['message']) # Текст ошибки status = sa.getIncomingCallStatus(id=000000000) try: print(status['status']) # 2 except: print(status['message']) # Текст ошибки prices = sa.getPrices(service='fb', country=0) try: print(prices['0']) # {'fb': {'cost': 9, 'count': 27934}} except: print(prices['message']) # Текст ошибки countries = sa.getCountries() try: print(countries['0']['eng']) # Russia except: print(countries['message']) # Текст ошибки service = sa.getAdditionalService(id=000000000, service='ig') try: print(service['phone']) # 79999999999 except: print(service['message']) # Текст ошибки service = sa.getRentServicesAndCountries(time=4, operator='tele2', country=0) try: print(service['services']['full']['cost']) # 100.00 except: print(service['message']) # Текст ошибки rent = sa.getRentNumber(service='ig', time=4, operator='tele2', country=0) try: print(rent['phone']['number']) # 79999999999 except: print(rent['message']) # Текст ошибки status = sa.getRentStatus(000000000) try: print(status['values']['0']['text']) # SMS except: print(status['message']) # Текст ошибки status = sa.setRentStatus(id=000000000, status=1) try: print(status['status']) # success except: print(status['message']) # Текст ошибки rent = sa.getRentList() try: print(rent['values']['0']['phone']) # 79999999999 except: print(rent['message']) # Текст ошибки rent = sa.continueRentNumber(id=000000000, time=4) try: print(rent['phone']['number']) # 79999999999 except: print(rent['message']) # Текст ошибки rent = sa.getContinueRentPriceNumber(000000000) try: print(status['price']) # 4.00 except: print(status['message']) # Текст ошибки

{{ texts.verificationVoiceTextFirst }}

{{ texts.verificationVoiceTextSecond }}

{{ texts.verificationVoiceTextThird }}