PT EN
Voltar ao site

Referência de Endpoints por Área

Integrar um sistema ao DATTA não deveria exigir engenharia reversa da interface. Esta página consolida, área por área, os endpoints citados nos guias da plataforma — com método, caminho e o que cada um faz — para que você monte sua integração consultando um único lugar. Autenticação, proteção CSRF e convenções gerais (formato JSON, campo error, permissões) estão na visão geral da API e valem para tudo o que segue.

Convenções desta página: segmentos variáveis aparecem como placeholders ({id}, {numero}, {taskId}); parâmetros de query relevantes são citados na descrição; endpoints marcados como servidor-a-servidor são pensados para integração entre sistemas, não para chamadas de navegador.

Busca, Chat & IA

Construa buscas semânticas, assistentes conversacionais e geração assistida por IA sobre o acervo do seu contexto.

MétodoEndpointO que faz
POST/api/search/hybridBusca textual híbrida (léxica + vetorial + grafo, com fusão de rankings)
POST/api/chat/streamResposta da IA em streaming (SSE) para a Busca/Chat
GET/api/users/me/promptLê o prompt personalizado do usuário logado (resolvido pelo token, nunca por parâmetro); sem prompt → {"customPrompt":""}
PUT/api/users/me/promptGrava o prompt personalizado ({"customPrompt":"..."}; trim + truncamento em 8000 caracteres)
POST/api/captain/sessoes/{id}/anexosAnexa um documento à conversa do Captain (multipart, campo file); o texto extraído entra como contexto do objetivo. O arquivo original fica no bucket de staging (MinIO) por 24h; nada é indexado nem vetorizado
GET/api/captain/sessoes/{id}/anexos/{indice}/arquivoBaixa o arquivo original de um anexo, como foi enviado. 404 quando a retenção já expirou
POST/api/captain/sessoes/{id}/objetivoMonta o plano do Captain a partir de um objetivo em linguagem natural; progresso via SSE. Não executa nada
POST/api/captain/sessoes/{id}/confirmarExecuta o plano confirmado (SSE, passo a passo). Único ponto onde uma escrita nasce; exige CAPTAIN_EXECUTE
POST/api/llm/chat/syncChamada síncrona ao modelo de linguagem; header X-LLM-Lane: batch seleciona a fila de baixa prioridade (sem header = interativa)
POST/api/embeddings/batchGera embeddings em lote (servidor-a-servidor; usado p. ex. na deduplicação semântica de regras)
POST/api/siql/semantic/nl-to-sqlConverte pergunta em português em SQL ({question, workspace?, modelId?}); limite de 30 chamadas/hora
POST/api/siql/events/ingestRecebe eventos de consulta do motor analítico pelo caminho alternativo, quando a publicação no fluxo de eventos falha (servidor-a-servidor)
GET/api/search/node-textResolve o texto integral de um item indexado a partir de ponteiro (?index=&id=); servidor-a-servidor, restrito aos índices da plataforma
bash
curl -X PUT "$BASE/api/users/me/prompt" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"customPrompt": "Responda sempre com referências normativas."}'

Documentos & Ingestão

Automatize a entrada de conteúdo — URLs de legislação, fontes de jurisprudência, atualizações de contexto — e a remoção controlada de processos.

MétodoEndpointO que faz
POST/api/upload/extrair-textoDevolve o TEXTO de um documento enviado (multipart, campo file; ?maxCaracteres= corta na origem) — sem ingerir, indexar ou vetorizar. Exige DOCUMENT_EXTRACT_TEXT; formato fora da whitelist volta 422 com mensagem acionável
POST/api/ingest-url/startInicia ingestão de URL (legislação, HTML, arquivos); retorna {taskId} imediato
GET/api/ingest-url/status/{taskId}Status, porcentagem e fase da ingestão de URL (polling ~2 s)
POST/api/ingest-url/cancel/{taskId}Cancela a ingestão de URL em andamento
POST/api/pipelines/{id}/executeDispara a carga de jurisprudência — cada fonte oficial é um pacote do Datta Extract; corpo opcional {parametros:{...}}
POST/api/contexts/{ctx}/update"Atualizar contexto" (retoma de onde parou); {force:true} reprocessa integralmente
GET/api/contexts/{ctx}/update/status/{taskId}Progresso e relatório da atualização (diferenças, desvios)
DELETE/api/processosExclui o processo e o subgrafo próprio (?numero=&domain=; corpo {justificativa} obrigatório). Forma canônica — é a única que alcança número com barra, como a numeração de tribunal superior (AREsp 1.627.029/RS)
DELETE/api/processos/{numero}Mesma exclusão com o número no endereço. Mantida para integrações já escritas; não alcança número com barra
GET/api/processos/documentosLista os documentos (com PDF) do processo (?numero=&domain=&prefix=). Forma canônica; a variante /api/processos/{numero}/documentos não alcança número com barra
DELETE/api/search/chunks/by-processoRemove os trechos indexados do processo na base de busca (?processoNumero=&domain=; corpo opcional {documentCodes[]}; idempotente)
GET/api/documents/dossie/{cnpj}/pdfs.zipBaixa um ZIP com todos os PDFs do dossiê ligados ao CNPJ (?domain= do contexto)
GET/api/documents/processo/pdfs.zipBaixa um ZIP com todos os PDFs do processo (?numero=&domain=&prefix=). Forma canônica; a variante /api/documents/processo/{numero}/pdfs.zip não alcança número com barra

