---
title: "Corte Suprema de Justicia de El Salvador Ruling"
method: POST
path: "/sv/csj-sv/ruling/v1"
tags: ["El Salvador", "Corte Suprema de Justicia de El Salvador"]
---

# Corte Suprema de Justicia de El Salvador Ruling

`POST /sv/csj-sv/ruling/v1`

## Request

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

Retrieve one resolution from the jurisprudencia of El Salvador's Corte Suprema de Justicia by its `id` from a search result (e.g. `1138697`) or its `official_url`: its full text, the reference number, the court, the area of law, the kind of proceeding and of resolution, the decision, the headnotes, the original document as the court published it, and the links to the record and the document on the court's own site. The text comes back a character range at a time (`offset`, `limit`); follow `next_offset` until `has_more` is false.

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

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `ruling_id` string, required: The resolution's `id` from a search result, e.g. `1138697`. Its `official_url` works too.
  - `offset` integer: First character of the range to return. Pass the previous response's `next_offset` to continue reading.
  - `limit` integer: Maximum characters to return (1000-1000000).

## Response `200`

Successful response

- CsjSvRulingResponse
  - `data` CsjSvRulingData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `found` boolean, required
    - `ruling_id` string, required
    - `ruling` object, nullable, 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.
      - `content` object, nullable, required: A range of the resolution's text, or null when `text_status` is not `ok`.
        - `text` string, required: The requested character range of the resolution's text.
        - `offset` number, required: First character of the range, which is where the reading actually started.
        - `total_length` number, required: Length of the whole text in characters, however much of it this response carries.
        - `has_more` boolean, required: Whether the text continues past this range.
        - `next_offset` number, nullable, required: Pass this back as `offset` to read the next range. Null at the end of the text.

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