---
title: "CREG Act"
method: POST
path: "/co/creg/act/v1"
tags: ["Colombia", "CREG"]
---

# CREG Act

`POST /co/creg/act/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/creg/act/v1`
- Auth: HTTP bearer

Retrieve one regulatory act of Colombia's Comisión de Regulación de Energía y Gas (CREG) by its `id` from a search result (e.g. `resolucion_101-128_2026`) or its `official_url`: its full text, number, kind, dates, Diario Oficial reference, the CREG's notes on later amendments, Croma's copy of its files and the links to the act on the CREG's own site. The text comes back a character range at a time (`offset`, `limit`); follow `next_offset` until `has_more` is false.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `act_id` string, required: The act's `id` from a search result, e.g. `resolucion_101-128_2026`. Its `official_url` works too.
  - `offset` integer: First character of the range to return. Pass the previous response's `next_offset` to continue reading.
  - `limit` integer: Maximum characters to return (1000-1000000).

## Response `200`

Successful response

- CregActResponse
  - `data` CregActData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `found` boolean, required
    - `act_id` string, required
    - `act` object, nullable, required
      - `id` string, required: Stable identifier: family, number and year, e.g. `resolucion_101-128_2026` (Resolución CREG 101 128 de 2026), `resolucion_131_1998`, `circular_345_2026`, `concepto_6838_2026`, `auto_939_2026`. Draft resolutions share the `resolucion` family with the resolutions they become.
      - `kind` 'resolution' | 'particular_resolution' | 'draft_resolution' | 'circular' | 'legal_opinion' | 'order', required: `resolution` (resolución de carácter general), `particular_resolution` (resolución de carácter particular: a decision about one company or one tariff), `draft_resolution` (proyecto de resolución under public consultation), `circular`, `legal_opinion` (concepto jurídico) or `order` (auto de inicio of an administrative proceeding).
      - `number` string, required: The number as the CREG prints it: "101 128", "131", "345", "6838", "502 120D".
      - `year` number, required: The year in the act's designation.
      - `title` string, nullable, required: What the act does, in the CREG's own words: the epígrafe of a resolution, the subject of a circular or a concepto.
      - `issued_at` string, nullable, required: `yyyy-mm-dd` the act is dated.
      - `published_at` string, nullable, required: `yyyy-mm-dd` the CREG published the act on its site. Null for older acts, which record only their Diario Oficial date.
      - `gazette` string, nullable, required: The Diario Oficial reference as the CREG prints it, e.g. "Diario Oficial No. 53.620 de 9 de septiembre de 2026". Null when the act was not published there.
      - `gazette_date` string, nullable, required: `yyyy-mm-dd` of the Diario Oficial issue that published the act.
      - `text_status` 'ok' | 'missing', required: `ok` when the full text is here; `missing` when the CREG publishes the act only as a file this dataset could not read the text of.
      - `amendments` object[], required: The CREG's own notes on later acts that modified, added to or repealed this one (notas de vigencia). Empty when it records none.
        - `description` string, required: The note as the CREG writes it, e.g. `Modificada por la Resolución 38 de 2010, publicada en el Diario Oficial No. 47.645 de 8 de marzo de 2010, '...'`.
        - `act_id` string, nullable, required: The `id` of the act the note refers to, when it is one of this dataset's acts.
      - `official_url` string, required: The act on the CREG's site.
      - `document_url` string, nullable, required: Croma's copy of the act's main document (its PDF, or the Word file when the CREG publishes no PDF), byte for byte as the CREG published it. Null when it publishes no file.
      - `source_document_url` string, nullable, required: The act's main document on the CREG's own site.
      - `documents` object[], required: Every file the CREG publishes with the act: the act itself as PDF and Word, technical memos, annexes, comment matrices.
        - `name` string, required: The file name as the CREG published it.
        - `format` string, required: The file's format from its name: `pdf`, `docx`, `doc`, `xlsx`, ...
        - `document_url` string, nullable, required: Croma's copy of the file, byte for byte as the CREG published it. Null when the CREG's link no longer answers.
        - `source_document_url` string, required: The file on the CREG's own site.
        - `bytes` number, nullable, required: Size of the file in bytes, when the copy was made.
      - `source_modified_at` string, nullable, required: When the CREG's site last regenerated the act's page, as it reports it.
      - `content` object, nullable, required: A range of the act's text, or null when `text_status` is not `ok`.
        - `text` string, required: The requested character range of the act's text.
        - `offset` number, required: First character of the range, which is where the reading actually started.
        - `total_length` number, required: Length of the whole text in characters, however much of it this response carries.
        - `has_more` boolean, required: Whether the text continues past this range.
        - `next_offset` number, nullable, required: Pass this back as `offset` to read the next range. Null at the end of the text.

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