Para respuestas en tiempo real, usa el endpoint de streaming.
Request
Headers
Ver Autenticacion para el detalle completo. Headers comunes:| Header | Requerido | Descripcion |
|---|---|---|
X-API-Key | Si | API Key del tenant. Resuelve tambien el agente si la key esta asociada a uno |
Content-Type | Si | application/json |
X-Integration-Type | No | widget o sdk (filtra tools por requiresAuth) |
X-User-Id | No | ID del usuario final (tracking) |
X-Participant-Id | No | Fingerprint del visitante (anon) |
X-MCP-Tokens | No | JSON con tokens MCP por server |
Authorization | No | Bearer <jwt> (passthrough MCP) |
Body
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
message | string | Si | El mensaje del usuario |
conversationId | string | No | ID de conversacion existente para mantener contexto. Si se omite o expiro el session timeout, el backend crea una nueva |
agentId | string | No | Override del agente. Si se omite, se usa el agente bindeado a la API key (o el default del tenant si no hay binding) |
agentType | string | No | 'general' por defecto |
channel | string | No | 'platform' | 'widget' | 'sdk' | 'studio' | 'whatsapp' | 'telegram' | 'slack'. Afecta filtrado en stats e inbox |
actionResponse | object | No | Respuesta a una accion HITL pendiente (consent/confirm/select/form). Solo aplicable cuando se esta resumiendo un turno suspendido |
Response
| Campo | Tipo | Descripcion |
|---|---|---|
success | boolean | Si la peticion fue exitosa |
data.message | string | La respuesta del agente |
data.conversationId | string | ID de la conversacion (usar para mensajes siguientes) |
Ejemplo con curl
Ejemplo con JavaScript
Continuando una conversacion
Usa elconversationId de la primera respuesta para mantener el contexto:

