Skip to main content
The Tribunal Supremo de Justicia is Bolivia’s highest court of ordinary jurisdiction. Its chambers (Civil, Penal, Social, Contenciosa y Contenciosa Administrativa, the Sala Plena and the liquidating chambers that closed the former court’s backlog) have published about 90,000 resolutions since 2001. Each one here comes with its full text, the resolution and case numbers, the chamber, the kind of resolution and how the court resolved, the area of law, the department the case came from, the reporting justice, the jurisprudence notes the court drew from it (descriptor, restrictor, ratio decidendi, maxim, summary and precedent), the document as the court published it, and a link to the resolution on the court’s own site. Search across all of them at once, by chamber, kind of resolution, area of law, outcome, resolution or case number, reporting justice, department, year or date, or with free text that reaches into the notes and the body of every resolution. Each chamber numbers its own resolutions from one every year, so a resolution number can belong to several chambers; id names one resolution.
The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries as_of: how current the data is. How datasets work.

Search the resolutions

POST /bo/tsj-bo/rulings-search/v1 Dataset One search over the full text and the jurisprudence notes of every resolution since 2001, filtered by chamber, kind of resolution, area of law, outcome, number, reporting justice, department, year or date.
Returns as_of (how current the data is), the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[], most recent resolution first. Every result carries id (the resolution’s permanent number, e.g. 11378), registration_number (the resolution number, e.g. AS/0001/2010), case_number (the expediente), ruling_date, year, chamber, type (auto_supremo, sentencia or resolucion) with type_label and subtype, outcome (how the court resolved, e.g. Infundado, Casa), subject (the area of law), proceeding, department, reporting_judge, jurisprudence (the court’s jurisprudence notes, each with kind, descriptor, restrictor, ratio_decidendi, maxim, summary and precedent), descriptors, text_status (ok, scanned or missing), document_kind (scan, rendering or none), official_url (the resolution’s page on the court’s site), document_url (Croma’s copy of the document, byte for byte as the court served it, which stays available whatever happens to the court’s link) and source_document_url (where the court publishes the document: the scan’s own link, or the resolution’s page). Fields the court leaves empty are null or empty lists; party names are never included.
Search results leave out the text. query still matches against it, so a phrase from the body finds the resolution; read the text itself with the Tribunal Supremo de Justicia de Bolivia Ruling endpoint.

One resolution, in full

POST /bo/tsj-bo/ruling/v1 Dataset
Returns as_of, found, ruling_id and ruling, which carries everything the search returns plus content: a window onto the resolution’s full text, with text, offset, total_length, has_more and next_offset. Every result carries id (the resolution’s permanent number, e.g. 11378), registration_number (the resolution number, e.g. AS/0001/2010), case_number (the expediente), ruling_date, year, chamber, type (auto_supremo, sentencia or resolucion) with type_label and subtype, outcome (how the court resolved, e.g. Infundado, Casa), subject (the area of law), proceeding, department, reporting_judge, jurisprudence (the court’s jurisprudence notes, each with kind, descriptor, restrictor, ratio_decidendi, maxim, summary and precedent), descriptors, text_status (ok, scanned or missing), document_kind (scan, rendering or none), official_url (the resolution’s page on the court’s site), document_url (Croma’s copy of the document, byte for byte as the court served it, which stays available whatever happens to the court’s link) and source_document_url (where the court publishes the document: the scan’s own link, or the resolution’s page). Fields the court leaves empty are null or empty lists; party names are never included.
Long resolutions are read a range at a time: send offset and limit, then pass the response’s next_offset back as offset until has_more is false. content is null when text_status is not ok; document_url still gives the document when the court published one.
An id the court has not published returns found: false with HTTP 200, not an error.

Full reference

Schemas, all response fields, and an interactive playground.