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/tcp-bo/rulings-search/v1 Dataset
One search over the full text of every constitutional resolution since 1999, filtered by kind, chamber, action, reporting justice, department, number, year or date.
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. 202697), registration_number (the resolution number as the court prints it, e.g. 0049/2024-S2), type (sentencia, auto, declaracion, voto_disidente, voto_aclaratorio or decreto), type_label (the court’s own label), ruling_date, year, chamber (e.g. SALA SEGUNDA, SALA PLENA, COMISIÓN DE ADMISIÓN), proceeding_type (the constitutional action), reporting_judge, department, case_numbers (the case files it decides), text_status (ok, scanned or missing), official_url (the resolution’s page at the court), document_url (Croma’s copy of the original document, byte for byte as the court published it) and source_document_url (always null: the court gives its documents no link of their own). Fields the resolution does not state are null or empty lists; party names are never included as fields.
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 Constitucional Plurinacional de Bolivia Ruling endpoint.One resolution, in full
POST /bo/tcp-bo/ruling/v1 Dataset
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. 202697), registration_number (the resolution number as the court prints it, e.g. 0049/2024-S2), type (sentencia, auto, declaracion, voto_disidente, voto_aclaratorio or decreto), type_label (the court’s own label), ruling_date, year, chamber (e.g. SALA SEGUNDA, SALA PLENA, COMISIÓN DE ADMISIÓN), proceeding_type (the constitutional action), reporting_judge, department, case_numbers (the case files it decides), text_status (ok, scanned or missing), official_url (the resolution’s page at the court), document_url (Croma’s copy of the original document, byte for byte as the court published it) and source_document_url (always null: the court gives its documents no link of their own). Fields the resolution does not state are null or empty lists; party names are never included as fields.
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 original 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.