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

# Corte Suprema de Justicia

> Busca en la jurisprudencia que publica la Corte Suprema de Justicia de El Salvador, unas 200.000 resoluciones desde 1951 de la Corte Plena y las Salas a las Cámaras, los Tribunales de Sentencia y los Juzgados, y en cada ley, decreto, reglamento y ordenanza que conserva, consolidados con sus reformas; lee cualquiera completo.

La Corte Suprema de Justicia de El Salvador publica la jurisprudencia de los tribunales del país: unas 200.000 resoluciones desde 1951 de la Corte Plena, las Salas de lo Constitucional, de lo Civil, de lo Penal y de lo Contencioso Administrativo, las Cámaras de segunda instancia, los Tribunales de Sentencia y un conjunto de Juzgados. Cada una llega aquí con su texto completo, el número de referencia, el tribunal, la materia, el tipo de proceso y de resolución, el fallo, los delitos en materia penal, los extractos que redactó el centro de documentación de la Corte, el documento original tal como lo publicó la Corte y enlaces a la ficha y al documento en el sitio de la Corte.

Busca en todas a la vez, por tribunal o nivel del tribunal, materia, tipo de proceso o de resolución, delito, número de referencia, año o fecha, o con texto libre que llega hasta el cuerpo de cada resolución.

El mismo centro de documentación conserva la legislación de El Salvador: más de 10.000 textos publicados en el Diario Oficial desde 1821, de las reformas constitucionales, los códigos y las leyes a los decretos ejecutivos, reglamentos, acuerdos y ordenanzas municipales. Cada uno llega con su texto consolidado, si está vigente, cada reforma con su decreto y su propio texto, las sentencias relacionadas y cada versión de su documento: la Corte reescribe el texto consolidado cuando incorpora una reforma, y cada versión sigue disponible aquí.

<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 /sv/csj-sv/rulings-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre el texto completo de todas las resoluciones desde 1951, filtrada por tribunal, materia, proceso, tipo de resolución, delito, número de referencia, año o fecha.

| Campo                 | Tipo    | Notas                                                                                                                                                                                                   |
| --------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`               | string  | Palabras opcionales que se buscan en el número de referencia, el tribunal, el fallo, el cuadro fáctico, los extractos y el texto completo.                                                              |
| `court_type`          | enum    | Nivel del tribunal opcional: `corte_plena`, `sala` (las Salas de la Corte Suprema), `camara` (las Cámaras de segunda instancia), `tribunal_de_sentencia` o `juzgado`.                                   |
| `court`               | string  | Tribunal opcional como lo nombra `court`, p. ej. `Sala de lo Constitucional` o `Cámara Segunda de lo Laboral`, comparado desde el inicio del nombre. No importan mayúsculas ni tildes.                  |
| `subject`             | string  | Materia opcional como la nombra `subject`: `Penal`, `Familia`, `Civil y Mercantil`, `Constitucional`, `Laboral`, `Medio Ambiente` y otras, comparada desde el inicio. No importan mayúsculas ni tildes. |
| `proceeding_type`     | string  | Tipo de proceso opcional como lo nombra `proceeding_type`, p. ej. `Amparo`, `Hábeas corpus`, `Inconstitucionalidad`, comparado desde el inicio. No importan mayúsculas ni tildes.                       |
| `type`                | string  | Tipo de resolución opcional como lo nombra `type`, p. ej. `Sentencias definitivas`, `Interlocutorias`, `Improcedencias`, comparado desde el inicio. No importan mayúsculas ni tildes.                   |
| `crime`               | string  | Delito opcional como aparece en `crimes`, p. ej. `Homicidio agravado`, comparado completo. No importan mayúsculas ni tildes.                                                                            |
| `registration_number` | string  | Número de referencia (N°) opcional, como lo imprime la Corte, p. ej. `49COMP2026` o `86-CAC-2026`. Devuelve todas las resoluciones de esa referencia. No importan mayúsculas, espacios ni signos.       |
| `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/sv/csj-sv/rulings-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "debido proceso",
        "court_type": "sala",
        "subject": "constitucional"
      }'
```

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados, `total` (coincidencias en todas las páginas), `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. `1138697`), `registration_number` (el número de referencia, p. ej. `49COMP2026`), `ruling_date`, `year`, `court_type` (`corte_plena`, `sala`, `camara`, `tribunal_de_sentencia` o `juzgado`), `court`, `subject` (la materia), `proceeding_type`, `type` (el tipo de resolución), `appeal_type`, `lawsuit_type`, `decision`, `facts`, `crimes`, `lower_courts`, `courts_in_conflict`, `challenged_act`, `rights_invoked`, `grounds`, `applied_law`, `other_fields`, `descriptors` y `extracts` (los extractos, cada uno un tema con sus restrictores), `text_status` (`ok`, `scanned` o `missing`), `official_url` (la ficha de la resolución en la Corte), `document_url` (la copia de Croma del documento original, idéntica byte a byte a la que publicó la Corte, que sigue disponible pase lo que pase con el enlace de la Corte) y `source_document_url` (el documento en el sitio de la Corte). Los campos que la ficha deja vacíos vienen en null o como listas vacías; nunca se incluyen nombres de las partes.

<Note>
  Los resultados de búsqueda no incluyen el texto: una sola resolución puede tener cientos de miles de caracteres. `query` sí busca dentro de él, así que una frase del cuerpo encuentra la resolución; para leer el texto usa el endpoint Corte Suprema de Justicia de El Salvador Ruling.
</Note>

## Una resolución, completa

`POST /sv/csj-sv/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. `1138697`, 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/sv/csj-sv/ruling/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "ruling_id": "1138697" }'
```

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. `1138697`), `registration_number` (el número de referencia, p. ej. `49COMP2026`), `ruling_date`, `year`, `court_type` (`corte_plena`, `sala`, `camara`, `tribunal_de_sentencia` o `juzgado`), `court`, `subject` (la materia), `proceeding_type`, `type` (el tipo de resolución), `appeal_type`, `lawsuit_type`, `decision`, `facts`, `crimes`, `lower_courts`, `courts_in_conflict`, `challenged_act`, `rights_invoked`, `grounds`, `applied_law`, `other_fields`, `descriptors` y `extracts` (los extractos, cada uno un tema con sus restrictores), `text_status` (`ok`, `scanned` o `missing`), `official_url` (la ficha de la resolución en la Corte), `document_url` (la copia de Croma del documento original, idéntica byte a byte a la que publicó la Corte, que sigue disponible pase lo que pase con el enlace de la Corte) y `source_document_url` (el documento en el sitio de la Corte). Los campos que la ficha deja vacíos vienen en null o como listas vacías; nunca se incluyen nombres de las partes.

<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` es `scanned` (la Corte publicó la resolución como imagen) o `missing`; `document_url` sigue entregando el documento original cuando la Corte publicó uno.
</Note>

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

## Buscar legislación

`POST /sv/csj-sv/laws-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre el texto consolidado de cada texto legal desde 1821, filtrada por tipo, vigencia, materia, número, municipio, departamento, año o fecha.

