Введение
Для активации работы с API Вам необходимо в личном кабинете в настройках пользователя заполнить api-key.
Примеры реализаций:
php: https://github.com/redsms/message-api-simple
Для разработчиков доступна swagger версия документации.
Вы можете использовать в запросах json или xml формат. Для этого необходимо указывать в заголовке Content-type application/xml или application/json.
Авторизация
Авторизация с использованием подписи запроса
В каждом запросе требующем авторизации, необходимо присылать поля login, ts и sig. (можно присылать как в заголовке так и в общих полях запроса)
Упрощенная авторизация
В каждом запросе требующем авторизации, необходимо присылать поля login, ts и secret. (можно присылать как в заголовке так и в общих полях запроса)
Авторизация в XML запросах
В каждом запросе требующем авторизации, необходимо присылать в заголовке поле secret содержащее md5 хеш от конкатенации тела запроса и api-key.
Ограничение доступа по IP адресам.
В настройках профиля, в поле "Разрешенные ip адреса для API запросов" укажите ваши адреса через запятую.
Общая информация
Баланс и статус
GET https://cp.redsms.ru/api/client/info
Параметры: нет
Пример:
{ "info": [ { "login": "username", "balance": 20, "active": true, "overdraft": 10000 } ] }
*: overdraft присутствует только если доступен
Методы работы с сообщениями
Получение списка сообщений
GET https://cp.redsms.ru/api/message
Параметры:
*: определяет, какая информация будет получена в ответе. Поля перечисляются через запятую и могут быть: to, from, country, operator, price, login, parts, ip, source, creater, sended.
В случае успешной обработки запроса в ответе будет массив
В items будет массив со следующими полями:
Получение информации по сообщению
GET https://cp.redsms.ru/api/message/{uuid}
Параметры:
В случае успешной обработки запроса в ответе будет массив item со следующими полями:
Создание сообщения
POST https://cp.redsms.ru/api/message
Параметры:
В поле to возможно передавать несколько номеров. Номера следует разделить символом, который можно
указать в поле phoneDelimeter (по умолчанию ",").
Для того, чтобы передать уникальный текст для каждого номера необходимо прислать пары номер-текст где текст
отделен от номера символом который можно
указать в поле textDelimeter (по умолчанию ":").
Максимально вы можете отправить 30000 сообщений одним запросом.
В поле route указывается маршрут (способ отправки, тип сообщения).
Можно указать несколько маршрутов, при этом будет произведена последовательная отправка.
Например:
Если указать viber,sms то будет отправлено сообщение в viber и только в случае не возможности доставить его произойдет отправка sms.
Если указать viber,hlr,sms то будет отправлено сообщение в viber, в случае не возможности доставить его произойдет отправка hlr, и в случае его доставки произойдет отпракв sms
Если какой-то маршрут не доступен для отправки, следующий срабатывает безусловно.
Если viber сообщение не было доставлено в течение установленного срока жизни, происходит возврат средств.
Параметры с префиксами sms.*, viber.* и vk.* в случае отсутствия берутся из одноименных полей без префиксов.
В случае успешной обработки запроса в ответе будет массив items и errors. В массиве items содержатся принятые в обработку сообщения, а в массиве errors сообщения об ошибке. Если в запросе есть хотя бы одно успешно обработанное сообщение, статус ответа будет 200
Пример:
{ "items": [ { "uuid": "ИДЕНТИФИКАТОР", "to": "НОМЕР ТЕЛЕФОНА" } ], "errors": [ { "to": "+1234567890", "message": "bad number rejected" } ], "count": 1, "success": true }
Callback для сообщений
Для того чтобы активировать callback на api сообщения, необходимо в настройках указать
API callback url. На данный адрес будет производиться POST запрос с информацией о
сообщении при её изменении.
(формат данных аналогичен ответу на запрос GET https://cp.redsms.ru/api/message/{uuid})
Параметр API callback fields определяет необходимые поля в ответе.(all - все поля)
Методы работы с базами контактов
Список баз контактов
GET https://cp.redsms.ru/api/contact-base
Параметры:
В случае успешной обработки запроса в ответе будет массив
В items будет массив со следующими полями:
mapping - массив с элементами вида [{"name": "phone", "type": "phone"}]. Список типов можно получить используя метод GET /api/directory
Просмотр базы контактов
GET https://cp.redsms.ru/api/contact-base/{id}
Параметры:
В случае успешной обработки запроса в ответе будет массив
Создание базы контактов
POST https://cp.redsms.ru/api/contact-base
Параметры:
В случае успешной обработки запроса в ответе будет массив
Изменение базы контактов
POST https://cp.redsms.ru/api/contact-base/{id}
Параметры:
В случае успешной обработки запроса в ответе будет массив
Удаление базы контактов
DELETE /api/contact-base/{id}
Параметры:
Пример успешного ответа:
{"success":"true"}
Методы работы с контактами (в базе контактов)
Список контактов в базе
GET https://cp.redsms.ru/api/contact-base/{baseId}/contact
Параметры:
В случае успешной обработки запроса в ответе будет массив
В items будет массив со следующими полями:
+ дополнительные поля указанные в mapping в текущей базеПросмотр контакта
GET https://cp.redsms.ru/api/contact-base/{baseId}/contact/{id}
Параметры:
В случае успешной обработки запроса в ответе будет массив
+ дополнительные поля указанные в mapping в текущей базеСоздание контакта
POST https://cp.redsms.ru/api/contact-base/{baseId}/contact
Параметры:
В случае успешной обработки запроса в ответе будет массив
+ дополнительные поля указанные в mapping в текущей базеИзменение контакта
POST https://cp.redsms.ru/api/contact-base/{baseId}/contact/{id}
Параметры:
В случае успешной обработки запроса в ответе будет массив
+ дополнительные поля указанные в mapping в текущей базеУдаление контакта
DELETE /api/contact-base/{baseId}/contact/{id}
Параметры:
Пример успешного ответа:
{"success":"true"}
Методы работы с именами отправителей
Получение списка имен отправителей
GET https://cp.redsms.ru/api/sender-name
Параметры:
В случае успешной обработки запроса в ответе будет массив
В items будет массив со следующими полями:
*: Значение статусов
Получение информации по имени отправителя
GET https://cp.redsms.ru/api/sender-name/{id}
Параметры:
В случае успешной обработки запроса в ответе будет массив
*: Значение статусов
Создание имени отправителя
POST https://cp.redsms.ru/api/sender-name
Параметры:
В случае успешной обработки запроса в ответе будет массив
Обновлять, удалять можно только имена находящиеся в с статусе draft (черновик)
Обновление уже добавленного имени отправителя
POST https://cp.redsms.ru/api/sender-name/{id}/update
Параметры:
В случае успешной обработки запроса в ответе будет массив
Удаление имени отправителя
DELETE /api/sender-name/{id}
Параметры:
Пример успешного ответа:
{"success":"true"}
Методы работы с Рассылками
Отправка рассылки
POST https://cp.redsms.ru/api/dispatch
Для отправки единичных сообщений используйте метод POST https://cp.redsms.ru/api/message
Параметры:
В случае успешной обработки запроса в ответе будет массив
В массиве item присутствуют следующие поля
* Статусы рассылок
В случае неуспешной обработки запроса в ответе будет
Примеры ответов:
Пример успешного ответа:{ "item": { "id": 1234, "name": "Рассылка по API", "status": "accept" }, "success": true }Пример неуспешного ответа:
{ "errors": { "from": "EMPTY_FROM" }, "success": false }
Список возможно ошибок при создании рассылки
Методы работы с файлами
Список файлов
GET https://cp.redsms.ru/api/storage
Параметры:
В случае успешной обработки запроса в ответе будет массив
В items будет массив со следующими полями:
Пример успешного ответа:{ "count": 2, "offset": 0, "total": 2, "items": [ { "id": 9546, "file_name": "59ef4512ceeab.png", "url": "https://disk.redsms.ru/files/1734/data/59ef4512ceeab.png", "original_name": "photo5.png", "mime": "image/png", "ext": "png", "host": "https://fs.redsms.ru/files", "created": 1701697897 }, { "id": 4199, "file_name": "59ef4510ceeab.png", "url": "https://disk.redsms.ru/files/1734/data/59ef4510ceeab.png", "original_name": "photo1.png", "mime": "image/png", "ext": "png", "host": "https://fs.redsms.ru/files", "created": 1701697897 } ] }
Получение информации по файлу
GET /api/storage/{id}
Параметры: Пример успешного ответа:{ "item": { "id": 16757, "file_name": "59ef42cbd5bab.php", "url": "https://disk.redsms.locale/files/1734/data/59ef42cbd5bab.php", "original_name": "TestApiCommand.php", "mime": "application/octet-stream", "ext": "php", "host": "https://disk.redsms.ru/files", "created": 1701697897 } }
Загрузка файлов
POST /api/storage
Параметры:
В случае успешной обработки запроса в ответе будет массив items со следующими полями:
Пример успешного ответа:
{ "items": [ { "id": 7145, "file_name": "59ef3510ceeab.png", "url": "https://disk.redsms.ru/files/1734/data/59ef3510ceeab.png", "original_name": "photo.png", "mime": "image/png", "ext": "png", "host": "https://fs.redsms.ru/files", "created": 1701697897 } ] }
Удаление файла
DELETE /api/storage/{id}
Параметры:
Пример успешного ответа:
{"success":"true"}