> ## Documentation Index
> Fetch the complete documentation index at: https://docs.judit.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Judit API — Documentação Oficial

> API de consulta processual brasileira: busque processos por CPF, CNPJ, OAB, NOME ou CNJ; monitore movimentações; baixe anexos; obtenha dados cadastrais; consulte mandados de prisão e execuções penais.

export const ArchitectureAnimation = () => <iframe sandbox="allow-scripts" scrolling="no" style={{
  width: '100%',
  height: '560px',
  border: 'none',
  borderRadius: '12px',
  display: 'block',
  margin: '20px 0'
}} srcDoc={`<!doctype html><html><head><meta charset="utf-8"><style>*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#090c0d}canvas{display:block;width:100%;height:100%}</style></head><body><canvas id="c"></canvas><script>(function(){
var A='#4FD1C5',J='#1FC16B',T='#E0A82E',D='#8B5CF6',RE='#ef4444',M='#7A8599';
var BG='#090c0d',TXT='#e5e7eb',NF='#111827',PT='#0a1020';
var TOTAL=55.0;
var XP={app:0.10,judit:0.40,dl:0.65,court:0.88};
var NW=88,NH=42;
var NODES=[{id:'app',label:'Sua App',col:A},{id:'judit',label:'Judit API',col:J},{id:'dl',label:'Datalake',col:D},{id:'court',label:'Tribunais',col:T}];
var FLOWS=[
  {id:'async',title:'① Requests — Assíncrono On-Demand',sub:'Extração em tempo real direto no tribunal',col:A,ts:1,te:13,act:['app','judit','dl','court'],steps:[
    {fr:'app',to:'judit',label:'POST /requests',note:'{search_type, search_key}',col:A,ts:1.0,te:1.8,yp:0.30},
    {fr:'judit',to:'app',label:'202 {request_id}',note:'solicitação recebida',col:J,ts:2.2,te:3.0,yp:0.38},
    {fr:'judit',to:'dl',label:'consulta base',note:'',col:D,ts:3.4,te:4.2,yp:0.46},
    {fr:'dl',to:'judit',label:'dados em cache',note:'',col:D,ts:4.6,te:5.4,yp:0.54},
    {fr:'judit',to:'app',label:'webhook / polling',note:'cached_response: true',col:J,ts:5.8,te:6.6,yp:0.62},
    {fr:'judit',to:'court',label:'extração tribunal',note:'em tempo real',col:T,ts:7.0,te:7.8,yp:0.70},
    {fr:'court',to:'judit',label:'dados do processo',note:'',col:J,ts:8.2,te:9.0,yp:0.78},
    {fr:'judit',to:'app',label:'webhook / polling',note:'cached_response: false',col:J,ts:9.4,te:10.2,yp:0.84}]},
  {id:'hist',title:'② Requests — Assíncrono (Histórico)',sub:'Varre o datalake e fontes externas, sem ir ao tribunal',col:'#60A5FA',ts:14,te:25,act:['app','judit','dl'],steps:[
    {fr:'app',to:'judit',label:'POST /requests',note:'{search_type, search_key}',col:A,ts:14.5,te:15.3,yp:0.32},
    {fr:'judit',to:'app',label:'202 {request_id}',note:'solicitação recebida',col:J,ts:15.8,te:16.6,yp:0.44},
    {fr:'judit',to:'dl',label:'varre base + fontes externas',note:'',col:'#60A5FA',ts:17.1,te:17.9,yp:0.56},
    {fr:'dl',to:'judit',label:'processos encontrados',note:'',col:'#60A5FA',ts:18.4,te:19.2,yp:0.68},
    {fr:'judit',to:'app',label:'webhook / polling',note:'response_data',col:J,ts:19.7,te:20.5,yp:0.80}]},
  {id:'track',title:'③ Tracking — Monitoramento',sub:'Verifica o tribunal periodicamente e notifica por webhook',col:'#F6AD55',ts:26,te:39,act:['app','judit','court'],steps:[
    {fr:'app',to:'judit',label:'POST /tracking',note:'{search_type, search_key}',col:A,ts:26.5,te:27.3,yp:0.32},
    {fr:'judit',to:'court',label:'verifica periodicamente',note:'recorrência configurável',col:T,ts:28.2,te:29.0,yp:0.48},
    {fr:'court',to:'judit',label:'nova movimentação',note:'',col:J,ts:29.9,te:30.7,yp:0.62},
    {fr:'judit',to:'app',label:'webhook',note:'event: new_step',col:'#F6AD55',ts:31.6,te:32.4,yp:0.78}]},
  {id:'sync',title:'④ Lawsuits — Síncrono (Hot Storage)',sub:'Lê o datalake JUDIT — não vai ao tribunal',col:D,ts:40,te:53,act:['app','judit','dl'],steps:[
    {fr:'app',to:'judit',label:'POST /lawsuits',note:'{search_type, search_key}',col:A,ts:40.5,te:41.3,yp:0.32},
    {fr:'judit',to:'dl',label:'leitura datalake',note:'sem consultar o tribunal',col:D,ts:42.2,te:43.0,yp:0.48},
    {fr:'dl',to:'judit',label:'processos indexados',note:'em milissegundos',col:D,ts:43.9,te:44.7,yp:0.62},
    {fr:'judit',to:'app',label:'200 {response_data}',note:'mesma requisição — síncrono',col:J,ts:45.6,te:46.4,yp:0.78}]}
];
var cv=document.getElementById('c');
function setup(){var dpr=Math.min(window.devicePixelRatio||1,2),r=cv.getBoundingClientRect(),W=r.width||window.innerWidth,H=r.height||window.innerHeight;cv.width=Math.max(1,W*dpr);cv.height=Math.max(1,H*dpr);var ctx=cv.getContext('2d');ctx.setTransform(dpr,0,0,dpr,0,0);return{ctx:ctx,w:W,h:H};}
function ease(t){return t<0.5?2*t*t:1-Math.pow(-2*t+2,2)/2;}
function rr(ctx,x,y,w,h,r){ctx.beginPath();ctx.moveTo(x+r,y);ctx.arcTo(x+w,y,x+w,y+h,r);ctx.arcTo(x+w,y+h,x,y+h,r);ctx.arcTo(x,y+h,x,y,r);ctx.arcTo(x,y,x+w,y,r);ctx.closePath();}
function gx(n,w){return n==='app'?w*XP.app:n==='judit'?w*XP.judit:n==='dl'?w*XP.dl:w*XP.court;}
function eg(fr,to,w){var fx=gx(fr,w),tx=gx(to,w),d=tx>fx?1:-1;return{x1:fx+d*NW/2,x2:tx-d*NW/2,d:d};}
function dPkt(ctx,x,y,lbl,col){var pw=Math.max(36,lbl.length*6+14),ph=20;ctx.save();ctx.shadowColor=col;ctx.shadowBlur=18;rr(ctx,x-pw/2,y-ph/2,pw,ph,5);ctx.fillStyle=col;ctx.fill();ctx.shadowBlur=0;ctx.fillStyle=PT;ctx.font='bold 9px monospace';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(lbl,x,y+0.5);ctx.restore();}
function draw(ctx,w,h,t){
  var ct=t%TOTAL;
  ctx.fillStyle=BG;ctx.fillRect(0,0,w,h);
  var fl=null;for(var i=0;i<FLOWS.length;i++){if(ct>=FLOWS[i].ts&&ct<FLOWS[i].te){fl=FLOWS[i];break;}}
  var nodeY=h*0.21;
  for(var i=0;i<NODES.length;i++){var n=NODES[i],lx=gx(n.id,w),ia=!fl||(fl.act.indexOf(n.id)>=0);ctx.save();ctx.strokeStyle=n.col;ctx.globalAlpha=ia?0.38:0.08;ctx.lineWidth=1;ctx.setLineDash([4,7]);ctx.beginPath();ctx.moveTo(lx,nodeY+NH/2);ctx.lineTo(lx,h*0.92);ctx.stroke();ctx.restore();}
  if(fl){ctx.save();ctx.fillStyle=fl.col;ctx.font='bold 13px Inter,system-ui,sans-serif';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(fl.title,w/2,h*0.055);ctx.fillStyle=M;ctx.font='10.5px Inter,system-ui,sans-serif';ctx.fillText(fl.sub,w/2,h*0.118);ctx.restore();}
  if(fl){for(var si=0;si<fl.steps.length;si++){var s=fl.steps[si],sy=h*s.yp,e=eg(s.fr,s.to,w),x1=e.x1,x2=e.x2,d=e.d,clx=(x1+x2)/2;var state=ct<s.ts?'pre':ct>s.te?'done':'live',alpha=state==='pre'?0.10:state==='done'?0.55:1.0;ctx.save();ctx.globalAlpha=alpha;ctx.strokeStyle=s.col;ctx.lineWidth=1.5;ctx.setLineDash([]);ctx.beginPath();ctx.moveTo(x1,sy);ctx.lineTo(x2,sy);ctx.stroke();ctx.fillStyle=s.col;ctx.beginPath();ctx.moveTo(x2,sy);ctx.lineTo(x2-d*7,sy-4);ctx.lineTo(x2-d*7,sy+4);ctx.closePath();ctx.fill();ctx.fillStyle=TXT;ctx.font='bold 10px monospace';ctx.textAlign='center';ctx.textBaseline='bottom';ctx.fillText(s.label,clx,sy-4);if(s.note){ctx.fillStyle=M;ctx.font='9px monospace';ctx.fillText(s.note,clx,sy-16);}ctx.restore();if(state==='live'){var p=ease((ct-s.ts)/(s.te-s.ts));dPkt(ctx,x1+(x2-x1)*p,sy+14,s.label,s.col);}}}
  for(var i=0;i<NODES.length;i++){var nd=NODES[i],px=gx(nd.id,w),ia=!fl||(fl.act.indexOf(nd.id)>=0),isCx=fl&&fl.id==='sync'&&nd.id==='court';ctx.save();ctx.globalAlpha=ia?1:0.18;if(ia){ctx.shadowColor=nd.col;ctx.shadowBlur=15;}rr(ctx,px-NW/2,nodeY-NH/2,NW,NH,8);ctx.fillStyle=NF;ctx.fill();ctx.shadowBlur=0;ctx.strokeStyle=isCx?RE:ia?nd.col:'rgba(255,255,255,0.10)';ctx.lineWidth=ia?1.8:1;ctx.stroke();ctx.fillStyle=isCx?RE:ia?nd.col:M;ctx.font='bold 11px Inter,system-ui,sans-serif';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(nd.label,px,nodeY);ctx.restore();if(isCx){ctx.save();ctx.strokeStyle=RE;ctx.lineWidth=2;ctx.globalAlpha=0.85;var bx=px+NW/2-12,by=nodeY-NH/2+10,br=8;ctx.beginPath();ctx.moveTo(bx-br,by-br);ctx.lineTo(bx+br,by+br);ctx.stroke();ctx.beginPath();ctx.moveTo(bx+br,by-br);ctx.lineTo(bx-br,by+br);ctx.stroke();ctx.restore();}}
  for(var f=0;f<FLOWS.length;f++){var ia=fl&&fl.id===FLOWS[f].id;ctx.save();ctx.beginPath();ctx.arc(w/2+(f-(FLOWS.length-1)/2)*24,h*0.962,ia?5:3,0,Math.PI*2);ctx.fillStyle=ia?FLOWS[f].col:'rgba(255,255,255,0.18)';ctx.fill();ctx.restore();}
}
var dim,t0;
function loop(){var t=(performance.now()-t0)/1000;draw(dim.ctx,dim.w,dim.h,t);requestAnimationFrame(loop);}
window.addEventListener('load',function(){dim=setup();t0=performance.now();loop();});
window.addEventListener('resize',function(){dim=setup();});
cv.addEventListener('click',function(e){var r=cv.getBoundingClientRect(),cx=e.clientX-r.left,cy=e.clientY-r.top;for(var f=0;f<FLOWS.length;f++){var dx=cx-(dim.w/2+(f-(FLOWS.length-1)/2)*24),dy=cy-dim.h*0.962;if(dx*dx+dy*dy<=144){t0=performance.now()-FLOWS[f].ts*1000;break;}}});
cv.addEventListener('mousemove',function(e){var r=cv.getBoundingClientRect(),cx=e.clientX-r.left,cy=e.clientY-r.top,over=false;for(var f=0;f<FLOWS.length;f++){var dx=cx-(dim.w/2+(f-(FLOWS.length-1)/2)*24),dy=cy-dim.h*0.962;if(dx*dx+dy*dy<=144){over=true;break;}}cv.style.cursor=over?'pointer':'default';});
})()\x3c/script></body></html>`} />;

