---
title: "Corte Constitucional Rulings Search"
method: POST
path: "/co/corte-constitucional/rulings-search/v1"
tags: ["Colombia", "Corte Constitucional"]
---

# Corte Constitucional Rulings Search

`POST /co/corte-constitucional/rulings-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/corte-constitucional/rulings-search/v1`
- Auth: HTTP bearer

Search every ruling the Corte Constitucional de Colombia has published since 1992: tutela (T), constitutionality (C) and unification (SU) judgments and autos (A). Free text matches the ruling's number, case file number, topics, synopsis, decision and full text. Filter by `type`, `year`, `registration_number` (the expediente), `reporting_judge` (the magistrado ponente) and the ruling date (`from_date`/`to_date`). Each result links to the ruling on the court's own site. Served by Croma (`as_of` says how current the data is).

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Optional search terms matched against the ruling's number, case file number, topics, synopsis, decision and full text.
  - `type` string: Optional kind of ruling: `T` (tutela), `C` (constitucionalidad), `SU` (unificación) or `A` (auto). The Spanish names work too.
  - `year` integer: Optional year of the ruling (the 2025 of T-013/25). 0 searches every year.
  - `registration_number` string: Optional case file number (expediente) as the court writes it: `T-10417884`, `D-15234`, `CJU-6063`. Case and spaces are ignored.
  - `reporting_judge` string: Optional magistrado ponente, by full name as it appears in `reporting_judges`. Case and accents are ignored.
  - `from_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `to_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Results per page (1-50).

## Response `200`

Successful response

- CorteConstitucionalRulingsSearchResponse
  - `data` CorteConstitucionalRulingsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `type` string, nullable, required
    - `year` number, nullable, required
    - `registration_number` string, nullable, required
    - `reporting_judge` string, nullable, required
    - `from_date` string, nullable, required
    - `to_date` string, nullable, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `results` object[], required
      - `id` string, required: The ruling's number in canonical form: the type code, the number padded to three digits with its letter suffix if any, and the two-digit year, e.g. "T-013/25", "SU-502/25", "A-006/25", "C-155A/93". A lookup accepts the court's own notation too ("SU.502/25", "A. 006/25", "T-013-25").
      - `number` string, required: The ruling's number exactly as the court prints it, e.g. "T-013/25", "SU.502/25", "A. 006/25".
      - `relatoria_id` string, required: The court's internal identifier for the ruling, e.g. `47977`. The rulings listed in `related_relatoria_ids` use the same identifier, and the ruling lookup accepts it.
      - `type` string, nullable, required: The kind of ruling as the court names it: "Tutela", "Constitucionalidad", "Sentencia de unificación" or "Auto".
      - `type_code` 'T' | 'C' | 'SU' | 'A', required: The kind of ruling as a code: `T` tutela, `C` constitucionalidad, `SU` unificación, `A` auto.
      - `year` number, required: The year of the ruling (the 2025 of T-013/25).
      - `ruling_date` string, nullable, required: `yyyy-mm-dd` the court handed the ruling down.
      - `publication_date` string, nullable, required: `yyyy-mm-dd` the court published the ruling. Null on most rulings before 2016, which the court lists without one.
      - `proceeding_type` string, nullable, required: The kind of proceeding, e.g. "Acciones de Tutela", "Demandas de inconstitucionalidad", "Conflictos de jurisdicción".
      - `chamber` string, nullable, required: The chamber as the court records it: "Sala plena/Revisión" for almost every ruling, or the name of a follow-up chamber for the ones it monitors.
      - `registration_number` string, nullable, required: The case file number (expediente), e.g. "T-10417884", "D-15234", "CJU-6063".
      - `reporting_judges` string[], required: The magistrado or magistrados ponentes, as the court names them.
      - `reporting_judge_keys` string[], required: The same names in canonical form (lowercased, unaccented, spaces hyphenated: "jorge-enrique-ibanez-najar"), which is what the `reporting_judge` filter matches.
      - `subject` string, nullable, required: The topics the relatoría records for the ruling. Null when it records none.
      - `summary` string, nullable, required: The relatoría's synopsis of the ruling. Null when it publishes none.
      - `decision` string, nullable, required: What the court decided: the RESUELVE of the ruling, as the relatoría records it.
      - `rights_invoked` string[], required: The rights the relatoría records as at stake in the case. Empty when it records none.
      - `rights_protected` string[], required: The rights the court protected, for a tutela that granted them. Empty otherwise.
      - `lower_instances` string[], required: The lower-court decisions the ruling reviewed, as the relatoría lists them. Empty when there were none.
      - `related_relatoria_ids` string[], required: `relatoria_id`s of the rulings the relatoría links to this one. Each can be looked up in turn.
      - `updated_at` string, nullable, required: When the relatoría last updated the ruling's record, as an ISO 8601 timestamp in Bogotá time.
      - `official_url` string, nullable, required: The ruling's page on the Corte Constitucional's own site, where the full document is published.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
