> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tribunal Constitucional Plurinacional

> Busca en unas 99.000 resoluciones del Tribunal Constitucional Plurinacional de Bolivia y su predecesor desde 1999, y lee cualquiera completa con su documento original.

El Tribunal Constitucional Plurinacional de Bolivia publica cada resolución que dicta, y las del Tribunal Constitucional que lo precedió entre 1999 y 2010: unas 99.000 sentencias, autos, declaraciones y votos sobre amparo, libertad, inconstitucionalidad, conflictos de competencias y el control de constitucionalidad de leyes y estatutos autonómicos. Cada una llega aquí con su texto completo, el número de resolución, la sala, el magistrado relator, la acción constitucional, el departamento de origen, sus expedientes, el documento original tal como lo publicó el Tribunal y un enlace a su página en el Tribunal.

Busca en todas a la vez, por tipo de resolución, sala, acción, magistrado relator, departamento, número de resolución o de expediente, año o fecha, o con texto libre que llega hasta el cuerpo de cada resolución.

<Note>
  La fuente entera, organizada y lista para consultar: cada endpoint de esta página responde en milisegundos. Cada respuesta incluye `as_of`: qué tan actualizados están los datos. [Cómo funcionan los datasets](/es/datasets).
</Note>

## Buscar resoluciones

`POST /bo/tcp-bo/rulings-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre el texto completo de todas las resoluciones constitucionales desde 1999, filtrada por tipo, sala, acción, magistrado relator, departamento, número, año o fecha.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales que se buscan en el número de resolución, los expedientes, la sala, la acción y el texto completo. |
| `type` | enum | Tipo de resolución opcional: `sentencia`, `auto`, `declaracion`, `voto_disidente`, `voto_aclaratorio` o `decreto`. |
| `chamber` | string | Sala opcional como la nombra `chamber`, p. ej. `Sala Primera`, `Sala Plena` o `Comisión de Admisión`, comparada desde el inicio. No importan mayúsculas ni tildes. |
| `proceeding_type` | string | Acción constitucional opcional como la nombra `proceeding_type`, p. ej. `Acción de amparo constitucional`, `Acción de libertad` o `Recurso de habeas corpus`, comparada desde el inicio. No importan mayúsculas ni tildes. |
| `registration_number` | string | Número de resolución opcional, como lo imprime el Tribunal, p. ej. `0049/2024-S2`. Devuelve todas las resoluciones de ese número, incluidos los votos que la acompañan. No importan mayúsculas, ceros a la izquierda, espacios ni signos. |
| `case_number` | string | Número de expediente opcional, p. ej. `52034-2022-105-AL`. No importan mayúsculas, espacios ni signos. |
| `reporting_judge` | string | Magistrado relator opcional, comparado desde el inicio del nombre sin títulos, p. ej. `Carlos Alberto Calderón`. No importan mayúsculas ni tildes. |
| `department` | string | Departamento de origen opcional, p. ej. `La Paz`, `Santa Cruz` o `Cochabamba`, comparado desde el inicio. No importan mayúsculas ni tildes. |
| `year` | integer | Año de la resolución opcional. 0 busca en todos los años. Por defecto `0`. |
| `from_date` | string | Opcional: solo resoluciones dictadas en esta fecha o después, `yyyy-mm-dd`. |
| `to_date` | string | Opcional: solo resoluciones dictadas en esta fecha o antes, `yyyy-mm-dd`. |
| `page` | integer | Número de página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Resultados por página (1-50). Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/bo/tcp-bo/rulings-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "debido proceso",
        "type": "sentencia",
        "proceeding_type": "Acción de amparo"
      }'
```

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados, `total` y `total_is_exact`, `page`, `per_page`, `total_pages`, `count` y `results[]`, de la resolución más reciente a la más antigua. Cada resultado incluye `id` (el número permanente de la resolución, p. ej. `202697`), `registration_number` (el número de la resolución como lo imprime el Tribunal, p. ej. `0049/2024-S2`), `type` (`sentencia`, `auto`, `declaracion`, `voto_disidente`, `voto_aclaratorio` o `decreto`), `type_label` (la etiqueta del propio Tribunal), `ruling_date`, `year`, `chamber` (p. ej. `SALA SEGUNDA`, `SALA PLENA`, `COMISIÓN DE ADMISIÓN`), `proceeding_type` (la acción constitucional), `reporting_judge`, `department`, `case_numbers` (los expedientes que resuelve), `text_status` (`ok`, `scanned` o `missing`), `official_url` (la página de la resolución en el Tribunal), `document_url` (la copia de Croma del documento original, idéntica byte a byte a la que publicó el Tribunal) y `source_document_url` (siempre null: el Tribunal no da a sus documentos un enlace propio). Los campos que la resolución no indica vienen en null o como listas vacías; los nombres de las partes nunca se incluyen como campos.

<Note>
  Los resultados de búsqueda no incluyen el texto. `query` sí busca dentro de él, así que una frase del cuerpo encuentra la resolución; para leer el texto usa el endpoint Tribunal Constitucional Plurinacional de Bolivia Ruling.
</Note>

## Una resolución, completa

`POST /bo/tcp-bo/ruling/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `ruling_id` | string | **Obligatorio.** El `id` de la resolución que devuelve la búsqueda, p. ej. `202697`, o su `official_url`. |
| `offset` | integer | Primer carácter del texto a devolver. Envía el `next_offset` de la respuesta anterior para seguir leyendo. Por defecto `0`. |
| `limit` | integer | Cuántos caracteres del texto devolver. La mayoría de las resoluciones caben en una sola respuesta. Por defecto `200000`. |

```bash theme={"dark"}
curl https://api.croma.run/bo/tcp-bo/ruling/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "ruling_id": "202697" }'
```

Devuelve `as_of`, `found`, `ruling_id` y `ruling`, que trae todo lo que devuelve la búsqueda más `content`: una ventana sobre el texto completo de la resolución, con `text`, `offset`, `total_length`, `has_more` y `next_offset`. Cada resultado incluye `id` (el número permanente de la resolución, p. ej. `202697`), `registration_number` (el número de la resolución como lo imprime el Tribunal, p. ej. `0049/2024-S2`), `type` (`sentencia`, `auto`, `declaracion`, `voto_disidente`, `voto_aclaratorio` o `decreto`), `type_label` (la etiqueta del propio Tribunal), `ruling_date`, `year`, `chamber` (p. ej. `SALA SEGUNDA`, `SALA PLENA`, `COMISIÓN DE ADMISIÓN`), `proceeding_type` (la acción constitucional), `reporting_judge`, `department`, `case_numbers` (los expedientes que resuelve), `text_status` (`ok`, `scanned` o `missing`), `official_url` (la página de la resolución en el Tribunal), `document_url` (la copia de Croma del documento original, idéntica byte a byte a la que publicó el Tribunal) y `source_document_url` (siempre null: el Tribunal no da a sus documentos un enlace propio). Los campos que la resolución no indica vienen en null o como listas vacías; los nombres de las partes nunca se incluyen como campos.

<Note>
  Las resoluciones largas se leen por rangos: envía `offset` y `limit`, y luego pasa el `next_offset` de la respuesta como `offset` hasta que `has_more` sea falso. `content` es null cuando `text_status` no es `ok`; `document_url` sigue entregando el documento original cuando el Tribunal publicó uno.
</Note>

<Note>
  Un `id` que el Tribunal no ha publicado devuelve `found: false` con HTTP 200, no un error.
</Note>

<Card title="Referencia completa" icon="code" href="/es/api-reference/overview">
  Esquemas, todos los campos de respuesta y un playground interactivo.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.