Перейти к содержимому
Документация

REST API

Три эндпоинта: забрать заявки, прочитать переписку, ответить клиенту. Авторизация — токеном аккаунта, ответы — JSON.

С чего начать

Три шага до первого ответа.

Проверьте тариф

API входит в тариф «Отдел» и выше. На тарифах ниже запросы возвращают 402 — токен при этом остаётся вашим и заработает сразу после апгрейда.

Выпустите токен

Кабинет → «Настройки» → «Токен API» → «Выпустить токен». Значение показывается один раз: скопируйте сразу. Забыли — выпустите заново, прежний перестанет работать.

Сделайте первый запрос

Токен передаётся заголовком: Authorization: Bearer asst_live_… Базовый адрес — https://ассиистент.рф/api/v1.

Три эндпоинта

Базовый адрес — https://ассиистент.рф/api/v1. Ответы в JSON, кодировка UTF-8, даты в ISO 8601 с часовым поясом аккаунта.

GET /api/v1/leads — забрать заявки

Заявки аккаунта, свежие первыми. Фильтры — status, assistant_id, since, until; страницы — page и per (до 100). Отдаются имя, телефон, почта, комментарий, страница и сотрудник; заметка менеджера наружу не уходит.

curl -s "https://ассиистент.рф/api/v1/leads?status=fresh&per=50" \
  -H "Authorization: Bearer asst_live_ВАШ_ТОКЕН"

{
  "data": [
    {
      "id": 128,
      "status": "fresh",
      "created_at": "2026-08-24T18:20:15+03:00",
      "name": "Иван",
      "phone": "+79001234567",
      "email": "ivan@example.com",
      "comment": "Нужна плита 8×10",
      "page_url": "https://39плит.рф/plity",
      "assistant": { "id": 4, "name": "Барсик" },
      "conversation_id": 512,
      "sent_to_crm_at": null
    }
  ],
  "meta": { "page": 1, "per": 50, "total": 1 }
}

GET /api/v1/conversations/:id/messages — прочитать переписку

Лента диалога по порядку. role — visitor, assistant, operator или system.

curl -s "https://ассиистент.рф/api/v1/conversations/512/messages" \
  -H "Authorization: Bearer asst_live_ВАШ_ТОКЕН"

{ "data": [ { "id": 9010, "role": "visitor", "content": "Есть плиты 8×10?", "created_at": "2026-08-24T18:20:01+03:00" } ],
  "meta": { "page": 1, "per": 25, "conversation_id": 512 } }

POST /api/v1/messages — ответить в диалог

Написать клиенту от имени оператора. Диалог должен быть перехвачен: пока его ведёт ИИ-сотрудник, реплика человека и ответ бота полетели бы в чат наперегонки — такой запрос вернёт 422 с объяснением.

curl -s -X POST "https://ассиистент.рф/api/v1/messages" \
  -H "Authorization: Bearer asst_live_ВАШ_ТОКЕН" \
  -H "Content-Type: application/json" \
  -d '{"conversation_id": 512, "content": "Здравствуйте, я менеджер Ольга"}'

{ "data": { "id": 9012, "role": "operator", "content": "Здравствуйте, я менеджер Ольга", "created_at": "2026-08-24T18:31:02+03:00" } }

Исходящий вебхук заявок

Не хотите опрашивать API — подключите вебхук в кабинете («Каналы» → «Вебхук»), и каждая новая заявка придёт к вам сама POST-ом JSON. Тело заявки — то же, что отдаёт GET /api/v1/leads.

POST https://example.ru/hooks/assistant
Content-Type: application/json
X-Assistant-Event: lead.created
X-Assistant-Delivery: 7f0a1c2e-…-uuid
X-Assistant-Signature: t=1756200000,v1=9c1f…hex

{"event":"lead.created","delivery_id":"7f0a1c2e-…","sent_at":"2026-08-26T18:00:00+03:00",
 "lead":{"id":128,"status":"fresh","created_at":"2026-08-26T17:59:40+03:00",
         "name":"Пётр","phone":"+79001234567","email":"petr@example.com","company":null,
         "comment":"Нужна плита 120 м²","page_url":"https://39plit.ru/calc","channel":"site",
         "assistant":{"id":1,"name":"Анна"},"conversation_id":512,"sent_to_crm_at":null}}

# проверка подписи (псевдокод):
# expected = hex(HMAC_SHA256(secret, t + "." + raw_body))
# ok = constant_time_equal(expected, v1) && now - t < 300

События

ping — проверка адреса при подключении (ответьте любым 2xx); lead.created — новая заявка; lead.updated — добавка к ней: запись на приём, перенос, отмена, подтверждённый заказ (поле note, заявка — по id).

Подпись

Заголовок X-Assistant-Signature: t=<unix-время>,v1=<hex>, где v1 = HMAC-SHA256(секрет, «<t>.<тело как получено>»). Секрет показан в карточке вебхука. Отбрасывайте запросы старше пяти минут — метка времени внутри подписи как раз для этого.

Повторы

Ответили 2xx — доставлено. 5xx или обрыв сети — повторим с нарастающей паузой; 4xx считаем отказом и не повторяем, причина видна в карточке заявки. Дубли отличайте по X-Assistant-Delivery.

Границы, о которых стоит знать заранее

Лимиты

60 запросов в минуту на токен. Запросы без токена режутся отдельно и жёстче — это защита от перебора чужих ключей.

Страницы

Страница — до 100 записей (per). Больше одним запросом не отдаём — ни вам, ни тому, кто добудет ваш токен.

Персональные данные

Заявки содержат персональные данные ваших клиентов. Токен открывает только ваш аккаунт, каждое обращение пишется в журнал доступа, а сам токен мы храним отпечатком — восстановить его не можем даже мы.

Ошибки

Ошибка всегда одной формы: {"error": "код", "message": "текст"}. 401 — токен не подошёл, 402 — тариф не даёт API, 404 — объекта нет, 422 — запрос понятен, но выполнить нельзя, 429 — упёрлись в лимит.

Если у вас 1С — вам сюда не нужно

Для 1С отдельный путь, и токен API для него не нужен. Типовая обработка «Обмен с сайтом» умеет ровно один протокол — CommerceML, — и переучить её на REST можно только доработкой конфигурации. Поэтому 1С приходит к нам сама: вы вписываете адрес узла из кабинета, и заявки уезжают в 1С, а товары, цены и остатки приходят оттуда.

# 1С: адрес, логин и пароль узла — в кабинете, «Каналы» → «1С».
# В самой 1С: «Обмен с сайтом» → новый узел → обмен с «1С-Битрикс».
https://ассиистент.рф/1c/exchange/ВАШ_ТОКЕН_УЗЛА

Остались вопросы?

Зарегистрируйтесь бесплатно — и посмотрите, как сотрудник отвечает вашим клиентам.