Teletype Public API (1.3.3)

Скачать спецификацию OpenAPI:Скачать

Общая информация

Вы можете использовать данную документацию для ознакомления с методами API. Описание составлено в формате OpenAPI 3.0. Для генерации базового кода для работы с API на удобном для вас языке программирования воспользуйтесь утилитой Swagger Codegen или онлайн-сервисом Swagger Editor.

По всем вопросам работы с API обращайтесь к нам по email: p@teletype.app

Авторизация

Включите Public API в настройках проекта в панели Teletype и получите токен авторизации. У каждого проекта свой токен.

Передавайте токен проекта в заголовке X-Auth-Token либо query-параметре token. Достаточно одного способа; заголовок имеет приоритет. Public API должен быть включён и доступен по тарифу проекта.

Срок действия токена не ограничен. В настройках проекта можно сгенерировать новый токен; после этого старый перестанет действовать.

Формат запросов и ответов

Ответ API содержит success, data, errors и errorsType. Проверяйте success даже при HTTP 200: прикладные ошибки, включая авторизацию и лимиты, возвращаются в этом статусе. При ошибке data равен null. При успешном запросе errors — пустой массив, errorsType — null; data: false не равнозначен ошибке запроса. Неверный HTTP-метод отклоняется фильтром с HTTP 200 и errorsType: MethodNotAllowedException (код 405 внутри errors). Необработанное исключение при выполнении действия может вернуть HTTP 500 и errorsType: ServerException.

Идентификаторы в Public API — внешние строковые ключи. dialogId обозначает диалог, sessionId — отдельное обращение внутри него; после закрытия и нового обращения sessionId меняется.

Сообщения ошибок локализуются. До авторизации язык определяется заголовком Accept-Language (поддерживаются ru и en, по умолчанию en). После успешной авторизации по API-токену используется язык клиента — владельца проекта, если он задан. Например, сообщение ServerException на русском: «Ошибка сервера. Пожалуйста, повторите попытку позднее.». Для обработки ошибок ориентируйтесь на errorsType и errors[].code, а не на текст message.

Примеры используют условные идентификаторы. Подставьте свои значения и задайте TELETYPE_API_TOKEN в окружении.

Тела POST-запросов передавайте как форму в указанном для метода Content-Type. Вложенные значения формы используют скобки: values[field], active_webhooks[], template_params[text_variables][]. Ответы API возвращаются в JSON.

Ограничения запросов

Базовые лимиты запросов указаны в таблице. Чтобы увеличить их в 2 или 5 раз, обратитесь в поддержку Teletype. Опции ×2 и ×5 покупаются отдельно и подключаются для проекта.

В пробном периоде действуют базовые лимиты. Опции не повышают лимиты методов с пометкой «Не повышается». Если оплачены обе опции, применяется ×5.

Владелец проекта определяется по API-токену в запросе. Счётчик общий для всех его проектов. Для лимитов по паре «владелец проекта + канал» у каждого канала свой счётчик. Пути указаны без префикса /public/api/v1 и идентификаторов в URL.

МетодыБазовый×2×5На кого считается
client/details, client/dialog 2/сек 4/сек 10/сек Владелец проекта
dialog/details, dialog/sessions, dialog/seen, dialog/group-clients 3/сек 6/сек 15/сек Владелец проекта
session/view 3/сек 6/сек 15/сек Владелец проекта
project/balance, project/operators 1 за 2 сек 2 за 2 сек 5 за 2 сек Владелец проекта
dialog/create, channel/send-message 2/сек 4/сек 10/сек Владелец проекта + канал из channelId в POST
whatsapp-edna/send-template 2/сек 4/сек 10/сек Владелец проекта + канал диалога из dialogId в POST
messages 2/сек 4/сек 10/сек Владелец проекта¹
message/send 2/сек Не повышается Владелец проекта + канал диалога из dialogId в POST
message/delete, message/update 2/сек Не повышается Владелец проекта²
groups, group/view 3/сек 6/сек 15/сек Владелец проекта
group/add-member, group/remove-member 2/сек Не повышается Владелец проекта
group/set-supervisor 2/сек Не повышается Владелец проекта
group/set-channel-visibility 2/сек Не повышается Владелец проекта
group/add-channel, group/remove-channel 2/сек Не повышается Владелец проекта + канал из channelId в POST

Методы в одной строке используют общий лимит, в разных строках - отдельные счётчики. Например, один запрос client/details и один client/dialog расходуют базовый лимит 2/сек. Если лимит считается по каналу, он общий для всех диалогов этого канала.

¹ В GET-запросе messages параметр dialogId из URL не влияет на лимит: запросы к разным диалогам учитываются вместе.

² У message/delete и message/update лимит считается по владельцу проекта. Если в POST передан dialogId и диалог найден в текущем проекте, лимит считается по паре «владелец проекта + канал диалога». Идентификатор сообщения в URL на счётчик не влияет.

Там, где в таблице указан канал диалога, он определяется по dialogId из POST. Если диалог не найден в текущем проекте или dialogId не передан, лимит считается по владельцу проекта.

Превышение лимита

При превышении лимита API возвращает HTTP 200 с success: false, errorsType: "TooManyRequestsException" и кодом 429 в errors[].code. Проверяйте тело ответа: HTTP-статус остаётся 200 и при этой ошибке.

Повторите запрос после паузы. Частые повторные запросы могут продлевать ограничение.

При проверке лимита в ответ добавляются заголовки:

  • X-Rate-Limit-Limit - лимит запросов за интервал из таблицы с учётом опции ×2 или ×5.
  • X-Rate-Limit-Remaining - оставшееся количество запросов.
  • X-Rate-Limit-Reset - примерное количество секунд до полного восстановления лимита.

Проекты

Настройки проекта, баланс, тариф и операторы.

Получение информации о балансе проекта

Возвращает текущий баланс в копейках, дату, до которой хватит средств, остаток пробного периода и размер обещанного платежа.

Лимит: 1 запрос за 2 секунды на владельца проекта. С опцией ×2 - 2, с ×5 - 5 за 2 секунды. Общий для методов project/balance, project/operators. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/project/balance" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Список операторов проекта

Возвращает список операторов проекта без пагинации.

Лимит: 1 запрос за 2 секунды на владельца проекта. С опцией ×2 - 2, с ×5 - 5 за 2 секунды. Общий для методов project/balance, project/operators. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/project/operators" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Информация о статусе API

Возвращает идентификатор проекта, URL получателя, включённые события и общий счётчик ошибок вебхука.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/project/api-status" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Информация о проекте

Возвращает основные сведения о проекте: id, owner_id, name, domain, url и createdAt.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/project/details" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Информация о тарифе

Возвращает баланс, стоимость услуг, тарифные опции, пакеты и настройки автоплатежа текущего проекта. Денежные суммы указаны в копейках.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/project/tariff" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Настройки публичного API проекта

Заменяет URL получателя и набор активных вебхуков. Передавайте обе настройки: отсутствие api_webhook удаляет URL, отсутствие active_webhooks отключает все события.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: application/x-www-form-urlencoded
обязательно
active_webhooks[]
Массив элементов: strings
Допустимые элементы Допустимые значения: "close dialog" "new dialog" "open dialog" "message status change" "new note" "new message" "success send" "person change" "appeal rate" "messages templates updated" "session operator changed" "channel deleted" "channel status updated" "message deleted"

События для включения. Имя поля на уровне HTTP содержит PHP-скобки: повторяйте active_webhooks[] для каждого элемента. Без скобок PHP сохранит только последнее значение. Если поле отсутствует или пустое, все события отключаются.

api_webhook
string

URL получателя. Если поле отсутствует или пустое, текущий URL удаляется.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/project/update-public-api" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'active_webhooks[]=new message' \
  --data-urlencode 'active_webhooks[]=message status change' \
  --data-urlencode 'api_webhook=https://example.com/webhook'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Каналы

Методы API для работы с каналами

Получение списка каналов

Возвращает страницу полностью созданных каналов проекта, не помеченных к удалению, от новых к старым. По умолчанию выбираются только активные каналы; onlyActive=0 отключает этот фильтр. channelType фильтрует по типу; специальное значение phoneBased выбирает номерные WhatsApp и Telegram.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры строки запроса
page
integer
По умолчанию: 1

Номер страницы, начиная с 1. Значения меньше 1 приводятся к 1.

pageSize
integer
По умолчанию: 15

Размер страницы: от 1 до 100. По умолчанию 15; значения вне диапазона заменяются на 15.

channelType
string
Допустимые значения: "web_widget" "email" "telegram" "facebook" "whatsapp_chat_api" "vk" "viber" "telegram-bot" "whatsapp_teletype" "instagram_comment" "instagram_direct" "instagram_comments_business" "avito" "instagram_direct_business" "vk_direct" "whatsapp_edna" "max_bot" "max" "sms_plusofon" "kakao" "phoneBased"
Пример: channelType=whatsapp_teletype

Тип канала, например whatsapp_teletype, telegram или sms_plusofon. Значение phoneBased выбирает номерные WhatsApp и Telegram.

onlyActive
integer
По умолчанию: 1
Допустимые значения: 0 1

Только активные каналы. Передавайте 0 или 1; по умолчанию 1.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/channels" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Отправка сообщения

Находит или создаёт диалог в указанном канале и отправляет сообщение. Требования к clientPhone, clientEmail и clientUsername совпадают с POST /dialog/create. Необходим непустой text либо вложение file/url.

Возвращает data.dialog и массив идентификаторов data.messages. autoClose=1 закрывает только вновь созданное обращение. Существующее обращение не закрывается. Ошибка отправки может привести к пустому data.messages при success: true. Для асинхронных каналов отслеживайте доставку через вебхуки.

Лимит: 2 запроса в секунду на владельца проекта и канал из channelId в POST. С опцией ×2 - 4, с ×5 - 10 в секунду. Общий для методов dialog/create, channel/send-message. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: multipart/form-data
обязательно
channelId
обязательно
string

Идентификатор канала

clientPhone
string

Телефон получателя. Обязателен для номерных WhatsApp, WhatsApp Edna, MAX, SMS Plusofon и KakaoTalk; для Telegram и VK через профиль допустим вместо clientUsername.

clientEmail
string

Email получателя

clientUsername
string

Username получателя. Обязателен для instagram_direct; для telegram и vk_direct допустим вместо телефона.

autoClose
integer
По умолчанию: 0
Допустимые значения: 0 1

Закрыть только вновь созданное обращение: 1 — да, 0 — нет.

text
string

Текст сообщения

file
string <binary>

Вложенный файл

url
string

Ссылка на вложенный файл. Используется если не передан file

replied_message_id
string

Идентификатор цитируемого сообщения

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/channel/send-message" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'channelId=Hgdt532edLkgd' \
  --form-string 'text=Здравствуйте!' \
  --form-string 'clientPhone=+79990000000'

Примеры ответов

Тип содержимого
application/json
Пример
{}

Отправка шаблона (WhatsApp Edna)

Отправляет WABA-шаблон в существующий диалог канала whatsapp_edna. В пути id указывается канал; dialogId и templateId должны относиться к этому каналу и текущему проекту. Переменные передаются в template_params, опции — в template_options. Возвращает идентификаторы созданных сообщений, а не подтверждение доставки.

Лимит: 2 запроса в секунду на владельца проекта. С опцией ×2 - 4, с ×5 - 10 в секунду. Если в POST передан dialogId и диалог найден в текущем проекте, лимит считается по владельцу проекта и каналу этого диалога. Параметр id в URL на счётчик не влияет. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
id
обязательно
string

Идентификатор канала

Схема тела запроса: application/x-www-form-urlencoded
обязательно
dialogId
обязательно
string

Идентификатор диалога

templateId
обязательно
string

Идентификатор шаблона

template_params[text_variables][]
Массив элементов: strings

Переменные текста, по порядку. Повторяйте полное имя поля для каждого значения.

template_params[header_variables][]
Массив элементов: strings

Переменные заголовка, по порядку.

template_params[button_variables][]
Массив элементов: strings

Переменные кнопок, по порядку.

template_params[attachment][url]
string <uri>

URL вложения.

template_params[attachment][name]
string
По умолчанию: "file"

Имя файла.

template_options[comment]
string

Комментарий к отправке.

template_options[sendDelay]
integer

Задержка отправки, передаваемая провайдеру.

template_options[priority]
string
Допустимые значения: "LOW" "NORMAL" "HIGH" "REALTIME"

Приоритет отправки.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/whatsapp-edna/send-template/example_id" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'dialogId=example_dialogId' \
  --data-urlencode 'templateId=example_templateId' \
  --data-urlencode 'template_params[text_variables][]=Иван' \
  --data-urlencode 'template_params[text_variables][]=12345' \
  --data-urlencode 'template_params[attachment][url]=https://example.com/file.pdf' \
  --data-urlencode 'template_params[attachment][name]=file.pdf' \
  --data-urlencode 'template_options[priority]=NORMAL' \
  --data-urlencode 'template_options[sendDelay]=0' \
  --data-urlencode 'template_options[comment]=Отправка через Public API'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Группы операторов

Методы API для просмотра групп операторов и управления их участниками, каналами и правами

Получение списка групп операторов

Возвращает группы операторов текущего проекта с участниками, супервизорами и настройками каналов

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов groups, group/view. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/groups" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Получение информации о группе операторов

Возвращает информацию об указанной группе текущего проекта

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов groups, group/view. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/group/view/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Добавление участника в группу

Добавляет оператора текущего проекта в указанную группу

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Общий для методов group/add-member, group/remove-member. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
operatorId
обязательно
string

Идентификатор оператора

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/add-member/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'operatorId=example_operatorId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Удаление участника из группы

