---
title: "CNSF Provisions Search"
method: POST
path: "/mx/cnsf/provisions-search/v1"
tags: ["Mexico", "CNSF"]
---

# CNSF Provisions Search

`POST /mx/cnsf/provisions-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/mx/cnsf/provisions-search/v1`
- Auth: HTTP bearer

Search Mexico's insurance and surety rulebook in full: every artículo of the Ley de Instituciones de Seguros y de Fianzas (LISF), and every disposición, anexo, anexo transitorio and transitional provision of the Circular Única de Seguros y de Fianzas (CUSF), plus the documentation the circular points to. Filter by free text, `instrument`, `kind`, exact `number`, `chapter_number`, `source_circular` (which Circular Modificatoria introduced a transitional provision), and when the containing chapter was last amended (`amended_from`/`amended_to`). Results come back in reading order with the complete text. 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 text and headings of the provisions.
  - `instrument` 'any' | 'LISF' | 'CUSF': Instrument: `LISF` (the law), `CUSF` (the circular that implements it), or `any` for both.
  - `kind` 'any' | 'articulo' | 'disposicion' | 'anexo' | 'transitoria' | 'anexo_transitorio' | 'capitulo' | 'documento': Kind of provision: `articulo` (LISF), `disposicion`, `anexo`, `anexo_transitorio` or `documento` (CUSF), `transitoria` (either), `capitulo` for a chapter repealed in full, or `any`.
  - `number` string: Optional exact provision number as the instrument writes it (e.g. `41` for a LISF artículo, `3.1.2` for a CUSF disposición, `14.2.1-a` for an annex).
  - `chapter_number` string: Optional chapter filter (e.g. `6.3` in the CUSF).
  - `source_circular` string: Optional filter for transitional provisions by the Circular Modificatoria that introduced them (e.g. `3/26`), or `original` for those issued with the instrument itself.
  - `amended_from` string, date: Optional date filter in yyyy-mm-dd format.
  - `amended_to` 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-25). Every result carries the full text of the provision.

## Response `200`

Successful response

- CnsfProvisionsSearchResponse
  - `data` CnsfProvisionsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `instrument` string, nullable, required
    - `kind` string, nullable, required
    - `number` string, nullable, required
    - `chapter_number` string, nullable, required
    - `source_circular` string, nullable, required
    - `amended_from` string, nullable, required
    - `amended_to` 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: Stable identifier: instrument, kind and the number the instrument gives the provision (e.g. `cusf:disp:3.1.2`, `lisf:art:41`, `cusf:anexo:14.2.1-a`).
      - `instrument` 'LISF' | 'CUSF', required: `LISF` (Ley de Instituciones de Seguros y de Fianzas) or `CUSF` (Circular Única de Seguros y de Fianzas).
      - `kind` 'articulo' | 'disposicion' | 'anexo' | 'transitoria' | 'anexo_transitorio' | 'capitulo' | 'documento', required: `articulo` (LISF), `disposicion`, `anexo`, `anexo_transitorio` and `documento` (CUSF), `transitoria` (either), or `capitulo` for a chapter repealed in full, which has explanatory text but no numbered provisions.
      - `number` string, required: The number the instrument itself gives the provision: "41", "3.1.2", "14.2.1-a".
      - `title_number` string, nullable, required: Number of the título the provision sits under, e.g. "3".
      - `title_name` string, nullable, required: Name of the título, e.g. "DEL GOBIERNO CORPORATIVO".
      - `chapter_number` string, nullable, required: Number of the capítulo, e.g. "3.1". Null on annexes, which hang off a chapter rather than sitting in one.
      - `chapter_name` string, nullable, required: Name of the capítulo, or of the annex group.
      - `heading` string, nullable, required: The provision's own official title, where the instrument publishes one: the description the annex index gives an anexo, or the entry the documentation index gives a documento.
      - `source_circular` string, nullable, required: For a `transitoria`, the Circular Modificatoria that introduced it (e.g. "3/26"), or `original` for the provisions issued with the instrument itself. Null on every other kind.
      - `external_url` string, nullable, required: For a `documento`, the address the instrument points to for it. Null on every other kind.
      - `text` string, nullable, required: Full text of the provision, including its fracciones and incisos. Null on the few annexes the source publishes only as an image and on a chapter it has repealed outright.
      - `amendment_note` 'nuevo' | 'modificado' | 'derogado', nullable, required: What the source flags about the containing chapter or annex: `nuevo`, `modificado` or `derogado`. Null when it flags nothing.
      - `last_amended_at` string, nullable, required: `yyyy-mm-dd` the containing chapter or annex was last amended in the DOF. Null when the source flags no amendment, which means it has not changed since the instrument was issued.
      - `position` number, required: Reading order within the instrument, so provisions sort the way they are printed rather than alphabetically.
      - `official_url` string, required

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