+38 063 233 33 57 +38 092 111 11 11

SMS API HTTP

Головна I SMS API HTTP

Відправка повідомлень

Чтобы начать работу с нашим сервисом по HTTP API, сделайте следующее:

1. Пополните ваш баланс, если он на нуле;
2. Создайте новый API-ключ. Вы можете иметь до 5 ключей, создавая и удаляя их по вашему усмотрению в любое время;
3. Укажите IP (один, несколько, или диапазон), с которого будут приходить сообщения.

Адрес HTTP API:

http://api.sms.beeway.com.ua/message/send/

Параметры:

username – обязательный.
api_key – обязательный.
from – обязательный, адрес отправителя. Mожет состоять из максимум 11 английских букв и цифр (допускаются также символы “._- “), или из максимум 15 цифр.
to – обязательный, номер телефона получателя, в международном формате, без “+”. Mожно указать несколько номеров, разделенных запятой (“,”), им придут одинаковые сообщения.
message – обязательный, текст сообщения, utf-8 url-encoded. Длинный текст будет разбит на несколько смс (максимум 4 части), цена сообщения возрастёт пропорционально количеству частей.
priority – доп. параметр, задаёт приоритет сообщения при постановке в очередь и передаче внешним смс-центрам. integer от 0 (обычный приоритет) до 3 (наивысший), по умолчанию 0.
system_type – доп. параметр, строка из английских букв или цифр, до 8 символов длиной, позволяет логически группировать сообщения в статистике.
deferred – доп. параметр, отложенная отправка сообщения, указывается дата и время когда нужно отправить сообщение (формат: ГГГГ-ММ-ДД ЧЧ:ММ).

Пример запроса:

curl “http://api.sms.beeway.com.ua/message/send/?username=foo&api_key=bar&from=test&to=7123456789&message=Test+123

Пример ответа:

{“reply”: [{“status”: “OK”, “cost”: “0.123456”, “country”: “ru”, “mccmnc”: “250XX”, “number”: “7123456789”, “parts”: 1, “message_id”: “3c32257b-e0b8-4be9-b0e6-e871116b4bdf”}]}

Ответ сервера (JSON):

Значения полей по всему запросу:

{‘reply’:[{‘status’: ‘error: wrong username/api_key’}]} – ошибка авторизации (введен неправильный логин или API Key).
{‘reply’:[{‘status’: ‘error: wrong api key’}]} – API-ключ не подходит.
{‘reply’:[{‘status’: ‘error: bruteforcing detected’}]} – было обнаружено слишком много неавторизованных запросов, данный IP будет заблокирован на 5 минут.
{‘reply’:[{‘status’: ‘error: ip not allowed’}]} – попытка отправки с незарегистрированного IP.
{‘reply’:[{‘status’: “error: can’t send message”}]} – отсутствуют параметры “message” или “to”, отправка невозможна.
{‘reply’: [{‘status’: ‘error: message is too long’}]} – длина сообщения превышает разрешенное кол-во частей смс (4)
{‘reply’:[{‘status’: “error: sender addr is banned”}]} – имя отправителя заблокировано как спам. За разъяснениями обратитесь в техническую поддержку.
{‘reply’:[{‘status’: ‘error: wrong sender addr’}]} – параметр “from” превышает 15 цифр или 11 букво-цифр.

Значения полей по каждому номеру в запросе:

{“reply”: [{“number”: “7123456789”, “status”: “error: number is blacklisted”}]} – номер телефона получателя был внесён в чёрный список. За разъяснениями обратитесь в техническую поддержку.
{“reply”: [{‘number’: ‘7123456789’, ‘status’: “error: repeat detected”}]} – обнаружено и заблокировано повторное сообщение на один и тот же номер в течении 1 минуты.
{‘reply’:[{‘number’:’7123456789′, ‘status’:”error: can’t determine country”}]} – невозможно определить страну.
{‘reply’:[{‘number’:’7123456789′, ‘status’:”error: no route to country”}]} – данная страна не прописана в таблице роутинга на вашем аккаунте, следует обратиться к менеджеру.
{‘reply’:[{‘number’:’7123456789′, ‘status’:”error: route can’t handle the message”}]} – причина может быть в отсутствии поддержки некоторых цифровых подписей (шорткодов) в параметре “from” некоторыми смс-провайдерами, или в отсутствии поддержки определенного оператора по некоторым странам.
{‘reply’:[{‘number’:’7123456789′, ‘status’:”error: low balance”, ‘parts’:1, ‘cost’:’0.04′}]} – недостаточно средств для отправки сообщения.