| Campo          | Tipo    | Notas                                                                                                                                                                                                                                              |
| -------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`        | string  | Palabras opcionales que se buscan en el nombre, el resumen del centro de documentación y el texto consolidado.                                                                                                                                     |
| `type`         | string  | Tipo de documento opcional: `Decretos Legislativos`, `Decretos Ejecutivos`, `Decretos Institucionales`, `Acuerdos`, `Reglamentos`, `Ordenanzas Municipales` o `Documentos Generales`, comparado desde el inicio. No importan mayúsculas ni tildes. |
| `status`       | enum    | Vigencia opcional: `vigente`, `caducada` o `derogada`.                                                                                                                                                                                             |
| `subject`      | string  | Materia opcional, p. ej. `Penal`, `Tributaria`, `Laboral`, comparada desde el inicio. No importan mayúsculas ni tildes.                                                                                                                            |
| `number`       | string  | Número de decreto o acuerdo opcional, p. ej. `1030`. No importan mayúsculas, espacios ni signos.                                                                                                                                                   |
| `municipality` | string  | Municipio opcional de una ordenanza, p. ej. `San Salvador Centro`, comparado desde el inicio. No importan mayúsculas ni tildes.                                                                                                                    |
| `department`   | string  | Departamento opcional de una ordenanza, p. ej. `La Libertad`, comparado desde el inicio. No importan mayúsculas ni tildes.                                                                                                                         |
| `year`         | integer | Año de publicación en el Diario Oficial opcional. 0 busca en todos los años. Por defecto `0`.                                                                                                                                                      |
| `from_date`    | string  | Opcional: solo documentos publicados en esta fecha o después, `yyyy-mm-dd`.                                                                                                                                                                        |
| `to_date`      | string  | Opcional: solo documentos publicados 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/sv/csj-sv/laws-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "código penal", "status": "vigente" }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` y `results[]`, de la publicación más reciente a la más antigua. Cada resultado incluye `id` (el número permanente del documento, p. ej. `558819`), `title`, `type` (`Decretos Legislativos`, `Decretos Ejecutivos`, `Decretos Institucionales`, `Acuerdos`, `Reglamentos`, `Ordenanzas Municipales` o `Documentos Generales`), `nature`, `number` (el número del decreto o acuerdo), `status` (`vigente`, `caducada` o `derogada`), `subject` (la materia), `issuing_body`, `state_organ`, `municipality` y `department` (ordenanzas), `issue_date`, `publication_date` (en el Diario Oficial), `year`, `gazette_number`, `gazette_volume`, `considerations` (el resumen del centro de documentación), `reform_count`, `related_rulings` (ids para el endpoint de sentencias), `other_fields`, `text_status`, `official_url` (la ficha del documento en la Corte), `document_url` (la copia de Croma de la versión actual del documento, idéntica byte a byte a la que publicó la Corte), `source_document_url` (el documento en el sitio de la Corte) y `document_modified_at`.

<Note>
  Los resultados de búsqueda no incluyen el texto, las reformas ni las versiones del documento; `query` sí busca en el texto. Para leerlos usa el endpoint Corte Suprema de Justicia de El Salvador Law.
</Note>

## Un texto legal, completo

`POST /sv/csj-sv/law/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

| Campo    | Tipo    | Notas                                                                                                                       |
| -------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |
| `law_id` | string  | **Obligatorio.** El `id` del documento que devuelve la búsqueda, p. ej. `558819`, 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. Un código largo toma varias respuestas. Por defecto `200000`.                        |

```bash theme={"dark"}
curl https://api.croma.run/sv/csj-sv/law/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "law_id": "558819" }'
```

Devuelve `as_of`, `found`, `law_id` y `law`, que trae todo lo que devuelve la búsqueda más `reforms[]` (cada reforma en orden: `decree`, `decree_number`, `issuing_body`, `decree_date`, `publication_date`, `gazette_number`, `gazette_volume`, y `document_url` con la copia de Croma del texto propio de la reforma junto a su `source_document_url`), `document_versions[]` (cada versión del documento que Croma ha guardado, de la más antigua a la más nueva, con `document_url`, `modified_at` y `bytes`) y `content`: una ventana sobre el texto consolidado, con `text`, `offset`, `total_length`, `has_more` y `next_offset`. Cada resultado incluye `id` (el número permanente del documento, p. ej. `558819`), `title`, `type` (`Decretos Legislativos`, `Decretos Ejecutivos`, `Decretos Institucionales`, `Acuerdos`, `Reglamentos`, `Ordenanzas Municipales` o `Documentos Generales`), `nature`, `number` (el número del decreto o acuerdo), `status` (`vigente`, `caducada` o `derogada`), `subject` (la materia), `issuing_body`, `state_organ`, `municipality` y `department` (ordenanzas), `issue_date`, `publication_date` (en el Diario Oficial), `year`, `gazette_number`, `gazette_volume`, `considerations` (el resumen del centro de documentación), `reform_count`, `related_rulings` (ids para el endpoint de sentencias), `other_fields`, `text_status`, `official_url` (la ficha del documento en la Corte), `document_url` (la copia de Croma de la versión actual del documento, idéntica byte a byte a la que publicó la Corte), `source_document_url` (el documento en el sitio de la Corte) y `document_modified_at`.

<Note>
  La Corte reescribe el texto consolidado cuando incorpora una reforma. Croma guarda cada versión que ha visto: `document_url` es la más nueva y `document_versions` las lista todas.
</Note>

<Note>
  Un `id` que la Corte 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>