Удаляет оператора из указанной группы

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Общий для методов group/add-member, group/remove-member. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
operatorId
обязательно
string

Идентификатор оператора

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/remove-member/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'operatorId=example_operatorId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Добавление канала в группу

Добавляет канал текущего проекта в указанную группу

Лимит: 2 запроса в секунду на владельца проекта и канал из channelId в POST. Опции ×2 и ×5 не повышают лимит. Общий для методов group/add-channel, group/remove-channel. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
channelId
обязательно
string

Идентификатор канала

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/add-channel/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'channelId=example_channelId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Удаление канала из группы

Удаляет канал текущего проекта из указанной группы

Лимит: 2 запроса в секунду на владельца проекта и канал из channelId в POST. Опции ×2 и ×5 не повышают лимит. Общий для методов group/add-channel, group/remove-channel. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
channelId
обязательно
string

Идентификатор канала

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/remove-channel/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'channelId=example_channelId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Изменение прав супервизора

Включает или выключает права супервизора у участника указанной группы

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
operatorId
обязательно
string

Идентификатор участника группы

isSupervisor
обязательно
boolean

Признак наличия прав супервизора

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/set-supervisor/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'operatorId=example_operatorId' \
  --form-string 'isSupervisor=true'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Изменение видимости чужих диалогов

Изменяет видимость диалогов, назначенных другим операторам, для обычных участников группы в указанном канале. Супервизоры группы всегда видят такие диалоги

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Подробнее об ограничениях запросов.

Требуется оплаченная или доступная в пробном периоде опция групп операторов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
groupId
обязательно
string

Идентификатор группы

Схема тела запроса: multipart/form-data
обязательно
channelId
обязательно
string

Идентификатор канала, подключенного к группе

canViewOtherDialogs
обязательно
boolean

Разрешено ли обычным участникам группы видеть диалоги, назначенные другим операторам

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/group/set-channel-visibility/example_groupId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'channelId=example_channelId' \
  --form-string 'canViewOtherDialogs=true'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Клиенты

Методы API для работы с клиентами

Получение списка клиентов

Без clientId возвращает страницу клиентов проекта с краткими профилями в data.items. При непустом clientId возвращает один краткий профиль в data, без полей пагинации. Фильтры clientPhone и tagIds[] действуют и при поиске по clientId.

Для подробного профиля используйте GET /client/details/{clientId}. Если по clientId не найден клиент с учётом фильтров, текущая реализация может вернуть HTTP 500 вместо прикладной ошибки «не найдено».

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры строки запроса
page
integer
По умолчанию: 1

Номер страницы, начиная с 1. Значения меньше 1 приводятся к 1.

pageSize
integer
По умолчанию: 15

Размер страницы: от 1 до 100. По умолчанию 15; значения вне диапазона заменяются на 15.

clientId
string

Идентификатор клиента

clientPhone
string
Пример: clientPhone=+79161234567

Поиск по части нормализованного номера телефона клиента.

tagIds[]
Массив элементов: strings
Пример: tagIds[]=yVenn4PjxvQKj15QJ1Vi5xSRfyMxseBHvOxeq4gluZmPdyS4MTltLuKtfVOQj9eL

Идентификаторы тегов: tagIds[]=tag_1&tagIds[]=tag_2. Сервер ищет указанные теги в текущем проекте и учитывает не более пяти найденных тегов. Порядок выбора при большем числе не гарантируется. Возвращаются клиенты со всеми найденными тегами. Несуществующие идентификаторы игнорируются. Если не найден ни один тег, фильтр по тегам не применяется.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/clients" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Получение последнего диалога клиента

Возвращает последний диалог клиента с учётом фильтров канала. По умолчанию рассматриваются только активные каналы. При заданном channelId фильтр onlyActive не применяется. Если у найденного диалога нет обращения, sessionId и url равны false.

Лимит: 2 запроса в секунду на владельца проекта. С опцией ×2 - 4, с ×5 - 10 в секунду. Общий для методов client/details, client/dialog. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры строки запроса
clientId
обязательно
string

Идентификатор клиента

channelId
string

Идентификатор канала

channelType
string
Пример: channelType=whatsapp_teletype

Тип канала, например whatsapp_teletype, telegram или sms_plusofon.

onlyActive
integer
По умолчанию: 1
Допустимые значения: 0 1

Искать только среди активных каналов, если channelId не задан. Передавайте 0 или 1.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/client/dialog" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --get \
  --data-urlencode 'clientId=example_clientId'

Примеры ответов

Тип содержимого
application/json
Пример
{}

Получение подробных данных клиента

Возвращает подробную информацию о клиенте

Лимит: 2 запроса в секунду на владельца проекта. С опцией ×2 - 4, с ×5 - 10 в секунду. Общий для методов client/details, client/dialog. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/client/details/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Обновление данных клиента

Изменяет переданные name, phone, email и дополнительные данные; возвращает полный профиль клиента. Редактирование телефона запрещено для номерных каналов и при защите номера, электронной почты — для почтовых каналов.

additional_payload передаётся JSON-строкой. По умолчанию значения объединяются с существующими. В текущей реализации force_additional_payload считывается только вместе с хотя бы одним из полей name, phone или email.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Схема тела запроса: application/x-www-form-urlencoded
name
string

Имя клиента

phone
string

Телефон клиента

email
string

E-mail клиента

additional_payload
string

JSON-строка с дополнительными данными клиента, например {"source":"website"}.

force_additional_payload
integer
Допустимые значения: 0 1

Признак необходимости перезаписать имеющиеся в массиве дополнительной информации данные Передавайте 1 или 0.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/client/update/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'name=Иван'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Получение информации о кастомных полях клиента

Возвращает значения пользовательских полей по их публичным названиям. Если поля не настроены, возвращает пустой массив [].

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/client/get-custom-fields/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Изменить кастомное поле клиента

Обновляет переданные значения пользовательских полей и возвращает их текущий набор. Ключи values — публичные названия полей из настроек проекта. Неизвестные ключи игнорируются; при пустом или отсутствующем values изменения не выполняются.

Пример поля формы: values[city]=Омск. Для логических значений используйте 1 и 0: строка false при приведении к логическому типу считается истинной.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Схема тела запроса: application/x-www-form-urlencoded
object

Значения по ключам пользовательских полей. Объект сериализуется в PHP-скобочной нотации, например values[city]=Омск.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
values[custom_field_1]=value1&values[custom_field_2]=value2

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Теги

Методы API для работы с тегами

Информация о тегах

Возвращает теги текущего проекта без пагинации, в алфавитном порядке по названию.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/tag/list" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Устанавливает клиенту тег

Добавляет тег у клиента. Тег связан с объединённой карточкой, поэтому изменение видно и в связанных профилях клиента в других каналах текущего проекта.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Схема тела запроса: application/x-www-form-urlencoded
обязательно
tag_id
обязательно
string

Идентификатор тега, который хотим установить

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/client/add-tag/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'tag_id=example_tagId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Удаляет тег у клиента

