Wie können wir helfen?

Schreib uns kurz, worum es geht - wir melden uns per E-Mail.

Diese Seite ist durch reCAPTCHA geschützt. Es gelten die Datenschutzerklärung und die Nutzungsbedingungen von Google.
Zur Startseite

Server-API (REST v1) und MCP

Die REST-Schnittstelle von reactive.chat für dein Backend – API-Schlüssel und Rechtestufen, Ratenbegrenzung, Antwort- und Fehlerformat, Paginierung, alle Endpunkte für Projekte, Gespräche, Nachrichten, Besucher, Ereignisse, Regeln und Hooks – sowie der MCP-Server für KI-Werkzeuge.

Die Server-API ist für dein Backend gedacht, nicht für den Browser: Sie erlaubt kein CORS, und ein API-Schlüssel gehört nie in eine Webseite oder App.

Grundlagen

API-Schlüssel

Im Konto unter API-Schlüssel (/app/api-keys, nur Eigentümer und Admins). Du vergibst einen Namen und eine Rechtestufe; der Schlüssel (rc_live_ + 48 Zeichen) wird genau einmal angezeigt, wir speichern nur einen Hash.

Rechtestufen:

Ein Schlüssel gehört zu genau einem Workspace; kein Pfad und kein Parameter wählt einen anderen. Er wird ungültig, wenn du ihn widerrufst oder wenn die Person, die ihn angelegt hat, nicht mehr Eigentümer oder Admin des Workspace ist. Ein Ablaufdatum gibt es nicht – rotiere selbst (neuen anlegen, umstellen, alten widerrufen).

Senden:

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

Gleichwertig ist die Kopfzeile X-Api-Key: rc_live_... (wird nur gelesen, wenn kein Authorization: Bearer vorhanden ist).

Ratenbegrenzung

Antwortformat

{ "data": { ... } }

Listen:

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

Paginierung: limit (Vorgabe 25, höchstens 100) und ein Cursor – before_id bei Listen „neueste zuerst“, after_id bei Listen „älteste zuerst“. next steht nur da, wenn has_more wahr ist. Einen Gesamtzähler gibt es nicht.

Rümpfe von POST/PUT: nur Content-Type: application/json (sonst 415), höchstens 65 536 Bytes (sonst 413), ein JSON-Objekt mit höchstens 32 Ebenen.

Fehlerformat

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

message ist ein fester englischer Satz für Entwickler. Je nach Fehler kommen param, required_scope, max, allowed, reason hinzu. Die Codes sind abschließend:

Endpunkte

Konto

Projekte (read)

Gespräche (read)

Nachrichten

curl -X POST https://reactive.chat/v1/conversations/815/messages \
  -H "Authorization: Bearer rc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"body":"Ihre Rücksendung ist angekommen.","author_type":"agent","client_ulid":"01JAB3C4D5E6F7G8H9JKMNPQRS"}'

Besucher (read)

Ereignisse

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

type nach ^[a-z][a-z0-9_.:-]{0,47}$, payload höchstens 8192 Bytes, ts in Millisekunden (höchstens 7 Tage alt, höchstens 5 Minuten voraus). source ist immer integration. Antwort 201.

Regeln (read)

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

Kundendaten – siehe Kundendaten: PUT und DELETE /v1/kundendaten/{user_id}.

Beispiel: offene Gespräche abholen

<?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-Server

Für KI-Werkzeuge, die das Model Context Protocol sprechen, gibt es einen MCP-Server unter derselben Basis:

Werkzeuge (tools/list zeigt nur die, die dein Schlüssel darf):

Ohne besucherdaten:lesen werden Name, E-Mail und Telefon der Besucher gekürzt und persönliche Daten in Texten maskiert. Werkzeugfehler kommen als isError: true mit Kennungen wie project_not_found, conversation_not_found, conversation_closed, disabled, bad_argument, too_long, search_rate_limited.

Beispiel-Eintrag für einen MCP-Client:

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

MCP und die Besucherliste sind neue Funktionen; sie können je Projekt abgeschaltet sein (das betroffene Projekt meldet dann disabled).

Was es nicht gibt

Weiter: Webhooks · Integrationen und Kanäle

Stand: