Referencia de la API REST de la plataforma Quickchat AI: autenticación, URL base, límites de tasa, paginación y manejo de errores.
Quickchat AI ofrece una API REST para acceder de forma programática a la configuración de tu Agente de IA, la Base de Conocimiento, las Conversaciones, las AI Actions y mucho más.
Comprobaciones opcionales con ejemplos
Sección titulada «Comprobaciones opcionales con ejemplos»-
Comparar métodos de implementación. Compara los canales, el acceso al sitio y las funciones que declares con las opciones de Quickchat AI. No se inspeccionan tu sitio ni tu cuenta.
-
Comprobar una conexión MCP de ejemplo. Inicializa y enumera herramientas solo en el endpoint de documentación de Cloudflare o Microsoft Learn. No inicia sesión ni ejecuta herramientas.
Autenticación
Sección titulada «Autenticación»Todos los endpoints de la API usan autenticación mediante Bearer token. Incluye tu token de API en el encabezado Authorization de cada petición:
Authorization: Bearer <API_TOKEN>Los tokens se crean en el Dashboard de Quickchat en External Apps > API. Cada token es un JWT que contiene tu scenario_id, por lo que no se necesita ningún encabezado identificador adicional.
- Validez del token: 52 semanas desde su creación
- Los tokens pueden revocarse en cualquier momento desde el Dashboard
- Cada token está vinculado a un único Agente de IA (scenario)
- La creación de tokens requiere el plan Business o superior; en los planes inferiores la opción está deshabilitada y el endpoint devuelve
402 Payment Required
El endpoint de Chat en tiempo real (POST https://app.quickchat.ai/chat) acepta el mismo Bearer token que el resto de esta API, pero está fuera de la ruta base /v1/api/ y requiere scenario_id en el cuerpo de la petición. Consulta la página de Chat para la referencia completa.
Token Scopes
Sección titulada «Token Scopes»Los tokens de API se crean con uno de dos scopes:
| Scope | Access Level | Description |
|---|---|---|
read_all | Solo lectura | Puede leer todos los recursos pero no crear, actualizar ni eliminar |
write_all | Lectura + Escritura | Acceso completo a todos los endpoints, incluidas las operaciones de escritura |
- A los tokens se les asigna un scope al crearse en el Dashboard, en External Apps > API
- El scope
write_allincluye automáticamente todos los permisos deread_all - Usar un token
read_allen un endpoint de escritura devuelve403con"Insufficient token scope. Required: write_all"
Usa tokens read_all para monitorización, analítica e integraciones de solo lectura. Usa tokens write_all únicamente cuando tu integración necesite crear o modificar recursos.
Requisitos de scope por grupo de endpoints:
| Endpoint Group | Read Operations | Write Operations |
|---|---|---|
| Chatbot Settings | read_all | write_all |
| Knowledge Base Settings | read_all | write_all |
| Articles | read_all | write_all |
| Article Language URLs | read_all | write_all |
| Tags | read_all | — |
| File Upload | — | write_all |
| Import External Content | — | write_all |
| Intercom Knowledge Base | read_all | write_all |
| Widget Configuration | read_all | write_all |
| Conversations | read_all | — |
| Conversation Metadata | read_all | write_all |
| Handoff Configuration | read_all | write_all |
| Conversation Rating | read_all | write_all |
| AI Actions | read_all | write_all |
URL base
Sección titulada «URL base»| Endpoint Group | Base URL |
|---|---|
| Knowledge Base, AI Actions, File Upload, Import, Chatbot Settings, Widget, Handoff, Conversation Rating | https://app.quickchat.ai/v1/api/ |
| Conversations | https://app.quickchat.ai/v1/api_core/ |
| Realtime Chat | https://app.quickchat.ai/chat |
Límites de tasa
Sección titulada «Límites de tasa»Los límites de tasa se aplican por token y por endpoint.
| Tier | Limit | Applies To |
|---|---|---|
| READ | 120 peticiones/min | Operaciones GET y de listado |
| WRITE | 60 peticiones/min | POST, PATCH, PUT, DELETE |
| HEAVY | 20 peticiones/min | Carga de archivos, importaciones, scraping |
Cuando se excede un límite de tasa, la API devuelve HTTP 429 Too Many Requests.
Webhooks
Sección titulada «Webhooks»Quickchat AI no envía webhooks salientes. No hay forma de suscribirse a un evento para que hagamos un POST a tu endpoint cuando llega un mensaje, se transfiere una conversación o se cierra una conversación.
Las alternativas disponibles tienen distintas finalidades:
- Acciones de IA: llaman a tu API durante una conversación. Las API Actions ofrecen los modos La IA decide, Antes de la primera respuesta y Cuando coinciden los metadatos. Los modos automáticos intentan realizar una llamada una vez por conversación bajo las condiciones documentadas; no son suscripciones a cada mensaje o transferencia. Úsalos para tareas como registrar un lead o avisar a tu sistema cuando estén disponibles los datos necesarios.
- Google Sheets: añade una fila cuando se ejecuta su Action. No registra automáticamente cada mensaje o transferencia.
- Sondear la API de Conversations: recupera las conversaciones almacenadas y sus eventos, incluidos los mensajes y los marcadores de transferencia que se hayan registrado. Sigue la paginación y respeta el límite de tasa READ indicado arriba. El sondeo introduce un retraso; comparar el estado de las conversaciones entre sondeos puede pasar por alto cambios intermedios. No des por hecho que proporciona un historial exhaustivo de todas las transferencias o los cambios de asignación.
El acceso a la API requiere el plan Business, consulta Planes y límites.
Paginación
Sección titulada «Paginación»Los endpoints de listado admiten paginación mediante parámetros de consulta:
| Parameter | Description |
|---|---|
limit integer | Número de elementos por página |
offset integer | Número de elementos a omitir |
Las respuestas paginadas siguen esta estructura:
{ "items": [], "offset": 0, "limit": 10, "count": 100}Manejo de errores
Sección titulada «Manejo de errores»Todos los errores se devuelven como JSON en el siguiente formato:
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Entrada no válida o campos obligatorios faltantes |
| 401 | PERMISSION_DENIED | Token no válido, expirado o revocado |
| 402 | PAYMENT_REQUIRED | Se requiere una suscripción activa |
| 403 | PERMISSION_DENIED | El token carece del scope necesario para esta operación |
| 404 | NOT_FOUND | Recurso no encontrado |
| 409 | CONFLICT | Operación en conflicto (p. ej., modificación concurrente) |
| 422 | VALIDATION_ERROR | El cuerpo de la petición no pasó la validación del esquema |
| 429 | TOO_MANY_REQUESTS | Límite de tasa excedido |
| 500 | UNKNOWN | Error interno del servidor |
| 503 | SERVICE_UNAVAILABLE | Indisponibilidad temporal |