Удаляет тег у клиента. Тег связан с объединённой карточкой, поэтому изменение видно и в связанных профилях клиента в других каналах текущего проекта.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Схема тела запроса: application/x-www-form-urlencoded
обязательно
tag_id
обязательно
string

Идентификатор тега, который хотим удалить

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/client/remove-tag/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'tag_id=example_tagId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Заметки

Методы API для работы с заметками

Получение списка заметок о клиенте

Возвращает массив заметок о клиенте, от новых к старым, без пагинации. Если заметок нет, data равен [].

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/client/notes-list/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [],
  • "errors": [ ],
  • "errorsType": null
}

Создаёт заметку

Создаёт заметку с обязательным непустым text для клиента и возвращает её id. Заметка связывается с найденным обращением клиента.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
clientId
обязательно
string

Идентификатор клиента

Схема тела запроса: application/x-www-form-urlencoded
обязательно
text
обязательно
string non-empty

Текст заметки

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/client/create-note/example_clientId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'text=Здравствуйте!'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Удаление заметки о клиенте

Удаляет заметку текущего проекта по noteId и возвращает логический результат удаления.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
noteId
обязательно
string

Идентификатор заметки

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/client/delete-note/example_noteId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Диалоги

Методы API для работы с диалогами

Получение списка диалогов

Возвращает страницу диалогов проекта, от последних активных к более старым. totalUnanswered — количество неотвеченных диалогов только на возвращённой странице. Фильтры канала, статуса и тегов применяются совместно.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры строки запроса
page
integer
По умолчанию: 1

Номер страницы, начиная с 1. Значения меньше 1 приводятся к 1.

pageSize
integer
По умолчанию: 15

Размер страницы: от 1 до 100. По умолчанию 15; значения вне диапазона заменяются на 15.

status
string
По умолчанию: "all"
Допустимые значения: "all" "open" "close"
Пример: status=open

Статус диалога

channelId
string

Идентификатор канала

channelType
string
Пример: channelType=whatsapp_teletype

Тип канала, например whatsapp_teletype, telegram или sms_plusofon.

tagIds[]
Массив элементов: strings
Пример: tagIds[]=yVenn4PjxvQKj15QJ1Vi5xSRfyMxseBHvOxeq4gluZmPdyS4MTltLuKtfVOQj9eL

Идентификаторы тегов: tagIds[]=tag_1&tagIds[]=tag_2. Сервер ищет указанные теги в текущем проекте и учитывает не более пяти найденных тегов. Порядок выбора при большем числе не гарантируется. Выбираются диалоги клиентов со всеми найденными тегами. Несуществующие идентификаторы игнорируются. Если не найден ни один тег, фильтр по тегам не применяется.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/dialogs" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Информация о диалоге с клиентом

Возвращает сведения о последнем обращении в указанном диалоге. sessionId — идентификатор этого обращения. Если диалог или последнее обращение не найдены, возвращается прикладная ошибка.

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов dialog/details, dialog/sessions, dialog/seen, dialog/group-clients. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/dialog/details/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Список сессий диалога

Возвращает страницу обращений внутри диалога, от новых к старым. sessionId идентифицирует обращение. Поле operator отражает текущего оператора диалога, а не исторического оператора обращения.

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов dialog/details, dialog/sessions, dialog/seen, dialog/group-clients. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Параметры строки запроса
page
integer
По умолчанию: 1

Номер страницы, начиная с 1. Значения меньше 1 приводятся к 1.

pageSize
integer
По умолчанию: 15

Размер страницы: от 1 до 100. По умолчанию 15; значения вне диапазона заменяются на 15.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/dialog/sessions/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Информация о клиентах группового диалога

Возвращает участников группового диалога. Для синхронизированного группового чата используется актуальный состав; до завершения синхронизации — клиенты, у которых есть сообщения в диалоге. Для обычного диалога возвращается прикладная ошибка.

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов dialog/details, dialog/sessions, dialog/seen, dialog/group-clients. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/dialog/group-clients/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Закрытие диалога с клиентом

Закрывает диалог. При успешном закрытии запускает запрос оценки, если он предусмотрен настройками и каналом. data показывает результат закрытия.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/close/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Информация о сессии (обращении)

Возвращает данные выбранного обращения, включая openedAt, closedAt и rate. Для открытого обращения closedAt равен null. Поле operator отражает текущего оператора диалога.

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
sessionId
обязательно
string

Идентификатор обращения

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/session/view/example_sessionId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Пометить диалог прочитанным

Помечает сообщения прочитанными в обращениях, у которых назначен оператор или которые уже закрыты. Если последнее обращение существует и не имеет оператора, data равен false; если обращений нет, возвращается true.

Лимит: 3 запроса в секунду на владельца проекта. С опцией ×2 - 6, с ×5 - 15 в секунду. Общий для методов dialog/details, dialog/sessions, dialog/seen, dialog/group-clients. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/dialog/seen/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Назначить оператора на диалог

Назначает оператора на последнее обращение диалога. Пустое или отсутствующее operator_id снимает назначение. При отсутствии последнего обращения возвращается прикладная ошибка.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Схема тела запроса: application/x-www-form-urlencoded
operator_id
string

Идентификатор оператора

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/set-operator/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'operator_id=example_operator_id'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Создание нового диалога с клиентом

Создаёт или находит диалог в канале. Если обращение открыто, назначает владельца проекта оператором, в том числе для найденного существующего обращения.

Передайте channelId и идентификатор клиента:

  • clientPhone — для whatsapp_teletype, whatsapp_edna, max, sms_plusofon, kakao;
  • clientEmail — для email;
  • clientPhone или clientUsername — для telegram и vk_direct;
  • clientUsername — для instagram_direct.

Начало диалога по инициативе оператора не поддерживают web_widget, telegram-bot, facebook, vk, viber, instagram_comment, instagram_comments_business, instagram_direct_business, avito и max_bot.

Лимит: 2 запроса в секунду на владельца проекта и канал из channelId в POST. С опцией ×2 - 4, с ×5 - 10 в секунду. Общий для методов dialog/create, channel/send-message. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: multipart/form-data
обязательно
channelId
обязательно
string

Идентификатор канала

clientPhone
string

Телефон получателя. Обязателен для номерных WhatsApp, WhatsApp Edna, MAX, SMS Plusofon и KakaoTalk; для Telegram и VK через профиль допустим вместо clientUsername.

clientEmail
string

Email адрес клиента (обязателен для канала email)

clientUsername
string

Username клиента. Обязателен для instagram_direct; для telegram и vk_direct допустим вместо телефона.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/create" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'channelId=example_channelId' \
  --form-string 'clientPhone=+79990000000'

Примеры ответов

Тип содержимого
application/json
Пример
{}

Пометить диалог отвеченным

