---
title: "List regulations across countries"
method: GET
path: "/v1/regulations"
tags: ["Regulations"]
---

# List regulations across countries

`GET /v1/regulations`

## Request

- Base URL: `https://api.dapperglobal.com`
- URL: `https://api.dapperglobal.com/v1/regulations`
- Auth: API key in header `X-API-Key`

Authoritative, primary-source data on regulations (decretos, resoluciones, circulares, normativas) sourced directly from official gazettes and issuing-agency portals (see 'Data sources' below), refreshed daily-to-twice-daily. Use it for questions like '¿qué decretos sacó el Ministerio de Hacienda de Colombia este mes?' or 'new environmental regulations in Chile' — resolve the entity/type filters below.

Cross-country list. `country_code` is a comma-separated list (e.g. `BR,CO,CL`); each must be within your API key's scope. Omitting it returns all countries your key can access. The legacy numeric `country_id` list (e.g. `8,2,6`) is still accepted. `entity_id` implicitly restricts results to the country that entity belongs to — use `list_entities(q="<name>")` to resolve a name like 'Ministerio de Hacienda' to its entity_id first. Don't know the regulation_id either? `q` searches by subject matter — it tries the hybrid/semantic search engine first (e.g. 'regulations about online gambling' matches by meaning, not just a literal title string), and falls back automatically to a keyword match over BOTH title and summary. That summary half matters: in several countries the title is only an identifier ('Decreto exento número 190, de 2026') and the subject lives in the summary. To look a norm up by its number, use `number` rather than `q`.

**Data sources:** official gazettes and issuing-agency portals, scraped daily or twice daily per country — e.g. Diário Oficial da União (in.gov.br), El Peruano (gob.pe), Boletín Oficial de la República Argentina, Diario Oficial de la Federación (dof.gob.mx), Diario Oficial de Chile, Gaceta Oficial de Venezuela/Panamá, and 30+ Colombian entity sites. Every record links to the original publication via `external_link`.

## Query parameters

- `limit` integer
- `cursor` string, nullable
- `rtype_id` integer, nullable: Filter by regulation type ID.
- `entity_id` string, nullable: Filter by issuing entity ID. Comma-separated for several at once (e.g. '21,44'), since a sector usually spans more than one agency — use list_entities(q='<name>') to resolve names to IDs.
- `exclude_rtype_id` string, nullable: Comma-separated regulation type IDs to exclude. Use it to drop the administrative churn (nombramientos, autorizaciones puntuales) that dominates a ministry's daily gazette feed — list_regulation_types() has the IDs.
- `since` string, date, nullable
- `until` string, date, nullable
- `q` string, nullable: Search regulations by subject matter. Tries the hybrid/semantic search engine first (ranked by relevance, ignoring `rtype_id`/`entity_id`; `since`/`until` still apply); pass a `cursor` and it stays on the keyword path instead, since ranked results are a single page. If it's unavailable or finds nothing above `min_similarity`, falls back to a keyword match over title AND summary where every token must appear. Use `number`, not `q`, for a norm's number.
- `number` string, nullable: Find a norm by its number, e.g. '0091', 'Decreto 0091 de 2026', '188-2026'. Matched number-for-number against the title and short name with leading zeros ignored, so '0091' and '91' are the same query; include the year to narrow it ('0091 2026' requires both).
- `min_similarity` number: Relevance floor for the semantic branch of `q` (0-1). Hits at or below it are discarded; if nothing survives, `q` falls back to the keyword match. Lower it to widen a search that came back empty.
- `min_rerank` number, nullable: Cross-encoder floor for the semantic branch of `q`. This is the filter that discriminates: measured on production, 58% of rows that clear `min_similarity` are rejected here, and the two similarity ranges overlap almost completely. Rows dropped by it come back under `empty_result.near_misses` when nothing else survives. Pass a value below every score (e.g. -1000) to disable it.
- `include_committee_minutes` boolean: Include INVIMA specialized-board minutes (`rtype='Acta'`). They are excluded by default: they are a sanitary committee's decision on one product, not regulation, and they are 87% of Colombia's indexed corpus at 210 chunks each. `meta.committee_minutes_hidden` says how many this call dropped; list_committee_minutes serves them properly.
- `country_code` string, nullable: Comma-separated country codes, e.g. BR,CO,CL.
- `country_id` string, nullable: Deprecated alias: comma-separated numeric ids, e.g. 8,2,6.

## Response `200`

Successful response (real sample data)

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api.md) · [All operations](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api/revisions/f34d9e6a2b0e?raw)
