Skip to content

Vision General API

La REST API de Queria permite integrar las funcionalidades de busqueda documental inteligente, chat IA y gestion de documentos dentro de cualquier aplicacion.

Base URL

Todas las peticiones API usan la siguiente base URL:

https://api.queria.pro

La API sigue el versionado via path. La version actual es v3.5.0. Los endpoints publicos son accesibles bajo /api/public/, los autenticados bajo /api/.

Formato de las respuestas

Todas las respuestas son en formato JSON con estructura consistente.

Respuesta exitosa:

json
{
  "success": true,
  "data": {
    "id": "doc_8f3a2b1c",
    "name": "Contrato Suministro 2025",
    "status": "VECTORIZED",
    "createdAt": "2026-02-15T10:30:00Z"
  }
}

Respuesta paginada:

json
{
  "success": true,
  "data": {
    "items": [],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 143,
      "totalPages": 8
    }
  }
}

Respuesta de error:

json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "El campo 'message' es obligatorio.",
    "details": [
      { "field": "message", "reason": "Campo requerido" }
    ]
  }
}

Codigos de estado HTTP

CodigoSignificadoDescripcion
200OKPeticion completada con exito
201CreatedRecurso creado con exito
400Bad RequestParametros faltantes o no validos
401UnauthorizedAutenticacion faltante o no valida
403ForbiddenPermisos insuficientes para la operacion
404Not FoundRecurso no encontrado
429Too Many RequestsLimite de peticiones superado
500Internal Server ErrorError interno del servidor

Rate limiting

La API aplica limites de frecuencia para garantizar estabilidad y rendimiento.

Tipo de endpointLimiteVentana
Endpoints publicos60 peticiones1 minuto
Endpoints autenticados300 peticiones1 minuto
Upload documentos10 peticiones1 minuto
Chat streaming20 peticiones1 minuto

Las respuestas incluyen cabeceras informativas sobre el rate limit:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1709542800

Cuando se supera el limite, la API devuelve un error 429:

json
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Limite de peticiones superado. Reintenta en 23 segundos.",
    "retryAfter": 23
  }
}

Content-Type

Todas las peticiones JSON deben incluir la cabecera:

Content-Type: application/json

Para los uploads de archivo, usa:

Content-Type: multipart/form-data

Autenticacion

La API soporta dos metodos de autenticacion:

  • JWT Token: para sesiones de usuario en aplicaciones web. Incluido via cabecera Authorization: Bearer {token}.
  • API Key: para integraciones server-to-server y widgets. Incluida via cabecera X-API-Key.

Las API Key siguen el formato qk_live_* para produccion y qk_test_* para entornos de test.

Para los detalles completos consulta la guia de autenticacion.

Ejemplo rapido

Una llamada tipica a la chat API con autenticacion via API Key:

bash
curl -X POST https://api.queria.pro/api/public/chat/stream \
  -H "Content-Type: application/json" \
  -H "X-API-Key: qk_live_abc123def456ghi789" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Cuales son las clausulas principales del contrato?",
    "sessionId": "sess_a1b2c3d4"
  }'

Respuesta streaming (Server-Sent Events):

data: {"type":"token","content":"Las clausulas"}
data: {"type":"token","content":" principales del contrato"}
data: {"type":"token","content":" son las siguientes [1]:"}
data: {"type":"sources","sources":[{"id":"doc_8f3a","name":"Contrato Suministro","score":0.92}]}
data: {"type":"done","citationMap":{"1":{"documentId":"doc_8f3a","chunkId":"chk_001"}}}

Endpoints principales

Autenticacion

MetodoEndpointDescripcion
POST/api/auth/loginLogin usuario
POST/api/auth/registerRegistro
POST/api/auth/refreshRefresh token
POST/api/auth/logoutLogout

Chat

MetodoEndpointDescripcion
GET/api/conversationsLista conversaciones
POST/api/conversationsNueva conversacion
POST/api/chat/messageEnvia mensaje
POST/api/chat/streamChat streaming

Documentos

MetodoEndpointDescripcion
GET/api/documentsLista documentos
POST/api/documents/uploadUpload documento
GET/api/documents/:idDetalle documento
PUT/api/documents/:idActualiza documento
DELETE/api/documents/:idElimina documento

Topics

MetodoEndpointDescripcion
GET/api/topicsLista categorias
POST/api/topicsCrea categoria
PUT/api/topics/:idActualiza categoria
DELETE/api/topics/:idElimina categoria

Empresas

MetodoEndpointDescripcion
GET/api/companiesLista empresas
GET/api/companies/:idDetalle empresa
PUT/api/companies/:idActualiza empresa

API Publicas (Widget)

MetodoEndpointDescripcion
POST/api/public/chatChat no streaming
POST/api/public/chat/streamChat streaming SSE
POST/api/public/search/webBusqueda web
GET/api/public/topicsLista categorias

Paginacion

Query parameters estandar para las listas:

ParametroDefaultDescripcion
page1Numero de pagina
limit20Elementos por pagina (max 100)
sortcreatedAtCampo de ordenacion
orderdescDireccion: asc o desc

Ejemplo:

bash
curl -X GET "https://api.queria.pro/api/documents?page=2&limit=50&sort=name&order=asc" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Webhook (Coming Soon)

Notificaciones para eventos asincronos:

  • document.uploaded - Documento subido
  • document.vectorized - Procesamiento completado
  • document.error - Error de procesamiento
  • conversation.created - Nueva conversacion

SDK

SDK oficiales en desarrollo:

  • JavaScript / TypeScript
  • Python
  • PHP

Mientras tanto, usa la REST API directamente con cualquier cliente HTTP.

Proximos pasos

Queria - Document Intelligence con Cog-RAG