Устанавливает unanswered: false для незакрытых обращений диалога и помечает сообщения прочитанными в изменённых обращениях. Закрытые обращения не изменяются. Возвращает data: true, в том числе если изменения не потребовались.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/answered/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Пометить диалог неотвеченным

Устанавливает unanswered: true для незакрытых обращений диалога. Закрытые обращения не изменяются. Возвращает data: true, в том числе если изменения не потребовались.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Идентификатор диалога

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/unanswered/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Автоматически назначить оператора

Запускает фоновый автоматический подбор оператора для последнего обращения диалога и останавливает его ботов. data: true означает, что задача поставлена в очередь, но не гарантирует фактическое назначение оператора. data: false возможен, если последнего обращения нет, оператор уже назначен или задачу не удалось поставить в очередь. Для закрытого или удалённого обращения возвращает ошибку валидации.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string

Внешний идентификатор диалога.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/auto-assign-operator/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Категории

Методы API для работы с категориями

Получение списка категорий

Возвращает категории текущего проекта без пагинации, в алфавитном порядке. Если категорий нет, data равен [].

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/appeal-categories/list" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Назначить категорию диалогу

Назначает категорию последнему обращению диалога. Пустое или отсутствующее category_appointed_id снимает категорию.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
dialogId
обязательно
string
Пример: 5yJfWXjEluy3cvaHvF6QMqCgRhkHQV7BbZkWZDdwgSqH_lfLhxp2H1XVcYitXg_O

Идентификатор диалога

Схема тела запроса: multipart/form-data
category_appointed_id
string

Идентификатор категории

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/dialog/set-category/example_dialogId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'category_appointed_id=example_categoryId'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Сообщения

Методы API для работы с сообщениями в диалогах

Получение списка сообщений

Возвращает страницу сообщений проекта, от новых к старым. Фильтры dialogId, channelId и clientId применяются совместно. Группировки по диалогам в ответе нет.

Лимит: 2 запроса в секунду на владельца проекта. С опцией ×2 - 4, с ×5 - 10 в секунду. Параметры диалога и канала в URL на лимит не влияют. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры строки запроса
page
integer
По умолчанию: 1

Номер страницы, начиная с 1. Значения меньше 1 приводятся к 1.

pageSize
integer
По умолчанию: 15

Размер страницы: от 1 до 100. По умолчанию 15; значения вне диапазона заменяются на 15.

dialogId
string

Идентификатор диалога

channelId
string

Идентификатор канала

clientId
string

Идентификатор клиента

onlyActive
integer
По умолчанию: 0
Допустимые значения: 0 1

Только сообщения активных каналов; применяется, если channelId не передан. Передавайте 0 или 1.

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/messages" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Отправка сообщения

Отправляет сообщение в существующий диалог. Обязателен dialogId и хотя бы одно из полей: непустой text, файл file или ссылка url. Если загружен file, он имеет приоритет перед url.

Возвращает идентификаторы созданных сообщений в data.ids. Для асинхронных каналов это не подтверждение доставки: отслеживайте событие message status change. В текущей реализации ошибка непосредственно при отправке может быть перехвачена с результатом success: true и пустым data.ids; проверяйте и этот массив.

Лимит: 2 запроса в секунду на владельца проекта и канал диалога из dialogId в POST. Опции ×2 и ×5 не повышают лимит. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: multipart/form-data
обязательно
dialogId
обязательно
string

Идентификатор диалога

text
string

Текст сообщения

file
string <binary>

Вложенный файл

url
string

Ссылка на вложенный файл. Используется если не передан file

replied_message_id
string

Идентификатор цитируемого сообщения

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/message/send" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'dialogId=example_dialogId' \
  --form-string 'text=Здравствуйте!'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Удаление сообщения

Удаляет исходящее сообщение оператора, для которого уже получен идентификатор от мессенджера. Допустимые типы сообщения: user_new, user_new_update, user_transcribed.

Поддерживаются Avito, WhatsApp (по номеру), Telegram (по номеру), MAX (по номеру), VK (профиль) и VK (группа). Для остальных каналов метод вернёт ошибку.

Ограничения удаления зависят от мессенджера:

  • Avito — в течение часа после отправки;
  • WhatsApp (по номеру) — в течение 15 минут после отправки и в рамках той же сессии.

Для Telegram (по номеру), MAX (по номеру) и VK (профиль) удаление доступно, пока его разрешает соответствующий мессенджер. В VK (группа) можно удалять только исходящие сообщения сообщества, для которых удаление ещё разрешено VK.

Сообщение должно быть доставлено в мессенджер. Окончательную возможность удаления проверяет сервис соответствующего канала, поэтому его ошибка возвращается как прикладная ошибка API.

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Общий для методов message/delete, message/update. Если в POST передан dialogId и диалог найден в текущем проекте, лимит считается по владельцу проекта и каналу этого диалога. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
messageId
обязательно
string

Идентификатор сообщения

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/message/delete/example_messageId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Редактирование сообщения

Редактирует текст исходящего сообщения оператора, для которого уже получен идентификатор от мессенджера. Допустимые типы сообщения: user_new, user_new_update. Новый text не должен быть пустым.

Поддерживаются WhatsApp (по номеру), Telegram (по номеру), MAX (по номеру), VK (профиль) и VK (группа). Для остальных каналов метод вернёт ошибку.

Ограничения редактирования зависят от мессенджера:

  • WhatsApp (по номеру) — в течение 15 минут после отправки и в рамках той же сессии;
  • Telegram (по номеру) — в течение 48 часов после отправки;
  • MAX (по номеру) — в течение 7 дней после отправки;
  • VK (профиль) — в течение 24 часов после отправки;
  • VK (группа) — только для исходящего сообщения сообщества, если редактирование ещё разрешено VK.

Сообщение должно быть доставлено в мессенджер. Окончательную возможность редактирования проверяет сервис соответствующего канала, поэтому его ошибка возвращается как прикладная ошибка API.

Лимит: 2 запроса в секунду на владельца проекта. Опции ×2 и ×5 не повышают лимит. Общий для методов message/delete, message/update. Если в POST передан dialogId и диалог найден в текущем проекте, лимит считается по владельцу проекта и каналу этого диалога. Подробнее об ограничениях запросов.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
messageId
обязательно
string

Идентификатор сообщения

Схема тела запроса: multipart/form-data
обязательно
text
обязательно
string

Новый текст сообщения

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/message/update/example_messageId" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --form-string 'text=Здравствуйте!'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Шаблоны сообщений

Методы API для работы с шаблонами сообщений

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

Возвращает доступные шаблоны быстрых ответов: в папках (directories) и без папки (withoutDirectories.templates). Текст шаблона находится в поле message. Набор зависит от оплаченных тарифных опций и доступных папок.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/template-message/list" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Папки шаблонов сообщений

Возвращает доступные папки шаблонов быстрых ответов без самих шаблонов.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/template-message/directories" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

CRM-шаблоны

Шаблоны отправки сообщений для виджетов Poster и МойСклад.

Список шаблонов — Poster

