Ventana de Contexto Temporal

Ventana de Contexto Temporal

Pregunta a un documento persistido tras una extracción con window_context activo.

Ventana de Contexto Temporal

Preguntas sobre un documento persistido

Endpoint

POSThttps://www.claix.dev/window-context/{document_id}

Este endpoint responde preguntas sobre un documento que ya fue extraído con window_context activo. El document_id viaja en la URL (el que devolvió la extracción) y las preguntas van en un JSON sencillo.

URL pública: POST https://www.claix.dev/window-context/{document_id}. Nunca expongas la URL directa de Supabase.

Está pensado para integraciones server-to-server. Requiere API key secreta.

1. Autenticación

Toda petición debe incluir tu API key.

Opción A — Header dedicado (recomendado):

x-api-key: <TU_API_KEY>

Opción B — Header estándar Authorization:

Authorization: Bearer <TU_API_KEY>

El sistema valida que la key exista y esté activa, y que la cuenta no esté suspendida. Si falla, responde 401.

2. Formato de la petición

Método HTTP: POST · Content-Type: application/json

El document_id (UUID) forma parte de la ruta. El body tiene un único campo:

CampoTipoObligatorioDescripción
questionsarray de stringsPreguntas a responder usando solo el markdown persistido del documento. Máximo 5 por turno. Máximo 400 caracteres por pregunta.
{
  "questions": [
    "¿Cuál es la penalización exacta por cancelación anticipada?",
    "¿Qué empresa figura como arrendataria y cuál es su CIF?"
  ]
}
  • Al menos 1 pregunta; máximo 5.
  • Cada string debe tener contenido (no solo espacios).
  • El documento debe pertenecer a la cuenta de la API key y no haber expirado.

3. Cómo construir la llamada

  1. Extrae un archivo con window_context: true y guarda el document_id de la respuesta.
  2. Ten a mano tu API key.
  3. POST a https://www.claix.dev/window-context/<document_id>.
  4. Envía { "questions": ["..."] } como JSON.
  5. Comprueba HTTP 200 y lee ia_response.

4. Ejemplos de llamada

Consulta el panel de la derecha para ver ejemplos en cURL, JavaScript, Node.js, Python, PHP y n8n.

5. Formato de la respuesta exitosa

Código de estado: 200 OK · Content-Type: application/json

{
  "user_ask": [
    "¿Cuál es la penalización exacta por cancelación anticipada?",
    "¿Qué empresa figura como arrendataria y cuál es su CIF?"
  ],
  "ia_response": [
    "El 15 % del importe restante del contrato.",
    "Inversiones Delta S.L., CIF B12345678"
  ]
}
CampoTipoDescripción
user_askarray de stringsLas preguntas enviadas, en el mismo orden.
ia_responsearray de string o nullRespuestas alineadas 1:1 con user_ask. Si el dato no está en el documento, el valor es null (JSON nativo, no un texto).

6. Códigos de error

{
  "error": "Descripción legible del problema.",
  "detalle": "Información técnica adicional (solo presente en algunos casos)."
}

400 — document_id inválido, JSON mal formado, questions ausente, vacío, más de 5 ítems, o una pregunta supera 400 caracteres.

401 — API key ausente, inválida, desactivada o cuenta no activa.

404 — El documento no existe, no pertenece a la cuenta, o ha expirado.

502 — Fallo del servicio de IA. 405 — Método distinto de POST. 500 — Error interno.

7. Resumen rápido de códigos de error

CódigoCategoría¿Reintentar?
200Éxito
400Error del cliente (documento o datos mal formados)No, corrige la petición primero
401Error de autenticaciónNo, corrige las credenciales primero
404Recurso no encontradoNo, corrige el schema_id primero
405Método HTTP incorrectoNo, corrige el método primero
413Archivo o texto extraído demasiado grandeNo, reduce el tamaño primero
422Sin datos extraíblesNo, revisa el documento/schema primero
500Error interno del servidorSí, con precaución
502Fallo del servicio de IASí, recomendado con backoff

Ejemplos de petición

curl -X POST "https://www.claix.dev/window-context/3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f" \
  -H "x-api-key: <TU_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "questions": [
      "¿Cuál es la penalización exacta por cancelación anticipada?",
      "¿Qué empresa figura como arrendataria y cuál es su CIF?"
    ]
  }'