Справочные эндпоинты
Справочные эндпоинты OMNI API «Мой диалог» — каналы, отправители, баланс, шаблоны, Telegram Gateway
Коротко: кроме отправки сообщений, OMNI API предоставляет справочные методы — узнать доступные каналы, статус отправителей, баланс, шаблоны и работу Telegram Gateway.
Кому подходит
- Роль: Разработчик, Интегратор
- Уровень: Опытный
Что это
Справочные эндпоинты возвращают данные, которые нужны для настройки и проверки интеграции. Они не отправляют сообщения, а показывают текущее состояние вашего аккаунта.
| Метод | Эндпоинт | Для чего |
|---|---|---|
| GET | /channels | Список каналов, доступных компании |
| GET | /senders | Список имён отправителей |
| GET | /balance | Баланс договора |
| GET | /templates | Список шаблонов сообщений |
| GET | /wa_templates | Список шаблонов WhatsApp |
| POST | /messages/revoke | Отозвать верификационное сообщение Telegram Gateway |
| POST | /messages/verification | Проверить статус верификации Telegram Gateway |
Каналы, доступные компании
Эндпоинт: GET /channels
Возвращает список каналов, которые подключены у вашей компании. Не все каналы из общей таблицы могут быть доступны — этот метод покажет фактические.
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/channels' \
--header 'X-API-Key: <ваш-ключ>'
Успешный ответ 200 OK:
{
"error": false,
"data": [
{
"id": 1,
"type": "SMS",
"description": "Sms channel type"
},
{
"id": 2,
"type": "RCS",
"description": "Rcs channel type"
},
{
"id": 3,
"type": "VIBER",
"description": "Viber channel type"
},
{
"id": 4,
"type": "WHATSAPP",
"description": "Whatsapp channel type"
},
{
"id": 6,
"type": "WECHAT",
"description": "Wechat channel type"
},
{
"id": 7,
"type": "EMAIL",
"description": "Email channel type"
},
{
"id": 8,
"type": "TELEGRAM_GATEWAY",
"description": "Telegram Gateway"
},
{
"id": 10,
"type": "PUSH",
"description": "Push"
},
{
"id": 11,
"type": "TTS",
"description": "Text To Speech (TTS)"
},
{
"id": 14,
"type": "FLASH_CALL",
"description": "Flash call"
}
]
}
Поля ответа:
| Поле | Что означает |
|---|---|
| id | Номер канала (совпадает с номером в общем списке) |
| type | Техническое имя канала (SMS, WHATSAPP, TTS и т. д.) |
| description | Описание канала |
Если нужного канала нет в списке — его можно подключить. Обратитесь в поддержку Мой диалог: support@mydialogi.ru.
Имена отправителей
Эндпоинт: GET /senders
Возвращает список имён отправителей компании с их статусами и каналами.
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/senders' \
--header 'X-API-Key: <ваш-ключ>'
Успешный ответ 200 OK:
{
"data": [
{
"channel": 1,
"displayName": "SMS Sender",
"senderId": "1112223334",
"status": 2,
"vendorType": "transit_http_sms",
"webhookGuid": "8ed6b786-9701-4984-9c50-bc2c66b2ffed",
"webhookUrl": "https://test.site.com/webhook"
}
],
"error": false
}
Поля ответа:
| Поле | Что означает |
|---|---|
| channel | Номер канала, к которому привязано имя |
| displayName | Отображаемое имя |
| senderId | Технический идентификатор отправителя |
| status | Статус отправителя (см. таблицу ниже) |
| vendorType | Тип провайдера |
| webhookGuid | GUID вебхука |
| webhookUrl | URL вебхука для статусов |
Статусы отправителя:
| Код | Статус | Что означает |
|---|---|---|
| -1 | Blocked | Заблокировано |
| 0 | Draft | Черновик |
| 1 | In tests | На тестировании |
| 2 | Active | Активно |
Когда использовать:
- Проверить, что имя отправителя имеет статус
2(Active) перед отправкой. - Узнать, к какому каналу привязано имя.
- Проверить, что новое имя уже одобрено.
Баланс договора
Эндпоинт: GET /balance
Возвращает баланс по всем договорам компании. У одной компании может быть несколько договоров — каждый со своим балансом.
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/balance' \
--header 'X-API-Key: <ваш-ключ>'
Успешный ответ 200 OK:
[
{
"agreementId": 0,
"amount": 0,
"balanceId": 0,
"currency": "string",
"name": "string"
}
]
Поля ответа:
| Поле | Что означает |
|---|---|
| agreementId | ID договора |
| amount | Сумма баланса |
| balanceId | ID баланса |
| currency | Валюта баланса |
| name | Название договора |
Этот эндпоинт возвращает массив, а не объект с error и data. Каждый элемент массива — баланс отдельного договора.
Когда использовать:
- Перед массовой рассылкой — убедиться, что баланса достаточно.
- В мониторинге — проверять баланс автоматически.
- При интеграции с биллингом — синхронизировать данные.
Шаблоны сообщений
Эндпоинт: GET /templates
Возвращает список шаблонов сообщений компании.
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/templates' \
--header 'X-API-Key: <ваш-ключ>'
Успешный ответ 200 OK:
{
"data": [
{
"channel": 4,
"company_id": 1,
"content": "{\"suggestionsInside\":[],\"cards\":[],\"selectedType\":\"whatsAppText\",\"preview_url\":true,\"text\":{\"body\":\"_test_\"}}",
"created_at": "2025-01-23T18:31:35.587814Z",
"created_by": "string",
"id": 1,
"message": "{text: {body: \"_test_\"}, type: \"text\", preview_url: true, recipient_type: \"individual\"}",
"name": "wa_test",
"updated_at": "2025-01-23T18:31:35.587823Z",
"updated_by": "string"
}
],
"error": false,
"size": 135
}
Поля ответа:
| Поле | Что означает |
|---|---|
| id | ID шаблона — используется в template.id при отправке |
| channel | Номер канала |
| company_id | ID компании |
| name | Название шаблона |
| content | Содержимое в виде JSON-строки |
| message | Содержимое в упрощённом виде |
| created_at, updated_at | Даты создания и обновления |
| created_by, updated_by | Кто создал и обновил |
| size | Общее количество шаблонов |
Когда использовать:
- Получить ID шаблона для отправки через
template.id. - Проверить, что шаблон создан.
- Синхронизировать шаблоны между своей системой и платформой.
Шаблоны WhatsApp
Эндпоинт: GET /wa_templates
Возвращает список шаблонов WhatsApp со статусами одобрения.
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/wa_templates' \
--header 'X-API-Key: <ваш-ключ>'
Успешный ответ 200 OK:
{
"data": [
{
"category": "MARKETING",
"content": "[{\"text\": \"1\", \"type\": \"BODY\"}]",
"created_at": "2025-01-23T18:31:35.587823Z",
"description": "my_favorite_template",
"id": 1,
"language": "en",
"language_name_en": "English",
"last_synced_at": "2025-01-23T18:31:35.587823Z",
"rejection_reason": "custom_reason",
"sender_display_name": "MySender",
"sender_id": "test_sender",
"status": "APPROVED",
"status_updated_at": "2025-01-23T18:31:35.587814Z",
"template_name": "test_template",
"updated_at": "2025-01-23T18:31:35.587823Z"
}
],
"error": false,
"size": 135
}
Поля ответа:
| Поле | Что означает |
|---|---|
| id | ID шаблона |
| template_name | Имя шаблона |
| category | Категория: MARKETING, UTILITY, AUTHENTICATION |
| language | Код языка |
| language_name_en | Название языка на английском |
| sender_id | ID отправителя |
| sender_display_name | Отображаемое имя отправителя |
| status | Статус одобрения |
| rejection_reason | Причина отклонения (если есть) |
| content | Содержимое в виде JSON-строки |
| description | Описание |
| last_synced_at | Когда последний раз синхронизировался с Meta |
| status_updated_at | Когда изменился статус |
| size | Общее количество шаблонов |
Когда использовать:
- Проверить статус одобрения шаблона в WhatsApp.
- Найти ID шаблона для отправки через
template.id. - Узнать причину отклонения.
Telegram Gateway: отзыв сообщения
Эндпоинт: POST /messages/revoke
Отзывает ранее отправленное верификационное сообщение Telegram Gateway. Например, если пользователь запросил новый код — старый нужно отозвать, чтобы он не сработал.
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| messageId | string | Да | ID сообщения, которое нужно отозвать |
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/messages/revoke' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"messageId": "019372a1-d252-7908-9216-028bd36c7af1"
}'
Успешный ответ 200 OK:
{
"error": "string",
"message_id": "019372a1-d252-7908-9216-028bd36c7af1",
"success": true
}
Поля ответа:
| Поле | Что означает |
|---|---|
| success | true — сообщение отозвано |
| message_id | ID отозванного сообщения |
| error | Описание ошибки, если есть |
Когда использовать:
- Пользователь запросил повторную отправку кода.
- Отправка устарела или была ошибочной.
Telegram Gateway: проверка статуса
Эндпоинт: POST /messages/verification
Проверяет статус доставки и верификации в Telegram Gateway.
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| messageId | string | Да | ID сообщения |
| code | string | Да | Код, который нужно проверить |
Пример запроса:
curl --location 'https://web.mydialogi.ru/api/v1/messages/verification' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"messageId": "019372a1-d252-7908-9216-028bd36c7af1",
"code": "1234"
}'
Успешный ответ 200 OK:
{
"delivery_status": "read",
"error": "string",
"message_id": "019372a1-d252-7908-9216-028bd36c7af1",
"success": true,
"verification_status": "code_valid"
}
Поля ответа:
| Поле | Что означает |
|---|---|
| success | true — запрос обработан |
| message_id | ID сообщения |
| delivery_status | Статус доставки (например, read) |
| verification_status | Статус проверки кода (например, code_valid) |
| error | Описание ошибки, если есть |
Когда использовать:
- Узнать, верифицирован ли пользователь.
- Проверить, что код дошёл до получателя.
- Диагностировать проблему, если код не пришёл.
Коды ответов
| Код | Когда возвращается |
|---|---|
| 200 OK | Запрос обработан успешно |
| 400 Bad Request | Неверный запрос |
| 401 Unauthorized | Неверный или отсутствующий API-ключ |
| 404 Not Found | Ресурс не найден |
| 500 Internal Server Error | Внутренняя ошибка на стороне платформы |
Все ошибки возвращают единый формат: {"error": true, "data": {"message": "...", "requestId": "..."}}. Подробнее: Обработка ошибок API.
Исключение — GET /balance: для него документирован только код 500 Internal Server Error. Если баланс не получен — обратитесь в поддержку сервиса.
Лимиты
На один канал действует ограничение — не более 5 одновременных запросов на отправку.
Сообщения становятся в очередь и отправляются асинхронно. Отправка и получение статуса не зависят друг от друга.
Если нужно больше — лимит увеличивается до фактического потребления по запросу в поддержку сервиса.
При превышении лимита API возвращает код 429 Too Many Requests.
Частые проблемы
Причина: заголовок X-API-Key не передан или ключ неверный.
Решение: проверьте заголовок. Подробнее: Ошибка 401.
Причина: у ключа нет нужного scope.
Решение: откройте ключ в разделе API Подключения и добавьте нужный scope.
Причина: превышен лимит одновременных запросов на канал.
Решение: дождитесь обработки очереди. Если лимит критично низкий — обратитесь в поддержку сервиса.
См. также
Нужна помощь?
- Мой диалог: support@mydialogi.ru