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.Search the register
POST /co/funcion-publica/norms-search/v1 Dataset
One search over the full text of every norm in the register, which the Gestor Normativo’s own site does not offer: it pages ten at a time and stops at ten thousand results.
as_of (how current the data is), the applied filters, total
(matches across every page), page, per_page, total_pages, count and
results[], most recent first. Every result carries id, title (how the norm is cited), document_type and
document_type_key, number and number_key (the same number with leading zeros
dropped), year (the year in the norm’s own designation), entity and
entity_key (who issued it), summary (the register’s one-line description of
what it does), issued_at, effective_at, published_in, subjects[] and
topics[] (what it is about, as the register classifies it), amendments[]
(later norms it records as having added to, modified or repealed this one, each
with the norm_id to look up in turn), official_url and document_url.
Search results leave out the norm’s body: a single norm can run to hundreds of
thousands of characters.
query still matches against it, so a search for a
phrase buried in an article finds the norm; read the text itself with the
Función Pública Norm endpoint.One norm, in full
POST /co/funcion-publica/norm/v1 Dataset
as_of, found, norm_id and norm, which carries everything the
search returns plus content: a window onto the norm’s text, with text,
offset, total_length, has_more and next_offset. Every result carries id, title (how the norm is cited), document_type and
document_type_key, number and number_key (the same number with leading zeros
dropped), year (the year in the norm’s own designation), entity and
entity_key (who issued it), summary (the register’s one-line description of
what it does), issued_at, effective_at, published_in, subjects[] and
topics[] (what it is about, as the register classifies it), amendments[]
(later norms it records as having added to, modified or repealed this one, each
with the norm_id to look up in turn), official_url and document_url.
The register’s longest norms run past a million characters, so the body is read
a range at a time: send
offset and limit, then pass the response’s
next_offset back as offset until has_more is false. content is null on
the few norms the register publishes without a body, and on the norms whose text it does
not serve, which are rare in recent years and commoner the further back the
norm goes.An id the register does not carry returns
found: false with HTTP 200, not an
error. That includes an id another norm’s amendments[] points at: the
register occasionally cites a norm it no longer serves.Full reference
Schemas, all response fields, and an interactive playground.