Skip to main content
The Corte Constitucional de Colombia has handed down close to 50,000 rulings since 1992: tutela judgments (T), constitutionality judgments (C), unification judgments (SU) and autos (A). Each one here comes with its full text, what the court decided, the rights at stake, the magistrado ponente, the case file number, and a link to the ruling on the court’s own site. Search across all of them at once, by kind, year, case file, ponente or date, or with free text that reaches into the body of every ruling.
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-constitucional/rulings-search/v1 Dataset One search over the full text of every ruling since 1992, filtered by kind, 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 ruling’s number in canonical form, e.g. T-013/25), number (as the court prints it), relatoria_id, type and type_code (T, C, SU or A), year, ruling_date, publication_date, proceeding_type, chamber, registration_number (the expediente), reporting_judges[] and reporting_judge_keys[], subject, summary (the relatoría’s synopsis), decision (what the court decided), rights_invoked[], rights_protected[], lower_instances[], related_relatoria_ids[], updated_at and official_url (the ruling’s page on the court’s own site).
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 Constitucional Ruling endpoint.

One ruling, in full

POST /co/corte-constitucional/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 ruling’s number in canonical form, e.g. T-013/25), number (as the court prints it), relatoria_id, type and type_code (T, C, SU or A), year, ruling_date, publication_date, proceeding_type, chamber, registration_number (the expediente), reporting_judges[] and reporting_judge_keys[], subject, summary (the relatoría’s synopsis), decision (what the court decided), rights_invoked[], rights_protected[], lower_instances[], related_relatoria_ids[], updated_at and official_url (the ruling’s page on the court’s own site).
Long rulings run past a million 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.
A number the court has not published returns found: false with HTTP 200, not an error. The court publishes a ruling up to a year after handing it down, so a recent ruling can be found: false today and present next month.

Full reference

Schemas, all response fields, and an interactive playground.