Skip to main content

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.

New CNPJ format (IN 2229/24)Judit already accepts the new alphanumeric CNPJ format in compliance with the Brazilian Federal Revenue Normative Instruction No. 2229/2024.
  • Zero effort: no changes are required in your integration.
  • Test environment: use the document A1B2C3D4/E5F6-68 to validate the flow and receive a mock lawsuit in response.
Official Justice Gazette Monitoring scans the National Electronic Justice Gazette (DJEN) daily for publications containing the registered term. The search is performed across all text fields of the publication — parties, lawyers, court organ, full text — regardless of the search_type chosen.
🤖 Endpoint: POST https://tracking.production.judit.io/tracking with response_type: "communication". Daily, Judit processes the DJENN publications and delivers via webhook those that match your term.

When to use

Intimation tracking

Get notified immediately when a CPF, CNPJ or OAB is mentioned in an intimation or publication in the DJEN.

Name or term watch

Monitor any word or expression — a company name, a court, a judge — and receive all matching publications.

Compliance & due diligence

Ensure no relevant publication about a client, supplier or counterpart goes unnoticed.

Law firms

Centralize the publication tracking for all clients in a single webhook stream.
1

Creating the tracking

Request payload

The POST request must include a payload with the following properties:
  • search_type: Defines the type of search. Accepted values are: cpf, cnpj, oab or name. Regardless of the type chosen, the search is performed across all text fields of the publication;
  • search_key: The term to search for — CPF, CNPJ, OAB number or any free name/expression;
  • response_type: Must be "communication" to activate DJEN monitoring;
  • notification_emails (optional): Array of email addresses that will receive notifications for every tracking update.
This tracking type does not accept additional filters (filter, side, tribunals, etc.). Matching is done by full-text search across the entire publication.
curl --location 'https://tracking.production.judit.io/tracking' \
--header 'api-key: <API-KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "search": {
        "search_type": "name",
        "search_key": "EXAMPLE NAME",
        "response_type": "communication"
    }
}'
DJEN monitoring runs daily.
Creation response:
{
  "tracking_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "status": "created",
  "search": {
    "search_type": "name",
    "search_key": "EXAMPLE NAME",
    "response_type": "communication"
  },
  "tracked_items_count": 0,
  "tracked_items_steps_count": 0,
  "tags": {},
  "created_at": "2026-05-20T04:52:50.223Z",
  "updated_at": "2026-05-20T04:52:50.223Z"
}
2

Checking the tracking status

The URL takes the tracking_id returned in the first request:
curl --request GET \
--url "https://tracking.production.judit.io/tracking/a94db796-9e35-4d0c-8e05-2a6b60f32a74" \
--header "api-key: YOUR-API-KEY" \
--header "Content-Type: application/json"
Response:
{
  "tracking_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "status": "updated",
  "search": {
    "search_type": "name",
    "search_key": "EXAMPLE NAME",
    "response_type": "communication"
  },
  "tracked_items_count": 3,
  "tracked_items_steps_count": 0,
  "tags": {
    "dashboard_id": null
  },
  "request_id": "186e0ed5-4656-4fd8-8e07-76f755c44a9d",
  "created_at": "2026-05-20T04:52:50.223Z",
  "updated_at": "2026-05-20T20:12:47.839Z"
}
The status property indicates the current state of the tracking, which can be:
  1. created: Tracking created, but never executed.
  2. updating: Has a request currently being processed.
  3. updated: Tracking updated with at least one response available. The updated_at field shows the last update date and request_id the ID of the last execution.
  4. paused: Tracking paused, but can still be resumed.
  5. deleted: Tracking canceled and can no longer be resumed.
The request_id property is only populated after the tracking has executed at least once (status updated).
3

Retrieving the response content (publication found)

