---
title: "Planalto Laws Search"
method: POST
path: "/br/planalto/laws-search/v1"
tags: ["Brazil", "Presidência da República (Planalto)"]
---

# Planalto Laws Search

`POST /br/planalto/laws-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/br/planalto/laws-search/v1`
- Auth: HTTP bearer

Search Brazil's federal legislation as the Presidência da República publishes it: the Constitution of 1988 and its amendments, and every lei complementar, lei ordinária, lei delegada, decreto-lei, decreto and medida provisória. Filter by `type`, a medida provisória's `measure_status`, exact `number` (with or without the thousands dot), signature `year` or a signature date range (`from_date`, `to_date`), and match free text against the act's name, its ementa and its full text. Results come most recently signed first, without the text; read one act with the Planalto Law endpoint. Served by Croma (`as_of` says how current the data is).

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

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Términos de búsqueda en el nombre, la ementa y el texto completo del acto (opcional).
  - `type` '' | 'constitution' | 'constitutional_amendment' | 'complementary_law' | 'ordinary_law' | 'delegated_law' | 'decree_law' | 'decree' | 'provisional_measure': Tipo de acto: `constitution` (la Constitución de 1988), `constitutional_amendment` (enmiendas constitucionales, incluidas las de revisión), `complementary_law`, `ordinary_law`, `delegated_law`, `decree_law`, `decree` o `provisional_measure` (medida provisória) (opcional; por defecto todos).
  - `measure_status` '' | 'pending' | 'converted' | 'lapsed' | 'rejected' | 'prejudiced' | 'revoked': Situación de una medida provisória: `pending` (en trámite), `converted` (convertida en ley), `lapsed` (vigencia terminada sin votación), `rejected`, `prejudiced` (prejudicada) o `revoked` (opcional).
  - `number` string: Número del acto, con o sin punto de miles, p. ej. `13105` o `13.105` (opcional). Coincidencia exacta.
  - `year` integer: Año en que se firmó el acto, p. ej. `2015`; `0` sin filtro (opcional). Distingue actos que comparten número.
  - `from_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `to_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Resultados por página (1-50).

## Response `200`

Successful response

- PlanaltoLawsSearchResponse
  - `data` PlanaltoLawsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `type` string, nullable, required
    - `measure_status` string, nullable, required
    - `number` string, nullable, required
    - `year` number, nullable, required
    - `from_date` string, nullable, required
    - `to_date` string, nullable, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `results` object[], required
      - `id` string, required: Croma's id for the act: its kind, number and signature year, e.g. `lei-13105-2015`; `cf-1988` for the Constitution.
      - `type` 'constitution' | 'constitutional_amendment' | 'complementary_law' | 'ordinary_law' | 'delegated_law' | 'decree_law' | 'decree' | 'provisional_measure', required: `constitution`, `constitutional_amendment` (including the six revision amendments of 1994), `complementary_law`, `ordinary_law`, `delegated_law`, `decree_law`, `decree` or `provisional_measure` (a medida provisória).
      - `type_label` string, required: The kind as Brazilian law names it: "Lei", "Lei Complementar", "Decreto-Lei", "Emenda Constitucional" and so on.
      - `number` string, required: The act's number as it is cited, e.g. "13.105" or "1.234-A". Empty for the Constitution.
      - `year` number, required: The year the act was signed.
      - `name` string, required: The act's full citation, e.g. "Lei nº 13.105, de 16 de março de 2015".
      - `summary` string, nullable, required: The ementa: the act's own one-line statement of what it does, e.g. "Código de Processo Civil.".
      - `signed_on` string, required: `yyyy-mm-dd` the act was signed.
      - `published_on` string, nullable, required: `yyyy-mm-dd` it was published in the Diário Oficial da União. Null for the oldest acts, published before the DOU.
      - `revoked` boolean, required: True when the Presidência marks the whole act as revoked. False does not prove the act is in force: an act can be superseded without a note saying so.
      - `revoked_by` object, nullable, required: The act that revoked this one, when `revoked` is true and the note names it.
        - `law_id` string, nullable, required: Id of the revoking act, to look it up in turn. Null when the citation names an instrument outside this dataset's id scheme.
        - `name` string, required: How the revoking act is cited, e.g. "Lei nº 13.105, de 2015".
      - `amended_by` object[], required: Later acts whose changes the text records in its notes, most recent first, each with the articles it touched.
        - `law_id` string, required: Id of the other act, e.g. `lei-13256-2016`. It may be an act this dataset does not hold yet (a medida provisória or a decreto), so a lookup can come back `found: false`.
        - `name` string, required: How the other act is cited, e.g. "Lei nº 13.256, de 2016".
        - `changes` string[], required: What it did: `amended` (gave a provision new wording), `added` (inserted one), `revoked`, `renumbered`.
        - `articles` string[], required: The articles it touched, as they are numbered, e.g. ["12", "1.029", "8-A"]. Empty when every change it made sits outside an article (a heading, an annex).
      - `official_url` string, required: The act's page at the Presidência.
      - `consolidated_url` string, nullable, required: The Presidência's consolidated version of the act, when it keeps one apart from the original.
      - `veto_message_url` string, nullable, required: The presidential veto message, when the act was partly vetoed.
      - `measure_status` 'pending' | 'converted' | 'lapsed' | 'rejected' | 'prejudiced' | 'revoked', nullable, required: Where a medida provisória stands: `pending` (before Congress), `converted` (into a law, named in `converted_into`), `lapsed` (it expired unvoted), `rejected`, `prejudiced` (set aside without a vote) or `revoked`. Null for every other kind, and for the pre-2001 medidas provisórias whose index records only their chain of monthly editions.
      - `measure_status_note` string, nullable, required: A medida provisória's standing in the Presidência's own words, e.g. "Convertida Lei nº 15.347, de 2026" or "Vigência encerrada Ato nº 101, de 2024".
      - `converted_into` object, nullable, required: The law a medida provisória was converted into.
        - `law_id` string, nullable, required: Id of the law, to look it up in turn.
        - `name` string, required: How the law is cited, e.g. "Lei nº 15.347, de 2026".

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal 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)