Triagem & Regras

Dispare triagens em lote ou individuais, acompanhe o progresso em tempo real e gerencie o ciclo de vida completo das regras — inclusive geração por IA.

MétodoEndpointO que faz
POST/api/audit/batch/startInicia a triagem em lote ({reprocess, apenasRegrasNovas, domain}{taskId, total, ...})
GET/api/audit/batch/streamProgresso por processo via SSE (consumir com fetch + Bearer, não EventSource; heartbeat 15 s)
GET/api/audit/batch/statusStatus/reconciliação da triagem em lote (mesma fonte do painel de execuções)
POST/api/audit/batch/cancelCancela a triagem em lote em andamento
POST/api/audit/singleReprocessa a triagem de um processo individual
GET/api/audit/detailsDetalhe da auditoria + resumo do processo (?numero=&domain= — número vai em query por conter /)
GET/api/alertsLista os alertas do contexto (?context=&status=&severidade=&page=&size=; ordena por severidade e depois por recência)
GET/api/alerts/{alertaId}Detalhe de um alerta, com a análise que o originou
POST/api/alerts/{alertaId}/statusMove o estado do alerta ({status, justificativa}; descartar exige justificativa, e cada transição vira registro)
GET/api/alerts/acoesHistórico das transições dos alertas do contexto (quem moveu, quando e por quê)
POST/api/alerts/backfillReprojeta como alertas as triagens já concluídas do contexto (?context=; idempotente, sem LLM — a análise já está gravada)
GET/api/rulesLista regras de triagem (?contexto= filtra)
POST/api/rulesCria regra
PUT/api/rules/{numero}Atualiza/move regra
DELETE/api/rules/{numero}Exclui regra
PATCH/api/rules/{numero}/toggleAtiva/desativa regra
GET/api/rules/{numero}/versoesHistórico de versões da regra ou critério (autor, data e motivo de cada alteração)
GET/api/rules/{numero}/interpretacaoLeitura da regra feita pelo LLM: intenção, critérios, paráfrases e evidência esperada
POST/api/rules/{numero}/interpretacaoRegera a leitura sob demanda (best-effort, em segundo plano)
GET/api/rules/niveis-anomaliaNíveis de anomalia com os tipos aninhados (?contexto= filtra os tipos)
GET/api/rules/niveis-anomalia/tiposNomes dos tipos ativos de um contexto (?contexto= obrigatório)
POST/api/rules/niveis-anomaliaCria nível de anomalia
PUT/api/rules/niveis-anomalia/{chave}Atualiza nível
DELETE/api/rules/niveis-anomalia/{chave}Exclui nível (recusa os padrão e os que ainda têm tipos)
POST/api/rules/niveis-anomalia/{chave}/tiposCria tipo de anomalia no nível
PUT/api/rules/niveis-anomalia/{chave}/tipos/{id}Atualiza tipo (trocar de nível move o vínculo)
DELETE/api/rules/niveis-anomalia/{chave}/tipos/{id}Exclui tipo
GET/api/rules/{numero}/versoes/{versao}Texto exato de uma versão específica da regra ou critério
POST/api/rules/test-referencesTesta referências normativas de uma regra ({regraTexto, regraContexto[]}{references[], total_found, total_missing})
POST/api/rules/delete-allApaga TODAS as regras do contexto ({contexto, motivo}; permissão administrativa dedicada)
POST/api/rules/generateGera regras de triagem com IA ({contexto, descricao, quantidade, todas}{status:"RUNNING", taskId})
GET/api/rules/generate/stream/{taskId}Progresso da geração em tempo real (SSE)
GET/api/rules/generate/status/{taskId}Status da geração (permite retomar ao reabrir a página)
POST/api/rules/generate/cancel/{taskId}Cancela a geração de regras
GET/api/rules/generate/activeGerações de regras em andamento
GET/api/rules/generate/recentÚltimas gerações de regras finalizadas
bash
curl -X POST "$BASE/api/rules/generate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"contexto": "CPC", "descricao": "prazos recursais", "quantidade": 5}'

Recursos & Peças

Gere peças recursais fundamentadas por IA e converta o resultado em documento editável.

MétodoEndpointO que faz
POST/api/chat/recursoGera a peça recursal (processoNumero, tipoRecurso, fundamentacao, chatContext, model, provider, domain); limite ~20 chamadas/hora
POST/api/chat/recurso/docxConverte a peça já gerada em .docx (content, tipoRecurso, processoNumero); não chama a IA novamente
bash
curl -X POST "$BASE/api/chat/recurso" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"processoNumero": "0001234-56.2024.8.26.0100", "tipoRecurso": "apelacao", "fundamentacao": "cerceamento de defesa"}'

Catálogo & Conhecimento

Publique e governe datasets no Knowledge Catalog, conduza a curadoria dos ativos de conhecimento e mantenha glossário e prompts de domínio.

MétodoEndpointO que faz
POST/api/catalog/datasets/upsertRegistra/atualiza um dataset no Knowledge Catalog (estatísticas + semântica por coluna; também chamado pela catalogação automática)
GET/api/catalog/lineage/graphGrafo de linhagem (dashboard, chart, dataset, processo, coluna)
POST/api/catalog/lineage/edges/by-nameGrava arestas de linhagem de forma idempotente
GET/api/catalog/classificationsLista os 5 níveis de classificação de dados
GET/api/catalog/datasets/{id}/ownershipLê o ownership atual (dono, curador, classificação)
PUT/api/catalog/datasets/{id}/ownershipAtribui/substitui ownership ({ownerId, stewardId, classification})
DELETE/api/catalog/datasets/{id}/ownershipRemove ownership (volta ao padrão INTERNAL)
POST/api/catalog/datasets/{id}/classifyClassificação automática (heurística de PII + IA), preservando dono/curador
GET/api/catalog/datasets/by-classificationLista datasets por nível (?level=PII; relatórios LGPD)
GET/api/catalog/sources/groupedAgregado das fontes de dados disponíveis em todos os motores (?type=all)
POST/api/catalog/sources/invalidateForça o refresh do agregador de fontes
GET/api/knowledge/assetsLista ativos de conhecimento paginados (filtros dominio, tipo, status, page, size)
GET/api/knowledge/assets/{id}Detalhe de um ativo com rastreabilidade completa (documento de origem, trechos, modelo, versão, aprovador)
POST/api/knowledge/assets/generateDispara geração de ativos em lote ({dominio, documentCodes?, tipos?}); 202 + {taskId}; máx. 50 documentos por lote
GET/api/knowledge/assets/generate/stream/{taskId}Progresso da geração via SSE (fase, total, processados, falhas, ativos gerados)
POST/api/knowledge/assets/{id}/regenerateRe-geração pontual (nova versão do mesmo documento/tipo); 202 + {taskId}
PUT/api/knowledge/assets/{id}/statusTransição de status (`{status: "APPROVED"\
PUT/api/knowledge/assets/{id}/conteudoPersiste edição humana do conteúdo (mantém DRAFT, marca edição humana; valida citações)
GET/api/knowledge/assets/{id}/fonteAtivo + trechos-fonte citados, para revisão lado a lado
GET/api/knowledge/assets/{id}/diffDiferença entre a versão atual e a última aprovada
PUT/api/knowledge/assets/status-loteAprovação/rejeição em lote ({ids, status, reason}, máx. 200 ids; resultado parcial por item)
DELETE/api/knowledge/assets/{id}Exclui ativo em DRAFT/REJECTED (nunca um aprovado)
GET/api/knowledge/review-queue/fontesDocumentos fora da origem esperada aguardando decisão humana (?dominio=)
GET/api/knowledge/metrics/overviewIndicadores da base de conhecimento (funil, backlog, qualidade da geração, últimos lotes)
GET/api/catalog/glossary/termsLista termos de glossário (?status=DRAFT; com proveniência do documento de origem)
PUT/api/catalog/glossary/terms/{id}Edição inline da definição de um termo
PUT/api/catalog/glossary/status-loteAprovação/rejeição de termos em lote (máx. 500 ids); propaga ao chat em ≤ 5 min
GET/api/knowledge-prompt/{tipo}Lê o prompt de conhecimento do domínio (tipo: doc, faq, glossary, tone; ?domain=)
POST/api/knowledge-prompt/{tipo}Customiza o prompt do domínio (?domain=)
POST/api/knowledge-prompt/{tipo}/resetRestaura o prompt padrão do domínio (?domain=)
bash
curl -X POST "$BASE/api/knowledge/assets/generate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"dominio": "CPC"}'

Conexões & Drivers

Cadastre fontes de dados externas de forma idempotente — toda conexão criada dispara catalogação automática — e administre os drivers que as suportam.

MétodoEndpointO que faz
POST/api/connectionsCria conexão explicitamente (sem deduplicação)
POST/api/connections/ensureCria ou reusa conexão de forma idempotente (deduplicação por fingerprint de tipo+host+porta+banco+usuário, sem credencial)
GET/api/connectionsLista conexões visíveis ao usuário (?orphan=true lista órfãs; admin)
GET/api/connections/{id}Detalhe da conexão
POST/api/connections/test-without-saveTesta a configuração antes de persistir
POST/api/connections/{id}/testTesta uma conexão existente
POST/api/connections/{id}/scanRecatalogação manual — enfileira nova varredura de catalogação (admin)
GET/api/connections/{id}/scan/statusEstado da varredura de catalogação em andamento
GET/api/connections/{id}/scan/eventsProgresso da catalogação via SSE
POST/api/connections/{id}/bindingsReatribui credencial/vínculo a um usuário (conexão órfã)
GET/api/connections/{id}/monitoringLê agenda, janela e política da fonte monitorada
PUT/api/connections/{id}/monitoringGrava agenda, janela e política da fonte monitorada
POST/api/connections/{id}/check-nowDispara verificação imediata; 202 + {syncId, status, historyUrl}; 409 se já há sincronização em andamento; limite 10/hora por usuário
GET/api/connections/{id}/sync-historyHistórico paginado de sincronizações (?page=&size=, size 1–100)
DELETE/api/connections/{id}Revoga a conexão (datasets já catalogados permanecem)
GET/api/driversLista drivers instalados (?status= filtra)
GET/api/drivers/catalogCatálogo oficial de drivers aprovados
POST/api/drivers/uploadUpload de driver + metadados; passa por pipeline de validação (bytecode, vulnerabilidades, assinatura, teste de carga)
POST/api/drivers/bootstrapInstala em lote os drivers oficiais de download automático
GET/api/drivers/{id}/usagesConexões que usam o driver
POST/api/drivers/{id}/fetch-docsReingesta a documentação do fabricante (202; tarefa em segundo plano)
GET/api/drivers/{id}/docs-statusProgresso da ingestão de documentação (RUNNING/COMPLETED/FAILED)

Painéis & DATTA BI

Monte workspaces, publique dashboards, renderize visuais com filtros e drill, e acione os copilots de BI — tudo o que o editor faz, via API.

MétodoEndpointO que faz
GET/api/config/panelsCatálogo achatado dos painéis da plataforma (nativos, canvas e dashboards BI) — escopado à visibilidade de workspace do usuário
GET/api/config/workspacesLista os workspaces visíveis ao usuário (admin/S2S vê todos; workspace sem membros é público; com membros, só membros e owner)
GET/api/config/workspaces/{id}Detalhe de um workspace visível; workspace restrito de que o usuário não é membro responde 404
PUT/api/config/workspaces/{id}/panel-refsDefine os painéis vinculados por referência ({"panelRefs":[{"workspaceId","panelId"}]}; valida e deduplica; referência inválida → 400)
POST/api/config/workspaces/{id}/panelsCria painel de canvas / publica dashboard BI no workspace (kind: "dattabi-dashboard")
PUT/api/config/workspaces/{id}/panels/{panelId}Salva título/configuração do painel
GET/api/config/panel/{domain}/datasourcesFontes disponíveis no contexto (construtor de painéis)
POST/api/config/panel/{domain}/fieldsCampos da fonte selecionada (_all_ como domínio na criação rápida)
POST/api/config/panel/{domain}/tablesTabelas da fonte selecionada
POST/api/config/panel/{domain}/aggregateDados agregados para renderização de painel (leitura via POST — parâmetros no corpo)
POST/api/config/panel/{domain}/previewPreview de dados reais para tabelas
GET/api/datalayer-admin/kafka/topicsLista tópicos de streaming disponíveis (criação rápida)
GET/api/dattabi/workspacesLista workspaces do DATTA BI
GET/api/dattabi/workspaces/{id}/sharesLista usuários com acesso ao workspace + papel
PUT/api/dattabi/workspaces/{id}/shares/{userId}Define o papel do compartilhamento (`{role: "view"\
DELETE/api/dattabi/workspaces/{id}/shares/{userId}Remove o compartilhamento do workspace
GET/api/dattabi/workspaces/{id}/themesLista temas do workspace
GET/api/dattabi/dashboardsLista dashboards (?workspaceId=&includeArchived=; workspaceId vazio → [])
POST/api/dattabi/dashboardsCria dashboard
PATCH/api/dattabi/dashboards/{id}Atualização parcial (merge de campos não-nulos: título, descrição, layouts, modelo, filtros, páginas, tema); usada pelo auto-save
GET/api/dattabi/dashboards/{id}/versionsLista versões do dashboard
POST/api/dattabi/dashboards/{id}/restoreRestaura a última versão
GET/api/dattabi/dashboards/{id}/export.pdfExporta o dashboard (também .png, .csv, .svg)
POST/api/dattabi/dashboards/{id}/shareCria link de compartilhamento
GET/api/dattabi/shares/publicConsome link de compartilhamento (?t=<token>&p=)
DELETE/api/dattabi/shares/{id}Revoga link de compartilhamento
GET/api/dattabi/dashboards/{id}/thumbnail.pngMiniatura do dashboard (header `X-Thumb-Source: snapshot\
PUT/api/dattabi/dashboards/{id}/thumbnailPublica o screenshot real da miniatura
POST/api/dattabi/dashboards/{id}/renderRe-renderiza o dashboard com overrides (filtro cruzado)
POST/api/dattabi/charts/{id}/render-drilledRenderiza um chart com drill ({overrides, bindingsOverride})
POST/api/dattabi/copilot/chatCopilot do editor (SSE)
POST/api/dattabi/dashboards/{id}/copilot/askCopilot do dashboard publicado (SSE)
POST/api/dattabi/dashboards/{id}/copilot/narrativeGera narrativa executiva do dashboard
GET/api/dattabi/dashboards/{id}/copilot/suggestionsSugestões de perguntas do copilot
POST/api/dattabi/copilot/quick-dashboardCriação rápida (precedência customQuery > sources[] > fonte única legada)
POST/api/dattabi/copilot/generate-dashboardGera dashboard por linguagem natural ({prompt, datasetIds?, persist?, workspaceId?})
GET/api/dattabi/datasetsLista datasets do workspace (?workspaceId=; filtrado por permissão)
GET/api/dattabi/datasets/{id}Consulta dataset (campo loadMode: IMPORT \
POST/api/dattabi/datasetsCria dataset (também usado pelo DATTA Prep para persistir cada consulta)
POST/api/dattabi/modelsCria modelo semântico agrupando consultas
POST/api/dattabi/models/{modelId}/datasets/{datasetId}Liga um dataset ao modelo
POST/api/dattabi/prep/profilePerfil estatístico por coluna ({datasetRef, steps, sample?})
POST/api/dattabi/copilot/r/suggestGera script R por linguagem natural
GET/api/dattabi/copilot/r/packagesLista pacotes R habilitados
POST/api/dattabi/r/executeExecuta script R sobre amostra do dataset
POST/api/dattabi/dattax/validateValida sintaxe DATTAX (aba Consulta personalizada)
POST/api/dattabi/refresh-jobs/{id}/run-nowDispara refresh imediato de dataset materializado
GET/api/config/maps-api-keyChave de mapas para visuais georreferenciados (compartilhada entre BI, Chat e Investigar)
bash
curl -X POST "$BASE/api/dattabi/copilot/generate-dashboard" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Painel de processos por classe e por mês", "persist": true}'

Pipelines & Execuções

Execute scripts DATTAX, assine streams em tempo real, controle o ciclo de vida de pipelines e acompanhe qualquer execução em segundo plano.

MétodoEndpointO que faz
POST/api/dattax/executeExecuta script DATTAX avulso (progresso via SSE da própria chamada)
GET/api/dattax/stdlibCatálogo da biblioteca padrão DATTAX (alimenta o autocomplete do editor)
POST/api/dattax/stream/subscribeCria assinatura de stream DATTAX; retorna {subscriptionId, feasibility, sseUrl, wsUrl}
GET/api/dattax/streamLista assinaturas de stream ativas
GET/api/dattax/stream/{id}/eventsEventos da assinatura via SSE (fallback do WebSocket)
GET/api/dattax/stream/{id}/lagMétricas de atraso da assinatura de stream
DELETE/api/dattax/stream/{id}Cancela a assinatura de stream
WS/ws/dattax/stream/{id}Canal primário (WebSocket) de eventos do stream
GET/api/pipelines/summaryLista paginada dos pacotes de extração (24 por página) com facetas de origem, situação e integração
GET/api/pipelines/statsIndicadores agregados da galeria de pacotes (total, em execução, agendados, executados hoje, taxa de sucesso)
GET/api/pipelines/quick/capabilitiesCombinações de origem e destino que a Extração Rápida sabe executar diretamente
POST/api/pipelines/quick/previewConverte as escolhas do assistente rápido no desenho do pipeline, sem gravar nem executar
GET/api/pipelines/{id}/dattaxConverte a definição visual do pipeline em script DATTAX
POST/api/pipelines/{id}/{acao}Ciclo de vida do pipeline (acao: pause, resume, archive, activate)
GET/api/etl/jobsCargas DATTA Extract / ETL (em andamento e finalizadas)
GET/api/tasksExecuções em andamento do hub de tarefas (ingestões, uploads)
GET/api/tasks/allHistórico das últimas tarefas finalizadas (?limit=10)
GET/api/tasks/streamEstado vivo das execuções via SSE (atualização a cada 5 s)
POST/api/search/executionsGrava registro terminal de execução (servidor-a-servidor)
GET/api/search/executions/historyLê o histórico durável de execuções (?from=&to= em epoch ms, limit até 1000)

Processos BPM

Publique modelos de processo, crie instâncias e correlacione mensagens a eventos BPMN a partir dos seus sistemas.

Gerenciar modelos exige a permissão BPMN_DEPLOY (ou perfil administrador). Modelo publicado é imutável: para alterá-lo, abra uma nova versão.

MétodoEndpointO que faz
POST/api/bpmn/modelosCria/importa um modelo BPMN a partir do XML
PUT/api/bpmn/modelos/{id}Edita o modelo enquanto ele não foi publicado
DELETE/api/bpmn/modelos/{id}Remove o modelo
POST/api/bpmn/modelos/{id}/publicarPublica o modelo, tornando-o executável e imutável
POST/api/bpmn/modelos/{id}/nova-versaoAbre nova versão editável a partir do modelo publicado
POST/api/bpmn/modelos/{id}/auto-iniciarConfigura o início automático de instâncias do modelo
GET/api/bpmn/modelos/{id}/contexto/previaPrévia da troca de contexto (destino=): contagens (incluindo instanciasSeguindoContextoAtivo, que nunca são migradas) e os pares banco/label/propriedade dos dois lados; não escreve nada
PUT/api/bpmn/modelos/{id}/contextoReaponta o contexto do modelo e, com migrarInstancias, o das instâncias dele ({contexto, migrarInstancias, motivo}; motivo obrigatório)
POST/api/bpmn/instanciasCria instância de processo BPM ({modeloId, chaveNegocio, titulo, variaveis})
POST/api/bpmn/mensagensPublica mensagem correlacionada para eventos de mensagem BPMN ({nome, correlacao, variaveis}{entregues})
DELETE/api/bpmn/instancias/por-contextoExclui as instâncias BPM de um contexto purgado (cancela as ativas)
GET/api/bpmn/instanciasLista instâncias; aceita modeloId, status, chaveNegocio, responsavel (use __sem__ para as sem responsável), pagina, tamanho
PUT/api/bpmn/instancias/{id}/responsavelDefine ou troca o responsável pela instância ({responsavel}; vazio libera). Exige BPMN_EXECUTE
PUT/api/bpmn/instancias/responsavel-por-chavePropaga o responsável para todas as instâncias de uma chave de negócio (?chave=, corpo {responsavel})
POST/api/bpmn/instancias/backfill-responsaveisPreenche o responsável das instâncias antigas a partir das atribuições vigentes (idempotente)
GET`/api/bpmn/relatorios/{resumo\fases\
bash
curl -X POST "$BASE/api/bpmn/instancias" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{"modeloId": "triagem-processo", "chaveNegocio": "0001234-56.2024.8.26.0100", "titulo": "Triagem do processo", "variaveis": {}}'

Usuários, Permissões & Contextos

Provisione contas, atribua perfis e permissões, administre contextos de domínio e execute limpezas controladas.

MétodoEndpointO que faz
POST/api/auth/registerCadastro de usuário local (login obrigatório, com validação de campos)
POST/api/auth/loginAutentica por e-mail OU login no mesmo campo
GET/api/auth/users/{email}Consulta a conta (e-mail é a chave canônica)
PUT/api/auth/users/{email}Atualiza a conta
DELETE/api/auth/users/{email}Remove a conta
PUT/api/auth/users/{email}/roleDefine o perfil (role) do usuário
PUT/api/auth/users/{email}/permissionsConcede permissões diretas ao usuário
POST/api/auth/jupyter-cookieEmite cookie HttpOnly de sessão para o ambiente de Notebook
POST/api/users/atribuirAtribui o processo a um usuário (?processoNumero=; corpo {email}, contexto opcional). A gravação acontece no contexto em que o processo existe; 404 nomeia o contexto consultado e 409 pede o contexto quando o número existe em mais de um. Exige USERS_EDIT. Forma canônica — é a única que alcança número com barra
POST/api/users/atribuir/{processoNumero}Mesma atribuição com o número no endereço. Mantida para integrações já escritas; não alcança número com barra
GET/api/contextosLista os contextos cadastrados (forma enxuta: chave e rótulo); usada por instaladores e integrações para descobrir o que existe
GET/api/contextos/listLista os contextos com os detalhes completos de cada um
GET/api/contextos/activeContexto ativo no momento
GET/api/contextos/{nome}Detalhe de um contexto específico
GET/api/config/domain/listLista contextos configurados (chave, rótulo, tipo, fontes de dados)
GET/api/config/domain/{nome}Contexto + fontes de dados + base de código processual (quando definida)
PUT/api/config/domain/{nome}Atualiza o contexto (fontes de dados, flag de consumo de ativos de conhecimento pelo chat; campo vazio limpa, ausente preserva)
GET/api/config/rule-contexts-mergedContextos de regra + rótulos {contexts, labels}, já filtrados pela visibilidade
GET/api/prompts/domains/activeContexto ativo da plataforma (fallback do frontend para resolver domain)
GET/api/config/feature-visible-contextsMapa completo funcionalidade → contextos visíveis
GET/api/config/feature-visible-contexts/{feature}Contextos visíveis de uma funcionalidade (allowlist: dattabi, extract, ontology)
POST/api/config/feature-visible-contexts/{feature}Grava a lista de contextos da funcionalidade (lista vazia = todos visíveis)
GET/POST/api/config/rules-visible-contextsVisibilidade de contextos no Painel de Regras (legado)
GET/POST/api/config/upload-pdf-visible-contextsVisibilidade de contextos no Upload PDF (legado)
GET/POST/api/config/upload-url-visible-contextsVisibilidade de contextos no Upload URL (legado)
POST/api/documents/context/purgeOrquestra o purge completo do contexto (?domain=&reason=; permissão sensível)
POST/api/graph/context/purgePurge do grafo do contexto (?domain=; valida o alvo contra bases de sistema; cascateia ao BPM)
POST/api/search/admin/context/purgeApaga os índices de busca do contexto (?domain=)

MCP & Integrações Externas

Conecte agentes de IA externos às ferramentas do DATTA via protocolo MCP (JSON-RPC 2.0 + SSE), com observabilidade das invocações.

MétodoEndpointO que faz
GET/api/mcp/toolsLista as ferramentas MCP registradas (nome, schema, permissão)
GET/api/mcp/sessionsSessões SSE ativas
GET/api/mcp/invocationsInvocações recentes (?limit=200; usuário, ferramenta, duração, resultado)
GET/api/mcp/infoInformações do servidor MCP (uso servidor-a-servidor)
POST/mcp/rpcCanal JSON-RPC 2.0 do MCP (Authorization: Bearer)
GET/mcp/sseCanal SSE do MCP; o evento endpoint devolve a URL de mensagens da sessão (/mcp/sse/messages?sessionId=...)
bash
curl -X POST "$BASE/mcp/rpc" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

Exportação de Conhecimento & Contas de Serviço

Leve o conhecimento curado do DATTA para sistemas externos — assistentes próprios, portais, buscadores — por um canal com identidade própria, separada das contas de pessoas.

Contas de serviço

Integrações não usam a conta de um usuário: você cria uma conta de serviço com escopo de contextos e troca as credenciais por um token de acesso. O segredo é exibido uma única vez, na criação — guarde-o no seu cofre.

MétodoEndpointO que faz
POST/api/auth/service-accountsCria a conta com escopo de contextos ({nome, descricao, dominios[]}); devolve o identificador e o segredo, este último exibido só agora
GET/api/auth/service-accountsLista as contas de serviço existentes
DELETE/api/auth/service-accounts/{id}Revoga a conta; corpo {reason} obrigatório, idempotente, efeito propagado em até 60 s
POST/api/auth/service-accounts/tokenTroca identificador + segredo por um token com o escopo da conta; limite de 10 chamadas/minuto por identificador e origem
GET/api/auth/service-accounts/{id}/statusConsulta a situação da conta (uso servidor-a-servidor para checar revogação)

Credencial inválida e conta revogada devolvem a mesma resposta de erro no pedido de token — a diferença não é revelada de propósito. Para saber se uma conta foi revogada, consulte a listagem.

Exportação por contexto

Base: /api/knowledge/export/{contexto}/.... Só conteúdo aprovado é exportado. Comece pelo manifesto: ele traz o inventário por coleção e uma versão de snapshot que serve de validador de cache — repetindo a chamada com esse validador, você recebe "sem novidades" em vez do conteúdo inteiro.

MétodoEndpointO que faz
GET/api/knowledge/export/{contexto}/manifestInventário por coleção + versão do snapshot; devolve "não modificado" quando você informa a versão que já tem
GET/api/knowledge/export/{contexto}/documentosDocumentos otimizados aprovados (`?format=json\
GET/api/knowledge/export/{contexto}/faqPares de pergunta e resposta aprovados (?since=)
GET/api/knowledge/export/{contexto}/glossarioTermos de glossário aprovados (?since=)
GET/api/knowledge/export/{contexto}/chunksTrechos vigentes em fluxo contínuo, paginados por cursor (?includeEmbeddings=)
GET/api/knowledge/export/{contexto}/bundlePacote zip com manifesto, documentos, perguntas e glossário de uma vez

Para sincronização incremental, guarde o instante da última exportação e passe-o em since: as coleções devolvem apenas o que mudou desde então.

bash
TOKEN=$(curl -s -X POST "$BASE/api/auth/service-accounts/token" \
  -H "Content-Type: application/json" \
  -d '{"clientId": "'"$CLIENT_ID"'", "clientSecret": "'"$CLIENT_SECRET"'"}' | jq -r .accessToken)

curl -s "$BASE/api/knowledge/export/MEC/manifest" \
  -H "Authorization: Bearer $TOKEN"

Configuração & Utilitários

Ajustes de plataforma consumíveis por API: modelos de IA, chaves de fontes externas, documentação restrita e navegação no armazenamento de objetos.

MétodoEndpointO que faz
POST/api/config/thinking-modelGrava o modelo de raciocínio da etapa de seleção de ferramenta do chat (escolha de plataforma, vale para todos os contextos)
GET/POST/api/config/datajud-urlLê/grava a URL base do DataJud (dinâmico, sem reimplantação)
GET/POST/api/config/datajud-keyLê/grava a chave pública do CNJ (mascarada após salva)
GET/api/config/internal/datajud-keyLeitura servidor-a-servidor da chave DataJud
GET/api/docs/{caminho}Serve manifesto + conteúdo da seção restrita do Portal de Documentação (autenticado)
GET/api/platform/minio/browser/bucketsLista buckets do armazenamento de objetos ([{name, creationDate}])
GET/api/platform/minio/browser/objectsLista objetos/pastas (?bucket=&prefix=&recursive=&max=&startAfter={objects[], truncated, nextToken})
GET/api/platform/minio/browser/objectDetalhe do objeto (?bucket=&key=; tamanho, tipo, última modificação, etag, metadados)
GET/api/platform/minio/browser/summaryResumo do bucket (?bucket=; contagem e tamanho total, teto de 50.000 objetos)
GET/PUT/api/platform/minio/configLê/grava a configuração do armazenamento de objetos (chave secreta mascarada; escrita administrativa)
POST/api/platform/minio/testTesta a conectividade do armazenamento de objetos ({ok, message})

Os endpoints evoluem junto com a plataforma — novas rotas surgem e parâmetros são refinados a cada versão; em caso de divergência, o comportamento observado na versão instalada prevalece. Toda execução disparada via API (triagens, ingestões, gerações, sincronizações) aparece na área Execuções da interface, com a mesma trilha de auditoria das ações feitas pela tela.