Ir al contenido

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.

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

Los tokens de API se crean con uno de dos scopes:

ScopeAccess LevelDescription
read_allSolo lecturaPuede leer todos los recursos pero no crear, actualizar ni eliminar
write_allLectura + EscrituraAcceso 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_all incluye automáticamente todos los permisos de read_all
  • Usar un token read_all en un endpoint de escritura devuelve 403 con "Insufficient token scope. Required: write_all"

Requisitos de scope por grupo de endpoints:

Endpoint GroupRead OperationsWrite Operations
Chatbot Settingsread_allwrite_all
Knowledge Base Settingsread_allwrite_all
Articlesread_allwrite_all
Article Language URLsread_allwrite_all
Tagsread_all
File Uploadwrite_all
Import External Contentwrite_all
Intercom Knowledge Baseread_allwrite_all
Widget Configurationread_allwrite_all
Conversationsread_all
Conversation Metadataread_allwrite_all
Handoff Configurationread_allwrite_all
Conversation Ratingread_allwrite_all
AI Actionsread_allwrite_all
Endpoint GroupBase URL
Knowledge Base, AI Actions, File Upload, Import, Chatbot Settings, Widget, Handoff, Conversation Ratinghttps://app.quickchat.ai/v1/api/
Conversationshttps://app.quickchat.ai/v1/api_core/
Realtime Chathttps://app.quickchat.ai/chat

Los límites de tasa se aplican por token y por endpoint.

TierLimitApplies To
READ120 peticiones/minOperaciones GET y de listado
WRITE60 peticiones/minPOST, PATCH, PUT, DELETE
HEAVY20 peticiones/minCarga de archivos, importaciones, scraping

Cuando se excede un límite de tasa, la API devuelve HTTP 429 Too Many Requests.

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.

Para sacar los datos a medida que ocurren las cosas, usa una de estas opciones:

  • Acciones de IA: la IA llama a tu API en mitad de la conversación. Es lo más parecido a un webhook y funciona por push, no por sondeo: se llama a tu endpoint mientras la conversación está en curso. Se dispara cuando la IA decide que la acción corresponde, así que encaja mejor con “avisar a mi sistema de este lead” que con “avisar a mi sistema de cada mensaje”.
  • Google Sheets: añade una fila por evento sin tener que construir un endpoint.
  • Sondear la API de Conversations: para un registro completo. Ten en cuenta el límite READ de arriba.

El acceso a la API requiere el plan Business, consulta Planes y límites.

Los endpoints de listado admiten paginación mediante parámetros de consulta:

ParameterDescription
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
}

Todos los errores se devuelven como JSON en el siguiente formato:

{
"errors": {
"root": [
{
"message": "Description of the error",
"code": "ERROR_CODE"
}
]
}
}
StatusCodeDescription
400BAD_REQUESTEntrada no válida o campos obligatorios faltantes
401PERMISSION_DENIEDToken no válido, expirado o revocado
402PAYMENT_REQUIREDSe requiere una suscripción activa
403PERMISSION_DENIEDEl token carece del scope necesario para esta operación
404NOT_FOUNDRecurso no encontrado
409CONFLICTOperación en conflicto (p. ej., modificación concurrente)
422VALIDATION_ERROREl cuerpo de la petición no pasó la validación del esquema
429TOO_MANY_REQUESTSLímite de tasa excedido
500UNKNOWNError interno del servidor
503SERVICE_UNAVAILABLEIndisponibilidad temporal

Última actualización: