estabilidade

O que muda na API, quando muda e com quanto aviso.

Quem integra por código precisa saber o que pode mudar debaixo dos pés. Esta página tem as duas respostas: a política que rege a superfície /v1 e o histórico do que já mudou.

Política de versionamento

Aditivo entra quando estiver pronto
Campo novo na resposta, rota nova, valor novo num enum de saída e header novo não são quebra e entram sem aviso prévio. Escreva o seu cliente para ignorar o que não conhece.
Quebra não entra em /v1
Remover ou renomear campo, estreitar tipo, endurecer validação de entrada ou trocar o significado de um valor exige caminho novo — nunca uma edição no lugar.
Desligar exige 180 dias de aviso
Uma rota só sai depois de anunciada como depreciada e de cumprir o prazo mínimo, contado do anúncio. O prazo está no contrato, não na boa vontade.
Como o aviso chega até você

O anúncio não depende de você ler esta página. Enquanto existir, uma rota depreciada responde com os headers padrão — e o seu cliente HTTP consegue reagir a eles sozinho:

  • Deprecation (RFC 9745) — a data do anúncio.
  • Sunset (RFC 8594) — a data a partir da qual a rota pode deixar de responder.
  • Link — para esta política e, quando existe substituta, para o caminho que assume.

A lista completa também é legível por máquina em GET /, no campo stability.deprecations.

Rotas depreciadas hoje

Nenhuma. Toda rota publicada em /v1 segue em vigor, sem data de desligamento.

Histórico de mudanças

O que passou a existir ou a funcionar diferente para quem integra: rota, campo, header, código de erro, custo em créditos e regra de entrega.