Возвращает список шаблонов интеграции Poster текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/joinposter/view-templates" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Создать шаблон — Poster

Создаёт шаблон интеграции Poster текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: application/x-www-form-urlencoded
обязательно
target_channel
обязательно
string

Внешний идентификатор канала текущего проекта

body
обязательно
string
title
string
active
integer
Допустимые значения: 0 1

Активен ли шаблон. Передавайте 1 или 0.

object
string
По умолчанию: "incoming_order"
event
string
По умолчанию: "added"

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/joinposter/create-template" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'target_channel=example_channelId' \
  --data-urlencode 'body=Ваш заказ принят'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Обновить шаблон — Poster

Обновляет переданные поля шаблона интеграции Poster текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
id
обязательно
string

Внешний идентификатор шаблона

Схема тела запроса: application/x-www-form-urlencoded
обязательно
target_channel
string

Внешний идентификатор канала текущего проекта

body
string
title
string
active
integer
Допустимые значения: 0 1

Активен ли шаблон. Передавайте 1 или 0.

object
string
По умолчанию: "incoming_order"
event
string
По умолчанию: "added"

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/joinposter/update-template/example_id" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'body=Ваш заказ принят'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Удалить шаблон — Poster

Удаляет шаблон интеграции Poster текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
id
обязательно
string

Внешний идентификатор шаблона

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/joinposter/delete-template/example_id" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Список шаблонов — МойСклад

Возвращает список шаблонов интеграции МойСклад текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/moi-sklad/view-templates" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": [
    ],
  • "errors": [ ],
  • "errorsType": null
}

Создать шаблон — МойСклад

Создаёт шаблон интеграции МойСклад текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Схема тела запроса: application/x-www-form-urlencoded
обязательно
target_channel
обязательно
string

Внешний идентификатор канала текущего проекта

body
обязательно
string
title
string
active
integer
Допустимые значения: 0 1

Активен ли шаблон. Передавайте 1 или 0.

status
обязательно
string

Статус заказа из метаданных подключённого МойСклад; проверяется при сохранении.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/moi-sklad/create-template" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'target_channel=example_channelId' \
  --data-urlencode 'body=Ваш заказ принят' \
  --data-urlencode 'status=example_status'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Обновить шаблон — МойСклад

Обновляет переданные поля шаблона интеграции МойСклад текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
id
обязательно
string

Внешний идентификатор шаблона

Схема тела запроса: application/x-www-form-urlencoded
обязательно
target_channel
string

Внешний идентификатор канала текущего проекта

body
string
title
string
active
integer
Допустимые значения: 0 1

Активен ли шаблон. Передавайте 1 или 0.

status
string

Статус заказа из метаданных подключённого МойСклад; проверяется при сохранении.

Ответы

Примеры запросов

curl --request POST "https://api.teletype.app/public/api/v1/moi-sklad/update-template/example_id" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN" \
  --data-urlencode 'body=Ваш заказ принят'

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": {
    },
  • "errors": [ ],
  • "errorsType": null
}

Удалить шаблон — МойСклад

Удаляет шаблон интеграции МойСклад текущего проекта. При нескольких интеграциях выбирается добавленная последней. Если интеграции нет, возвращается NotFoundException.

Авторизация:
Токен в заголовкеТокен в строке запроса
Параметры пути
id
обязательно
string

Внешний идентификатор шаблона

Ответы

Примеры запросов

curl --request GET "https://api.teletype.app/public/api/v1/moi-sklad/delete-template/example_id" \
  --header "X-Auth-Token: $TELETYPE_API_TOKEN"

Примеры ответов

Тип содержимого
application/json
Пример
{
  • "success": true,
  • "data": true,
  • "errors": [ ],
  • "errorsType": null
}

Вебхуки

События отправляются POST-запросами на один URL, указанный в настройках проекта. Пути раздела обозначают события и не являются методами Teletype API.

Тело имеет формат application/x-www-form-urlencoded: name — имя события, payload — JSON-строка с данными.

Заголовок X-Signature содержит HMAC-SHA1 от внешнего идентификатора проекта с API-токеном в качестве ключа, в шестнадцатеричном виде. Это подпись идентификатора проекта, а не тела запроса.

Тайм-аут подключения — 4 секунды, всего запроса — 7 секунд. Получатель должен вернуть успешный HTTP-статус 2xx. Тело ответа не проверяется. Любой полученный HTTP-ответ, включая 4xx и 5xx, обнуляет общий счётчик транспортных ошибок и счётчик этого события, хотя статус записывается как ошибка. Повторная доставка из-за HTTP-статуса не выполняется.

Учитываются только тайм-ауты и ошибки DNS Could not resolve host. Для проекта и каждого вида события ведутся отдельные счётчики со сроком жизни один час. Успешный транспортный ответ обнуляет оба счётчика. Если любой из них превысит 25, на 26-й учитываемой ошибке вебхук проекта помечается нерабочим, и отправка всех событий проекта прекращается до реактивации. Не полагайтесь на гарантированную доставку или строгий порядок событий.

Событие поступления нового сообщения от клиента

Уведомляет о новом или отредактированном входящем сообщении. После декодирования payload сообщение находится в message, признак редактирования — в isUpdate. При редактировании дополнительно может присутствовать updatedMessage.

Тело передаётся как application/x-www-form-urlencoded; payload — JSON-строка. Все события приходят на один URL получателя.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "new message"

new message

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=new%20message&payload=%7B%22message%22%3A%7B%22id%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22text%22%3A%22%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B9%D1%82%D0%B5%21%22%2C%22attachments%22%3A%5B%5D%2C%22operator%22%3Anull%2C%22client%22%3A%7B%22id%22%3A%22client_1%22%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22avatar%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%7D%2C%22status%22%3A30%2C%22isItClient%22%3Atrue%2C%22seen%22%3Afalse%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%2C%22sentAt%22%3Anull%2C%22isGroupChat%22%3Afalse%2C%22forwarded%22%3Afalse%2C%22forwardedFrom%22%3Anull%2C%22type%22%3A10%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22provider%22%3A10%2C%22repliedMessage%22%3Anull%7D%2C%22isUpdate%22%3Afalse%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Поступление нового сообщения от клиента»

обязательно
object (message)
isUpdate
обязательно
boolean

Является ли событие редактированием входящего сообщения.

object

Исходное сообщение при редактировании; присутствует, если оно найдено.

{
  • "message": {
    },
  • "isUpdate": true,
  • "updatedMessage": {
    }
}

Событие об успешной отправке сообщения

Событие отправляет на указанный в проекте Webhook уведомление об успешной отправке оператором сообщения клиенту.

Параметр payload содержит JSON-объект с идентификаторами отправленного сообщения и диалога, в который оно отправлено

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "success send"

