curl --request POST \
--url https://api.croma.run/co/rama-judicial/emails-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"city": "bucaramanga",
"specialty": "penal"
}
'import requests
url = "https://api.croma.run/co/rama-judicial/emails-search/v1"
payload = {
"city": "bucaramanga",
"specialty": "penal"
}
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({city: 'bucaramanga', specialty: 'penal'})
};
fetch('https://api.croma.run/co/rama-judicial/emails-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/rama-judicial/emails-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([
'city' => 'bucaramanga',
'specialty' => 'penal'
]),
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/rama-judicial/emails-search/v1"
payload := strings.NewReader("{\n \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\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/rama-judicial/emails-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/rama-judicial/emails-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 \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"department": "<string>",
"city": "<string>",
"corporation": "<string>",
"specialty": "<string>",
"account_type": "<string>",
"court_code": "<string>",
"district": "<string>",
"total": 123,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"results": [
{
"email": "<string>",
"name": "<string>",
"account_type": "<string>",
"corporation": "<string>",
"corporation_key": "<string>",
"specialty": "<string>",
"specialty_key": "<string>",
"department": "<string>",
"department_key": "<string>",
"city": "<string>",
"city_key": "<string>",
"district": "<string>",
"district_key": "<string>",
"court_code": "<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": {}
}
}Rama Judicial Emails Search
Search the Rama Judicial’s official email directory: the mailbox of every Colombian despacho judicial and administrative area, with its corporation, specialty, department, city and seccional. Filter by place, kind of office or specialty (case and accents ignored), or resolve a court directly from a case: the first 12 digits of any radicado are the court_code of the despacho that holds it, and a full radicado is accepted as-is. Free text reaches the office name, the address itself, and the office’s classification and place. Served by Croma (as_of says how current the data is).
Dataset endpoint: answers from the whole source in milliseconds and carries as_of.
curl --request POST \
--url https://api.croma.run/co/rama-judicial/emails-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"city": "bucaramanga",
"specialty": "penal"
}
'import requests
url = "https://api.croma.run/co/rama-judicial/emails-search/v1"
payload = {
"city": "bucaramanga",
"specialty": "penal"
}
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({city: 'bucaramanga', specialty: 'penal'})
};
fetch('https://api.croma.run/co/rama-judicial/emails-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/rama-judicial/emails-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([
'city' => 'bucaramanga',
'specialty' => 'penal'
]),
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/rama-judicial/emails-search/v1"
payload := strings.NewReader("{\n \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\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/rama-judicial/emails-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/rama-judicial/emails-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 \"city\": \"bucaramanga\",\n \"specialty\": \"penal\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"department": "<string>",
"city": "<string>",
"corporation": "<string>",
"specialty": "<string>",
"account_type": "<string>",
"court_code": "<string>",
"district": "<string>",
"total": 123,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"results": [
{
"email": "<string>",
"name": "<string>",
"account_type": "<string>",
"corporation": "<string>",
"corporation_key": "<string>",
"specialty": "<string>",
"specialty_key": "<string>",
"department": "<string>",
"department_key": "<string>",
"city": "<string>",
"city_key": "<string>",
"district": "<string>",
"district_key": "<string>",
"court_code": "<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
Optional search terms matched against the office name, the email address, and the office's corporation, specialty, department, city and seccional.
200Optional department, matched from the start of the name: santander, bogota, valle. Case and accents are ignored.
60Optional city, matched from the start of the name: bogota finds Bogotá D.C., medellin Medellín. Case and accents are ignored.
60Optional kind of office (corporación), matched from the start of the name: juzgado-de-circuito, tribunal-superior, centro-de-servicios, corte-suprema. Case and accents are ignored; juzgado matches every kind of juzgado.
120Optional specialty (especialidad), matched from the start of the name: civil, laboral, penal (which also matches the penal sub-specialties), familia. Case and accents are ignored.
120Optional kind of mailbox: despacho for a court's own account, area for an administrative or service area. Empty returns both.
, despacho, area Optional 12-digit court code (código de despacho). A full 20-25-digit radicado is also accepted: its first 12 digits identify the office where the case is filed.
^(\d{12}|\d{20,25})?$Optional administrative district (seccional), matched from the start of the name: bucaramanga finds Seccional Bucaramanga, nivel-central the national level. Case and accents are ignored.
601-based page number for paginated results.
1 <= x <= 1000Results per page (1-100).
1 <= x <= 100Response
Successful response
Show child attributes
Show child attributes