Ответ сервера при успешной постановке сообщения в очередь:

{“reply”: [{“status”: “OK”, “cost”: “0.186440”, “country”: “ru”, “mccmnc”: “250XX”, “number”: “7123456789”, “parts”: 1, “message_id”: “3c32257b-e0b8-4be9-b0e6-e871116b4bdf”}]} – смс была успешно отправлена!

Значения полей:

status – статус отправки, “OK” означает, что сообщение было корректно обработано и поставлено в очередь на отправку внешнему смс-провайдеру.
parts – количество смс, на которые было разбито сообщение.
cost – стоимость смс в на данный номер (учитывая parts).
number – номер, для которого передается статус. если номеров несколько, то для каждого будет свой хэш “{}” внутри списка “reply”.
message_id – id сообщения, присвоенный системой. будет передаваться в асинхронных вызовах обработчика статусов.
country – двухбуквенный код страны, см Список кодов по ISO 3166
mccmnc – код оператора, см. Mobile Country Code

Асинхронная передача статуса сообщений

При необходимости, система может совершать GET или POST запросы на некий URL, записанный в вашем профиле. В запросах будут передаваться статусы сообщений, по мере их доставки абонентам.


Наш запрос передает следующие параметры:

msgid – ID, которое наша система присвоила сообщению при отправке. Например, f3e76f4e-d4e3-424b-b26b-c0ebc72892cd
status – статус доставки. Может иметь значения:
delivrd – сообщение доставлено.
unknown , rejectd , expired , undeliv , deleted – сообщение не доставлено.
dlr_timestamp – время прибытия статуса в систему от внешнего смс-центра, в часовом поясе UTC.

Синхронная проверка статуса сообщения
URL (GET или POST запрос):

http://api.sms.beeway.com.ua/message/status/

Параметры:

  • username – обязательный
  • api_key – обязательный.
  • requests – обязательный, один или несколько msg_ids, разделенных запятыми.
  • timeformat – опциональный, urlencoded. Задаёт форматирование для даты. Используются символы из таблицы форматирования даты языка Python. Если параметр не задан, дата не передаётся в ответе сервера.
    Например, timeformat=%d/%m/%Y %H:%M:%S выдаст дату в виде 17/02/2013 19:08:29

timezone – опциональный, urlencoded. Задаёт часовой пояс даты, см список часовых поясов. Если параметр не задан, то будет использован часовой пояс из вашего профиля.

Пример запроса:

curl “http://api.sms.beeway.com.ua/message/status/?username=foo&api_key=bar&requests=3c32257b-e0b8-4be9-b0e6-e871116b4bdf&timezone=UTC&timeformat=%25d-%25m-%25Y%20%25H:%25M:%25ST%25z”

Пример ответа:

{“3c32257b-e0b8-4be9-b0e6-e871116b4bdf”: {“date”: “17-02-2013 12:08:29T+0000”, “status”: “rejectd”}}

Проверка баланса
URL (GET или POST запрос):

Параметры:

  • username – обязательный.

api_key – обязательный.

Пример запроса:

curl “http://api.sms.beeway.com.ua/balance/?username=foo&api_key=bar”

Пример ответа:

{“balance”: “-0.42”}

Возвращает баланс аккаунта, в .


Проверка кредита
URL (GET или POST запрос):

http://api.sms.beeway.com.ua/credit/

Параметры:
username – обязательный.
api_key – обязательный.

Пример запроса:

curl “http://api.sms.beeway.com.ua/credit/?username=foo&api_key=bar”

