Changelog
Journal public des modifications de l’API. Changements additifs et rétrocompatibles (nouveaux champs facultatifs) ; les changements cassants sont signalés explicitement — les intégrations existantes continuent de fonctionner sans modification.
2026-06-30 — OCR multi-fournisseurs (BYOK)
Cassant. L’étape OCR prend désormais ocr.{provider, model, providerKey} (auparavant
ocr.mistralApiKey). Choisissez n’importe quel fournisseur pris en charge — Mistral est le fournisseur par défaut
(mistral-ocr-latest). model est requis. De nouveaux marqueurs d’erreur OCR
(provider_auth_failed, provider_key_required, rate_limited, ocr_timeout,
ocr_backend_*, too_many_pages) remplacent mistral_key_required.
2026-06-26 — Clés d’idempotence
POST /v1/jobs accepte idempotencyKey. Réessayer avec la même clé et des paramètres
identiques renvoie le job d’origine ; la même clé avec des paramètres différents renvoie
400.
2026-06-24 — webhooks de fin de job
- Nouveaux champs
webhookUrletwebhookSecret(tous deux facultatifs) à la création d’un job.webhookUrlest un endpoint absoluhttp/https; le service y envoie unPOSTune fois, avec un corps JSON (job_id,account_id,status,finished_at), lorsque le job atteint un statut terminal.webhookSecretest un secret HMAC : lorsqu’il est défini, chaque requête inclut les en-têtesX-Hotdoc-TimestampetX-Hotdoc-Signature(sha256=hex(hmac_sha256(secret, "<ts>.<body>"))). Les deux champs sont acceptés uniquement en entrée et n’apparaissent jamais dans les réponses. Politique de réessai : jusqu’à 6 tentatives avec des délais de 1 m / 5 m / 15 m / 30 m / 30 m. Voir « Webhooks » pour les détails.
2026-06-24 — découpage conscient de la structure et taille de chunk configurable
- Découpage du texte conscient de la structure. Le texte reconnu long est désormais coupé le long des frontières de la structure de son format (Markdown / HTML / XML / plain) : les tableaux ne sont pas déchirés au milieu d’une ligne (l’en-tête d’un tableau est répété dans chaque chunk), et le contexte des titres de section est préservé. Le comportement précédent (les chunks comme lignes
llm[]distinctes indexées parchunkIndex/chunkTotal) reste inchangé — le service ne fusionne toujours pas les chunks. - Nouveau champ
neural.chunkBudgetTokens(facultatif) à la création d’un job — budget de tokens par chunk pour la fenêtre de contexte de votre modèle ; plage16000–2000000, par défaut la valeur conservatrice du service. La réponse renvoie le budget effectif réel. - Nouveau champ
ocr[].outputFormatdans le résultat du job — le format du texte reconnu (markdown/html/xml/plain).