كيف يمكننا المساعدة؟

يرجى توضيح الموضوع بإيجاز، وسنرد بالبريد الإلكتروني.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
إلى الصفحة الرئيسية

API do servidor (REST v1) e MCP

A interface REST do reactive.chat para seu backend: chaves de API e escopos, limites de requisições, formatos de resposta e erro, paginação, todos os endpoints para projetos, conversas, mensagens, visitantes, eventos, regras e hooks, além do servidor MCP para ferramentas de IA.

A API do servidor é destinada ao seu backend, não ao navegador: ela não permite CORS, e uma chave de API nunca deve estar em uma página da web ou aplicativo.

Conceitos básicos

Chaves de API

Na conta, em Chaves de API (/app/api-keys, somente proprietários e admins). Você define um nome e um escopo; a chave (rc_live_ + 48 caracteres) é exibida exatamente uma vez, e armazenamos apenas um hash.

Escopos:

Uma chave pertence a exatamente um espaço de trabalho; nenhum caminho ou parâmetro seleciona outro. Ela deixa de ser válida quando você a revoga ou quando a pessoa que a criou deixa de ser proprietário ou admin do espaço de trabalho. Não há data de expiração: faça a rotação por conta própria (crie uma nova, passe a usá-la e revogue a antiga).

Envio:

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

O cabeçalho X-Api-Key: rc_live_... é equivalente (só é lido se não houver Authorization: Bearer).

Limite de requisições

Formato de resposta

{ "data": { ... } }

Listas:

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

Paginação: limit (padrão 25, no máximo 100) e um cursor: before_id para listas com os itens mais recentes primeiro, after_id para listas com os mais antigos primeiro. next só aparece se has_more for verdadeiro. Não há contagem total.

Corpos de POST/PUT: somente Content-Type: application/json (caso contrário, 415), no máximo 65.536 bytes (caso contrário, 413), um objeto JSON com no máximo 32 níveis.

Formato de erro

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

message é uma frase fixa em inglês para desenvolvedores. Dependendo do erro, são acrescentados param, required_scope, max, allowed e reason. A lista de códigos é completa:

Endpoints

Conta

Projetos (read)

Conversas (read)

Mensagens

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"}'

Visitantes (read)

Eventos

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

type conforme ^[a-z][a-z0-9_.:-]{0,47}$, payload com no máximo 8.192 bytes, ts em milissegundos (no máximo 7 dias no passado e 5 minutos no futuro). source é sempre integration. Resposta 201.

Regras (read)

Hooks – veja Webhooks: GET /v1/hooks, POST /v1/hooks, DELETE /v1/hooks/{id}.

Dados de clientes – veja Dados de clientes: PUT e DELETE /v1/kundendaten/{user_id}.

Exemplo: coletar conversas abertas

<?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);

Servidor MCP

Para ferramentas de IA que usam o Model Context Protocol, há um servidor MCP sob a mesma base:

Ferramentas (tools/list mostra apenas as que sua chave pode usar):

Sem besucherdaten:lesen, nome, e-mail e telefone dos visitantes são abreviados e os dados pessoais nos textos são ocultos. Os erros das ferramentas são retornados como isError: true, com identificadores como project_not_found, conversation_not_found, conversation_closed, disabled, bad_argument, too_long, search_rate_limited.

Exemplo de configuração para um cliente MCP:

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

O MCP e a lista de visitantes são recursos novos; podem estar desativados por projeto (o projeto afetado retorna disabled).

O que não existe

A seguir: Webhooks · Integrações e canais

آخر تحديث: