RAGfly — REST Interface
Direct API access from any language or platform (Python, Node, n8n, Make, Zapier, curl).
Base URL: https://api.ragfly.ai
Interactive Swagger: https://api.ragfly.ai/docs
Authentication
All routes require the header:
Authorization: Bearer <token>
<token> can be a JWT (1 h, interactive login) or an API Key (slm_live_…, long-lived). See INTEGRATION.md § Credentials.
Core endpoints
Authentication
| Method | Route | Description |
|---|---|---|
POST |
/auth/login |
JWT with email/password |
GET |
/auth/me |
Authenticated user context |
POST |
/auth/api-key |
Create API Key |
GET |
/auth/api-key |
List user's API Keys |
DELETE |
/auth/api-key/{prefix} |
Revoke API Key |
Documents
| Method | Route | Description |
|---|---|---|
GET |
/documentos/paginado |
List documents with filters (codigo_estado_doc, limit, page) |
GET |
/documentos/{codigo} |
Document detail |
POST |
/documentos/buscar-semantico |
Semantic search without LLM. Body: {"q": "...", "limit": 10} |
Workspaces
| Method | Route | Description |
|---|---|---|
GET |
/espacios-trabajo/paginado |
List workspaces |
GET |
/espacios-trabajo/{id}/documentos/paginado |
Documents in a workspace |
LLM Skills
| Method | Route | Description |
|---|---|---|
GET |
/habilidades |
Skills catalog |
GET |
/habilidades/{codigo} |
Skill detail |
POST |
/habilidades/{codigo}/ejecutar |
Queue execution. Body: {"id_espacio": N} or {"codigo_documento": "X"} |
Pipeline
| Method | Route | Description |
|---|---|---|
GET |
/cola-estados-docs/paginado |
Queue state (estado, proceso, limit) |
Conversational interface (chat + RAG)
| Method | Route | Description |
|---|---|---|
POST |
/chat/conversaciones |
Create conversation. Body: {"codigo_funcion": "CHAT-USUARIO"} |
GET |
/chat/conversaciones |
List user conversations |
GET |
/chat/conversaciones/{id} |
Messages in a conversation |
POST |
/chat/conversaciones/{id}/mensajes/stream |
Send message → SSE response |
DELETE |
/chat/conversaciones/{id} |
Delete conversation |
SSE protocol (chat response)
The mensajes/stream endpoint returns Content-Type: text/event-stream:
data: {"text": "response fragment"}\n\n
data: {"text": "another fragment"}\n\n
data: {"done": true, "id_mensaje_user": 477, "id_mensaje_assistant": 478}\n\n
Error mid-stream:
data: {"error": "error description"}\n\n
Examples
Python — semantic search
import os, httpx
BASE = "https://api.ragfly.ai"
HEADERS = {"Authorization": f"Bearer {os.environ['RAGFLY_API_KEY']}"}
r = httpx.post(
f"{BASE}/documentos/buscar-semantico",
headers=HEADERS,
json={"q": "active maintenance contracts", "limit": 5},
)
r.raise_for_status()
for chunk in r.json()["resultados"]:
print(chunk["codigo_documento"], chunk["similitud_max"], chunk["texto"][:200])
curl — list vectorized documents
curl "https://api.ragfly.ai/documentos/paginado?codigo_estado_doc=VECTORIZADO&limit=10" \
-H "Authorization: Bearer slm_live_xxxxxxxxxx"
n8n / Make / Zapier
- HTTP Request node
- URL:
https://api.ragfly.ai/<route> - Authentication: Header Auth
- Header name:
Authorization - Header value:
Bearer slm_live_xxxxxxxxxx(store in workspace credentials)
Rate limits
| Endpoint | Limit |
|---|---|
POST /chat/conversaciones |
20 / min per API Key |
POST /chat/conversaciones/{id}/mensajes/stream |
30 / min per API Key |
Response when exceeded: 429 Too Many Requests. Retry after 60 s.