Отправьте первое сообщение через API
Как отправить сообщение через OMNI API Multi API — параметры, curl, ответ, статусы
Коротко: для отправки первого сообщения нужен POST-запрос на эндпоинт
/messagesс вашим API-ключом.
Кому подходит
- Роль: Разработчик
- Уровень: Новичок / Опытный
Что это
Подробная инструкция для разработчиков — как отправить первое сообщение через API Multi API.
Если нужен быстрый старт за 5 минут — см. Быстрый старт →.
Здесь разбираем:
- Структуру запроса.
- Все параметры OMNI API.
- Пример curl.
- Формат ответа.
- Способы получения статуса.
Что вы получите
Отправленное сообщение и статус доставки в EDR.
Перед началом
- Есть API-ключ.
- Есть имя отправителя со статусом Активно.
- Есть номер получателя.
Каналы для API-ключа определяются выбранными именами отправителей. Чтобы ключ мог отправлять по SMS — выберите имя для SMS. Чтобы по SMS и WhatsApp — выберите два имени.
Шаги
URL: https://web.multiapi.ru/api/v1/messages
Метод: POST
Заголовки:
| Заголовок | Значение |
|---|---|
Content-Type | application/json |
X-API-Key | Ваш API-ключ |
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
contact | string | Да | Номер получателя с кодом страны, без «+» |
channel | integer | Да | Номер канала |
senderId | string | Да | Имя отправителя со статусом Активно |
payload | object | Да | Содержимое сообщения. Формат зависит от канала |
contact указывается в международном формате, без знака +. Например, для России: 79123456789.
Пример curl для SMS:
curl --location 'https://web.multiapi.ru/api/v1/messages' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"contact": "79123456789",
"channel": 1,
"senderId": "<senderID>",
"payload": {
"text": "Привет! Это тестовое сообщение."
}
}'Замените три значения на свои:
<ваш-ключ>— на API-ключ из раздела API Подключения.79123456789— на номер получателя.<senderID>— на имя отправителя со статусом Активно.
channel: 1 — это SMS. Для другого канала укажите его номер — см. таблицу каналов ниже.
Успешный ответ приходит с кодом 202 Accepted и объектом data:
{
"error": false,
"data": {
"channel": 1,
"transactionId": "95e3e0da-9684-4ba4-88a3-e9207ddeca05",
"messageId": "6719b5f4-36af-4fba-b111-49ff07f4f96b"
}
}Поля ответа:
| Поле | Что означает |
|---|---|
channel | Номер канала |
transactionId | ID транзакции |
messageId | ID сообщения — по нему можно отслеживать статус |
Ответ 202 Accepted означает, что запрос принят и сообщение поставлено в очередь на отправку. Это не означает, что сообщение доставлено — статус доставки придёт асинхронно.
Статус отправленного сообщения можно получить двумя способами.
Способ 1. В личном кабинете:
- Откройте Статистика → Записи сообщений (EDR).
- Найдите сообщение по
messageId. - Проверьте статус: Доставлено или Отправлено.
Способ 2. В своей программе:
- Push (вебхук) — платформа сама отправляет статус на ваш URL.
- Pull (запрос к API) — вы запрашиваете статусы через
GET /edrs.
Оба способа получения статусов — push и pull — подробно описаны в статье Статусы сообщений →.
Если сообщение содержит OTP — добавьте параметр isOtp: true. Содержимое будет скрыто в EDR как маска ******.
Номера каналов
| Номер | Канал | Через API |
|---|---|---|
| 1 | SMS | ✅ |
| 2 | RCS | ✅ |
| 3 | Viber | ✅ |
| 4 | ✅ | |
| 5 | VK/OK | ✅ |
| 6 | ✅ | |
| 7 | ✅ | |
| 8 | Telegram Gateway | ✅ |
| 9 | Telegram bot | ✅ |
| 10 | Push | ✅ |
| 11 | TTS | ✅ |
| 12 | Voice | ❌ недоступен через API |
| 13 | Mobile Push | ✅ |
| 14 | FlashCall | ✅ |
Не все каналы доступны для каждой компании. Полный список — через GET /channels. Форматы payload для каждого канала — в статье Форматы payload →.
Лимит: на один канал — не более 5 одновременных запросов на отправку. При превышении API возвращает 429 Too Many Requests.
Результат
Сообщение отправлено, получен messageId для отслеживания статуса.
Частые проблемы
Причина: неверный или отсутствующий API-ключ.
Решение: проверьте заголовок X-API-Key и ключ. Подробнее — Ошибка 401 →.
Причина: неверные параметры запроса.
Решение: проверьте тело запроса — обязательные поля: contact, channel, senderId, payload. Подробнее — Обработка ошибок API →.
Причина: в запросе указано имя отправителя, которое не привязано к этому ключу.
Решение: откройте ключ в разделе API Подключения и добавьте нужное имя отправителя в блок Имена отправителей.
Причина: номер телефона недоступен, или имя отправителя неактивно.
Решение: проверьте номер телефона и статус отправителя.
Причина: превышен лимит в 5 одновременных запросов на один канал.
Решение: уменьшите частоту запросов или используйте очередь.
Причина: не указан webhook URL, или ваш сервер недоступен извне.
Решение: укажите webhook в запросе, в настройках имени отправителя или в настройках API-ключа. Убедитесь, что ваш сервер отвечает кодом 200 OK.
См. также
Нужна помощь?
- Multi API: support@multiapi.ru