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

# CMF

> La normativa, los dictámenes y las sanciones del regulador financiero de Chile: busca la normativa general de la CMF desde 1979 con el archivo bancario de la SBIF desde 1956, sus dictámenes desde 2011 y sus resoluciones sancionatorias desde 2002, y lee cualquiera con su documento original.

La Comisión para el Mercado Financiero (CMF) supervisa los bancos, el mercado de valores y las aseguradoras de Chile; absorbió a la Superintendencia de Valores y Seguros en 2018 y a la Superintendencia de Bancos e Instituciones Financieras (SBIF) en 2019. Aquí hay tres colecciones:

* **Normativa**: unas 4.500 Normas de Carácter General, Circulares y Oficios Circulares desde 1979, cada una con su resolución, las normas que modifica o deroga y las que la modifican o derogan, su texto refundido y su informe normativo cuando se publican, más unas 1.100 circulares y cartas circulares bancarias de la SBIF de 1956 a 2019.
* **Dictámenes**: unas 2.200 respuestas a consultas desde 2011, cada una con el resumen de la CMF.
* **Sanciones**: unas 1.450 resoluciones sancionatorias desde 2002, con el nombre del sancionado.

Cada registro llega con su documento original tal como lo publicó la CMF. Busca primero y luego lee un registro por su `id`.

> [!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 normativa

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

Una sola búsqueda sobre la normativa general de la CMF y el archivo bancario de la SBIF, filtrada por tipo, número, año, mercado, fecha o las normas que una modifica o deroga.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales en español, que se buscan en el título, el nombre de la SBIF y la resolución que la expide, p. ej. `deuda consolidada` o `liquidez`. |
| `collection` | enum | Opcional: `cmf` para la normativa general de la CMF, `sbif` para el archivo bancario de la SBIF (hasta 2019). |
| `type` | string | Tipo de norma opcional: `NCG`, `CIR` u `OFC` para la CMF; `Circular` o `Carta Circular` para la SBIF. |
| `number` | string | Número opcional, p. ej. `577`. Los números se repiten entre tipos y años. |
| `year` | integer | Año de expedición opcional. 0 busca en todos los años. Por defecto `0`. |
| `market` | enum | Mercado opcional: `banking` (bancos), `securities` (valores), `insurance` (seguros) u `other` (otras entidades). |
| `related_to` | string | `id` opcional de una norma, p. ej. `ncg-30-1989`: todas las normas que la modifican o derogan, o que ella modifica o deroga. |
| `from_date` | string | Opcional: solo los expedidos en esta fecha o después, `yyyy-mm-dd`. |
| `to_date` | string | Opcional: solo los expedidos 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/cl/cmf/regulations-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "deuda consolidada", "type": "NCG" }'
```

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[]`, del más reciente al más antiguo. Cada norma trae `id` (`ncg-577-2026`, o `sbif-17825` para el archivo de la SBIF), `collection` (`cmf` o `sbif`), `type` (`NCG`, `CIR`, `OFC`; `Circular`, `Carta Circular` para la SBIF), `number`, `name` (el nombre que le da el archivo de la SBIF), `issued_at`, `year`, `title`, `section` (los destinatarios de la SBIF, p. ej. Bancos), `markets` (`banking`, `securities`, `insurance`, `other`), `in_force` y `validity` (la nota de la CMF, p. ej. No Vigente), `resolution` (`number`, `date`, `reference`), las normas que `amends` (modifica) y `repeals` (deroga) y las que la modifican (`amended_by`) o derogan (`repealed_by`), cada una con `id`, `type`, `number`, `date` y `source_document_url`, `attachments` (texto refundido, informe normativo, resolución o anexo, cada uno con `kind`, `label`, `document_url` y `source_document_url`), `document_url` (el documento original de la norma, guardado por Croma byte a byte) y `source_document_url` (el documento en la CMF). Los campos que la CMF no indica vienen en null.

## Una norma

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

| Campo | Tipo | Notas |
| - | - | - |
| `regulation_id` | string | **Obligatorio.** El `id` de la norma que devuelve la búsqueda, p. ej. `ncg-577-2026` o `sbif-17825`. También sirve `NCG 577 2026`. |

```bash theme={"dark"}
curl https://api.croma.run/cl/cmf/regulation/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "regulation_id": "ncg-556-2025" }'
```

Devuelve `as_of`, `found`, `regulation_id` y `regulation`. Cada norma trae `id` (`ncg-577-2026`, o `sbif-17825` para el archivo de la SBIF), `collection` (`cmf` o `sbif`), `type` (`NCG`, `CIR`, `OFC`; `Circular`, `Carta Circular` para la SBIF), `number`, `name` (el nombre que le da el archivo de la SBIF), `issued_at`, `year`, `title`, `section` (los destinatarios de la SBIF, p. ej. Bancos), `markets` (`banking`, `securities`, `insurance`, `other`), `in_force` y `validity` (la nota de la CMF, p. ej. No Vigente), `resolution` (`number`, `date`, `reference`), las normas que `amends` (modifica) y `repeals` (deroga) y las que la modifican (`amended_by`) o derogan (`repealed_by`), cada una con `id`, `type`, `number`, `date` y `source_document_url`, `attachments` (texto refundido, informe normativo, resolución o anexo, cada uno con `kind`, `label`, `document_url` y `source_document_url`), `document_url` (el documento original de la norma, guardado por Croma byte a byte) y `source_document_url` (el documento en la CMF). Los campos que la CMF no indica vienen en null.