<img src="https://mintcdn.com/judit-docs/uEiYqFW_rH0Ad5Nq/images/judit-api-charts.png?fit=max&auto=format&n=uEiYqFW_rH0Ad5Nq&q=85&s=ef889dc0e5e786de0dc3fbc019cf7293" alt="title" width="1450" height="780" data-path="images/judit-api-charts.png" />

A **Judit API** entrega dados de processos judiciais brasileiros prontos para uso, em uma única integração. Em vez de manter scrapers em cada tribunal, sua aplicação faz uma chamada HTTP e recebe os dados que você precisa — seja a capa completa de um processo específico, a lista de processos vinculados a uma pessoa/empresa, ou o monitoramento contínuo de movimentações.

> 🤖 A Judit cobre Justiça Estadual, Federal, Trabalhista, Eleitoral, Militar, Superior e BNMP. Autenticação é por header `api-key`. Os 3 serviços principais são `requests` (consultas assíncronas), `tracking` (monitoramento contínuo) e `lawsuits` (consultas síncronas direto do datalake JUDIT).

## O que você consegue fazer

* **Consulta Processual por CNJ** — recupere a árvore completa de **um processo específico** pelo número CNJ. Sempre **on-demand**: a Judit devolve o que tem em base (se existir) e, em paralelo, vai buscar a versão mais recente no tribunal.
* **Consulta Histórica por Documento** — descubra **todos os processos vinculados** a um CPF, CNPJ, OAB ou Nome. Disponível em **três modalidades**:
  * **Direto da base (síncrona / Hot Storage)** — leitura do datalake JUDIT em milissegundos. Modalidade mais econômica e ideal para consultas de alto volume.
  * **Assíncrona** — fila assíncrona que retorna a lista histórica vinculada ao documento, sem ir ao tribunal em tempo real. Custo intermediário.
  * **On-demand (assíncrona)** — coleta em tempo real direto nos tribunais. Mais cara, indicada quando o estado mais atual é mandatório.
