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

# Ley Chile

> Las leyes, códigos, decretos leyes, decretos con fuerza de ley, autos acordados, tratados y decretos supremos de Chile desde Ley Chile: búscalos, lee cualquiera artículo por artículo con su historial de versiones, y busca dentro del texto de cada artículo.

Ley Chile es la base de datos de la legislación chilena de la Biblioteca del Congreso Nacional de Chile, con el texto refundido de cada norma al día a medida que otras la modifican. Croma mantiene las leyes y códigos de Chile, los decretos con fuerza de ley (DFL), los decretos leyes (DL), los autos acordados de los tribunales, los tratados y los decretos supremos: cada uno con su identificación, fechas de publicación y promulgación, estado (vigente o derogada), organismos, materias y el resumen de BCN, cada versión de su texto con las normas que la produjeron, su texto vigente parte por parte, y el PDF y el XML de BCN de cada versión, conservados por Croma.

Busca normas por tipo, número, año, fecha, estado o la norma que las modificó, o con texto libre sobre sus nombres, títulos y resúmenes; lee una norma completa, artículo por artículo; o busca dentro del texto de cada artículo.

> [!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](https://docs.usecroma.com/es/datasets.md).

## Buscar normas

`POST /cl/leychile/norms-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Una sola búsqueda sobre todas las leyes, códigos, DFL, DL, autos acordados, tratados y decretos supremos que Croma mantiene de Ley Chile.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales en español que se buscan en el nombre, el número, el título, los nombres de uso común, las materias y el resumen, p. ej. `protección de datos personales` o `código del trabajo`. Todas las palabras deben aparecer. |
| `type` | enum | Tipo opcional: `ley`, `codigo`, `dfl`, `dl`, `auto_acordado`, `tratado` o `decreto` (decretos supremos). |
| `number` | string | Número opcional, p. ej. `21450` para la Ley 21.450. Los puntos no importan. Agrega `type` para identificar una sola norma. |
| `year` | integer | Año de publicación opcional. 0 busca en todos los años. Por defecto `0`. |
| `from_date` | string | Opcional: solo normas publicadas en esta fecha o después, `yyyy-mm-dd`. |
| `to_date` | string | Opcional: solo normas publicadas en esta fecha o antes, `yyyy-mm-dd`. |
| `status` | enum | Opcional: `in_force` (vigente) o `repealed` (derogada). |
| `modified_by` | string | `norm_id` opcional de una norma modificatoria, p. ej. `1219906`: solo las normas que modificó. |
| `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/cl/leychile/norms-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "protección de datos personales", "type": "ley" }'
```

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[]`: primero los que mejor coinciden cuando hay `query`, si no, de la publicada más recientemente a la más antigua. Cada resultado incluye `norm_id` (el id permanente de BCN, p. ej. `1176603`), `name` (p. ej. `Ley 21450`), `type`, `number`, `title`, `common_names`, `issuing_bodies`, `publication_date`, `promulgation_date`, `year`, `current_version_date` (desde cuándo rige el texto vigente hoy) y `version_kind`, `repealed` y `repeal_date`, `treaty`, `subjects`, `summary`, `categories`, `gazette`, `gazette_number` y `cve` (el código de verificación del Diario Oficial), `version_count`, `article_count`, `official_url` (la página de la norma en Ley Chile), `source_document_url`, y `document_url` y `xml_url` (las copias de Croma del PDF y el XML de BCN de la versión vigente). Los campos que BCN no indica vienen en null.

> [!NOTE]
>
> Los resultados de búsqueda no incluyen el texto, las versiones ni el historial de documentos; los devuelve el endpoint Ley Chile Norm.

> [!NOTE]
>
> Croma lee las normas nuevas cada día, y las normas que modifican hasta que BCN publica su nuevo texto refundido, y revisa toda la colección una vez al mes.

## Una norma, completa

