Changelog
Un registro público de los cambios de la API. Cambios aditivos y compatibles hacia atrás (nuevos campos opcionales); los cambios incompatibles se marcan de forma explícita: las integraciones existentes siguen funcionando sin cambios.
2026-06-30 — OCR multiproveedor (BYOK)
Cambio incompatible. La etapa de OCR ahora toma ocr.{provider, model, providerKey} (antes
ocr.mistralApiKey). Elija cualquier proveedor compatible — Mistral es el predeterminado
(mistral-ocr-latest). model es obligatorio. Los nuevos marcadores de error de OCR
(provider_auth_failed, provider_key_required, rate_limited, ocr_timeout,
ocr_backend_*, too_many_pages) reemplazan a mistral_key_required.
2026-06-26 — Claves de idempotencia
POST /v1/jobs acepta idempotencyKey. Reintentar con la misma clave y parámetros idénticos
devuelve la tarea original; la misma clave con parámetros diferentes devuelve
400.
2026-06-24 — webhooks de finalización de tareas
- Nuevos campos
webhookUrlywebhookSecret(ambos opcionales) al crear una tarea.webhookUrles un endpoint absolutohttp/https; el servicio le envía un POST una vez con un cuerpo JSON (job_id,account_id,status,finished_at) cuando la tarea alcanza un estado terminal.webhookSecretes un secreto HMAC: cuando está definido, cada solicitud incluye las cabecerasX-Hotdoc-TimestampyX-Hotdoc-Signature(sha256=hex(hmac_sha256(secret, "<ts>.<body>"))). Ambos campos se aceptan solo como entrada y nunca aparecen en las respuestas. Política de reintentos: hasta 6 intentos con retrasos de 1 m / 5 m / 15 m / 30 m / 30 m. Consulte «Webhooks» para más detalles.
2026-06-24 — división consciente de la estructura y tamaño de fragmento configurable
- División de texto consciente de la estructura. El texto reconocido largo ahora se corta por los límites de la estructura de su formato (Markdown / HTML / XML / plain): las tablas no se rompen a mitad de fila (el encabezado de una tabla se repite en cada fragmento) y se preserva el contexto de los encabezados de sección. El comportamiento anterior (fragmentos como filas
llm[]independientes identificadas porchunkIndex/chunkTotal) no cambia: el servicio sigue sin fusionar los fragmentos. - Nuevo campo
neural.chunkBudgetTokens(opcional) al crear una tarea: presupuesto de tokens por fragmento para la ventana de contexto de su modelo; rango16000–2000000, por defecto el valor conservador del servicio. La respuesta devuelve el presupuesto efectivo real. - Nuevo campo
ocr[].outputFormaten el resultado de la tarea: el formato del texto reconocido (markdown/html/xml/plain).