curl --request POST \
--url https://api.croma.run/co/cndj/rulings-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "prescripción",
"limit": 25
}
'import requests
url = "https://api.croma.run/co/cndj/rulings-search/v1"
payload = {
"query": "prescripción",
"limit": 25
}
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({query: 'prescripción', limit: 25})
};
fetch('https://api.croma.run/co/cndj/rulings-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/co/cndj/rulings-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([
'query' => 'prescripción',
'limit' => 25
]),
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/co/cndj/rulings-search/v1"
payload := strings.NewReader("{\n \"query\": \"prescripción\",\n \"limit\": 25\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/co/cndj/rulings-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"prescripción\",\n \"limit\": 25\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/cndj/rulings-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 \"query\": \"prescripción\",\n \"limit\": 25\n}"
response = http.request(request)
puts response.read_body{
"data": {
"query": "<string>",
"total": 123,
"count": 123,
"limit": 123,
"results": [
{
"numero_unico": "<string>",
"numero_ficha": 123,
"magistrado_ponente": "<string>",
"contenido_radicacion": "<string>",
"decision": "<string>",
"fecha": "<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": {}
}
}CNDJ Rulings Search
Search disciplinary rulings from the Relatoría de la Comisión Nacional de Disciplina Judicial (CNDJ) by free text or the advanced filters (reporting magistrate, topic, respondent, matter, subtopic, filing year). Returns the matching summaries with their numero_unico + numero_ficha key; read one in full with cndj-ruling.
curl --request POST \
--url https://api.croma.run/co/cndj/rulings-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "prescripción",
"limit": 25
}
'import requests
url = "https://api.croma.run/co/cndj/rulings-search/v1"
payload = {
"query": "prescripción",
"limit": 25
}
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({query: 'prescripción', limit: 25})
};
fetch('https://api.croma.run/co/cndj/rulings-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/co/cndj/rulings-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([
'query' => 'prescripción',
'limit' => 25
]),
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/co/cndj/rulings-search/v1"
payload := strings.NewReader("{\n \"query\": \"prescripción\",\n \"limit\": 25\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/co/cndj/rulings-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"prescripción\",\n \"limit\": 25\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/cndj/rulings-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 \"query\": \"prescripción\",\n \"limit\": 25\n}"
response = http.request(request)
puts response.read_body{
"data": {
"query": "<string>",
"total": 123,
"count": 123,
"limit": 123,
"results": [
{
"numero_unico": "<string>",
"numero_ficha": 123,
"magistrado_ponente": "<string>",
"contenido_radicacion": "<string>",
"decision": "<string>",
"fecha": "<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
Texto de búsqueda general (providencias disciplinarias).
300Filtro por magistrado ponente.
120Filtro por tema.
120Filtro por nombre del disciplinado.
120Filtro por asunto.
120Filtro por restrictor.
120Filtro opcional por año de radicación (4 dígitos).
Número máximo de resultados a devolver.
1 <= x <= 100Response
Successful response
Show child attributes
Show child attributes