* **Monitorar processos** automaticamente e receber atualizações por webhook quando houver nova movimentação ou nascer um novo processo.
* **Obter dados cadastrais** (Pessoa Física ou Jurídica) com opção de leitura no datalake ou em tempo real na Receita Federal.
* **Baixar anexos** e mandados de prisão (BNMP) em PDF.
* **Consultar execuções penais** (cumprimento de pena).
* **Resumir processos com IA** — gere resumos da capa do processo automaticamente (JUDIT IA).

## Casos de uso comuns

<CardGroup cols={2}>
  <Card title="Escritórios de advocacia" icon="briefcase">
    Centralize todos os processos do escritório em um só painel. Monitore andamentos críticos e gere relatórios automatizados.
  </Card>

  <Card title="Departamentos jurídicos" icon="building">
    Acompanhe a carteira jurídica corporativa e integre o status processual aos sistemas internos (ERP, CRM, BI).
  </Card>

  <Card title="Fintechs e bureaus de crédito" icon="chart-line">
    Rode due diligence em massa e enriqueça análises de risco com dados processuais por CPF/CNPJ em tempo real.
  </Card>

  <Card title="Compliance e KYC" icon="shield-check">
    Verifique processos relacionados a contraparte (PEP, antecedentes, mandados) durante o onboarding.
  </Card>

  <Card title="LegalTechs" icon="code">
    Suba sua plataforma sem precisar manter coletores em cada tribunal — foque em produto, não em infraestrutura.
  </Card>

  <Card title="Cobrança e recuperação" icon="hand-holding-dollar">
    Identifique processos passivos relevantes (valor, fase, classe) e priorize abordagens com base em fase processual.
  </Card>
</CardGroup>

## Arquitetura em 1 minuto

<ArchitectureAnimation />

Três serviços, um padrão de autenticação:

| Serviço    | URL                                    | Quando usar                                                                                 |
| ---------- | -------------------------------------- | ------------------------------------------------------------------------------------------- |
| `requests` | `https://requests.production.judit.io` | Consulta direta nos tribunais. Resultado chega via webhook ou polling.                      |
| `tracking` | `https://tracking.production.judit.io` | Monitoramento contínuo de processos com a recorrência que você define.                      |
| `lawsuits` | `https://lawsuits.production.judit.io` | Leitura síncrona do datalake JUDIT, retorno do processos atrelados ao documento consultado. |

## Comece em 3 passos

<Steps>
  <Step title="Solicite sua API Key">
    Fale com nosso [comercial](https://api.whatsapp.com/send/?phone=5521985284143) e receba sua chave de acesso.
  </Step>

  <Step title="Faça a primeira consulta">
    Siga o [Guia Rápido](/introduction/quickstart) para criar sua primeira requisição em menos de 5 minutos.
  </Step>
</Steps>
