Skip to main content
The Corte Suprema de Justicia is Colombia’s highest court in civil, agrarian, labour and criminal matters. Its relatoría holds more than 660,000 rulings, from 1886 to this week: cassation judgments, autos and tutela decisions of the civil, labour and criminal chambers, the full court, and the historic constitutional and general-affairs chambers. Each one comes here with its chamber, the kind of ruling and of proceeding, the case file number, the magistrado ponente, the relatoría’s summary and topics, the full text wherever the court publishes one, and a link to the ruling’s document at the court. Search across all of them at once, by chamber, kind, tutela or not, year, case file, ponente or date, or with free text that reaches into the body of every ruling. Search first, then read one ruling in full.
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 rulings

POST /co/corte-suprema/rulings-search/v1 Dataset One search over the full text of every ruling since 1886, filtered by chamber, kind, tutela, year, case file, ponente or date.
Returns as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and results[], most recent ruling first. Every result carries id (the relatoría’s identifier, e.g. 978662), number (as the court prints it, e.g. AC6049-2026), type, proceeding_class, chamber and chamber_group, is_tutela, registration_number (the radicado) and registration_digits, reporting_judges[] and reporting_judge_keys[], year, ruling_date, subject (the relatoría’s summary), descriptors[], text_status, text_source and official_url (the ruling’s document as the court publishes it).
Search results leave out the ruling’s text: a single ruling can run to hundreds of thousands of characters. query still matches against it, so a phrase from the body finds the ruling; read the text itself with the Corte Suprema Ruling endpoint.

One ruling, in full

POST /co/corte-suprema/ruling/v1 Dataset
Returns as_of, found, ruling_id and ruling, which carries everything the search returns plus content: a window onto the ruling’s full text, with text, offset, total_length, has_more and next_offset. Every result carries id (the relatoría’s identifier, e.g. 978662), number (as the court prints it, e.g. AC6049-2026), type, proceeding_class, chamber and chamber_group, is_tutela, registration_number (the radicado) and registration_digits, reporting_judges[] and reporting_judge_keys[], year, ruling_date, subject (the relatoría’s summary), descriptors[], text_status, text_source and official_url (the ruling’s document as the court publishes it).
Long rulings run to hundreds of thousands of characters, so the text is 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.
text_status says whether the full text is here: extracted means it is; scanned means the court’s document is a scanned image with no text in it, and content is null; unavailable means the court publishes no document for the ruling, as with many historic rulings. official_url always links the ruling at the court.
An id or number the relatoría does not hold returns found: false with HTTP 200, not an error. The court publishes a ruling weeks or months after handing it down, so a recent one can be found: false today and present later.

Full reference

Schemas, all response fields, and an interactive playground.