Пример ответа:

{“credit”: “1.23”}

Возвращает кредит аккаунта, в .

Тарифы
URL (GET или POST запрос):

http://api.sms.beeway.com.ua/rates/

Параметры:
username – обязательный.
api_key – обязательный.

Пример запроса:

curl “http://api.sms.beeway.com.ua/rates/?username=foo&api_key=bar”

Ответ сервера (JSON):

Значения полей по всему запросу:

{‘message’: ‘Invalid auth’, ‘error’: true} – ошибка авторизации (введен неправильный логин или API Key).
{‘message’: ‘bruteforcing detected’, ‘error’: true} – было обнаружено слишком много неавторизованных запросов, данный IP будет заблокирован на 5 минут.
{‘message’: ‘ip not allowed’, ‘error’: true} – попытка отправки с незарегистрированного IP.

Ответ сервера при успешном запросе:

{“user”: {“sms”: {“ru”: {“01”: [0.123456, 0], “”: [0.234567, 0]}}}}

Значения полей:

{
    "user": {                   # логин/username
        "sms": {                # канал
            "ru": {             # двухбуквенный ISO код страны
                "01": [         # MNC оператора
                    0.123456,   # стоимость за 1 смс
                    0           # 0: плата снимается за все смс, 1: плата снимается только за доставленные
                ],
                "": [           # пустой ключ - все операторы
                    0.123456,
                    0
                ]
            }
        }
    }
}

 Список шаблонов текста

ОписаниеHTTP запрос для получения списка шаблонов текста
Адресhttp://api.sms.beeway.com.ua/template/list/
http://api.sms.beeway.com.ua/template/sms/list/
http://api.sms.beeway.com.ua/template/viber/list/
МетодGET
Параметрыusername | обязательный | Логин в нашей системе
api_key | обязательный | API-ключ в нашей системе
Пример запросаcurl http://api.sms.beeway.com.ua/template/list/?username=foo&api_key=bar
Пример ответа{
    “template_list”: {
        “items”: [
            {
                “id”: 1,  // integer
                “name”: “Some name”,  // text
                “text”: “some text”,  // text
                “channel”: “sms”,  // text
            }, …
        ],
        “paging”: {
            “count”: 220,  // всего найденных записей
            “page”: 1,  // текущая страница
            “pages”: 3,  // всего страниц
            “per_page”: 100,  // количество записей на странице
            “has_next”: true,  // есть ли следующая страница
            “has_previous”: false,  // есть ли предыдущая страница
        },
        “filter”: {
            “channel”: “”,  // фильтрация по каналу
        }
    }
}

Статистика сообщений

