curl --request POST \
--url https://api.croma.run/bo/tsj-bo/ruling/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ruling_id": "11378"
}
'import requests
url = "https://api.croma.run/bo/tsj-bo/ruling/v1"
payload = { "ruling_id": "11378" }
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({ruling_id: '11378'})
};
fetch('https://api.croma.run/bo/tsj-bo/ruling/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/bo/tsj-bo/ruling/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([
'ruling_id' => '11378'
]),
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/bo/tsj-bo/ruling/v1"
payload := strings.NewReader("{\n \"ruling_id\": \"11378\"\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/bo/tsj-bo/ruling/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ruling_id\": \"11378\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/bo/tsj-bo/ruling/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 \"ruling_id\": \"11378\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"found": true,
"ruling_id": "<string>",
"ruling": {
"id": "<string>",
"registration_number": "<string>",
"case_number": "<string>",
"ruling_date": "<string>",
"year": 123,
"chamber": "<string>",
"type": "auto_supremo",
"type_label": "<string>",
"subtype": "<string>",
"outcome": "<string>",
"subject": "<string>",
"proceeding": "<string>",
"department": "<string>",
"reporting_judge": "<string>",
"jurisprudence": [
{
"kind": "<string>",
"descriptor": "<string>",
"restrictor": "<string>",
"ratio_decidendi": "<string>",
"maxim": "<string>",
"summary": "<string>",
"precedent": "<string>"
}
],
"descriptors": [
"<string>"
],
"text_status": "ok",
"document_kind": "scan",
"official_url": "<string>",
"document_url": "<string>",
"source_document_url": "<string>",
"content": {
"text": "<string>",
"offset": 123,
"total_length": 123,
"has_more": true,
"next_offset": 123
}
}
}
}{
"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": {}
}
}Tribunal Supremo de Justicia de Bolivia Ruling
Retrieve one resolution of Bolivia’s Tribunal Supremo de Justicia by its id from a search result (e.g. 11378) or its official_url: its full text, the resolution and case numbers, the chamber, the kind of resolution and how it was resolved, the area of law, the reporting justice, the court’s jurisprudence notes, the document as the court published it, and a link to the resolution on the court’s own site. The text comes back a character range at a time (offset, limit); follow next_offset until has_more is false.
Dataset endpoint: answers from the whole source in milliseconds and carries as_of.
curl --request POST \
--url https://api.croma.run/bo/tsj-bo/ruling/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ruling_id": "11378"
}
'import requests
url = "https://api.croma.run/bo/tsj-bo/ruling/v1"
payload = { "ruling_id": "11378" }
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({ruling_id: '11378'})
};
fetch('https://api.croma.run/bo/tsj-bo/ruling/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/bo/tsj-bo/ruling/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([
'ruling_id' => '11378'
]),
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/bo/tsj-bo/ruling/v1"
payload := strings.NewReader("{\n \"ruling_id\": \"11378\"\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/bo/tsj-bo/ruling/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ruling_id\": \"11378\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/bo/tsj-bo/ruling/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 \"ruling_id\": \"11378\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"found": true,
"ruling_id": "<string>",
"ruling": {
"id": "<string>",
"registration_number": "<string>",
"case_number": "<string>",
"ruling_date": "<string>",
"year": 123,
"chamber": "<string>",
"type": "auto_supremo",
"type_label": "<string>",
"subtype": "<string>",
"outcome": "<string>",
"subject": "<string>",
"proceeding": "<string>",
"department": "<string>",
"reporting_judge": "<string>",
"jurisprudence": [
{
"kind": "<string>",
"descriptor": "<string>",
"restrictor": "<string>",
"ratio_decidendi": "<string>",
"maxim": "<string>",
"summary": "<string>",
"precedent": "<string>"
}
],
"descriptors": [
"<string>"
],
"text_status": "ok",
"document_kind": "scan",
"official_url": "<string>",
"document_url": "<string>",
"source_document_url": "<string>",
"content": {
"text": "<string>",
"offset": 123,
"total_length": 123,
"has_more": true,
"next_offset": 123
}
}
}
}{
"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
The resolution's id from a search result. Its official_url works too.
1 - 600First character of the range to return. Pass the previous response's next_offset to continue reading.
0 <= x <= 10000000Maximum characters to return (1000-1000000).
1000 <= x <= 1000000Response
Successful response
Show child attributes
Show child attributes