Construisez sur CustomerEagle.
Une API REST et des webhooks pour votre espace de travail — lisez et mettez à jour des conversations, répondez aux clients, gérez contacts, articles du centre d'aide et tâches, exécutez des rapports enregistrés et abonnez-vous aux événements. Conçu pour Zapier, Make, n8n ou votre propre backend. Les clés d'API sont disponibles à partir de l'offre Standard.
curl -H "Authorization: Bearer ce_live_..." \
https://api.customereagle.com/api/v1/me Créer une clé d'API
Dans Tableau de bord → Paramètres → Clés d'API, créez une clé et choisissez ses scopes : Usage, Read, Write ou Erase. Les clés Read et Write choisissent aussi les produits qu'elles atteignent (Support, Ventes, Marketing, Restaurant). Disponible à partir de l'offre Standard — les espaces de travail Free ne peuvent pas créer de clés. La clé brute n'est affichée qu'une fois — conservez-la comme un mot de passe.
Authentifier 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
Confirmez que la clé fonctionne et voyez quel espace de travail et quels scopes elle porte.
01 · Points de terminaison
Conversations, contacts, articles, tâches et plus.
Conversations, réponses, contacts, articles du centre d'aide, tâches, webhooks, rapports enregistrés et événements de parcours — plus des recherches pour les membres, boîtes de réception, collections, champs personnalisés et entreprises, des points de terminaison Restaurant pour les réservations et la liste d'attente, et un serveur MCP pour les agents IA. Une réponse envoyée via l'API atteint le client sur le canal propre à la conversation, exactement comme une réponse depuis la boîte de réception. Le tableau montre les principaux appels ; le document OpenAPI les liste tous.
/meToute cléConfirme que la clé est active et renvoie son espace de travail et ses scopes./conversationsREADFiltrer par statut ou canal. Pagination par curseur, plus récentes d'abord. Aussi : GET /conversations/:id./conversations/:id/messagesREADPlus anciens d'abord. Les notes internes sont exclues — uniquement les messages des clients, agents et de l'IA./conversations/:id/messagesWRITERépond au client sur le canal propre à la conversation, exactement comme une réponse depuis la boîte de réception. Une conversation fermée est rouverte./conversations/:id/notesWRITEAjoute une note interne et déclenche un webhook message.created./conversations/:idWRITEModifier le statut ou la priorité. Aussi : créer une conversation, l'assigner, ajouter ou retirer des tags./messagesREADFlux de messages de l'espace de travail, plus récents d'abord. Les notes internes sont exclues./contactsWRITECréer ou mettre à jour un contact. Aussi : lister, obtenir et PATCH /contacts/:id./contacts/:idERASEEffacement RGPD. Irréversible, il nécessite donc le scope Erase distinct — Write ne l'implique jamais./articles/:idWRITEMettre à jour ou publier un article du centre d'aide. Aussi : lister, obtenir et créer des brouillons./tasksWRITECréer une tâche. Aussi : lister, mettre à jour, terminer, supprimer et commenter./webhooksWRITES'abonner aux événements depuis le code. Aussi : lister, se désabonner, journal de livraison et nouvelle livraison./reports/:id/runREADExécuter un rapport enregistré et parcourir ses lignes page par page. Aussi : GET /reports./eventsWRITEEnregistrer un événement de parcours pour un contact ; les parcours inscrivent, attendent ou sortent selon cet événement./openapi.jsonAucune cléLa référence OpenAPI 3.1 complète pour chaque point de terminaison, aussi disponible en openapi.yaml.Les notes internes n'apparaissent jamais dans le flux de messages ci-dessus — elles restent réservées aux agents, par conception. URL de base : https://api.customereagle.com/api/v1
02 · Écrire des données
Les scopes sont appliqués par clé.
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 :
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 · Limites de débit
Chaque couche échoue en mode fermé.
Chaque couche échoue en mode fermé si le limiteur lui-même est indisponible : une panne bloque les appels au lieu de les laisser passer sans mesure.
Un garde-fou grossier, vérifié avant même que votre clé soit recherchée.
Le plafond annoncé. Renvoyé à chaque réponse via les en-têtes X-RateLimit-*.
Borne le coût soutenu — chaque appel ouvre une transaction de base de données.
Agrégé sur toutes les clés de l'espace de travail.
Le plafond quotidien agrégé sur toutes les clés de l'espace de travail.
S'applique à chaque appel d'écriture (POST, PATCH, DELETE).
Une réponse 429 ajoute un en-tête Retry-After — patientez et réessayez après ce nombre de secondes. Les espaces de travail sont limités à 25 clés d'API, la limite par clé ne peut donc pas être multipliée en en créant davantage.
04 · Webhooks
Jusqu'à 10 points de terminaison, chacun avec son propre secret.
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. Une livraison échouée est retentée jusqu'à 8 fois avec des délais croissants (environ 10 minutes au total) ; un endpoint qui échoue pendant 7 jours est mis en pause et vos administrateurs sont prévenus.
Événements
Chaque charge utile partage la même enveloppe : { event, timestamp, data }
conversation.createdmessage.createdconversation.assignedconversation.escalatedresolution.createdcsat.receivedFormats
Livrez la charge utile JSON brute (signée HMAC), ou une notification prête à l'emploi pour Discord, Microsoft Teams ou Google Chat — choisissez le format lorsque vous ajoutez le point de terminaison.
Vérifier les signatures
Les points de terminaison JSON portent un en-tête X-CE-Signature — le HMAC-SHA256 hexadécimal du corps brut de la requête, avec la clé secrète du point de terminaison. Recalculez-le et comparez avant de faire confiance à la charge utile.
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), ); }
Commencez à construire.
Démarrez un essai gratuit, générez une clé d'API et faites votre premier appel.
Clés d'API à partir de Standard · jusqu'à 25 clés et 10 points de terminaison de webhook par espace de travail.