API REST
Si quieres integrar rag.art en un producto propio (una app móvil, un CRM, un sistema interno), usa la API REST. El endpoint de chat es el mismo que usa el widget v2 — streamea la respuesta vía Server-Sent Events.
Autenticación
Dos modelos según el uso:
- Público (allowlist): para widgets incrustados en tu web, no hay API key; el endpoint
/api/chat/<bot-id>valida que elOriginestá en la allowlist del bot y aplica un rate-limit agresivo. - Server-to-server (API key): para backends propios, genera una API key en
/settings?tab=api. La pasas comoAuthorization: Bearer sk_live_xxx. No hay restricción deOrigin; el rate-limit es más laxo (ligado a tu plan).
POST /api/chat/<bot-id>
Request
{
"messages": [
{ "role": "user", "content": "¿Cuál es el horario del sábado?" }
],
"sessionId": "user-abc-123"
}
messages: historial de la conversación en formato OpenAI.sessionId: identificador opcional para agrupar una conversación a lo largo de varias llamadas (útil para analytics).
Response
Servidor envía Server-Sent Events con el texto streameado, terminando con un evento done que incluye:
{
"citations": [
{ "docId": "…", "pageUrl": "…", "snippet": "…" }
],
"usage": { "totalTokens": 1234 }
}
Si prefieres respuesta no-streaming, añade Accept: application/json — la respuesta llega completa (sin streaming).
Errores
- 400
INVALID_BODY— faltamessageso formato inválido. - 401
UNAUTHORIZED— API key inválida (solo en modo server-to-server). - 403
ORIGIN_BLOCKED— dominio no está en la allowlist. - 403
QUOTA_EXCEEDED— el dueño del bot agotó su cuota. - 429
RATE_LIMITED— demasiadas peticiones por IP/API key.
GET /api/bots/<bot-id>
Devuelve la configuración pública del bot. Útil para precargar el color, greeting y preguntas sugeridas en tu UI antes de la primera interacción.
Otros endpoints
La mayoría de acciones del dashboard (crear bot, subir documento, listar citas) están expuestas bajo /api/*, pero no están documentadas como estables todavía. Si construyes un producto sobre ellas, contacta en support@rag.art para bloquear la firma.
Rate limits por defecto
| Plan | Server-to-server | Widget público |
|---|---|---|
| Free | 30 msg/min | 10 msg/IP/min |
| Starter | 120 msg/min | 20 msg/IP/min |
| Growth | 600 msg/min | 40 msg/IP/min |
| Pro | 2 000 msg/min | 60 msg/IP/min |
Contacta para límites más altos.