> ## 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.

# Monitoramento Customizado por Filtros

> Configure monitoramentos com filtros avançados (tribunal, valor da causa, data de distribuição, partes) para acompanhar apenas o que importa na Judit API.

export const CustomTrackingAnimation = () => <iframe sandbox="allow-scripts" scrolling="no" style={{
  width: '100%',
  height: '540px',
  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',M='#7A8599';
var BG='#090c0d',TXT='#e5e7eb',NF='#111827',PT='#0a1020';
var TOTAL=12.0;
var XP={app:0.13,judit:0.50,court:0.87};
var NW=88,NH=42;
var NODES=[{id:'app',label:'Sua App',col:A},{id:'judit',label:'Judit API',col:J},{id:'court',label:'Tribunais',col:T}];
var STEPS=[
  {fr:'app',to:'judit',label:'POST /tracking',note:'{search_type:"custom", filter:{...}}',col:A,ts:1.0,te:1.8,yp:0.30},
  {fr:'judit',to:'app',label:'201 {tracking_id}',note:'status: created',col:J,ts:2.3,te:3.1,yp:0.42},
  {sep:true,label:'↻  execução automática a cada N dias',yp:0.52},
  {fr:'judit',to:'court',label:'verifica novos processos',note:'com os filtros configurados',col:T,ts:4.8,te:5.6,yp:0.60},
  {fr:'court',to:'judit',label:'novo processo encontrado',note:'',col:J,ts:6.1,te:6.9,yp:0.72},
  {fr:'judit',to:'app',label:'webhook',note:'event: new_lawsuit',col:J,ts:7.4,te:8.2,yp:0.84}
];
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: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,bx1=w*0.02,bx2=w*0.98;
  ctx.fillStyle=BG;ctx.fillRect(0,0,w,h);
  var nodeY=h*0.21;
  ctx.fillStyle=J;ctx.font='bold 12px Inter,system-ui,sans-serif';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText('Monitoramento Customizado por Filtros',w/2,h*0.04);
  ctx.fillStyle=M;ctx.font='10px Inter,system-ui,sans-serif';ctx.fillText('Judit detecta novos processos que atendem aos filtros configurados',w/2,h*0.09);
  for(var i=0;i<NODES.length;i++){var n=NODES[i],lx=gx(n.id,w);ctx.save();ctx.strokeStyle=n.col;ctx.globalAlpha=0.35;ctx.lineWidth=1;ctx.setLineDash([4,7]);ctx.beginPath();ctx.moveTo(lx,nodeY+NH/2);ctx.lineTo(lx,h*0.94);ctx.stroke();ctx.restore();}
  for(var si=0;si<STEPS.length;si++){var s=STEPS[si],sy=h*s.yp;if(s.sep){ctx.save();ctx.strokeStyle='rgba(255,255,255,0.28)';ctx.lineWidth=1;ctx.setLineDash([3,5]);ctx.beginPath();ctx.moveTo(bx1,sy);ctx.lineTo(bx2,sy);ctx.stroke();ctx.fillStyle='rgba(255,255,255,0.05)';rr(ctx,bx1,sy-8,s.label.length*6.2+14,16,3);ctx.fill();ctx.fillStyle=M;ctx.font='10px monospace';ctx.textAlign='left';ctx.textBaseline='middle';ctx.fillText(s.label,bx1+5,sy);ctx.restore();continue;}var 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);ctx.save();ctx.shadowColor=nd.col;ctx.shadowBlur=14;rr(ctx,px-NW/2,nodeY-NH/2,NW,NH,8);ctx.fillStyle=NF;ctx.fill();ctx.shadowBlur=0;ctx.strokeStyle=nd.col;ctx.lineWidth=1.8;ctx.stroke();ctx.fillStyle=nd.col;ctx.font='bold 11px Inter,system-ui,sans-serif';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(nd.label,px,nodeY);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();});
})()\x3c/script></body></html>`} />;

<Info>
  **Novo CNPJ (IN 2229/24)**

  A Judit já aceita o novo formato de **CNPJ alfanumérico** em conformidade com a [Instrução Normativa RFB nº 2229/2024](https://normasinternet2.receita.fazenda.gov.br/#/consulta/externa/141102).

  * **Zero esforço:** nenhuma alteração é necessária na sua integração.
  * **Ambiente de teste:** utilize o documento `A1B2C3D4/E5F6-68` para validar o fluxo e receber um processo fictício de resposta.
</Info>

O **Monitoramento Customizado** vigia o nascimento de novos processos com base em **filtros estruturais** (tribunal, classe, área, valor da causa, partes, datas) — sem precisar de um documento específico. Use quando você quer ser avisado de novidades em um **universo definido por critérios**, não por uma parte.

> 🤖 Endpoint: `POST https://tracking.production.judit.io/tracking` com `search_type: "custom"` e `search_params.filter` definido. A precificação é diferente do monitoramento por documento — confirme com o time comercial.

<CustomTrackingAnimation />

## Quando usar

<CardGroup cols={2}>
  <Card title="Inteligência de mercado" icon="binoculars">
    Detecte novos processos de uma classe específica em um tribunal/estado para análise de tendência.
  </Card>

  <Card title="Defesa proativa" icon="shield-check">
    Empresas em setores muito litigiosos (telecom, varejo, seguros) podem rastrear novos processos com filtro por valor mínimo.
  </Card>

  <Card title="Acompanhamento regulatório" icon="gavel">
    Vigie novos processos envolvendo determinada agência reguladora ou fundamento legal.
  </Card>

  <Card title="Vigilância setorial" icon="industry">
    Monitore um nicho (ex.: ações coletivas em um tribunal específico) sem precisar partir de um CPF/CNPJ.
  </Card>
</CardGroup>

O monitoramento customizado permite monitorar processos utilizando filtros específicos, retornando processos de todos os tribunais que correspondem aos critérios definidos. Essa consulta é ideal para identificar processos com características específicas em um amplo espectro de jurisdições. Para utilizá-la, é necessário enviar uma requisição ao endpoint correspondente.

<Warning>
  Para este tipo de consulta, certifique-se sobre a precificação, pois não é a mesma da consulta histórica.
</Warning>

## Criando um Monitoramento

Para começar a monitorar com filtros customizados, você deve realizar uma solicitação POST para a rota `/tracking`.

### Payload da Solicitação

A solicitação POST deve incluir um payload com as seguintes propriedades:

* `search_type`: Este campo define o tipo de entidade que será buscada. Para monitoramento customizado, terá sempre o valor `custom`;

* `search_key`: Este campo define o valor da entidade que será buscada. Para monitoramento customizado, terá sempre o valor `custom`;

* `cache_ttl_in_days` (opcional): Número inteiro que define até quantos dias o resultado da busca pode considerar um cache válido;

* `search_params`: Um objeto que contém alguns parâmetros da busca como:

  * `lawsuit_instance` (opcional): Este parâmetro permite definir a instância em que deseja buscar o processo;
  * `masked_response`: Define se a resposta virá minificada. Este parâmetro é aplicável apenas a consultas (simples ou completas) no contexto de busca processual.
    * `masked_response = true`: retornará uma consulta completa
    * `masked_response = false`: retornará uma consulta simples

  `*Obs` Consulte as condições comerciais desses diferentes tipos de monitoramento customizado.

Filtros poderão ser adicionados à requisição, permitindo um retorno mais assertivo com base nos valores desejados. Para isso, o parâmetro `filter` deve ser incluído dentro de `search_params`, com os seguintes filtros disponíveis:

* `filter` (opcional): Um objeto que contém os filtros para a busca, como:

  * `side` (opcional): Permite buscar por tipos de participantes do processo, podendo ser: `Passive`, `Active`, `Interested`, `Unknown`;

  * `amount_gte` (opcional): Filtra processos com valor da causa maior ou igual ao especificado em `amount_gte`;

  * `amount_lte` (opcional): Filtra processos com valor da causa menor ou igual ao especificado em `amount_lte`;

  * `tribunals` (opcional): Um objeto que contém os filtros de tribunais:
    * `keys` (opcional): Lista de códigos de tribunais disponíveis na [lista de tribunais](/resource/glossary#lista-de-tribunais). Este filtro permite restringir a busca a processos que tenham ou não esses códigos específicos;
    * `not_equal` (opcional): Valor booleano que define se o filtro incluirá ou excluirá os valores especificados em `keys`.

  * `subject_codes` (opcional): Um objeto que contém os filtros de assuntos:
    * `contains` (opcional): Lista de códigos de assuntos. Restringe a busca a processos que incluam os códigos especificados.
    * `not_contains` (opcional): Lista de códigos de assuntos. Exclui processos que contenham os códigos especificados.

  * `classification_codes` (opcional): Um objeto que contém os filtros de classes processuais:
    * `keys` (opcional): Lista de códigos de classes processuais. Este filtro permite restringir a busca a processos que tenham ou não esses códigos específicos;
    * `not_equal` (opcional): Valor booleano que define se o filtro incluirá ou excluirá os valores especificados em `keys`.

  * `credential` (opcional): Objeto para o uso do cofre de credenciais:
    * `customer_key` (opcional): Permite passar a chave do usuário cadastrada no cofre de credenciais. Caso não seja informada, a API tentará encontrar uma credencial cadastrada para uma `customer_key` vazia.

  * `last_step_date_gte` (opcional): Restringe a busca a processos cuja data da última movimentação seja maior que à data fornecida.

  * `last_step_date_lte` (opcional): Restringe a busca a processos cuja data da última movimentação seja menor que à data fornecida.

  * `party_names` (opcional): Lista de nomes que restringe a busca a processos que os contenham em alguma das partes.

    `Obs` Ao utilizar esse filtro em conjunto com o filtro de `Side`, o filtro de `Side` não será considerado para a restrição dessas partes, já que o filtro de `Side` é utilizado para filtrar processos onde a parte principal buscada esteja no lado especificado.

  * `party_documents` (opcional): Lista de documentos que restringe a busca a processos que os contenham em alguma das partes.

    `Obs` Ao utilizar esse filtro em conjunto com o filtro de `Side`, o filtro de `Side` não será considerado para a restrição desses documentos, já que o filtro de `Side` é utilizado para filtrar processos onde a parte principal buscada esteja no lado especificado.

<Note>
  Todos os monitoramentos customizados cadastrados são realizados ***on-demand***. Recomendamos verificar as condições de custo associadas a este serviço antes de sua utilização.
</Note>

```bash theme={null}
curl --location 'https://tracking.production.judit.io/tracking' \
--header 'api-key: <API-KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "recurrence": 2,
    "search": {
        "search_type": "custom",
        "search_key": "",
        "search_params": {
            "filter": {
                "subject_codes": {
                    "contains": [
                        "5953",
                        "6017",
                        "10394",
                        "12989",
                        "5951",
                        "5971",
                        "14",
                        "030213"
                    ]
                },
                "classification_codes": {
                    "keys": [
                        "1116",
                        "12785"
                    ],
                    "not_equal": false
                },
                "party_documents": [
                    "99.999.999/0009-99",
                    "88.888.888/0008-88"
                ]
            }
        }
    }
}'
```

<Note>
  O monitoramento irá ser iniciado a primeira vez, na melhor janela de
  concorrência de requisição ao tribunal, dentro das próximas 24 horas
  da data de criação.
</Note>

Depois ocorrerá de acordo com a frequência cadastrada no campo ***recurrence***.

<Accordion title="Ver exemplo de resposta">
  ```json theme={null}
  {
      "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
      "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
      "status": "created",
      "recurrence": 2,
      "search": {
          "search_type": "custom",
          "search_key": "custom",
          "response_type": "lawsuit",
          "search_params": {
              "filter": {
                  "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                  "subject_codes": {
                      "contains": [
                          "5953",
                          "6017",
                          "10394",
                          "12989",
                          "5951",
                          "5971",
                          "14",
                          "030213"
                      ],
                      "not_contains": []
                  },
                  "classification_codes": {
                      "keys": [
                          "1116",
                          "12785"
                      ],
                      "not_equal": false
                  },
                  "party_names": [],
                  "party_documents": [
                      "99.999.999/0009-99",
                      "88.888.888/0008-88"
                  ]
              },
              "pagination": {}
          }
      },
      "tracked_items_count": 0,
      "tracked_items_steps_count": 0,
      "tags": {},
      "created_at": "2025-02-04T16:56:39.158Z",
      "updated_at": "2025-02-04T16:56:39.158Z"
  }
  ```
</Accordion>

<Note>
  Na resposta da criação do monitoramento, é retornado o campo `hour_range`, que indica o horário em que a consulta ao tribunal será realizada pela primeira vez.
</Note>

## Consultando Seus Monitoramentos

Para consultar todos os seus monitoramentos, você pode fazer uma solicitação GET para a rota `/tracking`. Esta rota aceita alguns parâmetros de consulta opcionais para paginar e filtrar os resultados:

`page`: Define a página dos resultados que você deseja consultar.

`page_size`: Define o número máximo de resultados que você deseja receber por página;

`search_type`: retorna monitoramentos do tipo de referência especificado **"custom"**, **"cpf"**, **"cnpj"**, **"oab"**, **"lawsuit\_cnj"**, **name** ou **rji**;

`search_key`: retorna monitoramentos com a busca relacionada ao número do CPF, CNPJ, OAB ou processo informado;

`status`: retorna monitoramentos cujo status podem ser `created`, `updating`, `updated`, `paused` ou `deleted` ou mais de um status `['updating', 'paused']`;

Aqui está um exemplo de como consultar seus monitoramentos usando curl:

```bash theme={null}
curl -X GET "https://tracking.production.judit.io/tracking?page=1&page_size=10&search_type=custom" \
-H "api-key: YOUR_API_KEY"
```

## Consultando o Status de um Monitoramento

Na URL vai o **tracking\_id** retornado na criação do monitoramento:

```bash theme={null}
curl --request GET \
--url "https://tracking.production.judit.io/tracking/72084866-499f-4aff-b28a-14d43b8b7d70" \
--header "api-key: SUA-API-KEY" \
--header "Content-Type: application/json"
```

<Accordion title="Ver exemplo de resposta">
  ```json theme={null}
  {
      "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
      "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
      "status": "created",
      "recurrence": 2,
      "search": {
          "search_type": "custom",
          "search_key": "custom",
          "response_type": "lawsuit",
          "search_params": {
              "filter": {
                  "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                  "subject_codes": {
                      "contains": [
                          "5953",
                          "6017",
                          "10394",
                          "12989",
                          "5951",
                          "5971",
                          "14",
                          "030213"
                      ],
                      "not_contains": []
                  },
                  "classification_codes": {
                      "keys": [
                          "1116",
                          "12785"
                      ],
                      "not_equal": false
                  },
                  "party_names": [],
                  "party_documents": [
                      "99.999.999/0009-99",
                      "88.888.888/0008-88"
                  ]
              },
              "pagination": {}
          }
      },
      "tracked_items_count": 0,
      "tracked_items_steps_count": 0,
      "tags": {
          "dashboard_id": null
      },
      "request_id": "05ee9825-b2b4-480b-b29e-f071ca7d9c72",
      "created_at": "2025-02-04T16:56:39.158Z",
      "updated_at": "2025-02-04T16:56:39.158Z"
  }
  ```
</Accordion>

A propriedade `status` informa a situação atual do monitoramento, podendo ser:

<ol type="a">
  <li>
    <strong>created</strong>: Monitoramento criado, porém nunca executado.
  </li>

  <li>
    <strong>updating</strong>: Está com uma requisição em processamento.
  </li>

  <li>
    <strong>updated</strong>: Monitoramento atualizado já com alguma resposta
    disponível. O campo <u>updated\_at</u> pode informar a data de última
    atualização do monitoramento e a propriedade <u>request\_id</u> o id
    da última request feita pelo monitoramento.
  </li>

  <li>
    <strong>paused</strong>: Monitoramento pausado, podendo ainda ser reativado.
  </li>

  <li>
    <strong>deleted</strong>: Monitoramento cancelado e não pode mais ser
    reativado.
  </li>
</ol>

A propriedade **request\_id** só é criada a partir da primeira vez que o monitoramento executou, ou seja, chegou ao status `updated`.

## Atualizando um Monitoramento

Para atualizar um monitoramento, você pode fazer uma solicitação PATCH para a rota `/tracking/{monitoramento}`, substituindo `{monitoramento}` pelo ID do monitoramento que você deseja atualizar.

Esta rota aceita campos opcionais para atualização do tracking: `recurrence`, `tags` e o objeto de `search` para a busca com exceção de alguns campos.

Aqui está um exemplo de como fazer isso usando curl:

```bash theme={null}
curl -X PATCH "https://tracking.production.judit.io/tracking/{monitoramento}" \
-H "api-key: YOUR_API_KEY" \
-d '{
  "recurrence": 5,
  "search": {
    "search_type": "custom",
    "search_key": "custom",
    "search_params": {
      "filter": {
        "classification_codes": {
          "keys": ["1116"],
          "not_equal": false
        },
        "amount_gte": 10000
      }
    }
  }
}'
```

## Pausando um Monitoramento

Para pausar um monitoramento, você pode fazer uma solicitação POST para a rota `/tracking/{monitoramento}/pause`, substituindo `{monitoramento}` pelo ID do monitoramento que você deseja pausar.

Aqui está um exemplo de como pausar o monitoramento usando o curl:

```bash theme={null}
curl -X POST "https://tracking.production.judit.io/tracking/72084866-499f-4aff-b28a-14d43b8b7d70/pause" \
-H "api-key: YOUR_API_KEY"
```

Aqui está um exemplo de retorno do monitoramento pausado:

```json theme={null}
{
    "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
    "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
    "status": "paused",
    "recurrence": 2,
    "search": {
        "search_type": "custom",
        "search_key": "custom",
        "response_type": "lawsuit",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                "subject_codes": {
                    "contains": [
                        "5953",
                        "6017",
                        "10394",
                        "12989",
                        "5951",
                        "5971",
                        "14",
                        "030213"
                    ],
                    "not_contains": []
                },
                "classification_codes": {
                    "keys": [
                        "1116",
                        "12785"
                    ],
                    "not_equal": false
                },
                "party_names": [],
                "party_documents": [
                    "99.999.999/0009-99",
                    "88.888.888/0008-88"
                ]
            },
            "pagination": {}
        }
    },
    "tracked_items_count": 0,
    "tracked_items_steps_count": 0,
    "tags": {},
    "created_at": "2025-02-04T16:56:39.158Z",
    "updated_at": "2025-02-04T16:56:39.158Z"
}
```

## Reativando um Monitoramento

Para reativar um monitoramento pausado, você pode fazer uma solicitação POST para a rota `/tracking/{monitoramento}/resume`, substituindo `{monitoramento}` pelo ID do monitoramento que você deseja reativar.

Aqui está um exemplo de como reativar um monitoramento usando curl:

```bash theme={null}
curl -X POST "https://tracking.production.judit.io/tracking/72084866-499f-4aff-b28a-14d43b8b7d70/resume" \
-H "api-key: YOUR_API_KEY"
```

Aqui está um exemplo de retorno do monitoramento **ativo**:

```json theme={null}
{
    "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
    "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
    "status": "updated",
    "recurrence": 2,
    "search": {
        "search_type": "custom",
        "search_key": "custom",
        "response_type": "lawsuit",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                "subject_codes": {
                    "contains": [
                        "5953",
                        "6017",
                        "10394",
                        "12989",
                        "5951",
                        "5971",
                        "14",
                        "030213"
                    ],
                    "not_contains": []
                },
                "classification_codes": {
                    "keys": [
                        "1116",
                        "12785"
                    ],
                    "not_equal": false
                },
                "party_names": [],
                "party_documents": [
                    "99.999.999/0009-99",
                    "88.888.888/0008-88"
                ]
            },
            "pagination": {}
        }
    },
    "tracked_items_count": 0,
    "tracked_items_steps_count": 0,
    "tags": {},
    "created_at": "2025-02-04T16:56:39.158Z",
    "updated_at": "2025-02-04T16:56:39.158Z"
}
```

## Deletando um Monitoramento

Para deletar um monitoramento, você pode fazer uma solicitação DELETE para a rota `/tracking/{monitoramento}`, substituindo `{monitoramento}` pelo ID do monitoramento que você deseja excluir.

<Warning>
  A exclusão é **definitiva**: o tracker para de rodar imediatamente, suas execuções futuras são canceladas e o histórico de respostas vinculadas a ele permanece consultável apenas via `GET /responses` com o `origin_id` antigo. Se você só quer suspender temporariamente, use [Pausar](#pausando-um-monitoramento) e depois [Reativar](#reativando-um-monitoramento).
</Warning>

Aqui está um exemplo de como deletar um monitoramento usando curl:

```bash theme={null}
curl -X DELETE "https://tracking.production.judit.io/tracking/72084866-499f-4aff-b28a-14d43b8b7d70" \
-H "api-key: YOUR_API_KEY"
```

Aqui está um exemplo de retorno do monitoramento deletado:

```json theme={null}
{
    "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
    "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
    "status": "deleted",
    "recurrence": 2,
    "search": {
        "search_type": "custom",
        "search_key": "custom",
        "response_type": "lawsuit",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                "subject_codes": {
                    "contains": [
                        "5953",
                        "6017"
                    ],
                    "not_contains": []
                },
                "classification_codes": {
                    "keys": [
                        "1116",
                        "12785"
                    ],
                    "not_equal": false
                }
            },
            "pagination": {}
        }
    },
    "tracked_items_count": 0,
    "tracked_items_steps_count": 0,
    "tags": {},
    "created_at": "2025-02-04T16:56:39.158Z",
    "updated_at": "2025-02-04T16:56:39.158Z"
}
```

## Consultando a resposta gerada pelo monitoramento via pooling

### Exemplo de requisição (GET)

<CodeGroup>
  ```bash cURL theme={null}
  curl --location 'https://requests.production.judit.io/responses?page_size=100&request_id=<request_id>' \
    --header 'api-key: '"$JUDIT_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(
    `https://requests.production.judit.io/responses?page_size=100&request_id=${requestId}`,
    { headers: { "api-key": process.env.JUDIT_API_KEY } }
  );
  const data = await res.json();
  console.log(data.page_data);
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://requests.production.judit.io/responses?page_size=100&request_id=' . urlencode($requestId));
  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => ['api-key: ' . getenv('JUDIT_API_KEY')],
  ]);
  echo curl_exec($ch);
  ```

  ```python Python theme={null}
  import os, requests

  resp = requests.get(
      "https://requests.production.judit.io/responses",
      params={"request_id": request_id, "page_size": 100},
      headers={"api-key": os.environ["JUDIT_API_KEY"]},
      timeout=15,
  )
  print(resp.json())
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
      "net/url"
      "os"
  )

  func main() {
      requestID := "<request_id>"
      base, _ := url.Parse("https://requests.production.judit.io/responses")
      q := base.Query(); q.Set("request_id", requestID); q.Set("page_size", "100")
      base.RawQuery = q.Encode()
      req, _ := http.NewRequest("GET", base.String(), nil)
      req.Header.Set("api-key", os.Getenv("JUDIT_API_KEY"))
      res, _ := http.DefaultClient.Do(req)
      defer res.Body.Close()
      out, _ := io.ReadAll(res.Body); fmt.Println(string(out))
  }
  ```
</CodeGroup>

### Exemplos de resposta

<Accordion title="Ver exemplo de resposta — múltiplos processos detectados (200 OK)">
  ```json theme={null}
  {
      "request_status": "completed",
      "page": 1,
      "page_count": 1,
      "all_pages_count": 1,
      "all_count": 2,
      "page_data": [
          {
              "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "response_id": "a37ca823-e1d2-4de4-a973-ec9e859d21ed",
              "origin": "tracking",
              "origin_id": "cfb61e6e-f2bd-4375-8c87-373405cac6db",
              "response_type": "lawsuit",
              "response_data": {
                  "amount": 13687.36,
                  "attachments": [],
                  "classifications": [
                      {
                          "code": "1116",
                          "name": "EXECUÇÃO FISCAL"
                      }
                  ],
                  "code": "3000133-12.2025.8.19.0001",
                  "county": "TESTE TRIBUNAL",
                  "city": "RIO DE JANEIRO",
                  "state": "RJ",
                  "justice_description": "JUSTIÇA ESTADUAL",
                  "created_at": "2025-01-23T16:09:20.134Z",
                  "updated_at": "2025-01-24T16:10:56.948Z",
                  "distribution_date": "2025-01-22T15:19:46.000Z",
                  "free_justice": false,
                  "instance": 1,
                  "justice": "8",
                  "last_step": {
                      "lawsuit_cnj": "3000133-12.2025.8.19.0001",
                      "lawsuit_instance": 1,
                      "private": false,
                      "step_id": "91dc5544",
                      "step_date": "2025-01-22T18:40:18.000Z",
                      "content": "Conclusos para decisão/despacho",
                      "steps_count": 1
                  },
                  "name": "USUÁRIO EXEMPLO 1 X USUÁRIO EXEMPLO 2",
                  "parties": [
                      {
                          "side": "Active",
                          "name": "USUÁRIO EXEMPLO 1",
                          "main_document": "99999999999999",
                          "person_type": "EXEQUENTE",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "lawyers": []
                      },
                      {
                          "side": "Passive",
                          "name": "USUÁRIO EXEMPLO 2",
                          "main_document": "99999999999",
                          "person_type": "EXECUTADO",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999",
                                  "document_type": "CPF"
                              }
                          ],
                          "lawyers": []
                      }
                  ],
                  "related_lawsuits": [],
                  "secrecy_level": 0,
                  "steps": [],
                  "subjects": [
                      {
                          "code": "6017",
                          "name": "DÍVIDA ATIVA (EXECUÇÃO FISCAL)"
                      }
                  ],
                  "tribunal": "19",
                  "tribunal_acronym": "TJRJ"
              },
              "user_id": "98c1d8e0-94bf-43ab-b298-a7158a9efbc9",
              "created_at": "2025-01-24T16:10:53.278Z",
              "tags": {
                  "dashboard_id": null
              }
          },
          {
              "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "response_id": "a6690acb-0856-4e4d-ae69-c8d808ce7d9e",
              "origin": "tracking",
              "origin_id": "cfb61e6e-f2bd-4375-8c87-373405cac6db",
              "response_type": "lawsuit",
              "response_data": {
                  "amount": 17456.15,
                  "attachments": [],
                  "classifications": [
                      {
                          "code": "1116",
                          "name": "EXECUÇÃO FISCAL"
                      }
                  ],
                  "code": "3000233-64.2025.8.19.0001",
                  "county": "CAPITAL 12 VARA FAZ PUBLICA",
                  "city": "RIO DE JANEIRO",
                  "state": "RJ",
                  "justice_description": "JUSTIÇA ESTADUAL",
                  "created_at": "2025-01-27T16:09:19.112Z",
                  "updated_at": "2025-01-27T16:09:19.112Z",
                  "distribution_date": "2025-01-24T17:08:03.000Z",
                  "free_justice": false,
                  "instance": 1,
                  "justice": "8",
                  "last_step": {
                      "lawsuit_cnj": "3000233-64.2025.8.19.0001",
                      "lawsuit_instance": 1,
                      "private": false,
                      "step_id": "5d93c333",
                      "step_date": "2025-01-27T10:30:20.000Z",
                      "content": "Expedição de Carta pelo Correio - 1 carta",
                      "steps_count": 1
                  },
                  "name": "USUÁRIO EXEMPLO 3 X USUÁRIO EXEMPLO 4",
                  "parties": [
                      {
                          "side": "Active",
                          "name": "USUÁRIO EXEMPLO 3",
                          "main_document": "99999999999999",
                          "person_type": "EXEQUENTE",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "lawyers": []
                      },
                      {
                          "side": "Passive",
                          "name": "USUÁRIO EXEMPLO 4",
                          "main_document": "99999999999",
                          "person_type": "EXECUTADO",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999",
                                  "document_type": "CPF"
                              }
                          ],
                          "lawyers": []
                      }
                  ],
                  "related_lawsuits": [],
                  "secrecy_level": 0,
                  "steps": [],
                  "subjects": [
                      {
                          "code": "6017",
                          "name": "DÍVIDA ATIVA (EXECUÇÃO FISCAL)"
                      }
                  ],
                  "tribunal": "19",
                  "tribunal_acronym": "TJRJ"
              },
              "user_id": "98c1d8e0-94bf-43ab-b298-a7158a9efbc9",
              "created_at": "2025-01-27T16:09:18.752Z",
              "tags": {
                  "dashboard_id": null
              }
          }
      ]
  }
  ```
</Accordion>

## Recebendo a resposta enviada por webhook para monitoramento

<Info>
  👉 *[Aprenda a configurar e receber Webhooks aqui](/webhook/callbacks)*
</Info>

**Obs**: Cada novo processo detectado pelos filtros do monitoramento customizado será notificado via webhook contendo o processo por completo.

<Accordion title="Ver exemplo de resposta">
  ```json theme={null}
  {
    "_id": {
      "$oid": "65f0efe046ad3bda5b27be2d"
    },
    "callback_id": "be1406d9-d62d-402d-8e0e-8684044645de",
    "event_type": "response_created",
    "reference_type": "tracking",
    "reference_id": "8744cfea-f9d4-4e83-801e-bc05003ebf6b",
    "user_id": "ac98336e-c493-4609-a058-cf7114f7a2ed",
    "webhook_id": "2f82201d-1439-436d-8c6a-2e6b3e36a54f",
    "payload": {
      "request_id": "7d50b66c-3e86-4d0b-95af-5ff7561d18ff",
      "response_id": "12576767-d3ea-4ea2-8805-6f2a73ef3439",
      "response_type": "lawsuit",
      "response_data": {
        "code": "3000133-12.2025.8.19.0001",
        "justice": "8",
        "tribunal": "19",
        "tribunal_acronym": "TJRJ",
        "instance": 1,
        "distribution_date": "2025-01-22T15:19:46.000Z",
        "secrecy_level": 0,
        "subjects": [
          {
            "code": "6017",
            "name": "DÍVIDA ATIVA (EXECUÇÃO FISCAL)"
          }
        ],
        "classifications": [
          {
            "code": "1116",
            "name": "EXECUÇÃO FISCAL"
          }
        ],
        "parties": [
          {
            "side": "Active",
            "name": "USUÁRIO EXEMPLO 1",
            "main_document": "99999999999999",
            "person_type": "EXEQUENTE",
            "documents": [
              {
                "document": "99999999999999",
                "document_type": "CNPJ"
              }
            ],
            "lawyers": []
          },
          {
            "side": "Passive",
            "name": "USUÁRIO EXEMPLO 2",
            "main_document": "99999999999",
            "person_type": "EXECUTADO",
            "documents": [
              {
                "document": "99999999999",
                "document_type": "CPF"
              }
            ],
            "lawyers": []
          }
        ],
        "attachments": [],
        "steps": [],
        "amount": 13687.36,
        "state": "RJ",
        "city": "RIO DE JANEIRO",
        "justice_description": "JUSTIÇA ESTADUAL"
      }
    }
  }
  ```
</Accordion>

<Warning>
  Para cadastrar seu webhook, entre em contato com a equipe de [suporte](https://api.whatsapp.com/send/?phone=5521976748865) e solicite a criação. Alternativamente, o webhook também pode ser especificado adicionando o parâmetro callback\_url no payload da requisição, conforme o exemplo abaixo:
</Warning>

```json theme={null}
{
    "recurrence": 1,
    "search": {
        "search_type": "custom",
        "search_key": "custom",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2025-01-01T00:00:00.000Z"
            }
        }
    },
    "callback_url": "https://webhook.site/b0ac6522-5bfc-42fa-bebf-a8c2b5ec0999",
    "notification_emails": ["teste@teste.com"]
}
```

## Consultando Informações de um Monitoramento

Para consultar todas as informações sobre um monitoramento específico, você pode fazer uma solicitação GET para a rota `/tracking`, passando o `tracking_id` como parâmetro de consulta.

Aqui está um exemplo de como fazer isso usando curl:

```bash theme={null}
curl -X GET "https://tracking.production.judit.io/tracking?tracking_id=72084866-499f-4aff-b28a-14d43b8b7d70" \
-H "api-key: YOUR_API_KEY"
```

Aqui está o retorno esperado:

```json theme={null}
{
    "tracking_id": "72084866-499f-4aff-b28a-14d43b8b7d70",
    "user_id": "7f8065a3-4891-428d-9456-dedfc12ff850",
    "status": "updated",
    "recurrence": 2,
    "search": {
        "search_type": "custom",
        "search_key": "custom",
        "response_type": "lawsuit",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2025-02-04T16:56:39.158Z",
                "subject_codes": {
                    "contains": [
                        "5953",
                        "6017",
                        "10394",
                        "12989",
                        "5951",
                        "5971",
                        "14",
                        "030213"
                    ],
                    "not_contains": []
                },
                "classification_codes": {
                    "keys": [
                        "1116",
                        "12785"
                    ],
                    "not_equal": false
                },
                "party_names": [],
                "party_documents": [
                    "99.999.999/0009-99",
                    "88.888.888/0008-88"
                ]
            },
            "pagination": {}
        }
    },
    "tracked_items_count": 0,
    "tracked_items_steps_count": 0,
    "tags": {},
    "created_at": "2025-02-04T16:56:39.158Z",
    "updated_at": "2025-02-04T16:56:39.158Z"
}
```

## Consultando histórico de um monitoramento

Para consultar o histórico de respostas geradas por um monitoramento específico, faça uma solicitação GET para a rota `/responses/tracking/{monitoramento}`, substituindo `{monitoramento}` pelo ID do monitoramento desejado.

Você pode filtrar os resultados usando os parâmetros `created_at_gte` e `created_at_lte`, onde:

`created_at_gte`: define a data inicial da consulta.
`created_at_lte`: define a data final da consulta.

Aqui está um exemplo de como fazer isso usando curl:

```bash theme={null}
curl --location 'https://requests.production.judit.io/responses/tracking/<TRACKING_ID>?order=asc&page=1&page_size=50&created_at_gte=2024-03-05T00%3A00%3A00&created_at_lte=2025-03-11T00%3A00%3A00' \
--header 'api-key: <API-KEY>'
```

Aqui está o retorno esperado:

<Accordion title="Ver exemplo de resposta">
  ```json theme={null}
  {
      "request_status": "completed",
      "page": 1,
      "page_count": 2,
      "all_pages_count": 1,
      "all_count": 2,
      "page_data": [
          {
              "request_id": "644a4759-1ae2-48a4-8b09-76afffc75849393",
              "response_id": "a37ca823-e1d2-4de4-a973-ec9e859d21ed",
              "origin": "tracking",
              "origin_id": "cfb61e6e-f2bd-4375-8c87-373405cac6db",
              "response_type": "lawsuit",
              "response_data": {
                  "amount": 13687.36,
                  "attachments": [],
                  "classifications": [
                      {
                          "code": "1116",
                          "name": "EXECUÇÃO FISCAL"
                      }
                  ],
                  "code": "3000133-12.2025.8.19.0001",
                  "county": "TESTE TRIBUNAL",
                  "city": "RIO DE JANEIRO",
                  "state": "RJ",
                  "area": "NÃO INFORMADO",
                  "justice_description": "JUSTIÇA ESTADUAL",
                  "created_at": "2025-01-23T16:09:20.134Z",
                  "updated_at": "2025-01-24T16:10:56.948Z",
                  "metadata": {},
                  "courts": [
                      {
                          "code": "7798",
                          "name": "TESTE RETORNO TRIUNAL"
                      }
                  ],
                  "crawler": {
                      "source_name": "JTJ - BR - Document / Lawsuit - Auth",
                      "crawl_id": "8b485368-4315-4247-8314-a6169aa46e0b",
                      "weight": 0,
                      "updated_at": "2025-01-24T16:10:50.024Z"
                  },
                  "distribution_date": "2025-01-22T15:19:46.000Z",
                  "free_justice": false,
                  "instance": 1,
                  "justice": "8",
                  "last_step": {
                      "lawsuit_cnj": "9999999-99.9999.9.99.9999",
                      "lawsuit_instance": 1,
                      "private": false,
                      "step_id": "91dc5544",
                      "step_date": "2025-01-22T18:40:18.000Z",
                      "content": "Conclusos para decisão/despacho",
                      "step_type": "51",
                      "tags": {
                          "crawl_id": "8b485368-4315-4247-8314-a6169aa46e0b"
                      },
                      "steps_count": 1
                  },
                  "name": "USUÁRIO EXEMPLO 1 X USUÁRIO EXEMPLO 2",
                  "parties": [
                      {
                          "side": "Active",
                          "name": "USUÁRIO EXEMPLO 1",
                          "main_document": "99999999999",
                          "person_type": "EXEQUENTE",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "lawyers": [
                              {
                                  "name": "USUÁRIO EXEMPLO 3",
                                  "main_document": "99999999999",
                                  "documents": [
                                      {
                                          "document": "99999999999",
                                          "document_type": "cpf"
                                      }
                                  ]
                              }
                          ],
                          "tags": {
                              "crawl_id": "8b485368-4315-4247-8314-a6169aa46e0b"
                          }
                      },
                      {
                          "side": "Passive",
                          "name": "USUÁRIO EXEMPLO 2",
                          "main_document": "99999999999",
                          "person_type": "EXECUTADO",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "tags": {
                              "crawl_id": "8b485368-4315-4247-8314-a6169aa46e0b"
                          },
                          "lawyers": []
                      }
                  ],
                  "related_lawsuits": [],
                  "secrecy_level": 0,
                  "steps": [],
                  "subjects": [
                      {
                          "code": "6017",
                          "name": "DÍVIDA ATIVA (EXECUÇÃO FISCAL)"
                      },
                      {
                          "code": "5953",
                          "name": "IPVA - IMPOSTO SOBRE PROPRIEDADE DE VEÍCULOS AUTOMOTORES"
                      }
                  ],
                  "tags": {
                      "crawl_id": "8b485368-4315-4247-8314-a6169aa46e0b",
                      "dictionary_updated_at": "2025-01-24T16:10:50.384Z"
                  },
                  "tribunal": "19",
                  "tribunal_acronym": "TJRJ"
              },
              "user_id": "98c1d8e0-94bf-43ab-b298-a7158a9efbc9",
              "created_at": "2025-01-24T16:10:53.278Z",
              "tags": {
                  "dashboard_id": null
              }
          },
          {
              "request_id": "32e0cbb6-71ed-4165-81d5-08ef4dcf80c6",
              "response_id": "a6690acb-0856-4e4d-ae69-c8d808ce7d9e",
              "origin": "tracking",
              "origin_id": "cfb61e6e-f2bd-4375-8c87-373405cac6db",
              "response_type": "lawsuit",
              "response_data": {
                  "amount": 17456.15,
                  "attachments": [],
                  "classifications": [
                      {
                          "code": "1116",
                          "name": "EXECUÇÃO FISCAL"
                      }
                  ],
                  "code": "3000233-64.2025.8.19.0001",
                  "county": "CAPITAL 12 VARA FAZ PUBLICA",
                  "city": "RIO DE JANEIRO",
                  "state": "RJ",
                  "area": "NÃO INFORMADO",
                  "justice_description": "JUSTIÇA ESTADUAL",
                  "created_at": "2025-01-27T16:09:19.112Z",
                  "updated_at": "2025-01-27T16:09:19.112Z",
                  "metadata": {},
                  "courts": [
                      {
                          "code": "79705",
                          "name": " CAPITAL 17 FAZ PUBLICA"
                      }
                  ],
                  "crawler": {
                      "source_name": "JTJ - BR - Document / Lawsuit - Auth",
                      "crawl_id": "f9efa845-8501-4804-9595-f01c25fd7ba1",
                      "weight": 0,
                      "updated_at": "2025-01-27T16:09:18.570Z"
                  },
                  "distribution_date": "2025-01-24T17:08:03.000Z",
                  "free_justice": false,
                  "instance": 1,
                  "justice": "8",
                  "last_step": {
                      "lawsuit_cnj": "9999999-99.9999.9.99.9999",
                      "lawsuit_instance": 1,
                      "private": false,
                      "step_id": "5d93c333",
                      "step_date": "2025-01-27T10:30:20.000Z",
                      "content": "Expedição de Carta pelo Correio - 1 carta",
                      "step_type": "60",
                      "tags": {
                          "crawl_id": "f9efa845-8501-4804-9595-f01c25fd7ba1"
                      },
                      "steps_count": 1
                  },
                  "name": "usuário teste 1 X usuário teste 2",
                  "parties": [
                      {
                          "side": "Active",
                          "name": "USUÁRIO 1",
                          "main_document": "99999999999999",
                          "person_type": "EXEQUENTE",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "lawyers": [
                              {
                                  "name": "USUÁRIO 2",
                                  "main_document": "99999999999",
                                  "documents": [
                                      {
                                          "document": "99999999999",
                                          "document_type": "cpf"
                                      }
                                  ]
                              }
                          ],
                          "tags": {
                              "crawl_id": "f9efa845-8501-4804-9595-f01c25fd7ba1"
                          }
                      },
                      {
                          "side": "Passive",
                          "name": "USUÁRIO 2",
                          "main_document": "99999999999999",
                          "person_type": "EXECUTADO",
                          "entity_type": "company",
                          "documents": [
                              {
                                  "document": "99999999999999",
                                  "document_type": "CNPJ"
                              }
                          ],
                          "tags": {
                              "crawl_id": "f9efa845-8501-4804-9595-f01c25fd7ba1"
                          },
                          "lawyers": []
                      }
                  ],
                  "related_lawsuits": [],
                  "secrecy_level": 0,
                  "steps": [],
                  "subjects": [
                      {
                          "code": "6017",
                          "name": "DÍVIDA ATIVA (EXECUÇÃO FISCAL)"
                      },
                      {
                          "code": "5953",
                          "name": "IPVA - IMPOSTO SOBRE PROPRIEDADE DE VEÍCULOS AUTOMOTORES"
                      }
                  ],
                  "tags": {
                      "crawl_id": "f9efa845-8501-4804-9595-f01c25fd7ba1",
                      "dictionary_updated_at": "2025-01-27T16:09:19.635Z"
                  },
                  "tribunal": "19",
                  "tribunal_acronym": "TJRJ"
              },
              "user_id": "98c1d8e0-94bf-43ab-b298-a7158a9efbc9",
              "created_at": "2025-01-27T16:09:18.752Z",
              "tags": {
                  "dashboard_id": null
              }
          }
      ]
  }
  ```
</Accordion>