success send

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=success%20send&payload=%7B%22messageId%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22messageStatus%22%3A30%2C%22message%22%3A%7B%22id%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22text%22%3A%22%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B9%D1%82%D0%B5%21%22%2C%22attachments%22%3A%5B%5D%2C%22operator%22%3A%7B%22id%22%3A%22operator_1%22%2C%22name%22%3A%22%D0%90%D0%BD%D0%BD%D0%B0%22%2C%22avatar%22%3A%22https%3A%2F%2Fexample.com%2Foperator.png%22%7D%2C%22client%22%3Anull%2C%22status%22%3A30%2C%22isItClient%22%3Afalse%2C%22seen%22%3Afalse%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%2C%22sentAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%2C%22isGroupChat%22%3Afalse%2C%22forwarded%22%3Afalse%2C%22forwardedFrom%22%3Anull%2C%22type%22%3A10%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22provider%22%3A20%2C%22repliedMessage%22%3Anull%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Успешная отправка сообщения»

messageId
обязательно
string

Идентификатор сообщения

dialogId
обязательно
string

Идентификатор диалога

sessionId
обязательно
string
messageStatus
обязательно
integer
Допустимые значения: 10 20 30

Статус сообщения: 10 — отправляется, 20 — ошибка отправки, 30 — доставлено.

обязательно
object (message)
{
  • "messageId": "string",
  • "dialogId": "string",
  • "sessionId": "string",
  • "messageStatus": 10,
  • "message": {
    }
}

Событие о статусе отправки сообщения

Событие отправляет на указанный в проекте Webhook уведомление о статусе отправленного сообщения клиенту.

Параметр payload содержит JSON-объект с идентификаторами отправленного сообщения и диалога, в который оно отправлено

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "message status change"

message status change

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
Пример
name=message%20status%20change&payload=%7B%22messageId%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22messageStatus%22%3A30%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Изменение статуса отправки сообщения»

messageId
обязательно
string

Идентификатор сообщения

dialogId
обязательно
string

Идентификатор диалога

messageStatus
обязательно
integer
Допустимые значения: 10 20 30

Статус сообщения: 10 — отправляется, 20 — ошибка отправки, 30 — доставлено.

sessionId
обязательно
string
error
string

Текст ошибки отправки. Передаётся только при messageStatus = 20.

{
  • "messageId": "string",
  • "dialogId": "string",
  • "sessionId": "string",
  • "messageStatus": 20,
  • "error": "Failed to send message (Communication error with external channel service)"
}

Событие об удалении сообщения

Уведомление об удалении сообщения в диалоге. В payload передаются идентификаторы и объект сообщения на момент события.

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "message deleted"

message deleted

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=message%20deleted&payload=%7B%22messageId%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22message%22%3A%7B%22id%22%3A%22message_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22text%22%3A%22%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B9%D1%82%D0%B5%21%22%2C%22attachments%22%3A%5B%5D%2C%22operator%22%3Anull%2C%22client%22%3A%7B%22id%22%3A%22client_1%22%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22avatar%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%7D%2C%22status%22%3A30%2C%22isItClient%22%3Atrue%2C%22seen%22%3Afalse%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%2C%22sentAt%22%3Anull%2C%22isGroupChat%22%3Afalse%2C%22forwarded%22%3Afalse%2C%22forwardedFrom%22%3Anull%2C%22type%22%3A10%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22provider%22%3A10%2C%22repliedMessage%22%3Anull%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Удаление сообщения»

messageId
обязательно
string

Идентификатор сообщения

dialogId
обязательно
string

Идентификатор диалога

sessionId
обязательно
string

Идентификатор сессии (обращения)

обязательно
object (message)
{
  • "messageId": "string",
  • "dialogId": "string",
  • "sessionId": "string",
  • "message": {
    }
}

Событие о создании новой заметки

Событие отправляет на указанный в проекте Webhook уведомление о создании новой заметки в диалоге.

Параметр payload содержит JSON-объект с идентификаторами клиента, диалога, заметки и самим текстом заметки

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "new note"

new note

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=new%20note&payload=%7B%22id%22%3A%22note_1%22%2C%22dialogId%22%3A%22dialog_1%22%2C%22clientId%22%3A%22client_1%22%2C%22operatorId%22%3A%22operator_1%22%2C%22text%22%3A%22%D0%A1%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C%D1%81%D1%8F%20%D0%B7%D0%B0%D0%B2%D1%82%D1%80%D0%B0.%22%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Создание новой заметки»

id
обязательно
string

Идентификатор заметки

dialogId
обязательно
string or null

Идентификатор диалога

clientId
обязательно
string

Идентификатор клиента

operatorId
обязательно
string

Идентификатор оператора

text
обязательно
string

Текст заметки

обязательно
object (date)
{
  • "id": "string",
  • "dialogId": "string",
  • "clientId": "string",
  • "operatorId": "string",
  • "text": "string",
  • "createdAt": {
    }
}

Событие о закрытии диалога

Событие отправляет на указанный в проекте Webhook уведомление о закрытии диалога.

Параметр payload содержит JSON-объект с идентификатором диалога, данными клиента, канала, последнего обращения, категории и даты создания диалога

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "close dialog"

close dialog

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=close%20dialog&payload=%7B%22id%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22categoryId%22%3Anull%2C%22client%22%3A%7B%22id%22%3A%22client_1%22%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22avatar%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%7D%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Закрытие диалога»

id
обязательно
string

Идентификатор диалога

sessionId
обязательно
string or null

Идентификатор последнего обращения

categoryId
обязательно
string or null

Идентификатор категории

обязательно
ClientPreview (object) or (object or null)
обязательно
object (ChannelPreview)

Краткие сведения о канале.

обязательно
object (date)
{
  • "id": "string",
  • "sessionId": "string",
  • "categoryId": "string",
  • "client": {
    },
  • "channel": {
    },
  • "createdAt": {
    }
}

Событие о создании нового диалога

Событие отправляет на указанный в проекте Webhook уведомление о создании нового диалога.

Параметр payload содержит JSON-объект с идентификатором диалога, данными клиента, канала и даты создания диалога

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "new dialog"

new dialog

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=new%20dialog&payload=%7B%22id%22%3A%22dialog_1%22%2C%22client%22%3A%7B%22id%22%3A%22client_1%22%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22avatar%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%7D%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22channelSpecificData%22%3Anull%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Создание нового диалога»

id
обязательно
string

Идентификатор диалога

обязательно
ClientPreview (object) or (object or null)
обязательно
object (ChannelPreview)

Краткие сведения о канале.

channelSpecificData
обязательно
any
обязательно
object (date)
{
  • "id": "string",
  • "client": {
    },
  • "channel": {
    },
  • "channelSpecificData": null,
  • "createdAt": {
    }
}

Событие об открытии старого диалога

Событие отправляет на указанный в проекте Webhook уведомление об открытии старого диалога.

Параметр payload содержит JSON-объект с идентификатором диалога, данными клиента, канала и даты создания диалога

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "open dialog"

