Changelog
Um registro público das mudanças da API. Mudanças aditivas e compatíveis com versões anteriores (novos campos opcionais); mudanças incompatíveis são sinalizadas explicitamente — as integrações existentes continuam funcionando sem alterações.
2026-06-30 — OCR multiprovedor (BYOK)
Incompatível. O estágio de OCR agora recebe ocr.{provider, model, providerKey} (era
ocr.mistralApiKey). Escolha qualquer provedor suportado — o Mistral é o padrão
(mistral-ocr-latest). O model é obrigatório. Novos marcadores de erro de OCR
(provider_auth_failed, provider_key_required, rate_limited, ocr_timeout,
ocr_backend_*, too_many_pages) substituem mistral_key_required.
2026-06-26 — Chaves de idempotência
POST /v1/jobs aceita idempotencyKey. Repetir com a mesma chave e parâmetros idênticos
retorna o job original; a mesma chave com parâmetros diferentes retorna
400.
2026-06-24 — webhooks de conclusão de job
- Novos campos
webhookUrlewebhookSecret(ambos opcionais) na criação do job.webhookUrlé um endpointhttp/httpsabsoluto; o serviço faz um POST nele uma única vez, com um corpo JSON (job_id,account_id,status,finished_at), quando o job atinge um status terminal.webhookSecreté um segredo HMAC: quando definido, cada requisição inclui os cabeçalhosX-Hotdoc-TimestampeX-Hotdoc-Signature(sha256=hex(hmac_sha256(secret, "<ts>.<body>"))). Ambos os campos são aceitos apenas como entrada e nunca aparecem nas respostas. Política de retentativas: até 6 tentativas com atrasos de 1 m / 5 m / 15 m / 30 m / 30 m. Veja “Webhooks” para detalhes.
2026-06-24 — chunking consciente da estrutura e tamanho de chunk configurável
- Chunking de texto consciente da estrutura. O texto reconhecido longo agora é cortado ao longo dos limites da estrutura do seu formato (Markdown / HTML / XML / plain): as tabelas não são rasgadas no meio de uma linha (o cabeçalho de uma tabela é repetido em cada chunk), e o contexto dos títulos de seção é preservado. O comportamento anterior (chunks como linhas
llm[]separadas, identificadas porchunkIndex/chunkTotal) permanece inalterado — o serviço continua não mesclando os chunks. - Novo campo
neural.chunkBudgetTokens(opcional) na criação do job — orçamento de tokens por chunk para a janela de contexto do seu modelo; faixa16000–2000000, com padrão no valor conservador do serviço. A resposta ecoa o orçamento efetivo real. - Novo campo
ocr[].outputFormatno resultado do job — o formato do texto reconhecido (markdown/html/xml/plain).