Skip to main content
The Presidência da República publishes Brazil’s federal legislation on the Planalto site: every act as it was signed and, for the ones amended since, a consolidated text with the superseded wording taken out and each change noted where it was made. About 55,000 acts are here, updated daily: the Constitution of 1988 and its amendments, and every lei complementar, lei ordinária, lei delegada, decreto-lei, decreto and medida provisória back to the 19th century. Search by kind, number, year, date or any words in the text, then read one act in full or a single article. Each act comes with the later acts its notes record as having amended, added to or revoked it, article by article, and the lookup lists the earlier acts it changed in turn. A medida provisória also carries its standing: pending before Congress, converted into a law (and which), lapsed, rejected or revoked.
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 federal acts

POST /br/planalto/laws-search/v1 Dataset Finds acts by kind, number, year, date or words in the text.
Returns as_of (how current the data is), the applied filters, total, page, per_page, total_pages, count and results[], most recently signed first. Every act carries id, type and type_label (the kind, as Brazilian law names it), number, year, name (its full citation), summary (the ementa, the act’s own statement of what it does), signed_on, published_on (in the Diário Oficial da União), revoked and revoked_by, amended_by[] (the later acts whose changes its text records, each with law_id, name, changes[] and the articles[] it touched), official_url, consolidated_url, veto_message_url, and for a medida provisória measure_status (pending, converted, lapsed, rejected, prejudiced or revoked), measure_status_note (the Presidência’s own wording) and converted_into (the law it became).
Results leave out the text: the codes and the Constitution run to hundreds of thousands of characters. query still matches inside it, so a phrase from an article finds the act. To go straight to one act, filter by type and number instead: a text search for a code’s name also finds every later act that cites it, newest first.

One act, in full

POST /br/planalto/law/v1 Dataset Returns one act by its id, or one of its articles.
Returns as_of, found, law_id, article and article_found (when one was asked for) and law, which carries everything the search returns plus amends[] (the earlier acts this one changed, with the articles[] it touched in each) and content: a window onto the text, with text, offset, total_length, has_more and next_offset. Every act carries id, type and type_label (the kind, as Brazilian law names it), number, year, name (its full citation), summary (the ementa, the act’s own statement of what it does), signed_on, published_on (in the Diário Oficial da União), revoked and revoked_by, amended_by[] (the later acts whose changes its text records, each with law_id, name, changes[] and the articles[] it touched), official_url, consolidated_url, veto_message_url, and for a medida provisória measure_status (pending, converted, lapsed, rejected, prejudiced or revoked), measure_status_note (the Presidência’s own wording) and converted_into (the law it became).
The text is the act as in force today: superseded wording is left out, and each changed provision keeps its note, e.g. “(Redação dada pela Lei nº 13.256, de 2016)”. It is the Presidência’s consolidation; the official text is the one published in the Diário Oficial da União. The longest acts run past a million characters, so send article for one article, or read the text a range at a time: pass next_offset back as offset until has_more is false.
A revoked act’s text is what is left of it in force, often only its title and the note that revoked it. The Código de Processo Civil of 1973, revoked in 2015, keeps just the articles on insolvency the new code left standing. A medida provisória is the exception: once it lapses or becomes a law the Presidência strikes the whole of it, so its text is kept as it was issued.
An id Croma does not hold returns found: false with HTTP 200, not an error. That includes an id in another act’s amended_by[] for an act this source does not hold: an earlier edition of a medida provisória from before 2001 (only the last edition is kept) or a decreto without a number.

Full reference

Schemas, all response fields, and an interactive playground.