Skip to main content
Endpoint para enviar un mensaje al agente y recibir la respuesta completa en un solo payload. Usa este endpoint cuando no necesites streaming.
Para respuestas en tiempo real, usa el endpoint de streaming.

Request

POST https://api.thaliq.com/api/agent/chat

Headers

Ver Autenticacion para el detalle completo. Headers comunes:
HeaderRequeridoDescripcion
X-API-KeySiAPI Key del tenant. Resuelve tambien el agente si la key esta asociada a uno
Content-TypeSiapplication/json
X-Integration-TypeNowidget o sdk (filtra tools por requiresAuth)
X-User-IdNoID del usuario final (tracking)
X-Participant-IdNoFingerprint del visitante (anon)
X-MCP-TokensNoJSON con tokens MCP por server
AuthorizationNoBearer <jwt> (passthrough MCP)

Body

{
  "message": "¿Cuales son los horarios de atencion?",
  "conversationId": "conv_abc123",
  "agentId": "agent_uuid",
  "channel": "widget"
}
CampoTipoRequeridoDescripcion
messagestringSiEl mensaje del usuario
conversationIdstringNoID de conversacion existente para mantener contexto. Si se omite o expiro el session timeout, el backend crea una nueva
agentIdstringNoOverride del agente. Si se omite, se usa el agente bindeado a la API key (o el default del tenant si no hay binding)
agentTypestringNo'general' por defecto
channelstringNo'platform' | 'widget' | 'sdk' | 'studio' | 'whatsapp' | 'telegram' | 'slack'. Afecta filtrado en stats e inbox
actionResponseobjectNoRespuesta a una accion HITL pendiente (consent/confirm/select/form). Solo aplicable cuando se esta resumiendo un turno suspendido

Response

{
  "success": true,
  "data": {
    "message": "Nuestro horario de atencion es de lunes a viernes de 9am a 6pm.",
    "conversationId": "conv_abc123"
  }
}
CampoTipoDescripcion
successbooleanSi la peticion fue exitosa
data.messagestringLa respuesta del agente
data.conversationIdstringID de la conversacion (usar para mensajes siguientes)

Ejemplo con curl

curl -X POST https://api.thaliq.com/api/agent/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: tq_live_xxx" \
  -d '{
    "message": "¿Cuales son los horarios de atencion?"
  }'

Ejemplo con JavaScript

const response = await fetch('https://api.thaliq.com/api/agent/chat', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'tq_live_xxx',
  },
  body: JSON.stringify({
    message: '¿Cuales son los horarios de atencion?',
  }),
});

const data = await response.json();
console.log(data.data.message);
// → "Nuestro horario de atencion es de lunes a viernes de 9am a 6pm."

Continuando una conversacion

Usa el conversationId de la primera respuesta para mantener el contexto:
// Primer mensaje
const res1 = await fetch('https://api.thaliq.com/api/agent/chat', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'tq_live_xxx',
  },
  body: JSON.stringify({ message: 'Hola, necesito ayuda' }),
});
const data1 = await res1.json();
const conversationId = data1.data.conversationId;

// Segundo mensaje (con contexto)
const res2 = await fetch('https://api.thaliq.com/api/agent/chat', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'tq_live_xxx',
  },
  body: JSON.stringify({
    message: '¿Cuanto cuesta el plan Growth?',
    conversationId,
  }),
});