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

# Superfinanciera Doctrina

> Search every concepto and jurisdictional ruling of the Superintendencia Financiera de Colombia, and the high-court rulings it catalogues, with their full text, and read any one of them.

The doctrine and case-law catalog of the Superintendencia Financiera de Colombia's library, close to 19,000 documents: every concepto it has issued since 1994 (the Superintendencia Bancaria's before 2005), every ruling of its Delegatura para Funciones Jurisdiccionales, and the rulings of the Corte Constitucional, the Consejo de Estado and the Corte Suprema de Justicia it catalogues as jurisprudencia financiera. Each one comes with the SFC's own summary and subject descriptors, its number, date, issuer and case file number, its full text where the document carries text, and links to the entry and the document at the Superintendencia.

Search across all of them at once, by collection, year, number, case file, issuer, descriptor or date, or with free text that reaches into the body of every document. Search first, then read one document in full.

<Note>
  The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries `as_of`: how current the data is. [How datasets work](/datasets).
</Note>

## Search the doctrine and case law

`POST /co/superfinanciera-doctrine/search/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

One search over the full text of every concepto since 1994 and every jurisdictional ruling of the Superintendencia, filtered by collection, year, number, case file, issuer, descriptor, date or the state of the text.

| Field                 | Type    | Notes                                                                                                                                                                                                                                                     |
| --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`               | string  | Optional words matched against the document's number, case file number, title, summary, subject descriptors and full text.                                                                                                                                |
| `collection`          | enum    | `concept` (conceptos, the SFC's doctrine), `jurisdictional_ruling` (fallos of its Delegatura para Funciones Jurisdiccionales), `financial_case_law` (high-court sentencias it catalogues as jurisprudencia financiera), `other`, or `any`. Default `any`. |
| `year`                | integer | Optional year the SFC files the document under (the year it was issued, in almost every case). 0 searches every year. Default `0`.                                                                                                                        |
| `number`              | string  | Optional number as the SFC prints it: `2020311455-001`, `2017-1900`, `T-123`. Case, spaces and leading zeros are ignored.                                                                                                                                 |
| `registration_number` | string  | Optional case file number (expediente or radicado) of a fallo or sentencia. Case, spaces and punctuation are ignored.                                                                                                                                     |
| `issuer`              | string  | Optional issuer, matched from the start of the name: `superintendencia financiera` (its Delegatura included), `superintendencia bancaria`, `corte constitucional`, `consejo de estado`, `corte suprema`. Case and accents are ignored.                    |
| `topic`               | string  | Optional subject descriptor as the SFC publishes it in `topics`, e.g. `PROTECCIÓN AL CONSUMIDOR FINANCIERO`. Case and accents are ignored.                                                                                                                |
| `from_date`           | string  | Optional: only documents dated on or after this date, `yyyy-mm-dd`.                                                                                                                                                                                       |
| `to_date`             | string  | Optional: only documents dated on or before this date, `yyyy-mm-dd`.                                                                                                                                                                                      |
| `text_status`         | enum    | Optional: `extracted` for documents whose full text is here, or `no_text_layer`, `audio`, `dead_link`, `withdrawn`, `no_document`, or `any`. Default `any`.                                                                                               |
| `page`                | integer | 1-based page number. Default `1`.                                                                                                                                                                                                                         |
| `per_page`            | integer | Results per page (1-50). Default `20`.                                                                                                                                                                                                                    |

```bash theme={"dark"}
curl https://api.croma.run/co/superfinanciera-doctrine/search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "consumidor financiero", "collection": "concept" }'
```

Returns `as_of` (how current the data is), the applied filters, `total` (matches across every page), `page`, `per_page`, `total_pages`, `count` and `results[]`, most recent first. Every result carries `id` (the document's identifier in the Superintendencia's catalog), `collection` (`concept`, `jurisdictional_ruling`, `financial_case_law` or `other`), `type` (`Concepto`, `Fallo` or `Sentencia`), `number` and `number_key`, `registration_number` and `registration_key` (the expediente or radicado), `year`, `issued_at`, `title`, `subject`, `summary` (the SFC's own), `topics[]` and `topic_keys[]`, `issuer` and `issuer_key`, `reporting_judges[]` (the ponente of a sentencia), `series`, `notes`, `withdrawn_at`, `text_status`, `document_format`, `official_url` (the entry in the Superintendencia's catalog) and `document_url` (the document itself).

<Note>
  `text_status` says whether the document's full text is here: `extracted` (it is), `no_text_layer` (the document is a scan, or in a format with no text to read), `audio` (a hearing the SFC published as a recording, as it did for most fallos issued at a hearing), `dead_link` (the SFC's link does not lead to a document), `withdrawn` or `no_document`. Every entry is here whatever its state, with `official_url` and, when there is one, `document_url`.
</Note>

<Note>
  Search results leave out the document's text, which runs to tens of thousands of characters. `query` still matches against it, so a phrase from the body finds the document; read the text itself with the Superfinanciera Doctrine Entry endpoint.
</Note>

## One document, in full

`POST /co/superfinanciera-doctrine/entry/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

| Field      | Type    | Notes                                                                                                      |
| ---------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `entry_id` | string  | **Required.** The `id` from the search results, e.g. `18717`.                                              |
| `offset`   | integer | First character of the text to return. Pass the previous response's `next_offset` to read on. Default `0`. |
| `limit`    | integer | How many characters of the text to return. Most documents fit in one response. Default `200000`.           |

```bash theme={"dark"}
curl https://api.croma.run/co/superfinanciera-doctrine/entry/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "entry_id": "1" }'
```

Returns `as_of`, `found`, `entry_id` and `entry`, which carries everything the search returns plus `content`: a window onto the document's full text, with `text`, `offset`, `total_length`, `has_more` and `next_offset`. `content` is null unless `text_status` is `extracted`. Every result carries `id` (the document's identifier in the Superintendencia's catalog), `collection` (`concept`, `jurisdictional_ruling`, `financial_case_law` or `other`), `type` (`Concepto`, `Fallo` or `Sentencia`), `number` and `number_key`, `registration_number` and `registration_key` (the expediente or radicado), `year`, `issued_at`, `title`, `subject`, `summary` (the SFC's own), `topics[]` and `topic_keys[]`, `issuer` and `issuer_key`, `reporting_judges[]` (the ponente of a sentencia), `series`, `notes`, `withdrawn_at`, `text_status`, `document_format`, `official_url` (the entry in the Superintendencia's catalog) and `document_url` (the document itself).

<Note>
  Long rulings run to hundreds of thousands of characters, so the text is read a range at a time: send `offset` and `limit`, then pass the response's `next_offset` back as `offset` until `has_more` is false.
</Note>

<Note>
  An id the catalog does not carry returns `found: false` with HTTP 200, not an error.
</Note>

<Card title="Full reference" icon="code" href="/api-reference/overview">
  Schemas, all response fields, and an interactive playground.
</Card>