setembro de 2026

  1. Novo

    Resolver uma norma federal citada, no registro oficial e sob demanda

    POST /v1/legal-norms/resolve recebe a citação como ela é escrita — "Lei 8.078/1990, art. 6º, VIII", "CDC art. 6", "art. 5º, LXXVIII, da CF", "LC 123/2006", "MP 1.172/2023" — ou o par tipo, número e ano, e responde o que o registro oficial de normas federais declara sobre o ato: se ele consta, os apelidos pelos quais é citado, a ementa, quantas alterações permanentes sofreu e se foi revogado no todo, convertido em lei ou rejeitado. A consulta vai VIVA ao registro a cada chamada, então a resposta é a de agora, e nada do que ela lê fica guardado aqui. A resposta é explícita sobre o que NÃO prova: ela não confere o teor do artigo citado nem afirma que ele existe, e não afirma vigência — ausência de declaração de revogação não é prova de que a norma esteja em vigor, e por isso não existe um estado IN_FORCE. Três desfechos que se pareceriam com ausência vêm separados: NOT_FOUND (o ato não consta do registro), OUT_OF_REACH (o tipo de ato está fora do registro, que cobre lei, lei complementar, decreto-lei, decreto, medida provisória, emenda constitucional e a Constituição) e UNRECOGNIZED (a citação não foi entendida). Os dois últimos são decididos antes de qualquer consulta e não debitam crédito. A mesma capacidade está no canal agentic como resolver_norma_federal. A chave de teste recusa a porta: não há acervo de legislação a reler.

    POST /v1/legal-norms/resolveMCP
  2. Mudou

    A conferência de cobertura por nome confere o saldo antes de ir à fonte

    GET /v1/monitors/coverage-review vai VIVA ao diário e cobra como uma consulta por nome. A partir de agora ela confere a cota da conta antes de consultar, como as demais consultas cobradas: sem saldo, a resposta é 402 na hora, em vez de uma consulta que estoura o teto do ciclo. Quem tem saldo não nota diferença.

    GET /v1/monitors/coverage-review
  3. Mudou

    O push de um receptor que recusa há dias é suspenso, sem descartar nada

    Depois de 7 dias de recusa contínua o motor suspende o push do endpoint: nenhuma entrega nova nasce para ele até o titular retomar. A fila que já existia fica como está, os eventos seguem disponíveis pelos 180 dias de GET /v1/events e o titular é avisado por e-mail; o endpoint não é desativado. Retomar — POST /v1/webhooks/endpoints/{endpointId}/resume ou o portal — reabre o push e devolve replayFrom, o instante de onde reenviar por janela para repor o que nasceu sem entrega. GET /v1/webhooks/endpoints e /health ganham suspendedAt; /health ganha também oldestPendingAt. Junto: a sonda do endpoint espaçado insiste na MESMA entrega até ela esgotar as tentativas — uma entrega chega ao desfecho em cerca de 14 h de espaçamento, e a fila de um receptor parado tem saída; 404 e 410 esgotam em 3 tentativas em vez de 6; a entrega respeita o paywall como a varredura já respeitava, exceto os avisos comerciais, que atravessam; o reenvio por janela para endpoint suspenso responde 409 até a retomada, e o reenvio por evento pula o endpoint pausado ou suspenso; retomar um endpoint pausado pelo titular responde 409 — reative-o antes. O prazo conta a partir desta publicação para quem já estava recusando.

    /v1/webhooksGET /v1/eventsWebhooks
  4. Mudou

    O catálogo de tribunais diz o que serve cada tribunal

    sources de cada entrada passa a refletir as fontes que o motor tem daquele tribunal — o eixo de processo, o diário e, onde existe, o acervo de jurisprudência — em vez de repetir o mesmo par em toda linha; os valores de acervo são os de publication.source, e CNJ_DATAJUD é o eixo de processo. O catálogo ganha o ramo ADMINISTRATIVE, do contencioso administrativo tributário federal, cujo acervo já respondia à pesquisa de jurisprudência sem constar da lista: para ele, consulta, assinatura e vigília de processo, busca e colheita no diário, recorte da vigília por tribunal e calendário forense recusam com TRIBUNAL_NOT_SUPPORTED — código que passa a constar do catálogo de erros — dizendo o que o tribunal serve; o calendário, que antes respondia 200 com a camada estadual vazia para essa sigla, passa a 400. A chave que liga uma publicação ao catálogo é code; alias identifica o tribunal só nas portas de processo. Cliente que valida branch ou sources em modo estrito precisa aceitar os valores novos.

    GET /v1/tribunalsPOST /mcp
  5. Novo

    A vigília diz o que a fonte disse

    O monitor de processo ganha sourceUpdatedAt e latestMovementAt: a data em que a fonte diz ter atualizado o processo e a data do movimento mais recente que ela conhece, como a última varredura as leu. As duas saem também no evento MONITOR_SYNC_SUCCEEDED. O hash da varredura responde "mudou ou não"; só estas datas separam "sem mudança" de "fonte parada" — um processo que migra de sistema no tribunal fica semanas estável no índice nacional. No canal agentic saem como fonteAtualizadaEm e ultimoMovimentoEm no resumo do monitor.

    /v1/monitors/mcp
  6. Mudou

    O handshake nomeia o que a credencial não alcança

    As instruções de initialize passam a listar as tools que a credencial não alcança e que por isso não aparecem em tools/list, com o caminho para reautorizar. A descrição de uma tool visível pode citar uma escondida, e sem a ressalva o agente lia o nome de uma tool que o host não lhe entregou e concluía que ela não existia.

    POST /mcp
  7. Novo

    A vigília diz quem a parou

    O monitor ganha retiredAt: preenchido quando foi o motor quem parou a vigília, por cadastro que a fonte diz não existir ou que não descreve um alvo consultável; nulo com status: PAUSED significa que quem parou foi o titular. As duas pausas pediam conduta oposta de quem lê e chegavam como a mesma palavra. No canal agentic o mesmo dado sai como aposentadoPeloMotor no resumo do monitor.

    /v1/monitors/mcp
  8. Mudou

    O calendário forense traz os feriados nacionais e o recesso

    Os feriados nacionais de data fixa e o recesso de 20/12 a 20/1 deixam de ser dever de quem chama e passam a vir na resposta. O recesso vem com kind: RECESS — nele o curso do prazo fica suspenso, o que é diferente de dia sem expediente —, e uma data pode aparecer nas duas naturezas, como 25/12. 20/11 só é expandido a partir de 2024, ano em que passou a valer. Quem já aplica essas camadas filtra por scope NATIONAL. Na Justiça Eleitoral o recesso não é afirmado: o regime de prazos dela é próprio.

    /v1/court-calendar/mcp
Ver anteriores
  1. Mudou

    O calendário forense alcança todo tribunal de jurisdição estadual

    A camada estadual deixa de valer só para tribunal de justiça: passa a alcançar o regional do trabalho, o regional eleitoral, o militar estadual e a 6ª região federal — todo tribunal cuja jurisdição é de um estado. É o mesmo princípio que já rege a camada municipal: a comarca fecha para quem ali funciona, seja qual for a justiça. Onde a jurisdição abrange mais de uma UF, ou é nacional, a camada continua declarada indisponível — nunca deduzida. A resposta ganha jurisdiction, com o alcance do tribunal e as UFs em jogo.

    /v1/court-calendar/mcp
  2. Novo

    O calendário forense declara o que consultou

    A resposta ganha coverage: camada a camada — feriados nacionais móveis e de data fixa, recesso do art. 220, estaduais, municipais e suspensão de expediente —, se ela entrou na lista e, quando não, o código do motivo. Janela sem entradas deixa de ser ambígua: CONSULTED é o único estado em que a ausência de dia significa que não há. A mesma declaração fecha a resposta da tool consultar_calendario_forense.

    /v1/court-calendar/mcp
  3. Mudou

    A cobertura por matéria é uma declaração

    A matéria fora do acervo continua na lista, com covered: false, e o campo note sai do payload de areas. O que a rota responde é se a matéria está no acervo — resultado vazio nunca se confunde com matéria não coberta, que é para o que a lista existe.

    /v1/publications/corpus/coverage/public/coverage-areas
  4. Novo

    O canal agentic alcança o calendário forense e a busca por expressão

    Quatro tools novas: consultar_calendario_forense devolve os dias sem expediente de um tribunal — feriado móvel, estadual e municipal da comarca —, reabrir_pesquisa_jurisprudencia pagina o ranking congelado de uma pesquisa pelo searchId, sem cobrar e sem mudar as posições, e excluir_monitor apaga a vigília em definitivo, encerrando também a base de interesse legítimo que pausar mantém, e listar_tribunais devolve o catálogo de onde sai a grafia que as demais aceitam. buscar_publicacoes passa a aceitar text e tribunalCode, os dois eixos que a rota GET /v1/publications já publicava.

    POST /mcp
  5. Novo

    O evento diz quando o teor não acompanha o item

    O payload de entrega ganha contentWithheld: true no item cujo teor não é entregue. Três causas levam ao mesmo desfecho — segredo de justiça, bloqueio de exibição pedido pelo titular e linha que já saiu do acervo —, e o campo não distingue qual foi: a conduta é a mesma. Antes, teor ausente e teor inexistente chegavam idênticos, com excerpt nulo e sem explicação. O campo aparece no topo do payload e em cada item de matches, e é decidido na leitura, não na gravação.

    WebhooksGET /v1/eventsPOST /mcp
  6. Novo

    A recusa por volume da fonte declara quanto esperar

    Quando a fonte responde 429 com Retry-After, o motor o repassa: a resposta de erro traz o cabeçalho Retry-After e os detalhes trazem retryAfterSeconds. É a mesma distinção que a taxonomia já fazia entre o 429 do plano e o da fonte, agora com o prazo declarado.

    /v1POST /mcp
  7. Novo

    A vigília de termo e de parte aceita recorte por tribunal

    POST /v1/monitors passa a aceitar tribunalAlias — pela sigla ou pelo apelido da fonte — nos tipos TERM e PARTY. Sem ele a varredura continua nacional, que é o padrão. Com ele, a vigília lê só aquele tribunal: é o que tira o alvo comum da parede de deslocamento do diário, que num dia pesado deixa cauda por ler. O monitor devolve o recorte em tribunalSigla, e as tools criar_monitor_de_termo e criar_monitor_de_parte recebem o mesmo recorte em tribunal.

    POST /v1/monitorsPOST /mcp
  8. Novo

    A cobertura do acervo é declarada por matéria

    A cobertura do corpus ganha o campo areas: para cada matéria — Justiça estadual, federal, trabalhista, militar, direito federal infraconstitucional e tributário administrativo — o estado (NONE, PARTIAL, INDEXED), as contagens e os tribunais com documento indexado. As matérias fora do acervo vêm na mesma lista com covered: false, para que resultado vazio nunca se confunda com matéria não coberta. A tool de pesquisa de jurisprudência repete a declaração quando nada casa.

    /v1/publications/corpus/coveragePOST /mcp
  9. Novo

    A publicação explica quando o teor não veio

    O item de publicação ganha o campo opcional textUnavailable. Vale OBJECT_MISSING quando o teor existe fora do banco e o armazenamento não o tem — anomalia de infraestrutura que uma nova consulta não resolve — e fica ausente quando o texto veio ou quando a fonte nunca trouxe teor. Está presente em toda superfície que serve o item: leitura por chave, busca no diário e reabertura de busca textual com hydrate.

    /v1/publications/v1/publications/text-searchesPOST /mcp
  10. Novo

    A tool novidades informa quanto ainda falta ler

    Quando os eventos não cabem numa chamada sem argumentos, a resposta passa a dizer quantos ainda faltam e o instante do mais antigo pendente, para o agente saber quantas chamadas o separam do presente. O marcador e a entrega continuam iguais; a leitura explícita com desde ou monitorId segue sem medir atraso, porque a janela é do chamador.

    POST /mcp

