API протокол для работы с SMS-Activate
API - это протокол взаимодействия между вашим ПО и нашим сервером активаций.
API нужен для того, чтобы автоматизировать процесс получение смс сообщений на вашей стороне
Наше API полностью совместимо с сайтами конкурентов
Все запросы должны идти на https://api.sms-activate.ae/stubs/handler_api.php
POST или GET запросом.
Во всех запросах должен присутствовать API ключ в виде GET-параметра api_key
Скачать готовую реализацию протокола на php Скачать готовую реализацию протокола на PythonAPI Активаций
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$country * - страна номера смотрите таблицу
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):
** доступно для $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 - да.
ПАРАМЕТРЫ:
$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
}
}, ...
}
Запрос баланса с кэшбэк-счетом:
* возвращает баланс с учётом накопленного кэшбэка, если установлена галочка в настройках кэшбэк-счёта 'Тратить кэшбэк на активации'
ПАРАМЕТРЫ:
$api_key - ключ АПИ
ОТВЕТ:
ACCESS_BALANCE:'баланс на счету'
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
* возвращает всех операторов доступных по переданной стране, если страна не передана - вернет всех операторов доступных по каждой стране
ПАРАМЕТРЫ:
$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 - записи не найдены (например передана несуществующая страна)
ПАРАМЕТРЫ:
$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 - записи не найдены (нет активных активаций)
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис для заказа смотрите таблицу
$forward * - необходимо ли запросить номер с переадресацией
* необязательный параметр, принимает 0 (не выполнять , установлено по умолчанию), 1 (выполнять)
$maxPrice * - максимальная цена, за которую вы готовы купить номер по Free Price
* необязательный параметр, если он не указан, покупка пройдёт по обычной цене
$phoneException * - исключающие префиксы для номеров России. Указывать через запятую. Формат записи: код страны и от 3 до 6 цифр маски (например 7918, 7900111). По умолчанию берётся значение, заданное в профиле.
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **)
$activationType - тип активации: 0 - смс (по умолчанию), 1 - по номеру, 2 - по голосу
$language - язык парсинга (обязателен для активации по голосу) смотрите таблицу
$userId * - идентификатор пользователя для бана за плохую статистику активаций, при этом не затрагивается аккаунт самого реселлера.
* необязательное поле
** доступно для $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 - нет номеров
При попытке получить номер конкретного оператора, не действующего в выбранной стране или у которого не обслуживается выбранный сервис - вернется номер первого подходящего под параметры запроса оператора
Метод работает аналогично методу 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 - ордер уже создан
При получении 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 раз.
Включить данный функционал Вы можете в настройках профиля
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис для заказа смотрите таблицу
$forward * - необходимо ли запросить номер с переадресацией
* необязательный параметр, символы переадресации указываются через запятую, количество цифр переадресации должно совпадать с количеством передаваемых сервисов в параметре $service. Допустимо передавать только 1 сервис с переадресацией, например "0,1,0,0" - корректно, "0,1,1,0" - некорректно. Принимает 0 (не выполнять , установлено по умолчанию), 1 (выполнять)
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):
$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' - время на которое аккаунт заблокирован
ПАРАМЕТРЫ:
$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 не является числом.
ПАРАМЕТРЫ:
$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 - некорректное действие
ПАРАМЕТРЫ:
$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 - некорректное действие
ПАРАМЕТРЫ:
$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 - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - наименование сервиса
ОТВЕТ:
Формат ответа будет следующим:
[{
"country": 0,
"share": 50
, // (Покупки выбранного сервиса по стране в процентном отношении к общему количеству покупок у нас на сервисе)
"rate": 50
// (% успешных активаций среди общего количества по стране)
}]
ВОЗМОЖНЫЕ ОШИБКИ:
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - неверный API-ключ
WRONG_SERVICE - неверный сервис
BAD_ACTION - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id активации
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{"status":"2","phone":false}
ВОЗМОЖНЫЕ СТАТУСЫ:
2 - новая активация
3 - успешно закрыта
4 - отменена
5 - возвращена
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
INVALID_ACTIVATION_ID - неверный id активации
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - краткое наименование сервиса (необязательно, по умолчанию все сервисы) смотрите таблицу
$country - кодовое наименование страны (необязательно, по умолчанию все страны) смотрите таблицу
ОТВЕТ:
JSON - объект в формате
{"Страна":{"Сервис":{"cost":Стоимость,"count":Количество}}}
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - краткое наименование сервиса (необязательно, по умолчанию все сервисы) смотрите таблицу
ОТВЕТ:
JSON - объект в формате
{"Сервис":{"Страна":{"count":Количество,"price":"Цена"}}}
ПАРАМЕТРЫ:
$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- доступна.)
ПАРАМЕТРЫ:
$api_key- ключ API
$country *- ID страны. Если передали страну, возвращаем сервисы, у которых есть цена по выбранной стране
$lang *- язык на котором передавать `name`. Возможные значения: 'ru','en','es','cn'. По умолчанию будет 'en'
* необязательный параметр
ОТВЕТ:
JSON - объект в формате { "status": "success", "services": [ { "code": "aoo", "name": "Pegasus Airlines" } ] }
Получив первую смс для номеров с переадресацией можно докупить другие смежные сервисы такие как Юла, Яндекс, Авито, Любой другой
Стоимость дополнительного сервиса составляет всего 5р
ПАРАМЕТРЫ:
$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_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 - нет денег на счету
Вы можете узнать доступность номера для совершения дополнительной активации и получить её стоимость
ПАРАМЕТРЫ:
$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 - сим-карта офлайн
ОТВЕТ:
Формат ответа будет следующим:
{
"result": "OK"
}
STATUS_CANCEL - активация отменена
NO_CALL - не было звонка
PARSE_COUNT_EXCEED - лимит попыток парсинга (максимум 4)
ВОЗМОЖНЫЕ ОШИБКИ:
WRONG_ACTIVATION_ID - неверный id активации, её не существует или она неактивна
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
API АРЕНДЫ
ПАРАМЕТРЫ:
$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 - закончились номера для этой страны
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис на который необходимо получить номер
$time * - время аренды в часах (по умолчанию: 4 часа). Следующий доступный временной период 12 часов, далее 24 часа. При запросе аренды на сутки и более, необходимо передавать: 24, 48, 72 и т.д.
$operator * - сотовый оператор номера, можно указывать несколько через запятую (по умолчанию: Любой)
$country * - страна (по умолчанию: Россия)
$url * - ссылка для webhook (по умолчанию не учитывается)
$incomingCall * - если передано "true", получить номер с возможностью приема звонка
* необязательный параметр. Если не указано, то будет использован параметр по умолчанию.
ОТВЕТ:
Ответ сервиса будет в 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 - аккаунт заблокирован
ПАРАМЕТРЫ:
$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 - номер заблокирован, вам возвращены средства
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - ID аренды, полученный в ответе при заказе номера
$status - код для смены статуса (число)
Статус может быть принимать значения:
ОТВЕТ:
Ответ сервиса будет в 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 - ошибка сервера
👉Внимание! Данный метод отображает только последние 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 - ошибка сервера
ПАРАМЕТРЫ:
$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 - превышено максимальное доступное время
max - максимально доступное время
INVALID_PHONE - неверный ID аренды
RENT_DIE - аренду невозможно продлить, так как срок жизни номера истёк
NO_BALANCE - недостаточно средств
CHANNELS_LIMIT - аккаунт заблокирован
ПАРАМЕТРЫ:
$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 - превышено максимальное доступное время
max - максимально доступное время
CHANNELS_LIMIT - аккаунт заблокирован
API Партнёрский софт
ПАРАМЕТРЫ:
$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']) # Текст ошибки