ОписаниеHTTP запрос для получения списка сообщений с детальной информацией
Адресhttp://api.sms.beeway.com.ua/message/sms/list/
http://api.sms.beeway.com.ua/message/viber/list/
МетодGET
ПараметрыПараметр | Описание |
username | обязательный | Логин в нашей системе
api_key | обязательный | API-ключ в нашей системе
msg_id | необязательный | ID сообщения
number | необязательный | Номер получателя
sender | необязательный | Адрес отправителя
country | необязательный | Страна получателя
mccmnc | необязательный | MCCMNC получателя
job | необязательный | Рассылка (если сообщение было отправлено с Личного кабинета)
status | необязательный | Статус доставки сообщения.
Допустимые значения: “delivered”, “pending”, “accepted”, “undelivered”,
“rejected”, “acceptd”, “rejectd”, “delivrd”, “undeliv”, “expired”, “deleted”, “unknown”.
date_time_from | необязательный | Дата и время, с которого начать отбор сообщений
date_time_to | необязательный | Дата и время, на котором закончить отбор сообщений
Пример запросаcurl http://api.sms.beeway.com.ua/message/sms/list/?username=foo&api_key=bar
Пример ответа{
    “message_list”: {
        “items”: [
            {
                “msg_id”: 1,  // uuid4
                “number”: “7123456789”,  // text – номер получателя
                “sender”: “SomeSender”,  // text – адрес отправителя
                “text”: “some text”,  // text – текст сообщения
                “country”: “Russia”,  // text
                “mccmnc”: “255XX”,  // text
                “status”: “delivrd”,  // text – статус сообщения
                “date_sent”: “2000-01-01 12:34:56”,  // text – дата отправки
                “date_dlr”: “2000-01-01 12:35:00”,  // text – дата получения статуса
                “price”: “0.123456”,  // text – цена
                “currency”: “EUR”,  // text – валюта
            }, …
        ],
        “paging”: {
            “count”: 220,  // всего найденных записей
            “page”: 1,  // текущая страница
            “pages”: 3,  // всего страниц
            “per_page”: 100,  // количество записей на странице
            “has_next”: true,  // есть ли следующая страница
            “has_previous”: false,  // есть ли предыдущая страница
        },
        “filter”: {
            “msg_id”: “”,  // поиск по ID сообщения
            “number”: “”,  // фильтрация по номеру получателя
            “sender”: “”,  // фильтрация по адресу отправителя
            “country”: “”,  // фильтрация по стране
            “mccmnc”: “”,  // фильтрация по MCCMNC
            “job”: “”,  // фильтрация по рассылке
            “status”: “”,  // фильтрация по статусу
            “date_time_from”: “”,  // фильтрация начиная с даты и времени
            “date_time_to”: “”,  // фильтрация до даты и времени
        }
    }
}
ОписаниеHTTP запрос для получения отчета по сообщениям
Адресhttp://api.sms.beeway.com.ua/report/sms/
http://api.sms.beeway.com.ua/report/viber/
МетодGET
ПараметрыПараметр | Описание |
username | обязательный | Логин в нашей системе
api_key | обязательный | API-ключ в нашей системе
date_from | обязательный | Дата начала отчета.
Формат: YYYY-MM-DD.
date_to | обязательный | Дата конца отчета.
Формат: YYYY-MM-DD.
country | необязательный | Страна получателя
status | необязательный | Статус доставки сообщения.
Допустимые значения: “delivered”, “failed”.
order_by | необязательный | Сортировка результатов.
Допустимые значения: “asc”, “desc”. По умолчанию: “asc”.
group_by_date | необязательный | Группировка по дате.
Допустимые значения: “day”, “month”, “year”. По умолчанию: “month”.
group_by_fields | необязательный | Группировка по полям.
Допустимые значения: “country”, “mccmnc”, “status”.
Возможно использовать все значения, пример: 
group_by_fields=country&group_by_fields=mccmnc
Пример запросаcurl http://api.sms.beeway.com.ua/report/sms/list/?username=foo&api_key=bar
Пример ответа{
    “report”: {
        “items”: [
            {
                “date”: “2000-01-01”,  // date (format: YYYY-MM-DD)
                “parts”: 1,  // text – количество частей сообщений
                “price”: 0.123456,  // text – цена
                “currency”: “EUR”,  // text – валюта
            }, …
        ],
        “total”: {
            “parts”: 100,  // int – общее количество частей сообщений
            “price”: 12.3456,  // float – общая цена
            “currency”: “EUR”,  // text – валюта
        },
        “paging”: {
            “count”: 220,  // всего найденных записей
            “page”: 1,  // текущая страница
            “pages”: 3,  // всего страниц
            “per_page”: 100,  // количество записей на странице
            “has_next”: true,  // есть ли следующая страница
            “has_previous”: false,  // есть ли предыдущая страница
        },
        “filter”: {
            “date_from”: “”,  // дата начала отчета
            “date_to”: “”,  // дата конца отчета
            “country”: “”,  // фильтрация по стране
            “status”: “”,  // фильтрация по статусу
            “order_by”: “”,  // сортировка результатов
            “group_by_date”: “”,  // группировка результатов
            “group_by_fields”: “”,  // группировка по полям
        }
    }
}

Expand your marketing potential!

Combine mailings with your CRM and CMS, scripts, payment services and online stores - build a single system of communication with customers and partners