Documentación pública

API pública

Esta documentación solo cubre los dos métodos públicos disponibles para integraciones externas: enviar mensajes y suscribir eventos en tiempo real.

Autenticación: `Authorization: Bearer <apiKey>`.
Enviar mensaje: `POST /api/public/messages/send`.
Suscribir eventos: `GET /api/public/events` (SSE).
CORS permite `Authorization` y `Content-Type`.
Lectura rápida

La API pública se consume con el header Authorization: Bearer <apiKey>.

El envío de mensajes y la suscripción a eventos son los dos únicos métodos públicos disponibles.

Las rutas devuelven JSON uniforme cuando corresponda, con errores en la forma { "error": "mensaje" }.

Formato de respuestas

Éxito: el envío de mensajes responde con JSON y la suscripción devuelve un stream SSE con un evento ready inicial.

Errores: la API responde con 401 Unauthorized cuando falta o es inválida la API key.

CORS: las rutas públicas aceptan Content-Type y Authorization.

Métodos públicos

La API pública expone exactamente dos métodos: uno para enviar mensajes y otro para escuchar eventos entrantes.

POSTPúblico

/api/public/messages/send

Envía un mensaje desde una integración externa.

Cabeceras

  • Authorization: Bearer <apiKey>
  • Content-Type: application/json

Body

{
  "phone": "string",
  "message": "string"
}

Respuesta esperada

{
  "ok": true,
  "message": {
    "id": "message_id",
    "chatId": "12345@c.us"
  }
}

Notas

  • La API key debe pertenecer a la sesión elegida.
GETPúblico

/api/public/events

Abre un stream SSE con eventos de mensajes entrantes.

Cabeceras

  • Authorization: Bearer <apiKey>

Respuesta esperada

{
  "events": [
    {
      "event": "ready",
      "data": {
        "ok": true
      }
    },
    {
      "event": "message:create",
      "data": {
        "id": "message_id",
        "chatId": "12345@c.us"
      }
    },
    {
      "event": "message.received",
      "data": {
        "id": "message_id",
        "chatId": "12345@c.us"
      }
    }
  ]
}

Notas

  • El stream usa Server-Sent Events y mantiene la conexión abierta mientras la integración siga conectada.
  • El evento canónico es `message:create`; `message.received` se conserva como alias para compatibilidad.

Errores de la API pública

Cuando el body no pasa la validación, la API devuelve 400 con un JSON que describe el problema.

En general, el cuerpo de error usa la forma { "error": "..." }.

Si la API key no coincide con ninguna sesión válida, el backend responde con 401.

Sugerencia de implementación

Para consumir la API pública, envía siempre el header Authorization y elContent-Type correcto en los requests con body.

Si quieres reutilizar esta guía en otras automatizaciones, abre la versión Markdown de /tutorial.md.