The URL takes the request_id returned in the status query:
curl --request GET \
--url "https://requests.production.judit.io/responses/?request_id=186e0ed5-4656-4fd8-8e07-76f755c44a9d" \
--header "api-key: YOUR-API-KEY" \
--header "Content-Type: application/json"
{
  "page": 1,
  "page_count": 1,
  "all_count": 1,
  "all_pages_count": 1,
  "page_data": [
    {
      "request_id": "186e0ed5-4656-4fd8-8e07-76f755c44a9d",
      "response_id": "dd47b9fc-8f66-46b8-a31a-50a4718c9774",
      "origin": "tracking",
      "origin_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
      "response_type": "communication",
      "response_data": {
        "communication_id": "0E6hgZvG",
        "active": true,
        "classification_code": "12154",
        "classification_name": "ENFORCEMENT OF EXTRAJUDICIAL TITLE",
        "date_availability": "2026-05-20T00:00:00.000Z",
        "date_shipping": "2026-05-19T03:00:00.000Z",
        "recipient_lawyers": [
          {
            "lawyer": {
              "id": 10001,
              "name": "EXAMPLE LAWYER 1",
              "license_code": "0001",
              "license_state": "SP"
            },
            "lawyer_id": 10001,
            "communication_id": 600000001,
            "id": 1100000001,
            "created_at": "2026-05-19 11:44:08",
            "updated_at": "2026-05-19 11:44:08"
          }
        ],
        "recipients": [
          {
            "communication_id": 600000001,
            "name": "ACTIVE PARTY EXAMPLE",
            "side": "Active"
          },
          {
            "communication_id": 600000001,
            "name": "PASSIVE PARTY EXAMPLE 1",
            "side": "Passive"
          }
        ],
        "hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "api_id": 600000001,
        "middle": "D",
        "full_middle": "NATIONAL ELECTRONIC JUSTICE GAZETTE",
        "name_organ": "DISTRICT COURT - 1st CIVIL COURT",
        "communication_number": 2674,
        "lawsuit_code": "0000000-00.0000.8.00.0000",
        "tribunal_acronym": "TJXX",
        "status": "P",
        "text": "Full text of the publication as extracted from the DJEN...",
        "communication_type": "INTIMATION",
        "document_type": "DECISION",
        "integrate_api": false,
        "source": "pje"
      },
      "user_id": "00000000-0000-0000-0000-000000000000",
      "created_at": "2026-05-20T20:12:47.839Z",
      "updated_at": "2026-05-20T20:12:47.839Z"
    }
  ]
}
The meaning of each field in the response_data object can be found in the Communication Schema.
DJEN monitoring only generates responses when there are new publications matching the registered term. Days with no match do not produce response_data.
4

Retrieving the history of a tracking

To retrieve the history of publications found by a specific tracking, make a GET request to the /responses/tracking/{tracking_id} route:You can filter the results using the created_at_gte and created_at_lte parameters:
  • created_at_gte: defines the start date of the query;
  • created_at_lte: defines the end date of the query.
curl --location 'https://requests.production.judit.io/responses/tracking/<TRACKING_ID>?order=asc&page=1&page_size=50&created_at_gte=2026-01-01T00%3A00%3A00&created_at_lte=2026-05-21T00%3A00%3A00' \
--header 'api-key: <API-KEY>'
Expected response:
{
  "request_status": "completed",
  "page": 1,
  "page_count": 2,
  "all_pages_count": 1,
  "all_count": 2,
  "page_data": [
    {
      "request_id": "186e0ed5-4656-4fd8-8e07-76f755c44a9d",
      "response_id": "dd47b9fc-8f66-46b8-a31a-50a4718c9774",
      "origin": "tracking",
      "origin_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
      "response_type": "communication",
      "response_data": {
        "communication_id": "0E6hgZvG",
        "active": true,
        "lawsuit_code": "0000000-00.0000.8.00.0000",
        "tribunal_acronym": "TJXX",
        "communication_type": "INTIMATION",
        "document_type": "DECISION",
        "date_availability": "2026-05-20T00:00:00.000Z",
        "text": "Full text of the publication..."
      },
      "created_at": "2026-05-20T20:12:47.839Z"
    }
  ]
}
5

Pausing a tracking

To pause a tracking, make a POST request to the /tracking/{tracking_id}/pause route:
curl -X POST "https://tracking.production.judit.io/tracking/a94db796-9e35-4d0c-8e05-2a6b60f32a74/pause" \
-H "api-key: YOUR-API-KEY"
Response:
{
  "tracking_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "status": "paused",
  "search": {
    "search_type": "name",
    "search_key": "EXAMPLE NAME",
    "response_type": "communication"
  },
  "tracked_items_count": 3,
  "tracked_items_steps_count": 0,
  "tags": {},
  "created_at": "2026-05-20T04:52:50.223Z",
  "updated_at": "2026-05-20T20:12:47.839Z"
}
6

Resuming a tracking

To resume a paused tracking, make a POST request to the /tracking/{tracking_id}/resume route:
curl -X POST "https://tracking.production.judit.io/tracking/a94db796-9e35-4d0c-8e05-2a6b60f32a74/resume" \
-H "api-key: YOUR-API-KEY"
Response:
{
  "tracking_id": "a94db796-9e35-4d0c-8e05-2a6b60f32a74",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "status": "updated",
  "search": {
    "search_type": "name",
    "search_key": "EXAMPLE NAME",
    "response_type": "communication"
  },
  "tracked_items_count": 3,
  "tracked_items_steps_count": 0,
  "tags": {},
  "created_at": "2026-05-20T04:52:50.223Z",
  "updated_at": "2026-05-20T20:12:47.839Z"
}