agosto de 2026

  1. Novo

    Monitor de nome de parte: saiba quando processam quem você vigia

    POST /v1/monitors aceita type: "PARTY" com partyName e alcança até o aviso de distribuição, a primeira notícia de uma ação nova. Informe o nome inteiro como consta no registro (para empresa, a razão social): nome parcial casa com terceiros de nome mais longo e é descartado. Cada PUBLICATION_CREATED traz partyName e partyRole; publicação sob sigilo não é anunciada. O monitor conta na mesma vaga do monitor de termo.

    POST /v1/monitorsGET /v1/monitorsPOST /mcp
  2. Novo

    O inteiro teor do acórdão de tribunal superior entra no acervo

    O acervo de tribunal superior passa a incluir o acórdão publicado, com documentKind: ACORDAO, além do espelho de ementa e campos estruturados. A busca e a leitura continuam sobre a ementa, que é o resumo que o tribunal escreve; o texto integral do julgado viaja no payload bruto da publicação (rawPayload), para quem pede includeRaw na listagem. Nenhum endpoint muda de forma: o acervo ampliado aparece sozinho na busca textual, na cobertura e na tool pesquisar_jurisprudencia.

    /v1/publications/v1/publications/text-searches/v1/publications/corpus/coveragePOST /mcp
  3. Mudou

    publication.source ganha acervos novos e nasce documentKind

    publication.source passa a ter valores novos, um por acervo estruturado de jurisprudência, então quem valida o campo em modo estrito precisa aceitar os valores listados no OpenAPI; quem o trata como texto não muda nada. Vai junto o campo aditivo publication.documentKind, que diz se a linha é a decisão (ACORDAO), o espelho dela (ESPELHO) ou a intimação que a anuncia (INTIMACAO).

    /v1/publications/v1/publications/text-searchesPOST /mcp
  4. Novo

    Precedentes qualificados: temas e teses de tribunal superior

    GET /v1/precedents busca temas de precedente qualificado pela questão submetida e pela tese firmada, com filtros por tipo, número, situação e presença de tese; GET /v1/precedents/{id} detalha o tema com referências e processos paradigma. Cada chamada custa 1 crédito (PRECEDENT_READ), e a situação acompanha o julgamento. No canal agentic, a tool consultar_precedentes cobre a mesma consulta e traz o detalhe quando o recorte resolve a um único tema.

    /v1/precedentsPOST /mcp
  5. Novo

    Monitor de processo aceita alvo que a fonte ainda não indexou

    Um monitor de processo cujo alvo ainda não apareceu no índice da fonte é aceito e espera: targetSeenAt: null marca a espera, MONITOR_SYNC_SUCCEEDED sai com awaitingAppearance: true e a primeira aparição chega com firstAppearance: true, seguida das movimentações. Informe distributedAt (AAAA-MM-DD, nunca no futuro, só em monitor de processo) para o motor só consultar o alvo quando o índice alcançar essa data.

    /v1/monitors/v1/webhooksPOST /mcp
  6. Novo

    A busca de publicações diz qual foi a última edição detectada

    Toda resposta de GET /v1/publications traz sourceIndex.lastEditionDate, a última edição do diário que o motor detectou. Com ela, um resultado vazio sem a edição do dia significa "ainda não saiu", não "não existe"; a prova vale numa direção só — com a edição detectada, zero ainda não prova ausência, porque a edição no ar recebe itens ao longo do dia. sourceItemCount, o tamanho da página como a fonte a devolveu, passa a constar no contrato.

    /v1/publications
  7. Novo

    Tools de gestão do canal agentic respondem dado tipado

    As tools de monitores e de saldo declaram outputSchema em tools/list e devolvem structuredContent junto do texto, para o host consumir o resultado sem parsear prosa. As tools que servem teor de publicação continuam respondendo só texto, com o teor demarcado como conteúdo de terceiros.

    POST /mcp
  8. Novo

    Varredura imediata de monitor e cancelamento de job de busca

    POST /v1/monitors/{monitorId}/sync agenda uma varredura imediata: o monitor entra no próximo ciclo, em cerca de um minuto, e o resultado chega pelos eventos e webhooks de sempre. POST /v1/search-jobs/{jobId}/cancel cancela um job de busca ainda não concluído da própria conta e devolve a retenção de créditos na hora.

    /v1/monitors/v1/search-jobs
  9. Novo

    Reenvio de webhooks por janela de tempo

    POST /v1/webhooks/endpoints/{endpointId}/replay reenfileira, para um endpoint, os eventos assinados ocorridos entre from e to, criando as entregas que faltam e devolvendo à fila as que falharam ou foram canceladas; includeDelivered: true reenvia também o que já chegou. Quando a resposta trouxer skipped maior que zero, repita com from = nextFrom para continuar.

    /v1/webhooks
  10. Mudou

    A publicação de hoje chega no ciclo em que sai

    A varredura de monitor de publicação lê primeiro a edição mais recente, então a publicação do dia chega no mesmo ciclo. No MONITOR_SYNC_SUCCEEDED, resumesAt aponta o dia mais antigo por ler, pendingDays diz quantos dias ainda têm página pendente e coveredThrough avança só pelo trecho contíguo coberto.

    /v1/monitors
  11. Mudou

    Receptor que recusa recebe com espaçamento crescente, e há como retomar

    Cinco recusas seguidas no mesmo endpoint espaçam as entregas dele em intervalos crescentes, de 15 minutos a 6 horas; ao fim de cada intervalo uma entrega passa como sonda, e qualquer resposta 2xx devolve o ritmo normal na hora. Nada é descartado e o endpoint não é desativado; o que muda é a cadência, e com ela o tempo até uma entrega esgotar as seis tentativas. Toda entrega leva x-lexnode-delivery-attempt e x-lexnode-endpoint-failures, e x-lexnode-endpoint-warning quando a próxima recusa vai espaçar a fila. Para retomar sem esperar a sonda: POST /v1/webhooks/endpoints/{endpointId}/resume.

    /v1/webhooks
  12. Novo

    Saúde de webhook, uso por sub-conta e colheita ganham campos novos

    GET /v1/webhooks/health traz consecutiveFailures e retryPausedUntil por endpoint, e GET /v1/usage ganha backgroundWork em cada linha de sub-conta, separando o trabalho que o motor faz na agenda dela das requisições que o consumidor fez. O progresso de fatia de colheita ganha itemsNew, a linha que passou a existir no acervo, distinta de itemsPersisted.

    /v1/webhooks/v1/usage
  13. Mudou

    A falha de monitor diz a causa e se vale repetir

    MONITOR_SYNC_FAILED ganha code, class e retryable: um processo que não existe na fonte (PROCESS_NOT_FOUND, terminal) se distingue de uma indisponibilidade momentânea, e o consumidor separa o que passa sozinho do que só ele resolve. O campo error traz a mensagem classificada, e o extrato de uso registra o status da causa — processo inexistente aparece como 404.

    /v1/webhooks/v1/events/v1/usage
  14. Novo

    O agente busca no diário e cria vigília de OAB e de processo

    Três tools novas no canal agentic: buscar_publicacoes responde o que saiu no diário para um processo ou para uma inscrição na OAB numa janela de datas, pelo mesmo preço do GET /v1/publications — 2 créditos por processo, 5 por OAB; criar_monitor_de_oab e criar_monitor_de_processo completam a criação de monitor, ao lado do de termo. Nenhuma exige escopo além do preset do agente, então aparecem para quem já está conectado, sem reautorizar.

    POST /mcp
  15. Novo

    O agente consulta processo e pesquisa jurisprudência

    consultar_processo devolve o retrato de um processo pelo número único e pela sigla do tribunal: classe, assunto, órgão julgador e movimentos. pesquisar_jurisprudencia busca sobre ementa e tese do acervo, congela o resultado e devolve os acertos com a citação e a publicationKey; reabrir a busca congelada não cobra.

    POST /mcp
  16. Mudou

    O catálogo de tools mostra só o que a credencial alcança

    tools/list é filtrado pelos escopos da chave que autenticou a chamada, então cada conexão enxerga exatamente as tools que pode usar. Reautorizar a conexão concede o preset de escopos vigente e faz uma tool nova aparecer.

    POST /mcp
  17. Novo

    novidades aceita janela de datas e recorte por monitor

    A tool novidades ganha desde, ate e monitorId, os mesmos recortes de GET /v1/events. Informar qualquer um deles torna a leitura explícita e não move o marcador do servidor, o que permite reler uma janela já lida ou perguntar o que um monitor específico encontrou; a chamada sem argumentos continua entregando o delta desde a última vez.

    POST /mcp
  18. Novo

    Conexão nativa do canal agentic: basta colar o endereço no agente

    POST /mcp passa a ser um resource server OAuth: o hospedeiro descobre a metadata nos endereços .well-known, registra o cliente e conduz o login numa tela do portal, com escopo agent e teto diário de créditos. Autenticação por cabeçalho Bearer segue valendo para ambiente sem navegador.

    POST /mcpGET /.well-known/oauth-protected-resourceGET /.well-known/oauth-authorization-serverPOST /oauth/registerPOST /oauth/tokenPOST /oauth/revoke
  19. Mudou

    POST /mcp pede credencial em todos os métodos

    initialize, ping e tools/list autenticam como tools/call já fazia; credencial ausente, inválida ou vencida recebe o desafio WWW-Authenticate, que é o que faz o hospedeiro oferecer a tela de login. Recusas de negócio (cota, teto diário, plano) continuam em banda; integrações que já enviam o cabeçalho Bearer em toda requisição não mudam.

    POST /mcp
  20. Novo

    Canal agentic: conecte seu agente de IA via MCP

    POST /mcp fala Model Context Protocol autenticado pela mesma API key, com tools para criar e gerenciar monitores, ler as novidades desde a última chamada, ler publicação e consultar saldo. Toda resposta informa custo e saldo, o teor de publicação vai demarcado como conteúdo não confiável, e o uso cai no mesmo medidor de créditos da API.

    POST /mcp
  21. Novo

    Escopo EVENTS_READ e teto diário de créditos por chave

    GET /v1/events e GET /v1/events/{eventId} pedem o escopo dedicado EVENTS_READ; chaves antigas com USAGE_READ continuam funcionando ali. A criação de chave aceita variant: AGENT (credencial destinada a agentes de IA) e maxCreditsPerDay: no estouro, operações com custo respondem API_KEY_DAILY_CAP_EXCEEDED e as de custo zero seguem funcionando.

    GET /v1/eventsGET /v1/events/{eventId}POST /mcp
  22. Novo

    Monitor de termo: vigie o diário oficial por texto livre

    POST /v1/monitors aceita type: "TERM" com um termo livre; o motor varre a edição diária em escala nacional, casa o termo por palavra inteira (com flexões de plural) e emite PUBLICATION_CREATED com o campo term no payload para cada menção compartilhável nova. Publicação sob sigilo não é anunciada, e o teto de monitores de termo é próprio.

    POST /v1/monitorsGET /v1/monitors
  23. Novo

    A busca de processos diz até onde o índice da fonte chegou

    POST /v1/processes/search devolve sourceIndex.updatedThrough, a data até onde o índice do tribunal está atualizado. Antes de concluir que um processo não existe, compare com a data de distribuição: um processo distribuído depois dela ainda não é encontrável, e um resultado vazio ali significa "ainda não chegou", não "não existe". Sem custo adicional.

    POST /v1/processes/search
  24. Novo

    Estado público do motor em GET /status

    GET /status responde, sem autenticação, o estado operacional de cada capacidade: consulta processual, publicações, processamento assíncrono e entrega de webhooks. É estado, nunca volume, e a resposta é cacheada por 30 segundos.

    GET /status
  25. Novo

    A busca textual pode trazer o teor na mesma chamada

    POST /v1/publications/text-searches aceita hydrate: true e devolve o teor de cada acerto já na criação, com publication e redacted em cada item e redactedCount na resposta. É a mesma reabertura gratuita, feita na mesma chamada, sem crédito adicional.

    POST /v1/publications/text-searches
  26. Novo

    Política de versionamento e headers de depreciação

    A superfície declara o que promete: mudança aditiva entra a qualquer momento, quebra não entra em /v1, e desligar uma rota exige anúncio com prazo mínimo. Rota depreciada responde com os headers Deprecation, Sunset e Link, e a lista fica legível por máquina em GET /.

    GET /DeprecationSunsetLink
  27. Novo

    GET /ready diz quando a instância pode receber tráfego

    GET /ready responde 503 enquanto a instância encerra ou o banco não responde, para um balanceador tirá-la de rotação; GET /health consulta o banco e responde 503 quando ele não responde. É neles que se aponta o monitor externo.

    GET /healthGET /ready
  28. Mudou

    As rotas de assinatura de processo pedem escopo próprio

    /v1/subscriptions passa a exigir SUBSCRIPTIONS_READ e SUBSCRIPTIONS_WRITE, em vez de viajar no escopo de monitores. As chaves já existentes receberam os dois escopos; uma chave nova precisa pedi-los para alcançar essas rotas.

    /v1/subscriptions
  29. Novo

    A leitura de publicação devolve o acórdão já extraído

    GET /v1/publications/{publicationKey} traz um bloco caseLaw com ementa, tese, as seções padronizadas da ementa, relator, órgão julgador, classe e data de julgamento, junto do extractorVersion que os produziu. Sem crédito adicional; é null quando a publicação não é julgado.

    GET /v1/publications/{publicationKey}
  30. Mudou

    O tribunal se escreve como quem integra o escreve

    Os eixos de publicações e de processos aceitam tanto a sigla do tribunal quanto o apelido usado pela fonte, e o calendário forense recebe o tribunal em court. O parâmetro tribunalAlias continua valendo como sinônimo; nada que já funcionava deixou de funcionar.

    /v1/publications/v1/processes/v1/court-calendar
  31. Novo

    O teto por minuto sai em toda resposta

    Os headers RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset acompanham qualquer resposta autenticada, não só a recusa, para o cliente se regular antes de bater no teto. Na recusa, Retry-After diz quanto esperar.

    RateLimit-LimitRateLimit-RemainingRetry-After
  32. Mudou

    error.class e error.retryable entram no contrato de erro

    O envelope de erro documenta todos os campos que a resposta carrega: class e retryable dizem se a falha é transitória e se vale repetir. A recusa por cota esgotada passa a constar em todas as operações autenticadas do documento.

    error.classerror.retryable402
  33. Mudou

    Leitura do acervo não consome o teto diário

    O limite diário conta apenas as requisições que consultam a fonte externa; leitura servida do acervo já colhido não entra nele, então uma integração que lê muito não é freada pelo que não custa.

    429 RATE_LIMIT_EXCEEDED