CustomerEagle
DÉVELOPPEURS

Construisez sur CustomerEagle.

Une API REST et des webhooks pour vos données de support — lisez les conversations et les messages, ajoutez des notes internes et abonnez-vous aux événements. Conçue pour Zapier, Make, n8n ou votre propre backend. Les clés d'API sont disponibles à partir de l'offre Standard.

GET/api/v1/me
Faites votre premier appelcURL
curl -H "Authorization: Bearer ce_live_..." \
  https://api.customereagle.com/api/v1/me

Vérifiez que la clé fonctionne et découvrez à quel espace de travail et quels scopes elle est rattachée.

Créez une clé API

Dans Dashboard → Paramètres → Clés API, créez une clé avec le scope READ ou WRITE (ou les deux). Disponible à partir de l'offre Standard — les espaces de travail sur l'offre gratuite ne peuvent pas créer de clés. La clé brute n'est affichée qu'une seule fois — conservez-la comme un mot de passe.

Authentifiez chaque requête

URL de base https://api.customereagle.com/api/v1. Envoyez votre clé comme bearer token dans l'en-tête Authorization.

Faites votre premier appel

Vérifiez que la clé fonctionne et découvrez à quel espace de travail et quels scopes elle est rattachée.

Endpoints

Un périmètre volontairement restreint : lire les conversations et les messages, ajouter une note interne. C'est un socle, pas une API REST complète — volontairement sans endpoint de réponse client, car une réponse doit transiter par le vrai canal (widget, e-mail, WhatsApp…) pour atteindre réellement quelqu'un.

EndpointScopeNotes
GET /meN'importe quelle cléConfirme que la clé est active et renvoie son espace de travail et ses scopes.
GET /conversationsREADFiltrez par statut ou par canal. Pagination par curseur, les plus récentes en premier.
GET /conversations/:idREADUne seule conversation. Renvoie un 404 générique en dehors de votre espace de travail.
GET /conversations/:id/messagesREADLes plus anciens en premier. Les notes internes sont exclues — seuls les messages client, agent et IA.
POST /conversations/:id/notesWRITEAjoute une note interne et déclenche un webhook message.created.

Les notes internes n'apparaissent jamais dans le fil de messages ci-dessus — elles restent volontairement réservées aux agents.

Écrire des données

Les scopes sont appliqués par clé — une clé READ seule reçoit un 403 sur cet appel. La même note, créée depuis JavaScript :

Écrire des donnéesJavaScript
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." }),
  },
);

Limites de débit

Chaque couche échoue de façon fermée si le limiteur lui-même est indisponible : une panne bloque les appels au lieu de les laisser passer sans mesure.

ScopeLimiteNotes
Par IP source300 / minUn garde-fou de premier niveau, vérifié avant même la recherche de votre clé.
Par clé API300 / minLe plafond annoncé. Renvoyé sur chaque réponse via les en-têtes X-RateLimit-*.
Par clé API25 000 / jourBorne le coût soutenu — chaque appel ouvre une transaction en base de données.
Par espace de travail600 / minAgrégée sur toutes les clés de l'espace de travail.
Par espace de travail100 000 / jourLe plafond quotidien agrégé sur toutes les clés de l'espace de travail.
Écritures, par clé120 / minS'applique uniquement à POST …/notes.

Une réponse 429 ajoute un en-tête Retry-After — patientez ce nombre de secondes avant de réessayer. Un espace de travail est plafonné à 25 clés API, afin que la limite par clé ne puisse pas être démultipliée en créant davantage de clés.

Webhooks

Configurez des endpoints dans Dashboard → Paramètres → Webhooks — jusqu'à 10 par espace de travail, chacun avec son propre secret et sa liste d'événements souscrits.

Formats

Livrez le payload JSON brut (signé HMAC), ou une notification prête à l'emploi pour Discord, Microsoft Teams ou Google Chat — choisissez le format lors de l'ajout de l'endpoint.

Événements

Chaque payload partage la même enveloppe :

{ event, timestamp, data }
conversation.createdmessage.createdconversation.assignedconversation.escalatedresolution.createdcsat.received

Vérifier les signatures

Les endpoints JSON portent un en-tête X-CE-Signature — le HMAC-SHA256 hexadécimal du corps brut de la requête, signé avec le secret de l'endpoint. Recalculez-le et comparez-le avant de faire confiance au payload.

Vérifier les signaturesNode.js
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),
  );
}
Prêt

Commencez à construire.

Démarrez un essai gratuit, générez une clé API et effectuez votre premier appel.

Démarrer l'essai gratuitParler à un ingénieur30 jours · sans carte bancaire · 50 résolutions IA pour tester