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

# Imprenta Nacional

> Search Colombia's two official gazettes: the Gaceta del Congreso, document by document and in full text, and the Diario Oficial back to 1939.

Everything the Congress of Colombia has published in its own gazette since
2000, not as a list of issues but as the documents inside them: bills as filed,
the committee reports written on them, the minutes of sittings in both chambers,
approved and definitive texts, conciliation reports and presidential objections —
each with its full text and tied to the proyecto de ley it belongs to, so a bill
can be followed through every stage of its passage. A second pair of endpoints
covers the Gaceta's issues themselves and the Diario Oficial, the gazette where
Colombian law takes effect, indexed back to 1939.

## Search documents

`POST /co/imprenta/gaceta-documents-search/v1` One search across everything Congress has published since 2000, which no official site offers.

| Field            | Type    | Notes                                                                                                                                                                             |
| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`          | string  | Optional words to match in the document's title, its epígrafe and its full text.                                                                                                  |
| `chamber`        | enum    | `senado`, `camara`, or `any` for both. Default `any`.                                                                                                                             |
| `kind`           | enum    | Optional kind: `proyecto`, `ponencia`, `acta`, `texto`, `conciliacion`, `objecion`, `concepto`, `ley`, `otro`, or `any`. Default `any`.                                           |
| `bill_number`    | string  | Optional: only documents about this proyecto de ley or acto legislativo, e.g. `152`. Leading zeros are ignored. Pair it with `bill_year`: bill numbers restart every legislature. |
| `bill_year`      | integer | Optional year the bill was filed. 0 searches every year. Default `0`.                                                                                                             |
| `published_from` | string  | Optional earliest publication date, `yyyy-mm-dd`.                                                                                                                                 |
| `published_to`   | string  | Optional latest publication date, `yyyy-mm-dd`.                                                                                                                                   |
| `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/imprenta/gaceta-documents-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "reforma pensional", "kind": "ponencia" }'
```

<Note>
  The whole source, organized and ready to query: this endpoint answers in milliseconds, at any hour, the same way every time. Every response carries `as_of`: how current the data is.
</Note>

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 recently published first. Every result carries `id`, `gaceta_id` and `gaceta_number` (the issue it
was published in), `chamber`, `published_at`, `title` (how the document is
cited), `summary` (the epígrafe the Gaceta prints under it), `kind`,
`bill_number`, `bill_year` and `bill_chamber` (the proyecto de ley or acto
legislativo it is about, when the title names one), and `official_url`.

`kind` is `proyecto` (a bill as filed), `ponencia` (a committee report on one),
`acta` (the minutes of a sitting), `texto` (an approved or definitive text),
`conciliacion`, `objecion` (a presidential objection), `concepto`, `ley`, or
`otro`.

<Note>
  Search results do not carry the document's text: a single acta de plenaria can
  run to two hundred thousand characters. Take an `id` to the Gaceta Document
  endpoint to read one in full.
</Note>

## One document

`POST /co/imprenta/gaceta-document/v1`

| Field         | Type   | Notes                                                         |
| ------------- | ------ | ------------------------------------------------------------- |
| `document_id` | string | **Required.** The `id` of a document from the search results. |

```bash theme={"dark"}
curl https://api.croma.run/co/imprenta/gaceta-document/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "document_id": "87176" }'
```

<Note>
  The whole source, organized and ready to query: this endpoint answers in milliseconds, at any hour, the same way every time. Every response carries `as_of`: how current the data is.
</Note>

Returns `as_of`, `found`, `document_id` and `document`, which carries `text`:
the document itself, as the Gaceta published it. Every result carries `id`, `gaceta_id` and `gaceta_number` (the issue it
was published in), `chamber`, `published_at`, `title` (how the document is
cited), `summary` (the epígrafe the Gaceta prints under it), `kind`,
`bill_number`, `bill_year` and `bill_chamber` (the proyecto de ley or acto
legislativo it is about, when the title names one), and `official_url`.

`kind` is `proyecto` (a bill as filed), `ponencia` (a committee report on one),
`acta` (the minutes of a sitting), `texto` (an approved or definitive text),
`conciliacion`, `objecion` (a presidential objection), `concepto`, `ley`, or
`otro`.

<Note>
  A few documents are published with only their cover page as text — the
  substance of those is in the issue's own edition, at the gaceta's
  `official_url`.
</Note>

## Issues

`POST /co/imprenta/gacetas-search/v1` The Gaceta's own numbering, by chamber and date.

| Field            | Type    | Notes                                                                                                                                                         |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`          | string  | Optional words to match in the issue's number and label.                                                                                                      |
| `chamber`        | enum    | `senado`, `camara`, or `any` for both. Default `any`.                                                                                                         |
| `number`         | string  | Optional issue number, e.g. `1161`. Leading zeros are ignored. Numbering restarts each year and each chamber keeps its own run, so pair it with a date range. |
| `published_from` | string  | Optional earliest publication date, `yyyy-mm-dd`.                                                                                                             |
| `published_to`   | string  | Optional latest publication date, `yyyy-mm-dd`.                                                                                                               |
| `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/imprenta/gacetas-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "chamber": "senado", "published_from": "2026-08-01" }'
```

<Note>
  The whole source, organized and ready to query: this endpoint answers in milliseconds, at any hour, the same way every time. Every response carries `as_of`: how current the data is.
</Note>

Returns `as_of`, the applied filters, `total`, `page`, `per_page`,
`total_pages`, `count` and `results[]`, most recent first. Each issue carries
`id`, `number` and `number_key`, `chamber`, `published_at`, `printed_date`,
`legacy_label` and `official_url`.

<Note>
  `published_at` is null on nine issues whose printed year cannot be a year
  (`0009`, `0200`, `0209` and the like). Those issues are real and are returned;
  only the date is withheld, because the correct one is not knowable. Their
  `printed_date` shows what the Gaceta prints.
</Note>

## Diario Oficial

`POST /co/imprenta/diarios-search/v1` Eighty-seven years of the gazette, by number and date.

| Field            | Type    | Notes                                                                                                                                  |
| ---------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `number`         | string  | Optional issue number, e.g. `53.609` or `53609`. The thousands separator is ignored.                                                   |
| `edition`        | enum    | Optional edition: `ordinaria` (the daily edition), `extraordinaria`, `especial`, `oficio_tributario`, `otra`, or `any`. Default `any`. |
| `published_from` | string  | Optional earliest publication date, `yyyy-mm-dd`.                                                                                      |
| `published_to`   | string  | Optional latest publication date, `yyyy-mm-dd`.                                                                                        |
| `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/imprenta/diarios-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "published_from": "2026-08-01" }'
```

<Note>
  The whole source, organized and ready to query: this endpoint answers in milliseconds, at any hour, the same way every time. Every response carries `as_of`: how current the data is.
</Note>

Returns `as_of`, the applied filters, `total`, `page`, `per_page`,
`total_pages`, `count` and `results[]`, most recent first. Each issue carries
`id`, `number` and `number_key`, `edition`, `published_at` and `official_url`.

<Note>
  The record reaches back to issue 23,962 of 2 January 1939, but it is uneven
  before 2000: seven years list no issues at all (1985, 1987, 1988, 1992, 1994,
  1995 and 1998) and several others only a handful. An empty result for an old
  year means the Imprenta lists nothing for it, not that nothing was published.
</Note>

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