# Colombian legislation moves to the Gestor Normativo

**Published:** September 16, 2026 | **Authors:** Cristian Correa

---

From today, Colombian legislation in Croma comes from Función Pública's Gestor Normativo: more than 40,000 norms, from laws and decrees to conceptos, rulings and circulars, each with its consolidated text, the subjects it is filed under and the later norms that added to, modified or repealed it. The two Legalize endpoints are deprecated as of today and stop answering on 30 September 2026.

| Deprecated | Successor |
| --- | --- |
| `POST /co/legalize/laws/v1` | `POST /co/funcion-publica/norms-search/v1` |
| `POST /co/legalize/law/v1` | `POST /co/funcion-publica/norm/v1` |

## Why the change

Legalize is an external service. We don't control how it updates its data, when it fixes an error or how long it keeps the service running, so we couldn't stand behind those endpoints with the support we give the rest of the API.

So we started maintaining our own source of truth for Colombian legislation, one we do control: the Gestor Normativo, complete, organized and up to date, with `as_of` on every response telling you how current the data is. When something breaks, we see it and fix it ourselves, without waiting on a third party, and we can answer for every norm when you write to us.

## How to migrate

The request and the response change, so migrating takes more than a new path. Find a law by type, number and year:

```bash
curl https://api.croma.run/co/funcion-publica/norms-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document_type": "ley",
    "number": "1266",
    "year": 2008
  }'
```

Each result's `id` (`34488` for Ley 1266 de 2008) is the `norm_id` that fetches the full norm:

```bash
curl https://api.croma.run/co/funcion-publica/norm/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "norm_id": "34488" }'
```

| Legalize | Gestor Normativo |
| --- | --- |
| `query` | `query`, over the citation, the description and the norm's full text |
| `law_type` | `document_type`: `ley`, `decreto`, `concepto`, `sentencia`, `resolucion` and more |
| `year` as a string (`"2008"`) | `year` as a number (`2008`) |
| `per_page` up to 100 | `per_page` up to 50 |
| `status` and `jurisdiction` | No direct equivalent. `entity` filters by the issuing body, and `amendments` lists the norms that modified or repealed it |
| `law_id` (`LEY-1266-2008`) | `norm_id` (`34488`), the `id` the search returns |
| `content_md` | `content.text`, in ranges: follow `next_offset` until `has_more` is `false` |

## What happens until 30 September

- The Legalize endpoints keep answering unchanged. Every response carries the `Deprecation` and `Sunset` headers, a `Link` with `rel="successor-version"` and a `deprecation` field in the body.
- Legalize no longer appears as a tool on the MCP server or on the site's tools. Agents connected over MCP have `funcion_publica_norms_search` and `funcion_publica_norm`.
- From 30 September 2026 both paths answer `410` with `code: "endpoint_retired"` and the same `Link` to the successor.

The [versioning policy](https://docs.usecroma.com/versioning) gives 90 days' notice before an endpoint retires. These two get 14, and the policy says so next to the list of deprecated endpoints.

The guide is at [Función Pública](https://docs.usecroma.com/guides/colombia/funcion-publica).

---

**More updates:** [View all changelog entries](/en/changelog/sitemap.md) | [Croma](https://usecroma.com)