open dialog

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=open%20dialog&payload=%7B%22id%22%3A%22dialog_1%22%2C%22client%22%3A%7B%22id%22%3A%22client_1%22%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22avatar%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%7D%2C%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22createdAt%22%3A%7B%22date%22%3A%222026-09-08T09%3A00%3A00%2B00%3A00%22%2C%22timezone%22%3A%22UTC%22%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Открытие старого диалога»

id
обязательно
string

Идентификатор диалога

обязательно
ClientPreview (object) or (object or null)
обязательно
object (ChannelPreview)

Краткие сведения о канале.

обязательно
object (date)
{
  • "id": "string",
  • "client": {
    },
  • "channel": {
    },
  • "createdAt": {
    }
}

Событие об изменении данных персоны

Событие отправляет на указанный в проекте Webhook уведомление об изменении данных персоны.

Параметр payload содержит JSON-объект с данными персоны

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "person change"

person change

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=person%20change&payload=%7B%22id%22%3A%22client_1%22%2C%22tempName%22%3Anull%2C%22name%22%3A%22%D0%98%D0%B2%D0%B0%D0%BD%22%2C%22email%22%3Anull%2C%22phone%22%3A%22%2B79990000000%22%2C%22customFields%22%3A%7B%22city%22%3A%22%D0%9E%D0%BC%D1%81%D0%BA%22%7D%2C%22tags%22%3A%5B%22tag_1%22%5D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Изменение данных персоны»

id
обязательно
string

Идентификатор персоны

tempName
обязательно
string or null

Имя персоны по умолчанию

name
обязательно
string or null

Имя персоны

email
обязательно
string or null

Email адрес персоны

phone
обязательно
string or null

Телефонный номер персоны

обязательно
object or Массив элементов: any (CustomFieldValues)

Значения по названиям полей, либо пустой массив, если поля не настроены.

tags
обязательно
Массив элементов: strings

Внешние идентификаторы тегов персоны.

{
  • "id": "string",
  • "tempName": "string",
  • "name": "string",
  • "email": "string",
  • "phone": "string",
  • "customFields": { },
  • "tags": [
    ]
}

Событие об оценке диалога персоной

Событие отправляет на указанный в проекте Webhook уведомление об оценке диалога персоной.

Параметр payload содержит JSON-объект с идентификаторами диалога, обращения, оператора, клиента и оценки

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "appeal rate"

appeal rate

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=appeal%20rate&payload=%7B%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22operatorId%22%3A%22operator_1%22%2C%22clientId%22%3A%22client_1%22%2C%22rate%22%3A%225%22%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Оценка диалога персоной»

dialogId
обязательно
string

Идентификатор диалога

sessionId
обязательно
string

Идентификатор обращения

operatorId
обязательно
string

Идентификатор оператора

clientId
обязательно
string

Идентификатор клиента

rate
обязательно
string
Допустимые значения: "1" "2" "3" "4" "5"

Оценка обращения строкой от 1 до 5.

{
  • "dialogId": "string",
  • "sessionId": "string",
  • "operatorId": "string",
  • "clientId": "string",
  • "rate": "1"
}

Событие об обновлении шаблонов сообщений

Событие отправляет на указанный в проекте Webhook уведомление об обновлении шаблонов сообщений.

Параметр payload содержит пустой массив

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "messages templates updated"

messages templates updated

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=messages%20templates%20updated&payload=%5B%5D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Обновление шаблонов сообщений»

Array (<= 0 items)
any
[ ]

Событие об изменении активного оператора по обращению

Событие отправляет на указанный в проекте Webhook уведомление об изменении активного оператора по обращению.

Запрос приходит в формате application/x-www-form-urlencoded. Поле payload содержит JSON-объект, сериализованный в строку. Перед чтением полей декодируйте эту строку.

operator равен null, если активный оператор снят с обращения. Ниже доступна полная структура декодированного payload.

Все события приходят на один URL, указанный в настройках проекта. Путь /session-operator-changed используется здесь только как название события.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "session operator changed"

session operator changed

payload
обязательно
string <json>

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=session%20operator%20changed&payload=%7B%22channel%22%3A%7B%22id%22%3A%22channel_1%22%2C%22name%22%3A%22%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%B2%20Telegram%22%2C%22type%22%3A%22telegram%22%7D%2C%22dialogId%22%3A%22dialog_1%22%2C%22sessionId%22%3A%22session_1%22%2C%22operator%22%3A%7B%22id%22%3A%22operator_1%22%2C%22name%22%3A%22%D0%90%D0%BD%D0%BD%D0%B0%22%2C%22avatar%22%3A%22https%3A%2F%2Fexample.com%2Foperator.png%22%7D%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Изменение активного оператора обращения»

обязательно
object
dialogId
обязательно
string

Идентификатор диалога

sessionId
обязательно
string

Идентификатор обращения

обязательно
object or null
{
  • "channel": {
    },
  • "dialogId": "string",
  • "sessionId": "string",
  • "operator": {
    }
}

Событие об удалении канала

Событие отправляет на указанный в проекте Webhook уведомление об удалении канала.

Параметр payload содержит JSON-объект с внешним идентификатором канала. Вебхук отправляется только для каналов, для которых завершена настройка.

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "channel deleted"

channel deleted

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=channel%20deleted&payload=%7B%22externalId%22%3A%22channel_1%22%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Удаление канала»

externalId
обязательно
string

Внешний идентификатор канала

{
  • "externalId": "string"
}

Событие об изменении статуса канала

Событие отправляет на указанный в проекте Webhook уведомление об изменении статуса канала.

Параметр payload содержит JSON-объект с внешним идентификатором канала, новым статусом и именем статуса. Вебхук отправляется только если канал не помечен к удалению.

Транспорт: application/x-www-form-urlencoded. Поле payload — JSON-строка; декодируйте её отдельно. Схема содержимого приведена ниже. Путь здесь обозначает событие: все события приходят на один настроенный URL.

Заголовки запроса
X-Signature
обязательно
string^[a-f0-9]{40}$

HMAC-SHA1 от идентификатора проекта; ключ — API-токен проекта.

Схема тела запроса: application/x-www-form-urlencoded
обязательно
name
обязательно
string
Допустимое значение: "channel status updated"

channel status updated

payload
обязательно
string

JSON-строка с данными события. Полная структура приведена после события.

Ответы

Примеры запросов

Тип содержимого
application/x-www-form-urlencoded
name=channel%20status%20updated&payload=%7B%22externalId%22%3A%22channel_1%22%2C%22status%22%3A20%2C%22statusName%22%3A%22active%22%7D

Примеры ответов

Тип содержимого
text/plain

Структура payload события «Изменение статуса канала»

externalId
обязательно
string

Внешний идентификатор канала

status
обязательно
integer
Допустимые значения: 10 20 30 40 50 60 70 80

Код статуса канала; например, 20 — активен, 30 — ошибка. Текстовое значение находится в statusName.

statusName
обязательно
string

Имя статуса канала

{
  • "externalId": "string",
  • "status": 10,
  • "statusName": "string"
}