Чем мы можем помочь?

Кратко опишите вопрос; мы ответим по электронной почте.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
На главную

Серверный API (REST v1) и MCP

REST-интерфейс reactive.chat для бэкенда: API-ключи и права, ограничения частоты, форматы ответов и ошибок, пагинация, все конечные точки проектов, разговоров, сообщений, посетителей, событий, правил и хуков, а также MCP-сервер для ИИ-инструментов.

Серверный API предназначен для вашего бэкенда, а не браузера: CORS не разрешён, и API-ключу никогда не место на веб-странице или в приложении.

Основное

API-ключи

В аккаунте, раздел API-ключи (/app/api-keys, только владельцы и администраторы). Вы задаёте имя и область прав; ключ (rc_live_ + 48 символов) показывается ровно один раз, а мы храним только хеш.

Области прав:

Ключ относится ровно к одному рабочему пространству; ни путь, ни параметр не выбирают другое. Он становится недействительным при отзыве или когда создавший его человек больше не владелец или администратор пространства. Срока истечения нет; выполняйте ротацию самостоятельно (создайте новый, переключитесь на него, отзовите старый).

Отправка:

curl https://reactive.chat/v1/me -H "Authorization: Bearer rc_live_..."

Заголовок X-Api-Key: rc_live_... равнозначен (читается только при отсутствии Authorization: Bearer).

Ограничение частоты

Формат ответа

{ "data": { ... } }

Списки:

{ "data": [ ... ], "has_more": true, "next": { "before_id": "812" } }

Пагинация: limit (по умолчанию 25, максимум 100) и курсор: before_id для списков от новых к старым, after_id для списков от старых к новым. next присутствует, только если has_more равно true. Общего количества нет.

Тела POST/PUT: только Content-Type: application/json (иначе 415), не более 65 536 байт (иначе 413), JSON-объект с вложенностью до 32 уровней.

Формат ошибки

{ "error": { "code": "insufficient_scope", "message": "...", "required_scope": "write" } }

message — фиксированное английское предложение для разработчиков. В зависимости от ошибки добавляются param, required_scope, max, allowed, reason. Полный список кодов:

Конечные точки

Аккаунт

Проекты (read)

Разговоры (read)

Сообщения

curl -X POST https://reactive.chat/v1/conversations/815/messages \
  -H "Authorization: Bearer rc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"body":"Your return has arrived.","author_type":"agent","client_ulid":"01JAB3C4D5E6F7G8H9JKMNPQRS"}'

Посетители (read)

События

{ "project_id": "123", "type": "bestellung.storniert",
  "session_id": "s_...", "conversation_id": "01JAB...",
  "payload": { "nummer": "2026-0815" }, "ts": 1792503600000 }

type соответствует ^[a-z][a-z0-9_.:-]{0,47}$, payload не более 8192 байт, ts в миллисекундах (не старше 7 дней и не более чем на 5 минут в будущем). source всегда integration. Ответ 201.

Правила (read)

Хуки — см. Вебхуки: GET /v1/hooks, POST /v1/hooks, DELETE /v1/hooks/{id}.

Данные клиентов — см. Данные клиентов: PUT и DELETE /v1/kundendaten/{user_id}.

Пример: сбор открытых разговоров

<?php
$key = getenv('RC_API_KEY');
$url = 'https://reactive.chat/v1/conversations?status=waiting&limit=100';
do {
    $ch = curl_init($url);
    curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $key]]);
    $antwort = json_decode((string) curl_exec($ch), true);
    $status  = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
    if ($status === 429) { sleep(60); continue; }
    foreach ($antwort['data'] as $g) { echo $g['id'], ' ', $g['created_at'], "\n"; }
    $url = !empty($antwort['has_more'])
        ? 'https://reactive.chat/v1/conversations?status=waiting&limit=100&before_id=' . $antwort['next']['before_id']
        : null;
} while ($url);

MCP-сервер

Для ИИ-инструментов, поддерживающих Model Context Protocol, под тем же базовым адресом есть MCP-сервер:

Инструменты (tools/list показывает лишь разрешённые вашему ключу):

Без besucherdaten:lesen имя, электронная почта и телефон посетителей сокращаются, а персональные данные в текстах скрываются. Ошибки инструментов поступают как isError: true с идентификаторами вроде project_not_found, conversation_not_found, conversation_closed, disabled, bad_argument, too_long, search_rate_limited.

Пример записи для MCP-клиента:

{
  "mcpServers": {
    "reactive-chat": {
      "url": "https://reactive.chat/v1/mcp",
      "headers": { "Authorization": "Bearer rc_live_..." }
    }
  }
}

MCP и список посетителей — новые функции; их можно отключить для отдельного проекта (тогда затронутый проект сообщает disabled).

Чего нет

Далее: Вебхуки · Интеграции и каналы

Обновлено: