curl --request POST \
--url https://api.croma.run/br/djen/publications-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"party_name": "BANCO DO BRASIL",
"court_code": "TJSP",
"from_date": "2026-09-09",
"to_date": "2026-09-09",
"per_page": 10
}
'import requests
url = "https://api.croma.run/br/djen/publications-search/v1"
payload = {
"party_name": "BANCO DO BRASIL",
"court_code": "TJSP",
"from_date": "2026-09-09",
"to_date": "2026-09-09",
"per_page": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
party_name: 'BANCO DO BRASIL',
court_code: 'TJSP',
from_date: '2026-09-09',
to_date: '2026-09-09',
per_page: 10
})
};
fetch('https://api.croma.run/br/djen/publications-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/br/djen/publications-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'party_name' => 'BANCO DO BRASIL',
'court_code' => 'TJSP',
'from_date' => '2026-09-09',
'to_date' => '2026-09-09',
'per_page' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/br/djen/publications-search/v1"
payload := strings.NewReader("{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/br/djen/publications-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/br/djen/publications-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"total": 123,
"total_is_lower_bound": true,
"count": 123,
"page": 123,
"per_page": 123,
"publications": [
{
"id": 123,
"available_on": "<string>",
"court_code": "<string>",
"judicial_body": "<string>",
"judicial_body_id": 123,
"communication_type": "<string>",
"document_type": "<string>",
"medium": "diario",
"registration_number": "<string>",
"registration_number_formatted": "<string>",
"class_name": "<string>",
"class_code": "<string>",
"sequence": 123,
"active": true,
"cancelled_on": "<string>",
"cancellation_reason": "<string>",
"source_url": "<string>",
"text": "<string>",
"parties": [
{
"name": "<string>",
"pole": "<string>"
}
],
"lawyers": [
{
"name": "<string>",
"oab_number": "<string>",
"oab_state": "<string>"
}
]
}
],
"checked_at": "<string>"
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}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.
curl --request POST \
--url https://api.croma.run/br/djen/publications-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"party_name": "BANCO DO BRASIL",
"court_code": "TJSP",
"from_date": "2026-09-09",
"to_date": "2026-09-09",
"per_page": 10
}
'import requests
url = "https://api.croma.run/br/djen/publications-search/v1"
payload = {
"party_name": "BANCO DO BRASIL",
"court_code": "TJSP",
"from_date": "2026-09-09",
"to_date": "2026-09-09",
"per_page": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
party_name: 'BANCO DO BRASIL',
court_code: 'TJSP',
from_date: '2026-09-09',
to_date: '2026-09-09',
per_page: 10
})
};
fetch('https://api.croma.run/br/djen/publications-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/br/djen/publications-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'party_name' => 'BANCO DO BRASIL',
'court_code' => 'TJSP',
'from_date' => '2026-09-09',
'to_date' => '2026-09-09',
'per_page' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/br/djen/publications-search/v1"
payload := strings.NewReader("{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/br/djen/publications-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/br/djen/publications-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"party_name\": \"BANCO DO BRASIL\",\n \"court_code\": \"TJSP\",\n \"from_date\": \"2026-09-09\",\n \"to_date\": \"2026-09-09\",\n \"per_page\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"total": 123,
"total_is_lower_bound": true,
"count": 123,
"page": 123,
"per_page": 123,
"publications": [
{
"id": 123,
"available_on": "<string>",
"court_code": "<string>",
"judicial_body": "<string>",
"judicial_body_id": 123,
"communication_type": "<string>",
"document_type": "<string>",
"medium": "diario",
"registration_number": "<string>",
"registration_number_formatted": "<string>",
"class_name": "<string>",
"class_code": "<string>",
"sequence": 123,
"active": true,
"cancelled_on": "<string>",
"cancellation_reason": "<string>",
"source_url": "<string>",
"text": "<string>",
"parties": [
{
"name": "<string>",
"pole": "<string>"
}
],
"lawyers": [
{
"name": "<string>",
"oab_number": "<string>",
"oab_state": "<string>"
}
]
}
],
"checked_at": "<string>"
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}Authorizations
Use Authorization: Bearer YOUR_API_KEY
Headers
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.
255"0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b"
Body
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.
200Nombre de un abogado destinatario de la publicación (opcional). Coincide por palabras completas, sin distinguir mayúsculas ni acentos.
200Número de inscripción en la OAB de un abogado destinatario, solo dígitos, p. ej. 123456 (opcional).
^\d{0,7}$Sigla del estado (UF) de la inscripción en la OAB, p. ej. SP (opcional).
^(?:[A-Za-z]{2})?$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).
^(?:\d{20}|\d{7}-\d{2}\.\d{4}\.\d\.\d{2}\.\d{4})?$Sigla del tribunal en el DJEN, p. ej. TJSP, TRT2, TRF1, STJ, TST; los electorales llevan guion, TRE-SP (opcional). Sin distinguir mayúsculas.
Texto a buscar en el cuerpo de la publicación (opcional).
200Optional date filter in yyyy-mm-dd format.
Optional date filter in yyyy-mm-dd format.
diario para el Diário de Justiça Eletrônico Nacional, edital para la Plataforma Nacional de Editais, any para ambos.
any, diario, edital 1-based page number for paginated results.
1 <= x <= 1000Resultados por página (6-50).
6 <= x <= 50Response
Successful response
Show child attributes
Show child attributes