Naar hoofdinhoud
Developers · Standard-abonnement en hoger

Bouw op CustomerEagle.

Een REST API en webhooks voor je werkruimte — lees en wijzig gesprekken, antwoord klanten, beheer contacten, helpcenterartikelen en taken, draai opgeslagen rapporten en abonneer je op events. Gebouwd voor Zapier, Make, n8n of je eigen backend. API-sleutels zijn beschikbaar vanaf het Standard-abonnement.

cURL · GET /api/v1/me
curl -H "Authorization: Bearer ce_live_..." \
  https://api.customereagle.com/api/v1/me
Controleer of de sleutel werkt en zie welke werkruimte en scopes hij bevat.
01

Maak een API-sleutel

Maak in Dashboard → Instellingen → API-sleutels een sleutel aan en kies de scopes: Usage, Read, Write of Erase. Read- en Write-sleutels kiezen ook welke producten ze bereiken (Support, Sales, Marketing, Restaurant). Beschikbaar vanaf het Standard-abonnement — Gratis-werkruimtes kunnen geen sleutels aanmaken. De ruwe sleutel wordt één keer getoond — bewaar hem als een wachtwoord.

02

Authenticeer elk verzoek

Basis-URL https://api.customereagle.com/api/v1. Stuur je sleutel als bearer-token in de Authorization-header mee.

03

Doe je eerste aanroep

Controleer of de sleutel werkt en zie welke werkruimte en scopes hij bevat.

01 · Endpoints

Gesprekken, contacten, artikelen, taken en meer.

Gesprekken, antwoorden, contacten, helpcenterartikelen, taken, webhooks, opgeslagen rapporten en journey-events — plus opzoekingen voor leden, inboxen, collecties, aangepaste velden en bedrijven, Restaurant-endpoints voor reserveringen en de wachtlijst, en een MCP-server voor AI-agents. Een antwoord dat via de API wordt verstuurd bereikt de klant op het eigen kanaal van het gesprek, precies als een antwoord vanuit de inbox. De tabel toont de belangrijkste aanroepen; het OpenAPI-document vermeldt ze allemaal.

EndpointScopeOpmerkingen
GET /meElke sleutelBevestigt dat de sleutel actief is en geeft de werkruimte en scopes terug.
GET /conversationsREADFilter op status of kanaal. Cursor-gepagineerd, nieuwste eerst. Ook: GET /conversations/:id.
GET /conversations/:id/messagesREADOudste eerst. Interne notities zijn uitgesloten — alleen berichten van klant, agent en AI.
POST /conversations/:id/messagesWRITEAntwoordt de klant op het eigen kanaal van het gesprek, precies als een antwoord vanuit de inbox. Een gesloten gesprek heropent.
POST /conversations/:id/notesWRITEVoegt een interne notitie toe en activeert een message.created-webhook.
PATCH /conversations/:idWRITEWijzig status of prioriteit. Ook: een gesprek aanmaken, toewijzen, tags toevoegen of verwijderen.
GET /messagesREADBerichtenfeed voor de hele werkruimte, nieuwste eerst. Interne notities zijn uitgesloten.
POST /contactsWRITEMaak een contact aan of werk het bij. Ook: lijst, ophalen en PATCH /contacts/:id.
DELETE /contacts/:idERASEAVG-verwijdering. Onomkeerbaar, dus er is de aparte Erase-scope voor nodig — Write impliceert die nooit.
PATCH /articles/:idWRITEWerk een helpcenterartikel bij of publiceer het. Ook: lijst, ophalen en concepten aanmaken.
POST /tasksWRITEMaak een taak aan. Ook: lijst, bijwerken, voltooien, verwijderen en reageren.
POST /webhooksWRITEAbonneer je vanuit code op events. Ook: lijst, afmelden, afleverlogboek en opnieuw afleveren.
GET /reports/:id/runREADVoer een opgeslagen rapport uit en blader door de rijen. Ook: GET /reports.
POST /eventsWRITELeg een journey-event vast voor een contact; journeys schrijven in, wachten of stoppen erop.
GET /openapi.jsonGeen sleutelDe volledige OpenAPI 3.1-referentie voor elk endpoint, ook als openapi.yaml.

Interne notities verschijnen nooit in de berichtenfeed hierboven — ze blijven bewust alleen voor agents. Basis-URL: https://api.customereagle.com/api/v1

02 · Data schrijven

Scopes worden per sleutel afgedwongen.

Scopes worden per sleutel afgedwongen — een sleutel met alleen READ krijgt een 403 op deze aanroep. Dezelfde notitie, aangemaakt vanuit JavaScript:

JavaScript · POST …/notes
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." }),
  },
);

03 · Rate limits

Elke laag faalt gesloten.

Elke laag faalt gesloten als de limiter zelf niet beschikbaar is, zodat een storing aanroepen blokkeert in plaats van ze ongemeten door te laten.

Per bron-IP300 / min

Een grove vangnet, gecontroleerd voordat je sleutel zelfs maar wordt opgezocht.

Per API-sleutel300 / min

Het geadverteerde plafond. Bij elk antwoord teruggegeven via X-RateLimit-*-headers.

Per API-sleutel25.000 / dag

Begrenst aanhoudende kosten — elke aanroep opent een databasetransactie.

Per werkruimte600 / min

Geaggregeerd over elke sleutel in de werkruimte.

Per werkruimte100.000 / dag

Het geaggregeerde dagelijkse plafond over elke sleutel in de werkruimte.

Schrijfacties, per sleutel120 / min

Geldt voor elke schrijfaanroep (POST, PATCH, DELETE).

Een 429-antwoord voegt een Retry-After-header toe — wacht en probeer het opnieuw na zoveel seconden. Werkruimtes zijn beperkt tot 25 API-sleutels, dus de limiet per sleutel is niet te vermenigvuldigen door er meer aan te maken.

04 · Webhooks

Tot 10 endpoints, elk met een eigen secret.

Stel endpoints in via Dashboard → Instellingen → Webhooks — tot 10 per werkruimte, elk met een eigen secret en lijst met events. Een mislukte levering proberen we tot 8 keer opnieuw, met steeds langere pauzes (samen zo'n 10 minuten); een endpoint dat 7 dagen blijft falen, wordt gepauzeerd en je beheerders krijgen een melding.

Events

Elke payload deelt dezelfde envelop: { event, timestamp, data }

conversation.createdmessage.createdconversation.assignedconversation.escalatedresolution.createdcsat.received

Formaten

Lever de ruwe JSON-payload (HMAC-ondertekend), of een kant-en-klare melding voor Discord, Microsoft Teams of Google Chat — kies het formaat wanneer je het endpoint toevoegt.

Ruwe JSON · HMAC-ondertekendDiscordMicrosoft TeamsGoogle Chat

Handtekeningen verifiëren

JSON-endpoints bevatten een X-CE-Signature-header — de hex-HMAC-SHA256 van de ruwe request-body, met het secret van het endpoint als sleutel. Bereken hem opnieuw en vergelijk voordat je de payload vertrouwt.

Node.js · X-CE-Signature
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),
  );
}
Eagle AI

Begin met bouwen.

Start een gratis proefperiode, genereer een API-sleutel en doe je eerste aanroep.

API-sleutels vanaf Standard · tot 25 sleutels en 10 webhook-endpoints per werkruimte.