---
title: "Corte Suprema de Justicia de El Salvador Rulings Search"
method: POST
path: "/sv/csj-sv/rulings-search/v1"
tags: ["El Salvador", "Corte Suprema de Justicia de El Salvador"]
---

# Corte Suprema de Justicia de El Salvador Rulings Search

`POST /sv/csj-sv/rulings-search/v1`

## Request

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

Search the jurisprudencia the Corte Suprema de Justicia de El Salvador publishes: every resolution since 1951 from the Corte Plena and its Salas to the Cámaras, Tribunales de Sentencia and Juzgados. Free text matches the reference number, the court, the decision, the facts, the headnotes and the full text. Filter by `court_type`, `court`, `subject` (the area of law), `proceeding_type`, `type` (the kind of resolution), `crime`, `registration_number` (the reference number), `year` and the ruling date (`from_date`/`to_date`). Each result carries the original document, kept by Croma, and links to the record and the document 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 reference number, the court, the decision, the facts, the headnotes and the full text.
  - `court_type` '' | 'corte_plena' | 'sala' | 'camara' | 'tribunal_de_sentencia' | 'juzgado': Optional level of the court: `corte_plena`, `sala` (the Salas of the Corte Suprema), `camara` (the second-instance Cámaras), `tribunal_de_sentencia` or `juzgado`.
  - `court` string: Optional court as `court` names it, e.g. `Sala de lo Constitucional`, matched from the start of the name. Case and accents are ignored.
  - `subject` string: Optional area of law as `subject` names it, e.g. `Penal`, `Familia`, `Civil y Mercantil`, `Constitucional`, `Laboral`, matched from the start. Case and accents are ignored.
  - `proceeding_type` string: Optional kind of proceeding as `proceeding_type` names it, e.g. `Amparo`, `Hábeas corpus`, `Inconstitucionalidad`, matched from the start. Case and accents are ignored.
  - `type` string: Optional kind of resolution as `type` names it, e.g. `Sentencias definitivas`, `Interlocutorias`, `Improcedencias`, matched from the start. Case and accents are ignored.
  - `crime` string: Optional crime as it appears in `crimes`, e.g. `Homicidio agravado`, matched in full. Case and accents are ignored.
  - `registration_number` string: Optional reference number (N°) as the court prints it, e.g. `49COMP2026` or `86-CAC-2026`. Returns every resolution of that reference. Case, spaces and punctuation 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

- CsjSvRulingsSearchResponse
  - `data` CsjSvRulingsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `court_type` string, nullable, required
    - `court` string, nullable, required
    - `subject` string, nullable, required
    - `proceeding_type` string, nullable, required
    - `type` string, nullable, required
    - `crime` string, nullable, required
    - `registration_number` 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 Corte Suprema's documentation center, e.g. "1138697". One case can have several resolutions, so the reference number is not unique.
      - `registration_number` string, required: The reference number (N°) as the court prints it, e.g. "49COMP2026", "86-CAC-2026", "INC-8-2026".
      - `ruling_date` string, required: `yyyy-mm-dd` the court handed the resolution down.
      - `year` number, required: The year of the resolution.
      - `court_type` 'corte_plena' | 'sala' | 'camara' | 'tribunal_de_sentencia' | 'juzgado', nullable, required: The level of the court: `corte_plena`, `sala` (a Sala of the Corte Suprema), `camara` (a second-instance Cámara), `tribunal_de_sentencia` or `juzgado`.
      - `court` string, nullable, required: The court as the documentation center names it, e.g. "SALA DE LO CONSTITUCIONAL", "CÁMARA SEGUNDA DE LO LABORAL, SAN SALVADOR".
      - `subject` string, nullable, required: The area of law (materia), e.g. "PENAL", "FAMILIA", "CIVIL Y MERCANTIL", "CONSTITUCIONAL", "LABORAL".
      - `proceeding_type` string, nullable, required: The kind of proceeding (tipo de proceso), e.g. "AMPARO", "HÁBEAS CORPUS", "INCONSTITUCIONALIDAD", "CONFLICTOS DE COMPETENCIA EN DERECHO PENAL".
      - `type` string, nullable, required: The kind of resolution (tipo de resolución), e.g. "Sentencias Definitivas", "Interlocutorias", "Improcedencias", "Autos definitivos".
      - `appeal_type` string, nullable, required: The appeal decided (tipo de recurso), e.g. "RECURSO DE CASACION", "RECURSO DE APELACION".
      - `lawsuit_type` string, nullable, required: The kind of civil or commercial action (tipo de juicio), e.g. "Proceso ejecutivo".
      - `decision` string, nullable, required: What the court decided (fallo), in the documentation center's words.
      - `facts` string, nullable, required: The documentation center's summary of the facts and of the court's reasoning (cuadro fáctico).
      - `crimes` string[], required: The crimes the resolution deals with, e.g. ["Homicidio agravado"]. Empty outside criminal matters.
      - `lower_courts` string, nullable, required: The court or courts the case came from (tribunales de procedencia).
      - `courts_in_conflict` string, nullable, required: The courts whose jurisdiction dispute the resolution settles (tribunales en conflicto).
      - `challenged_act` string, nullable, required: The act or provision challenged (acto reclamado, acto impugnado, disposición impugnada).
      - `rights_invoked` string, nullable, required: The rights the claimant says were violated (derechos vulnerados).
      - `grounds` string[], required: The grounds of the appeal or cassation (motivos), as recorded.
      - `applied_law` string, nullable, required: The procedural law applied, e.g. "D.L. Nº 733 del 22 de Octubre de 2008 - VIGENTE".
      - `other_fields` object[], required: Any other field of the court's record for this resolution, by its label. Party names are never included.
        - `label` string, required: The field's name as the court's record prints it.
        - `value` string, required
      - `descriptors` string[], required: The topics the documentation center filed the resolution under, one per headnote, e.g. ["PROCEDIMIENTO SUMARIO"]. Empty when it wrote none.
      - `extracts` object[], required: The headnotes (extractos, máximas): each topic with the holdings the documentation center drew from the resolution.
        - `descriptor` string, required: The topic the headnote is filed under, e.g. "PROCEDIMIENTO SUMARIO".
        - `restrictors` string[], required: What the court held on that topic, one line each, as the documentation center wrote them.
      - `text_status` 'ok' | 'scanned' | 'missing', required: `ok` when the full text is here; `scanned` when the court published the resolution as an image with no text in it; `missing` when it published no readable document.
      - `official_url` string, required: The resolution's record at the Corte Suprema's documentation center.
      - `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 link. Null when the court publishes no document for the resolution.
      - `source_document_url` string, nullable, required: The resolution's document on the Corte Suprema's own site, as the court links it. Null when the court links 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)
