---
title: "Tribunal Supremo de Justicia de Bolivia Rulings Search"
method: POST
path: "/bo/tsj-bo/rulings-search/v1"
tags: ["Bolivia", "Tribunal Supremo de Justicia de Bolivia"]
---

# Tribunal Supremo de Justicia de Bolivia Rulings Search

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

## Request

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

Search the jurisprudencia of Bolivia's Tribunal Supremo de Justicia: every auto supremo, sentencia and resolución its chambers have published since 2001. Free text matches the resolution and case numbers, the chamber, the area of law, the outcome, the court's jurisprudence notes and the full text. Filter by `chamber`, `type`, `subject`, `outcome`, `registration_number`, `case_number`, `reporting_judge`, `department`, `year` and the ruling date (`from_date`/`to_date`). Each result carries the document, kept by Croma, and a link to the resolution 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 resolution number, the case number, the chamber, the jurisprudence notes (descriptor, restrictor, ratio decidendi) and the full text.
  - `chamber` string: Optional chamber as `chamber` names it, e.g. `Sala Civil`, `Sala Penal`, `Sala Plena` or `Sala Contenciosa`, matched from the start. Case and accents are ignored.
  - `type` '' | 'auto_supremo' | 'sentencia' | 'resolucion': Optional kind of resolution: `auto_supremo`, `sentencia` or `resolucion`.
  - `subject` string: Optional area of law as `subject` names it, e.g. `Civil`, `Penal`, `Familia`, `Social`, `Agrario`, matched from the start. Case and accents are ignored.
  - `outcome` string: Optional outcome as `outcome` names it, e.g. `Infundado`, `Casa`, `Improcedente`, `Anula`, matched from the start. Case and accents are ignored.
  - `registration_number` string: Optional resolution number as the court prints it, e.g. `AS/0001/2013` or `SE/0001/2023`. Each chamber numbers its own resolutions, so a number can return several; add `chamber` to narrow it. Case, spaces and punctuation are ignored.
  - `case_number` string: Optional case file number (expediente) as the court prints it. 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`, `Chuquisaca`, 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

- TsjBoRulingsSearchResponse
  - `data` TsjBoRulingsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `chamber` string, nullable, required
    - `type` string, nullable, required
    - `subject` string, nullable, required
    - `outcome` 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 in the Tribunal Supremo de Justicia's jurisprudence system, e.g. "11378". Each chamber numbers its own resolutions, so the resolution number is not unique.
      - `registration_number` string, nullable, required: The resolution number as the court prints it, e.g. "AS/0001/2010", "SE/0001/2023", "AS/1922/2023-RA". Null when the court's record carries none.
      - `case_number` string, nullable, required: The case file number (expediente) as the court prints it, e.g. "P-07-09-A".
      - `ruling_date` string, nullable, required: `yyyy-mm-dd` the court handed the resolution down.
      - `year` number, required: The year of the resolution.
      - `chamber` string, nullable, required: The chamber that decided, as the court names it, e.g. "Sala Civil", "Sala Penal 1", "Sala Plena", "Sala Social Liquidadora".
      - `type` 'auto_supremo' | 'sentencia' | 'resolucion', nullable, required: The kind of resolution: `auto_supremo`, `sentencia` or `resolucion`.
      - `type_label` string, nullable, required: The kind of resolution as the court names it, e.g. "Auto Supremo".
      - `subtype` string, nullable, required: The subtype the court records, e.g. "Auto Supremo de Fondo", "Auto Supremo de Admisión".
      - `outcome` string, nullable, required: How the court resolved (forma de resolución), e.g. "Infundado", "Casa", "Rechaza", "Improcedente".
      - `subject` string, nullable, required: The area of law (materia), e.g. "Civil", "Penal", "Familia", "Social", "Agrario".
      - `proceeding` string, nullable, required: The proceeding the case was, as the court records it, e.g. "Resolución de Contrato". Often empty.
      - `department` string, nullable, required: The department the case came from, e.g. "La Paz", "Santa Cruz", "Potosi".
      - `reporting_judge` string, nullable, required: The reporting justice (magistrado relator).
      - `jurisprudence` object[], required: The court's jurisprudence notes on the resolution: each a topic with its restrictor, ratio decidendi, maxim, summary and precedent. Empty when the court wrote none.
        - `kind` string, nullable, required: The kind of line the note records, as the court labels it, e.g. "Fundadora", "Modificadora", "Reiterativa".
        - `descriptor` string, nullable, required: Where the note sits in the court's topic tree, e.g. "Derecho Civil / Derecho Procesal Civil / Recursos".
        - `restrictor` string, nullable, required: The narrowing of the topic the note decides.
        - `ratio_decidendi` string, nullable, required: The reasoning the decision rests on, in the court's words.
        - `maxim` string, nullable, required: The rule the note draws from the resolution (máxima).
        - `summary` string, nullable, required: The court's summary of the resolution (síntesis).
        - `precedent` string, nullable, required: The precedent the note states or follows.
      - `descriptors` string[], required: The topics of the notes, in order, each once.
      - `text_status` 'ok' | 'scanned' | 'missing', required: `ok` when the full text is here; `scanned` when the court published the resolution only as a scan with no text in it; `missing` when it published no readable text.
      - `document_kind` 'scan' | 'rendering' | 'none', required: `scan` when the document is the court's scan of the signed resolution, `rendering` when it is the court's PDF of the text, `none` when there is no document.
      - `official_url` string, required: The resolution's page on the court's jurisprudence site.
      - `document_url` string, nullable, required: Croma's copy of the resolution's document (PDF), byte for byte as the court served it: the scan of the signed resolution when the court published one, otherwise the court's PDF of the text. It stays available whatever happens to the court's own link. Null when the court publishes no document for the resolution.
      - `source_document_url` string, nullable, required: Where the court publishes the document: the scan's own link, or the resolution's page on the court's site for the court's PDF of the text. Null when the court publishes none.

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