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"
Ответ GET /conversations (сокращённо)
{
  "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-токен.

Python: выгрузка диалогов в CSV
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"]])
Agent API: проект и токен для ИИ-агента
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 после подтверждения emailPOST /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. Бесплатно, без лимита операторов.

Начать бесплатно