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

# DJEN Publications Search

> Search Brazil's national court publications (Diário de Justiça Eletrônico Nacional, CNJ) by party name, lawyer name, OAB number, CNJ case number, court, free text and availability date: intimações, citações, editais and listas de distribuição from every state, federal, labour, electoral and military court and the superior courts, newest first, with the full text and the parties and lawyers each publication is addressed to. At least one of party, lawyer, OAB number, case number, court or text is required; `total` is exact for a single day and stops at 10,000 for a range.



## OpenAPI

````yaml /api-reference/openapi.json post /br/djen/publications-search/v1
openapi: 3.1.0
info:
  title: Croma Marketplace API
  version: 1.0.0
  description: >-
    Government-data APIs for Colombia, Peru, Mexico, and global web search.
    Croma normalizes public-sector data into structured JSON for product teams
    and AI agents.


    Every operation is a POST with a JSON body and an organization API key as a
    bearer token; every operation is an idempotent lookup and accepts an
    optional `Idempotency-Key` header. Paths carry their major version (`/v1`);
    the versioning and deprecation policy, including the `Deprecation` and
    `Sunset` headers a retiring endpoint sends, is at
    https://docs.usecroma.com/versioning. Rate limits are per organization and
    reported on every response (`RateLimit-Policy`, `X-RateLimit-*`):
    https://docs.usecroma.com/rate-limits.
  termsOfService: https://usecroma.com/en/terms
  contact:
    name: Croma support
    url: https://usecroma.com/en/support
    email: tomas@usecroma.com
servers:
  - url: https://api.croma.run
security: []
paths:
  /br/djen/publications-search/v1:
    post:
      tags:
        - Brazil
        - Diário de Justiça Eletrônico Nacional (CNJ)
      summary: DJEN Publications Search
      description: >-
        Search Brazil's national court publications (Diário de Justiça
        Eletrônico Nacional, CNJ) by party name, lawyer name, OAB number, CNJ
        case number, court, free text and availability date: intimações,
        citações, editais and listas de distribuição from every state, federal,
        labour, electoral and military court and the superior courts, newest
        first, with the full text and the parties and lawyers each publication
        is addressed to. At least one of party, lawyer, OAB number, case number,
        court or text is required; `total` is exact for a single day and stops
        at 10,000 for a range.
      operationId: djen_publications_search
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                party_name:
                  type: string
                  maxLength: 200
                  default: ''
                  description: >-
                    Nombre de una parte tal como aparece en la publicación, p.
                    ej. `BANCO DO BRASIL` (opcional). Coincide por palabras
                    completas, sin distinguir mayúsculas ni acentos.
                lawyer_name:
                  type: string
                  maxLength: 200
                  default: ''
                  description: >-
                    Nombre de un abogado destinatario de la publicación
                    (opcional). Coincide por palabras completas, sin distinguir
                    mayúsculas ni acentos.
                oab_number:
                  type: string
                  pattern: ^\d{0,7}$
                  default: ''
                  description: >-
                    Número de inscripción en la OAB de un abogado destinatario,
                    solo dígitos, p. ej. `123456` (opcional).
                oab_state:
                  type: string
                  pattern: ^(?:[A-Za-z]{2})?$
                  default: ''
                  description: >-
                    Sigla del estado (UF) de la inscripción en la OAB, p. ej.
                    `SP` (opcional).
                registration_number:
                  type: string
                  pattern: ^(?:\d{20}|\d{7}-\d{2}\.\d{4}\.\d\.\d{2}\.\d{4})?$
                  default: ''
                  description: >-
                    Número único del proceso (CNJ): 20 dígitos o con el formato
                    NNNNNNN-DD.AAAA.J.TR.OOOO, p. ej.
                    `0001234-56.2026.8.26.0100` (opcional).
                court_code:
                  type: string
                  default: ''
                  description: >-
                    Sigla del tribunal en el DJEN, p. ej. `TJSP`, `TRT2`,
                    `TRF1`, `STJ`, `TST`; los electorales llevan guion, `TRE-SP`
                    (opcional). Sin distinguir mayúsculas.
                query:
                  type: string
                  maxLength: 200
                  default: ''
                  description: Texto a buscar en el cuerpo de la publicación (opcional).
                from_date:
                  type: string
                  format: date
                  default: ''
                  description: Optional date filter in yyyy-mm-dd format.
                to_date:
                  type: string
                  format: date
                  default: ''
                  description: Optional date filter in yyyy-mm-dd format.
                medium:
                  type: string
                  enum:
                    - any
                    - diario
                    - edital
                  default: any
                  description: >-
                    `diario` para el Diário de Justiça Eletrônico Nacional,
                    `edital` para la Plataforma Nacional de Editais, `any` para
                    ambos.
                page:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 1
                  description: 1-based page number for paginated results.
                per_page:
                  type: integer
                  minimum: 6
                  maximum: 50
                  default: 20
                  description: Resultados por página (6-50).
              additionalProperties: false
            example:
              party_name: BANCO DO BRASIL
              court_code: TJSP
              from_date: '2026-09-09'
              to_date: '2026-09-09'
              per_page: 10
      responses:
        '200':
          description: Successful response
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Cache:
              $ref: '#/components/headers/X-Cache'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DjenPublicationsSearchResponse'
        '400':
          description: Invalid request body
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Missing or invalid API key
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limit exceeded
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '502':
          description: Upstream source returned an error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
      externalDocs:
        description: Interactive documentation and examples
        url: https://docs.usecroma.com/guides/brazil/djen
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: >-
        Optional client-chosen key for this request (any string up to 255
        characters, e.g. a UUID). Every Croma operation is an idempotent lookup:
        repeating a request with the same body returns the same result and
        creates nothing, so retrying after a timeout or network failure is
        always safe. The key is echoed back in the `Idempotency-Key` response
        header so you can correlate a retry with its first attempt. Each attempt
        that reaches the API counts against the rate limit.
      schema:
        type: string
        maxLength: 255
        example: 0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b
  headers:
    X-Request-Id:
      description: Unique id for the request (req_…). Include it in support reports.
      schema:
        type: string
    RateLimit-Policy:
      description: >-
        Quota policy for this endpoint as an IETF RateLimit-Policy structured
        field, e.g. `"default";q=100;w=86400` (100 requests per 86400-second
        window per organization). Endpoints with an extra hourly ceiling list
        both policies, e.g. `"webSearch";q=10;w=3600, "default";q=100;w=86400`.
        Present on every response, including 401 and 429.
      schema:
        type: string
        example: '"default";q=100;w=86400'
    Idempotency-Key:
      description: >-
        The `Idempotency-Key` the request carried, echoed back unchanged. Absent
        when the request sent none.
      schema:
        type: string
    Deprecation:
      description: >-
        Present only on an endpoint version scheduled for removal: the date the
        deprecation took effect (RFC 9745). A `Sunset` header and a `Link` with
        `rel="successor-version"` accompany it. Policy:
        https://docs.usecroma.com/versioning
      schema:
        type: string
        example: '@1767225600'
    Sunset:
      description: >-
        Present only on an endpoint version scheduled for removal: the date
        after which it answers 410 (RFC 8594). Announced in the changelog at
        least 90 days ahead.
      schema:
        type: string
        format: date-time
        example: Wed, 01 Apr 2026 00:00:00 GMT
    X-RateLimit-Limit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests left before you are throttled.
      schema:
        type: integer
    X-RateLimit-Reset:
      description: ISO 8601 timestamp when the window resets.
      schema:
        type: string
        format: date-time
    X-Cache:
      description: HIT or MISS. Cached hits still count against your quota.
      schema:
        type: string
        enum:
          - HIT
          - MISS
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  schemas:
    DjenPublicationsSearchResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/DjenPublicationsSearchData'
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              description: >-
                Broad category: invalid_request_error, authentication_error,
                not_found_error, rate_limit_error, upstream_error, api_error.
            code:
              type: string
              description: Machine-readable specific code.
            message:
              type: string
              description: Human-readable explanation, safe to surface in UI.
            param:
              type: string
              description: Field that triggered the error. Present on validation errors.
            details:
              type: object
              description: Free-form structured detail.
    DjenPublicationsSearchData:
      type: object
      properties:
        total:
          type: integer
          description: >-
            Publications matching the filters. Exact when `from_date` and
            `to_date` name the same day; for a wider range or no dates it stops
            at 10,000, see `total_is_lower_bound`.
        total_is_lower_bound:
          type: boolean
          description: >-
            true when `total` is the 10,000 ceiling rather than the real count:
            more publications match than can be paged. Narrow the dates, or
            query one day at a time, which pages in full.
        count:
          type: integer
          description: Publications in this response.
        page:
          type: integer
          description: The page returned, echoed back.
        per_page:
          type: integer
          description: Rows per page, echoed back.
        publications:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                description: The DJEN's id for the publication.
              available_on:
                type: string
                description: >-
                  `yyyy-mm-dd` the publication became available (data de
                  disponibilização). The publication date proper is the next
                  business day and procedural deadlines start on the one after;
                  this field is the availability date.
              court_code:
                type: string
                description: The court's alias, e.g. `TJSP`, `TRT2`, `TRF1`, `STJ`.
              judicial_body:
                anyOf:
                  - type: string
                  - type: 'null'
                description: The judicial body (vara, turma, câmara) that issued it.
              judicial_body_id:
                anyOf:
                  - type: integer
                  - type: 'null'
                description: The DJEN's id for that judicial body.
              communication_type:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  `Intimação`, `Citação`, `Edital` or `Lista de distribuição`,
                  as the court files it.
              document_type:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  The court's own label for the document, e.g. `Ato
                  ordinatório`, `DESPACHO/DECISÃO`, `Edital`.
              medium:
                anyOf:
                  - type: string
                    enum:
                      - diario
                      - edital
                  - type: 'null'
                description: >-
                  `diario` for the Diário de Justiça Eletrônico Nacional,
                  `edital` for the Plataforma Nacional de Editais.
              registration_number:
                anyOf:
                  - type: string
                  - type: 'null'
                description: The CNJ case number, 20 digits.
              registration_number_formatted:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  The same case number with the CNJ mask,
                  `NNNNNNN-DD.AAAA.J.TR.OOOO`.
              class_name:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  Procedural class, e.g. `CUMPRIMENTO DE SENTENÇA`, `AÇÃO
                  PENAL`.
              class_code:
                anyOf:
                  - type: string
                  - type: 'null'
                description: The CNJ code of the procedural class.
              sequence:
                anyOf:
                  - type: integer
                  - type: 'null'
                description: The court's sequence number for the publication.
              active:
                type: boolean
                description: false when the court withdrew the publication.
              cancelled_on:
                anyOf:
                  - type: string
                  - type: 'null'
                description: When the court withdrew it, or null.
              cancellation_reason:
                anyOf:
                  - type: string
                  - type: 'null'
                description: Why the court withdrew it, or null.
              source_url:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  Link to the case in the court's own system, when the court
                  provides one.
              text:
                type: string
                description: >-
                  The full text of the publication, as plain text with paragraph
                  breaks.
              parties:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: The party's name as the publication prints it.
                    pole:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Which side the party is on: `A` (polo ativo, the
                        claimant side) or `P` (polo passivo, the defendant
                        side); other letters as the court files them.
                  required:
                    - name
                    - pole
                description: The parties the publication is addressed to, with their side.
              lawyers:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: The lawyer's name as the publication prints it.
                    oab_number:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: OAB registration number, digits only.
                    oab_state:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Two-letter state of the OAB registration, e.g. `SP`.
                  required:
                    - name
                    - oab_number
                    - oab_state
                description: >-
                  The lawyers the publication is addressed to; empty on most
                  editais.
            required:
              - id
              - available_on
              - court_code
              - judicial_body
              - judicial_body_id
              - communication_type
              - document_type
              - medium
              - registration_number
              - registration_number_formatted
              - class_name
              - class_code
              - sequence
              - active
              - cancelled_on
              - cancellation_reason
              - source_url
              - text
              - parties
              - lawyers
          description: Newest availability date first; empty past the last page.
        checked_at:
          type: string
          description: When this answer was read from the DJEN, as an ISO timestamp.
      required:
        - total
        - total_is_lower_bound
        - count
        - page
        - per_page
        - publications
        - checked_at
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer YOUR_API_KEY'

````