---
title: "Tribunal Constitucional Plurinacional de Bolivia Rulings Search"
method: POST
path: "/bo/tcp-bo/rulings-search/v1"
tags: ["Bolivia", "Tribunal Constitucional Plurinacional de Bolivia"]
---

# Tribunal Constitucional Plurinacional de Bolivia Rulings Search

`POST /bo/tcp-bo/rulings-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/bo/tcp-bo/rulings-search/v1`
- Auth: HTTP bearer

Search the jurisprudencia of Bolivia's Tribunal Constitucional Plurinacional and its predecessor: every sentencia, auto, declaración and vote since 1999. Free text matches the resolution number, the case numbers, the chamber, the action and the full text. Filter by `type`, `chamber`, `proceeding_type` (the constitutional action), `reporting_judge`, `department`, `registration_number` (the resolution number), `case_number`, `year` and the ruling date (`from_date`/`to_date`). Each result carries the original document, kept by Croma, and a link to the resolution's page at the court. 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 resolution number, the case number, the chamber, the action and the full text.
  - `type` '' | 'sentencia' | 'auto' | 'declaracion' | 'voto_disidente' | 'voto_aclaratorio' | 'decreto': Optional kind of resolution: `sentencia` (SC, SCP), `auto` (AC, ACP, RCA, ECA...), `declaracion` (DCP), `voto_disidente`, `voto_aclaratorio` or `decreto`.
  - `chamber` string: Optional chamber as `chamber` names it, e.g. `Sala Primera`, `Sala Plena` or `Comisión de Admisión`, matched from the start. Case and accents are ignored.
  - `proceeding_type` string: Optional constitutional action as `proceeding_type` names it, e.g. `Acción de amparo constitucional`, `Acción de libertad`, `Acción de inconstitucionalidad concreta`, matched from the start. Case and accents are ignored.
  - `registration_number` string: Optional resolution number as the court prints it, e.g. `0050/2024-S2` or `0437/2013`. Returns every resolution of that number, including the votes attached to it. Case, spaces and punctuation are ignored.
  - `case_number` string: Optional case file number (expediente) as the court prints it, e.g. `60836-2024-122-AL`. Case, spaces and punctuation are ignored.
  - `reporting_judge` string: Optional reporting justice (magistrado relator) as `reporting_judge` names them, matched from the start of the name. Case and accents are ignored.
  - `department` string: Optional department the case came from, e.g. `La Paz`, `Santa Cruz`, `Cochabamba`, matched from the start. Case and accents are ignored.
  - `year` integer: Optional year of the resolution. 0 searches every year.
  - `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

- TcpBoRulingsSearchResponse
  - `data` TcpBoRulingsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `type` string, nullable, required
    - `chamber` string, nullable, required
    - `proceeding_type` string, nullable, required
    - `registration_number` string, nullable, required
    - `case_number` string, nullable, required
    - `reporting_judge` string, nullable, required
    - `department` string, nullable, required
    - `year` number, 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 resolution's permanent number at the Tribunal Constitucional Plurinacional, e.g. "202697". Votes share the number of the ruling they accompany, so the resolution number is not unique.
      - `registration_number` string, nullable, required: The resolution number as the court prints it, e.g. "0049/2024-S2", "0092/2024-CA", "0741/2003-R". Null for a vote the court left unnumbered.
      - `type` 'sentencia' | 'auto' | 'declaracion' | 'voto_disidente' | 'voto_aclaratorio' | 'decreto', nullable, required: The kind of resolution: `sentencia` (SC, SCP), `auto` (AC, ACP, autos of the Comisión de Admisión), `declaracion` (DCP), `voto_disidente`, `voto_aclaratorio` or `decreto`. Null when the court does not say.
      - `type_label` string, nullable, required: The kind of resolution as the court records it, e.g. "SENTENCIA", "AUTO CONST. P.", "VOTO DISIDENTE".
      - `ruling_date` string, required: `yyyy-mm-dd` the court handed the resolution down, Bolivian time.
      - `year` number, required: The year of the resolution.
      - `chamber` string, nullable, required: The chamber that decided, as the resolution names it, e.g. "SALA SEGUNDA", "SALA PLENA", "COMISIÓN DE ADMISIÓN", "SALA LIQUIDADORA TRANSITORIA".
      - `proceeding_type` string, nullable, required: The constitutional action or proceeding, e.g. "Acción de Amparo Constitucional", "Acción de Libertad", "Acción de Inconstitucionalidad Concreta", "Recurso de Habeas Corpus".
      - `reporting_judge` string, nullable, required: The reporting justice (magistrado relator) as the resolution names them; for a vote, the justice or justices who signed it.
      - `department` string, nullable, required: The department the case came from, e.g. "La Paz", "Santa Cruz", "Cochabamba".
      - `case_numbers` string[], required: The case files (expedientes) the resolution decides, as the court numbers them, e.g. ["52034-2022-105-AL"]. Joined cases list several.
      - `text_status` 'ok' | 'scanned' | 'missing', required: `ok` when the full text is here; `scanned` when the court published the resolution's document with no text alongside it; `missing` when it published neither.
      - `official_url` string, required: The resolution's page at the Tribunal Constitucional Plurinacional.
      - `document_url` string, nullable, required: Croma's copy of the resolution's original document (PDF), byte for byte as the court published it. It stays available whatever happens to the court's own site. Null when the court publishes no document for the resolution.
      - `source_document_url` string, nullable, required: The document's own link at the court. Always null: the court serves its documents from the resolution's page, with no link of their own.

## 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)
