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.
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
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.