> [!NOTE]
>
> Un `id` que la CMF no ha publicado devuelve `found: false` con HTTP 200, no un error.

## Buscar dictámenes

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

Las respuestas de la CMF a consultas, buscadas por lo que dicen.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales en español, que se buscan en el resumen y en el acto, p. ej. `fintec` o `corredora de seguros`. |
| `effects` | enum | Opcional: `particulares` (responde a una parte) o `generales` (obliga a todos). |
| `letter_number` | string | Número opcional del oficio ordinario, p. ej. `248490`. |
| `year` | integer | Año de expedición opcional. 0 busca en todos los años. Por defecto `0`. |
| `from_date` | string | Opcional: solo los expedidos en esta fecha o después, `yyyy-mm-dd`. |
| `to_date` | string | Opcional: solo los expedidos 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/cl/cmf/opinions-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "fintec", "year": 2025 }'
```

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[]`, del más reciente al más antiguo. Cada dictamen trae `id` (su número de documento, p. ej. `2025120910460`), `title` (p. ej. Oficio Ordinario N°248490 de 31/12/2025), `letter_number`, `issued_at`, `year`, `published_at`, `medium` (cómo se envió el oficio), `publication_format`, `effects` (`particulares` o `generales`), `updated_at`, `summary` (el resumen de la CMF de la consulta y la respuesta), `document_url` (el oficio original, guardado por Croma byte a byte) y `source_document_url` (el oficio en la CMF).

## Un dictamen

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

| Campo | Tipo | Notas |
| - | - | - |
| `opinion_id` | string | **Obligatorio.** El `id` del dictamen que devuelve la búsqueda, p. ej. `2025120910460`. |

```bash theme={"dark"}
curl https://api.croma.run/cl/cmf/opinion/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "opinion_id": "2025120910460" }'
```

Devuelve `as_of`, `found`, `opinion_id` y `opinion`. Cada dictamen trae `id` (su número de documento, p. ej. `2025120910460`), `title` (p. ej. Oficio Ordinario N°248490 de 31/12/2025), `letter_number`, `issued_at`, `year`, `published_at`, `medium` (cómo se envió el oficio), `publication_format`, `effects` (`particulares` o `generales`), `updated_at`, `summary` (el resumen de la CMF de la consulta y la respuesta), `document_url` (el oficio original, guardado por Croma byte a byte) y `source_document_url` (el oficio en la CMF).

> [!NOTE]
>
> Un `id` que la CMF no ha publicado devuelve `found: false` con HTTP 200, no un error.

## Buscar sanciones

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

Todas las resoluciones sancionatorias desde 2002, buscadas por el nombre del sancionado o por lo que resuelven.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales en español, que se buscan en la materia y en la parte, p. ej. el nombre de una empresa o `multa`. |
| `kind` | enum | Opcional: `sanction` (aplica una sanción), `appeal` (resuelve un recurso contra una) u `other`. |
| `resolution_number` | string | Número de resolución opcional, p. ej. `11220`. La numeración se reinicia cada año. |
| `year` | integer | Año de expedición opcional. 0 busca en todos los años. Por defecto `0`. |
| `from_date` | string | Opcional: solo los expedidos en esta fecha o después, `yyyy-mm-dd`. |
| `to_date` | string | Opcional: solo los expedidos 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/cl/cmf/sanctions-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "corredores de bolsa", "kind": "sanction" }'
```

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[]`, del más reciente al más antiguo. Cada resolución trae `id` (su número de documento, p. ej. `2026090593551`), `resolution_number`, `issued_at`, `year`, `subject` (lo que resuelve, en palabras de la CMF, con el nombre del sancionado), `kind` (`sanction`, `appeal` u `other`), `party` (la parte que nombra `subject` cuando dice "APLICA SANCIÓN A ..."), `document_url` (la resolución original, guardada por Croma byte a byte) y `source_document_url` (la resolución en la CMF).

## Una sanción

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

| Campo | Tipo | Notas |
| - | - | - |
| `sanction_id` | string | **Obligatorio.** El `id` de la resolución que devuelve la búsqueda, p. ej. `2026090593551`. |

```bash theme={"dark"}
curl https://api.croma.run/cl/cmf/sanction/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "sanction_id": "2026090593551" }'
```

Devuelve `as_of`, `found`, `sanction_id` y `sanction`. Cada resolución trae `id` (su número de documento, p. ej. `2026090593551`), `resolution_number`, `issued_at`, `year`, `subject` (lo que resuelve, en palabras de la CMF, con el nombre del sancionado), `kind` (`sanction`, `appeal` u `other`), `party` (la parte que nombra `subject` cuando dice "APLICA SANCIÓN A ..."), `document_url` (la resolución original, guardada por Croma byte a byte) y `source_document_url` (la resolución en la CMF).

> [!NOTE]
>
> Un `id` que la CMF no ha publicado devuelve `found: false` con HTTP 200, no un error.

> **[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.