Bauen Sie auf CustomerEagle auf.
Eine REST-API und Webhooks für Ihre Support-Daten — Konversationen und Nachrichten lesen, interne Notizen hinzufügen und Events abonnieren. Gemacht für Zapier, Make, n8n oder Ihr eigenes Backend. Der API-Zugang ist Teil der kostenpflichtigen Pläne (Growth und höher).
API-Key erstellen
Erstellen Sie unter Dashboard → Einstellungen → API-Keys einen Key mit READ- oder WRITE-Scope (oder beidem). Erfordert einen kostenpflichtigen Plan (Growth und höher) — mit Free oder Starter können Sie keine Keys erstellen. Der rohe Key wird einmalig angezeigt — bewahren Sie ihn wie ein Passwort auf.
Jede Anfrage authentifizieren
Basis-URL https://api.customereagle.com/api/v1. Senden Sie Ihren Key als Bearer-Token im Authorization-Header.
Ihren ersten Aufruf machen
Prüfen Sie, dass der Key funktioniert, und sehen Sie, welchem Workspace und welchen Scopes er zugeordnet ist.
curl -H "Authorization: Bearer ce_live_..." \
https://api.customereagle.com/api/v1/meEndpunkte
Eine kleine, ehrliche Oberfläche: Konversationen und Nachrichten lesen, eine interne Notiz hinzufügen. Dies ist ein Fundament, keine vollständige REST-API — bewusst ohne kundenseitigen Antwort-Endpunkt, denn eine Antwort muss über den tatsächlichen Kanal (Widget, E-Mail, WhatsApp …) versendet werden, um jemanden zu erreichen.
| Endpunkt | Scope | Hinweise |
|---|---|---|
| GET /me | Jeder Key | Bestätigt, dass der Key aktiv ist, und liefert Workspace und Scopes zurück. |
| GET /conversations | READ | Filter nach Status oder Kanal. Cursor-Paginierung, neueste zuerst. |
| GET /conversations/:id | READ | Eine einzelne Konversation. Liefert außerhalb Ihres Workspace einen generischen 404. |
| GET /conversations/:id/messages | READ | Älteste zuerst. Interne Notizen sind ausgeschlossen — nur Kunden-, Agenten- und KI-Nachrichten. |
| POST /conversations/:id/notes | WRITE | Fügt eine interne Notiz hinzu und löst einen message.created-Webhook aus. |
Interne Notizen erscheinen nie im Nachrichten-Feed oben — sie bleiben bewusst nur für Agenten sichtbar.
Daten schreiben
Scopes werden pro Key durchgesetzt — ein reiner READ-Key erhält hier einen 403. Dieselbe Notiz, erstellt aus JavaScript:
await fetch(
"https://api.customereagle.com/api/v1/conversations/CONVO_ID/notes",
{
method: "POST",
headers: {
Authorization: "Bearer ce_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ content: "Refund approved, processing now." }),
},
);Rate-Limits
Jede Schicht schlägt fehl (closed), wenn der Limiter selbst nicht verfügbar ist — ein Ausfall blockiert Aufrufe, statt sie ungemessen durchzulassen.
| Scope | Limit | Hinweise |
|---|---|---|
| Pro Quell-IP | 300 / Min. | Ein grober Backstop, geprüft bevor Ihr Key überhaupt nachgeschlagen wird. |
| Pro API-Key | 300 / Min. | Die beworbene Obergrenze. Auf jeder Antwort über die X-RateLimit-*-Header zurückgegeben. |
| Pro API-Key | 25.000 / Tag | Begrenzt anhaltende Kosten — jeder Aufruf öffnet eine Datenbank-Transaktion. |
| Pro Workspace | 600 / Min. | Aggregiert über alle Keys des Workspace. |
| Pro Workspace | 100.000 / Tag | Die aggregierte Tagesobergrenze über alle Keys des Workspace. |
| Writes, pro Key | 120 / Min. | Gilt nur für POST …/notes. |
Eine 429-Antwort enthält einen Retry-After-Header — warten Sie diese Anzahl Sekunden und versuchen Sie es erneut. Ein Workspace ist auf 25 API-Keys begrenzt, damit sich das Pro-Key-Limit nicht durch das Erstellen weiterer Keys vervielfachen lässt.
Webhooks
Endpunkte werden unter Dashboard → Einstellungen → Webhooks konfiguriert — bis zu 10 pro Workspace, jeweils mit eigenem Secret und eigener Liste abonnierter Events.
Formate
Liefern Sie die rohe JSON-Payload (HMAC-signiert) oder eine fertige Benachrichtigung für Discord, Microsoft Teams oder Google Chat — wählen Sie das Format beim Hinzufügen des Endpunkts.
Events
Jede Payload teilt denselben Umschlag:
{ event, timestamp, data }conversation.createdmessage.createdconversation.assignedconversation.escalatedresolution.createdcsat.receivedSignaturen verifizieren
JSON-Endpunkte tragen einen X-CE-Signature-Header — den hex-kodierten HMAC-SHA256 des rohen Request-Bodys, signiert mit dem Secret des Endpunkts. Berechnen Sie ihn neu und vergleichen Sie ihn, bevor Sie der Payload vertrauen.
const crypto = require("node:crypto");
function verify(rawBody, header, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(header),
);
}Beginnen Sie zu bauen.
Erstellen Sie einen kostenlosen Workspace, generieren Sie einen API-Key und machen Sie Ihren ersten Aufruf in wenigen Minuten.