CustomerEagle
DESARROLLADORES

Construye sobre CustomerEagle.

Una API REST y webhooks para tus datos de soporte — lee conversaciones y mensajes, añade notas internas y suscríbete a eventos. Pensada para Zapier, Make, n8n o tu propio backend. Las claves de API están disponibles a partir del plan Standard.

GET/api/v1/me
Haz tu primera llamadacURL
curl -H "Authorization: Bearer ce_live_..." \
  https://api.customereagle.com/api/v1/me

Comprueba que la clave de API funciona y descubre qué espacio de trabajo y ámbitos tiene.

Crea una clave de API

En Panel → Configuración → Claves de API, crea una clave con permiso READ o WRITE (o ambos). Disponible a partir del plan Standard — los espacios de trabajo del plan gratuito no pueden crear claves. La clave completa se muestra una sola vez — guárdala como una contraseña.

Autentica cada petición

URL base https://api.customereagle.com/api/v1. Envía tu clave como token bearer en la cabecera Authorization.

Haz tu primera llamada

Comprueba que la clave de API funciona y descubre qué espacio de trabajo y ámbitos tiene.

Endpoints

Una superficie pequeña y honesta: lee conversaciones y mensajes, añade una nota interna. Es un fundamento, no una API REST completa — deliberadamente sin un endpoint de respuesta al cliente, porque una respuesta tiene que salir por el canal real (widget, email, WhatsApp…) para llegar a alguien.

EndpointÁmbitoNotas
GET /meCualquier clave de APIConfirma que la clave de API está activa y devuelve su espacio de trabajo y sus ámbitos.
GET /conversationsREADFiltra por status o canal. Paginación por cursor, más recientes primero.
GET /conversations/:idREADUna sola conversación. Devuelve un 404 genérico fuera de tu espacio de trabajo.
GET /conversations/:id/messagesREADMás antiguos primero. Las notas internas quedan excluidas — solo mensajes de cliente, agente e IA.
POST /conversations/:id/notesWRITEAñade una nota interna y dispara un webhook message.created.

Las notas internas nunca aparecen en el feed de mensajes de arriba — se quedan visibles solo para agentes, a propósito.

Escribir datos

Los ámbitos se aplican por clave — una clave de solo lectura recibe un 403 aquí. La misma nota, creada desde JavaScript:

Escribir datosJavaScript
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." }),
  },
);

Límites de tasa

Cada capa falla cerrada si el propio limitador no está disponible, así que una caída bloquea las llamadas en lugar de dejarlas pasar sin medir.

ÁmbitoLímiteNotas
Por IP de origen300 / minUn límite general, comprobado antes incluso de buscar tu clave de API.
Por clave de API300 / minEl tope anunciado. Se devuelve en cada respuesta vía las cabeceras X-RateLimit-*.
Por clave de API25.000 / díaAcota el uso sostenido — cada llamada abre una transacción de base de datos.
Por espacio de trabajo600 / minAgregado entre todas las claves de API del espacio de trabajo.
Por espacio de trabajo100.000 / díaEl tope diario agregado entre todas las claves de API del espacio de trabajo.
Escrituras, por clave de API120 / minAplica solo a POST …/notes.

Una respuesta 429 añade una cabecera Retry-After — espera esos segundos y reinténtalo. Cada espacio de trabajo tiene un tope de 25 claves de API, así que el límite por clave no se puede multiplicar creando más.

Webhooks

Configura endpoints en Panel → Configuración → Webhooks — hasta 10 por espacio de trabajo, cada uno con su propio secreto y su lista de eventos suscritos.

Formatos

Entrega el payload JSON en bruto (firmado con HMAC), o una notificación lista para usar en Discord, Microsoft Teams o Google Chat — elige el formato al añadir el endpoint.

Eventos

Todos los payloads comparten el mismo sobre:

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

Verificar firmas

Los endpoints JSON llevan una cabecera X-CE-Signature — el HMAC-SHA256 en hexadecimal del cuerpo bruto de la petición, firmado con el secreto del endpoint. Recalcúlalo y compáralo antes de confiar en el payload.

Verificar firmasNode.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),
  );
}
Listo

Empieza a construir.

Inicia una prueba gratuita, genera una clave de API y haz tu primera llamada.

Iniciar prueba gratuitaHabla con un ingeniero30 días · sin tarjeta · 50 resoluciones de IA para probar