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

# Función Pública

> Busca en el Gestor Normativo, el registro curado de las normas que rigen la administración pública colombiana, y lee cualquiera de ellas completa.

El Departamento Administrativo de la Función Pública mantiene el Gestor
Normativo: 40.000 normas que rigen la administración pública colombiana, desde
una ordenanza de 1620 hasta la circular de esta semana. No es un diario oficial
ni una relatoría. Es donde una norma se publica con su aparato editorial: los
temas bajo los que está clasificada, las normas posteriores que el gestor
registra como adiciones, modificaciones o derogatorias, y el texto consolidado.

Leyes, decretos, actos legislativos, sentencias del Consejo de Estado y los miles
de conceptos con que Función Pública responde cómo se aplican las reglas están en
el mismo registro, y ambos endpoints los recorren todos a la vez.

## Buscar en el gestor

`POST /co/funcion-publica/norms-search/v1` Una sola búsqueda sobre el texto completo de todas las normas del gestor, algo que el sitio del Gestor Normativo no ofrece: pagina de a diez y se detiene en diez mil resultados.

| Campo           | Tipo    | Notas                                                                                                                                                                                                                       |
| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`         | string  | Palabras opcionales que se buscan en la cita de la norma, la descripción de una línea del gestor y el texto completo de la norma.                                                                                           |
| `document_type` | string  | Tipo de instrumento opcional: `ley`, `decreto`, `concepto`, `sentencia`, `acuerdo`, `resolucion`, `circular-externa`, `decreto-ley`, `acto-legislativo`, `constitucion-politica` y otros. No importan mayúsculas ni tildes. |
| `year`          | integer | Año opcional en la designación de la norma (el 2008 de `Ley 1266 de 2008`). Así la clasifica el gestor, y no siempre es el año en que se expidió. 0 busca en todos los años. Por defecto `0`.                               |
| `number`        | string  | Número exacto opcional. Los ceros a la izquierda son opcionales: `7` y `007` encuentran la misma norma.                                                                                                                     |
| `entity`        | string  | Entidad expedidora opcional, se busca desde el comienzo del nombre: `congreso` encuentra al Congreso de la República. `nivel-nacional` es como el gestor rotula las normas del ejecutivo nacional.                          |
| `subject`       | string  | Tema opcional bajo el que el gestor clasifica la norma, tal como lo publica, p. ej. `HABEAS DATA`, `CARRERA ADMINISTRATIVA`. Los `subjects[]` de cualquier resultado son valores válidos.                                   |
| `issued_from`   | string  | Opcional: solo normas expedidas en esta fecha o después, `yyyy-mm-dd`.                                                                                                                                                      |
| `issued_to`     | string  | Opcional: solo normas expedidas en esta fecha o antes, `yyyy-mm-dd`.                                                                                                                                                        |
| `page`          | integer | Número de página, empieza en 1. Por defecto `1`.                                                                                                                                                                            |
| `per_page`      | integer | Resultados por página (1-50). Por defecto `20`.                                                                                                                                                                             |

```bash theme={"dark"}
curl https://api.croma.run/co/funcion-publica/norms-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "habeas data", "document_type": "ley" }'
```

<Note>
  La fuente entera, organizada y lista para consultar: este endpoint responde en milisegundos, a cualquier hora y siempre igual. Cada respuesta incluye `as_of`: qué tan actualizados están los datos.
</Note>

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados,
`total` (coincidencias en todas las páginas), `page`, `per_page`,
`total_pages`, `count` y `results[]`, de la más reciente a la más antigua.
Cada resultado incluye `id`, `title` (cómo se cita la norma), `document_type` y
`document_type_key`, `number` y `number_key` (el mismo número sin ceros a la
izquierda), `year` (el año en la designación de la norma), `entity` y
`entity_key` (quién la expidió), `summary` (la descripción de una línea que
publica el gestor), `issued_at`, `effective_at`, `published_in`, `subjects[]` y
`topics[]` (de qué trata, según la clasificación del gestor), `amendments[]`
(normas posteriores que el gestor registra como adiciones, modificaciones o
derogatorias de esta, cada una con su `norm_id` para consultarla), `official_url`
y `document_url`.

<Note>
  Los resultados de búsqueda no incluyen el texto de la norma: una sola norma
  puede tener cientos de miles de caracteres. `query` sí busca dentro de él, así
  que una frase que aparece en un artículo encuentra la norma; para leer el texto
  usa el endpoint Función Pública Norm.
</Note>

## Una norma, completa

`POST /co/funcion-publica/norm/v1`

| Campo     | Tipo    | Notas                                                                                                                                                                            |
| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `norm_id` | string  | **Obligatorio.** El `id` de los resultados de búsqueda, p. ej. `34488` para la Ley 1266 de 2008. El `norm_id` dentro del `amendments[]` de otra norma es el mismo identificador. |
| `offset`  | integer | Primer carácter del texto a devolver. Envía el `next_offset` de la respuesta anterior para seguir leyendo. Por defecto `0`.                                                      |
| `limit`   | integer | Cuántos caracteres del texto devolver. La mayoría de las normas caben en una sola respuesta; las más largas superan el millón de caracteres. Por defecto `200000`.               |

```bash theme={"dark"}
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" }'
```

<Note>
  La fuente entera, organizada y lista para consultar: este endpoint responde en milisegundos, a cualquier hora y siempre igual. Cada respuesta incluye `as_of`: qué tan actualizados están los datos.
</Note>

Devuelve `as_of`, `found`, `norm_id` y `norm`, que trae todo lo que devuelve la
búsqueda más `content`: una ventana sobre el texto de la norma, con `text`,
`offset`, `total_length`, `has_more` y `next_offset`. Cada resultado incluye `id`, `title` (cómo se cita la norma), `document_type` y
`document_type_key`, `number` y `number_key` (el mismo número sin ceros a la
izquierda), `year` (el año en la designación de la norma), `entity` y
`entity_key` (quién la expidió), `summary` (la descripción de una línea que
publica el gestor), `issued_at`, `effective_at`, `published_in`, `subjects[]` y
`topics[]` (de qué trata, según la clasificación del gestor), `amendments[]`
(normas posteriores que el gestor registra como adiciones, modificaciones o
derogatorias de esta, cada una con su `norm_id` para consultarla), `official_url`
y `document_url`.

<Note>
  Las normas más largas del gestor superan el millón de caracteres, así que el
  texto se lee por rangos: envía `offset` y `limit`, y luego pasa el
  `next_offset` de la respuesta como `offset` hasta que `has_more` sea falso.
  `content` es null en las pocas normas que el gestor publica sin cuerpo, y en
  aproximadamente una de cada siete cuyo texto no entrega.
</Note>

<Note>
  Un id que el gestor no contiene devuelve `found: false` con HTTP 200, no un
  error. Eso incluye un id al que apunta el `amendments[]` de otra norma: el
  gestor a veces cita una norma que ya no publica.
</Note>

<Card title="Referencia completa" icon="code" href="/es/api-reference/overview">
  Esquemas, todos los campos de respuesta y un playground interactivo.
</Card>
