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

# CREG

> Search every regulatory act of Colombia's energy and gas regulator, the CREG: resoluciones, circulares, conceptos jurídicos, draft resolutions and autos since 1994, with the full text, the notes on later amendments and every original file; read any one in full.

The Comisión de Regulación de Energía y Gas (CREG) regulates Colombia's electricity, natural gas, LPG and liquid fuels markets: the tariffs, the wholesale market, the rules every utility, generator, trader and network operator works under. Its regulatory acts since 1994 are here: about 7,300 resoluciones (general rules and particular decisions about one company or one tariff), 2,500 circulares, 7,500 conceptos jurídicos, 1,000 draft resolutions under public consultation and the autos that open administrative proceedings. Each act comes with its number, its dates of issue and web publication, its Diario Oficial reference, the CREG's own summary, its full text, the CREG's notes on the later acts that amended or repealed it, and a copy of every file the CREG published with it: the act as PDF and Word, the technical memo behind it, its annexes.

Search across all of them at once, by kind, number, year or date of issue, or with free text that reaches into the body of every act. New acts appear the day after the CREG publishes them.

<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 acts

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

One search over the full text of every act in the register, filtered by kind, number, year or date of issue.

| Field         | Type    | Notes                                                                                                                                                                    |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `query`       | string  | Optional words matched against the title, the number and the full text.                                                                                                  |
| `kind`        | enum    | Optional kind: `resolution`, `particular_resolution`, `draft_resolution`, `circular`, `legal_opinion` or `order`. Default `any`.                                         |
| `number`      | string  | Optional act number, e.g. `101 128` or `131`. Leading zeros and the separator do not matter. Numbers repeat across kinds and years, so combine it with `kind` or `year`. |
| `year`        | integer | Optional year in the act's designation. 0 searches every year. Default `0`.                                                                                              |
| `issued_from` | string  | Optional: only acts issued on or after this date, `yyyy-mm-dd`.                                                                                                          |
| `issued_to`   | string  | Optional: only acts issued on or before this 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/creg/acts-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "fronteras comerciales", "kind": "resolution", "year": 2026 }'
```

Returns `as_of` (how current the data is), the applied filters, `total` and `total_is_exact`, `page`, `per_page`, `total_pages`, `count` and `results[]`, most recently issued first. Every result carries `id` (family, number and year, e.g. `resolucion_101-128_2026`), `kind` (`resolution`, `particular_resolution`, `draft_resolution`, `circular`, `legal_opinion` or `order`), `number` (as the CREG prints it, e.g. `101 128`), `year`, `title` (what the act does, in the CREG's words), `issued_at`, `published_at` (on the CREG's site), `gazette` and `gazette_date` (the Diario Oficial reference), `text_status` (`ok` or `missing`), `amendments[]` (the CREG's own notes on later acts that modified, added to or repealed it, each with the `act_id` of that act), `official_url` (the act on the CREG's site), `document_url` (Croma's copy of the act's main file, byte for byte as the CREG published it, which stays available whatever happens to the CREG's link), `source_document_url` (the file on the CREG's own site), `documents[]` (every file the CREG published with the act: the act as PDF and Word, technical memos, annexes) and `source_modified_at`.

<Note>
  Search results leave out the text; `query` still matches it, so a phrase from the body finds the act. Read the text itself with the CREG Act endpoint.
</Note>

## One act, in full

`POST /co/creg/act/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

| Field    | Type    | Notes                                                                                                      |
| -------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `act_id` | string  | **Required.** The act's `id` from a search result, e.g. `resolucion_101-128_2026`, or its `official_url`.  |
| `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 acts fit in one response. Default `200000`.                |

```bash theme={"dark"}
curl https://api.croma.run/co/creg/act/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "act_id": "resolucion_101-128_2026" }'
```

Returns `as_of`, `found`, `act_id` and `act`, which carries everything the search returns plus `content`: a window onto the act's full text, with `text`, `offset`, `total_length`, `has_more` and `next_offset`. Every result carries `id` (family, number and year, e.g. `resolucion_101-128_2026`), `kind` (`resolution`, `particular_resolution`, `draft_resolution`, `circular`, `legal_opinion` or `order`), `number` (as the CREG prints it, e.g. `101 128`), `year`, `title` (what the act does, in the CREG's words), `issued_at`, `published_at` (on the CREG's site), `gazette` and `gazette_date` (the Diario Oficial reference), `text_status` (`ok` or `missing`), `amendments[]` (the CREG's own notes on later acts that modified, added to or repealed it, each with the `act_id` of that act), `official_url` (the act on the CREG's site), `document_url` (Croma's copy of the act's main file, byte for byte as the CREG published it, which stays available whatever happens to the CREG's link), `source_document_url` (the file on the CREG's own site), `documents[]` (every file the CREG published with the act: the act as PDF and Word, technical memos, annexes) and `source_modified_at`.

<Note>
  An `id` the CREG's register does not hold 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>
