REST API онлайн-чата: диалоги и заявки из вашего кода
Публичный REST API Моночата отдаёт диалоги и сообщения из всех каналов проекта — сайта, Telegram, ВКонтакте, MAX, почты и Авито. Через него можно менять статус диалога и создавать обращение из формы на сайте. Подходит для дашбордов, выгрузок, связки с 1С и CRM без готового коннектора, а также для ИИ-агентов. API работает на всех тарифах, включая бесплатный Старт. Отправлять ответы клиентам через API пока нельзя — об этом ниже.
Что умеет API
База: https://monochat.ru/api/public/v1, ответы в JSON.
• GET /me — проект, к которому привязан токен.
• GET /conversations — диалоги, сначала недавно обновлённые. Фильтры status (open, pending, resolved, closed) и channel_type (widget, telegram_bot, vk, max, email, avito), limit до 100 (по умолчанию 50).
• GET /conversations/{id} — один диалог с данными клиента.
• GET /conversations/{id}/messages — сообщения по порядку, limit до 200 (по умолчанию 100). Поля: sender_type, text_content, created_at, is_internal (1 — внутренняя заметка, клиенту не видна), delivery_status.
• POST /conversations/{id}/status — сменить статус: open, pending, resolved или closed. При закрытии уходит событие вебхука conversation.closed.
• GET /channels — подключённые каналы: виджеты, email, Telegram-боты, ВКонтакте, MAX, Авито.
• POST /forms/lead — создать обращение из формы: name, email, phone, message, source. Появится в инбоксе как диалог виджета, поэтому в проекте нужен активный виджет.
Авторизация
Токен проекта вида mc_live_… передаётся в заголовке Authorization: Bearer. Параметр ?api_token= тоже работает, но заголовок надёжнее: адреса с токеном оседают в логах.
Создать токен: панель → «Интеграции» → REST API → «Создать токен». Токен показывается один раз, его можно отозвать. На тарифе Старт — до 2 активных токенов, на платных — до 20. Создавать токены могут владелец и администраторы проекта.
Примеры запросов
export MONOCHAT_API_TOKEN="mc_live_…" # «Интеграции» → REST API → «Создать токен»
curl -s https://monochat.ru/api/public/v1/me \
-H "Authorization: Bearer $MONOCHAT_API_TOKEN"
# {"workspace_id": 123, "workspace_name": "Мой магазин", "token_name": "Albato"}# открытые диалоги из MAX, до 20 штук, сначала недавно обновлённые
curl -s "https://monochat.ru/api/public/v1/conversations?status=open&channel_type=max&limit=20" \
-H "Authorization: Bearer $MONOCHAT_API_TOKEN"
# сообщения диалога (по порядку, до 200)
curl -s "https://monochat.ru/api/public/v1/conversations/4567/messages?limit=200" \
-H "Authorization: Bearer $MONOCHAT_API_TOKEN"{
"conversations": [
{
"id": 4567,
"channel_type": "max",
"status": "open",
"priority": "normal",
"created_at": "2026-10-16T12:03:11",
"updated_at": "2026-10-16T12:05:40",
"last_message_at": "2026-10-16T12:05:40",
"last_message_text": "А самовывоз есть?",
"visitor_id": 8910,
"visitor_name": "Анна",
"visitor_email": null,
"visitor_phone": null
}
]
}# закрыть диалог как решённый (open | pending | resolved | closed)
curl -s -X POST https://monochat.ru/api/public/v1/conversations/4567/status \
-H "Authorization: Bearer $MONOCHAT_API_TOKEN" -H "Content-Type: application/json" \
-d '{"status": "resolved"}'
# {"ok": true, "status": "resolved"}
# заявка с формы сайта → новый диалог в инбоксе (нужен активный виджет)
curl -s -X POST https://monochat.ru/api/public/v1/forms/lead \
-H "Authorization: Bearer $MONOCHAT_API_TOKEN" -H "Content-Type: application/json" \
-d '{"name": "Иван", "phone": "+79990000000", "message": "Перезвоните по доставке", "source": "landing"}'
# {"ok": true, "conversation_id": 4568}
Без токена или с неверным токеном API отвечает 401 {"error": "unauthorized"}, на чужой или несуществующий диалог — 404 {"error": "not_found"}.
Сценарии
• Дашборд и выгрузки: скрипт по расписанию забирает диалоги и складывает их в CSV, Google Таблицу, DataLens или свою базу. Например, нагрузка по каналам или доля решённых обращений.
• Заявки с сайта и из 1С: форма на вашем сайте, лендинг или учётная система отправляет POST /forms/lead, и обращение попадает в общий инбокс рядом с чатами. Для конструкторов, которые не умеют слать JSON с заголовком (например, вебхук форм Tilda), поставьте посредника — Albato или Make.
• CRM без готового коннектора: новые диалоги приходят вебхуком, а REST API помогает сверять пропуски и подтягивать переписку. Когда сделка закрыта в CRM, можно закрыть и диалог: POST /status.
• ИИ-агенты (Cursor, Claude Code, Lovable, Replit): агент регистрирует проект через Agent API, ставит виджет, а после подтверждения email получает REST-токен.
import csv
import os
import requests # pip install requests
API = "https://monochat.ru/api/public/v1"
H = {"Authorization": "Bearer " + os.environ["MONOCHAT_API_TOKEN"]}
rows = requests.get(f"{API}/conversations", headers=H,
params={"limit": 100}, timeout=10).json()["conversations"]
with open("dialogs.csv", "w", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow(["id", "канал", "статус", "клиент", "email", "последнее сообщение", "обновлён"])
for c in rows:
w.writerow([c["id"], c["channel_type"], c["status"], c["visitor_name"],
c["visitor_email"], c["last_message_text"], c["updated_at"]])curl -s -X POST https://monochat.ru/api/agent/v1/signup \
-H "Content-Type: application/json" \
-d '{"email": "owner@company.ru", "site_domain": "company.ru", "agent": "cursor"}'
# → widget_key, готовые сниппеты, agent_key (mc_agent_…)
# после того как владелец подтвердил email — один раз выдаётся REST-токен mc_live_…
curl -s https://monochat.ru/api/agent/v1/status -H "Authorization: Bearer $MONOCHAT_AGENT_KEY"
Лимиты
• До 100 диалогов и до 200 сообщений за один запрос. Постраничной навигации и фильтра по дате пока нет: список всегда начинается с недавно обновлённых диалогов.
• Отдельных квот на число запросов к публичному API сейчас нет. Опрашивайте разумно — обычно хватает раза в минуту, а для мгновенной реакции используйте вебхук.
• Токены: 2 активных на Старте, 20 на платных тарифах.
Чего пока нет — честно
• Отправки сообщений клиенту. Отвечать из CRM или своего кода в Telegram, MAX, VK или на сайт через API нельзя — ответы пишутся в инбоксе Моночата.
• Создания и изменения контактов, тегов, назначения оператора, работы с вложениями (в сообщениях отдаётся текст).
• Управления вебхуками и токенами через API — только в панели «Интеграции».
Если вам нужен какой-то из этих методов, напишите в чат поддержки на сайте — такие запросы влияют на приоритеты.
REST API или Agent API
| REST API (/api/public/v1) | Agent API (/api/agent/v1) | |
|---|---|---|
| Для чего | Работа с диалогами существующего проекта | Регистрация нового проекта ИИ-агентом, ключ виджета, ссылка на оплату |
| Ключ | mc_live_… — токен проекта | mc_agent_… — выдаётся при регистрации |
| Где взять | «Интеграции» → REST API или через Agent API после подтверждения email | POST /api/agent/v1/signup с email владельца и доменом сайта |
| Тариф | Все тарифы, включая Старт | Регистрация на Старте; платный тариф — ссылка на оплату для человека |
Подробно — в документации: monochat.ru/docs/api и monochat.ru/docs/agent-api.
Полезные ссылки
Ещё по теме
Смотрите также
Частые вопросы
Есть ли у Моночата API?
Да. Публичный REST API отдаёт диалоги, сообщения и каналы, меняет статус диалога и принимает заявки с форм. Доступен на всех тарифах, включая бесплатный Старт.
Можно ли отправить сообщение клиенту через API?
Пока нет: в публичном API нет метода отправки сообщений. Отвечать клиентам можно в инбоксе Моночата — вручную или с помощью ИИ-сотрудника.
Как получить API-токен?
В панели: «Интеграции» → REST API → «Создать токен». Токен вида mc_live_… показывается один раз, передавайте его в заголовке Authorization: Bearer.
Какие есть лимиты?
До 100 диалогов и до 200 сообщений за запрос, без постраничной навигации. Токенов — 2 на Старте и 20 на платных тарифах. Отдельной квоты на число запросов сейчас нет, но опрашивайте API разумно.
Может ли ИИ-агент сам создать аккаунт и получить ключ?
Да, через Agent API: POST /api/agent/v1/signup с email владельца и доменом сайта сразу возвращает ключ виджета. Полный REST-токен агент получает один раз после того, как владелец подтвердит email.
Как принять заявку с формы сайта в чат?
Отправьте POST /api/public/v1/forms/lead с JSON (name, email, phone, message, source) и токеном. Обращение появится в инбоксе, сработают вебхуки. Нужен активный виджет в проекте.
Все каналы клиентов — в одном окне
Сайт, личная страница-чат, email, Telegram, ВКонтакте и MAX. Бесплатно, без лимита операторов.
Начать бесплатно