`POST /cl/leychile/norm/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

| Campo | Tipo | Notas |
| - | - | - |
| `norm_id` | string | **Obligatorio.** El `norm_id` de la norma que devuelve la búsqueda, p. ej. `1176603`, su `official_url`, o su tipo y número, p. ej. `Ley 21450`, `DFL 1`, `Decreto 100`. Un tipo y número que comparten varias normas devuelve la más reciente. |
| `offset` | integer | Posición de la primera parte del texto a devolver (0 es el encabezado). Envía el `next_offset` de la respuesta anterior para seguir leyendo. Por defecto `0`. |
| `limit` | integer | Cuántas partes devolver (1-500). La mayoría de las leyes caben en una respuesta; un código toma varias. Por defecto `100`. |

```bash theme={"dark"}
curl https://api.croma.run/cl/leychile/norm/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "norm_id": "Ley 21450" }'
```

Devuelve `as_of`, `found`, `norm_id` y `norm`, que trae todo lo que devuelve la búsqueda más `versions` (cada versión del texto, de la más reciente a la más antigua, con su `kind`, `from_date`, `to_date`, `url` y `modified_by`: las normas cuyos cambios produjeron la versión siguiente, con su `norm_id`, `type`, `number`, `title`, `change`, `publication_date` y `effective_date`), `modified_by_ids`, `document_versions` (cada PDF y XML que Croma ha guardado, con `version_date`, `document_url`, `xml_url` y `bytes`), `modifies` (las normas cuyo historial de versiones la registra como modificatoria) y `articles`, un tramo de las partes del texto vigente con `offset`, `has_more` y `next_offset`. Cada resultado incluye `norm_id` (el id permanente de BCN, p. ej. `1176603`), `name` (p. ej. `Ley 21450`), `type`, `number`, `title`, `common_names`, `issuing_bodies`, `publication_date`, `promulgation_date`, `year`, `current_version_date` (desde cuándo rige el texto vigente hoy) y `version_kind`, `repealed` y `repeal_date`, `treaty`, `subjects`, `summary`, `categories`, `gazette`, `gazette_number` y `cve` (el código de verificación del Diario Oficial), `version_count`, `article_count`, `official_url` (la página de la norma en Ley Chile), `source_document_url`, y `document_url` y `xml_url` (las copias de Croma del PDF y el XML de BCN de la versión vigente). Los campos que BCN no indica vienen en null. Cada parte incluye `norm_id`, `norm_name`, `norm_type`, `part_id` (el id de BCN para la parte, estable entre versiones), `position` (su lugar en el texto, 0 para el encabezado), `level` y `parent_part_id` (el capítulo o título que la contiene), `kind` (`Artículo`, `Capítulo`, `Título`, `Disposición Transitoria`, `Anexo`, `Encabezado`, `Promulgación`...), `name` (p. ej. `1` para el Artículo 1), `heading`, `text`, `transitory`, `repealed` y `version_date` (la versión de la que viene su texto).

> [!NOTE]
>
> Las normas largas se leen por tramos de partes: envía `offset` y `limit`, y luego pasa `next_offset` como `offset` hasta que `has_more` sea falso.

> [!NOTE]
>
> Una norma que Croma no tiene devuelve `found: false` con HTTP 200, no un error.

## Buscar dentro de los artículos

`POST /cl/leychile/articles-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Encuentra el artículo que dice algo, en todas las normas o dentro de una.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales en español que se buscan en el texto y el epígrafe de cada parte, p. ej. `indemnización por años de servicio`. Todas las palabras deben aparecer. |
| `norm_id` | string | `norm_id` opcional, p. ej. `207436`: solo las partes de esa norma, en el orden de su texto cuando no hay `query`. |
| `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/cl/leychile/articles-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "indemnización por años de servicio" }'
```

Devuelve `as_of`, `query`, `norm_id`, `total` y `total_is_exact`, `page`, `per_page`, `total_pages`, `count` y `results[]`: primero las que mejor coinciden cuando hay `query`, si no, en el orden del texto. Cada parte incluye `norm_id`, `norm_name`, `norm_type`, `part_id` (el id de BCN para la parte, estable entre versiones), `position` (su lugar en el texto, 0 para el encabezado), `level` y `parent_part_id` (el capítulo o título que la contiene), `kind` (`Artículo`, `Capítulo`, `Título`, `Disposición Transitoria`, `Anexo`, `Encabezado`, `Promulgación`...), `name` (p. ej. `1` para el Artículo 1), `heading`, `text`, `transitory`, `repealed` y `version_date` (la versión de la que viene su texto).

> **[Referencia completa](https://docs.usecroma.com/es/api-reference/overview.md)**
>
> Esquemas, todos los campos de respuesta y un playground interactivo.


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