Brazil Congress Bills Tracker – Projetos de Lei Câmara/Senado avatar

Brazil Congress Bills Tracker – Projetos de Lei Câmara/Senado

Pricing

$10.00 / 1,000 bill returneds

Go to Apify Store
Brazil Congress Bills Tracker – Projetos de Lei Câmara/Senado

Brazil Congress Bills Tracker – Projetos de Lei Câmara/Senado

Brazil Congress bills tracker: follow the tramitação of projetos de lei (PL, PEC, MPV) in the Câmara dos Deputados and Senado Federal. Current status + andamentos history, alerts only when a bill moves. Search new bills by keyword, type, author, party, UF. Official open data. Pay per bill.

Pricing

$10.00 / 1,000 bill returneds

Rating

0.0

(0)

Developer

Cairo Labs

Cairo Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Brazil Congress bills tracker and bill tracking API: follow the tramitação of Brazilian bills (projetos de lei) in the Câmara dos Deputados and the Senado Federal in one run. Give it a list like PL 2338/2023 and get each bill's current status and andamentos (history), newest first, in both houses. Schedule it with onlyNew: true and you get, and pay for, only the bills that moved. A search mode finds new bills by keyword, type, author, party, state (UF) and date. Built on the two houses' official open-data APIs (Dados Abertos): no login, no API key, no browser.

What does this Brazilian legislation tracker do?

  • 📌 Track specific bills (track mode): "mode": "track", "bills": ["PL 2338/2023", "PEC 45/2019"]. Each bill is looked up in both houses; you get one item per bill per house where it exists (since 2019 a bill keeps the same number in both houses).
  • 🧭 Current status: situação, órgão (committee/body) and date, plus the last action and despacho for the Câmara.
  • 🗂️ History: andamentos newest first, each with date, órgão, description, situação in force and a document link. maxHistory (default 20) limits how many are included; totalEvents always gives the full count.
  • 🔔 Only new andamentos: with onlyNew: true the actor remembers each bill's andamentos per house (named key-value store, one per stateKey). Next runs return only new andamentos (newEvents). Bills with nothing new are not returned and not charged. The first run returns everything as new.
  • 🔍 Search new bills (search mode, default): accent/case-insensitive keywords on the ementa (saude matches Saúde) + exclude terms; filters by bill type (PL, PLP, PEC, MPV, PDL…), year, presentation date window (default: last 7 days), author name, party and state (UF).
  • 🏛️ Both houses, one schema: Câmara dos Deputados and Senado Federal (including Congresso Nacional items such as MPV and PLN), normalized to the same English field names.
  • 📄 Status, authors, last update, full-text (inteiro teor) link and public bill page.
  • 🛡️ Polite rate limiting (3 req/s), timeouts, retries with backoff on 429/5xx; if one house's API is down, the other still delivers.

Use cases: government relations and public affairs, lobbying and advocacy, compliance and regulatory monitoring, newsrooms and political journalism, NGOs, legal teams tracking legislation in their sector. Send alerts to Slack/Email via Apify webhooks, n8n, Make or Zapier.

How to track Brazilian bills step by step?

  1. Follow specific bills: set "mode": "track" and list them in bills as SIGLA NUMBER/YEAR (PL 2338/2023, pl 5607/2026, PL nº 1.234/2025).
  2. Or find new bills: keep "mode": "search", choose sources (camara, senado), keywords and optional filters (types, author, party, UF, dates).
  3. Run it once and check the results (maxItems caps the number of items and the cost).
  4. For daily alerts, create an Apify Schedule with onlyNew: true and attach a webhook/integration. Use a different stateKey (monitor name) per independent watch list.

Input example (JSON)

Track mode:

{ "mode": "track", "bills": ["PL 2338/2023", "PL 5607/2026"], "onlyNew": true, "stateKey": "my-watchlist", "maxHistory": 3 }

Search mode:

{ "sources": ["camara", "senado"], "keywords": ["inteligência artificial", "dados pessoais"], "excludeKeywords": ["denomina"], "types": ["PL", "PLP", "PEC"], "party": "PT", "uf": "SP", "onlyNew": true, "maxItems": 50 }
  • Bill types: PL Projeto de Lei · PLP Projeto de Lei Complementar · PEC Proposta de Emenda à Constituição · MPV Medida Provisória · PDL Projeto de Decreto Legislativo · PLN (Congresso, budget) · REQ/RQS requerimentos. If you omit types, the default is PL, PLP, PEC, MPV, PDL (no requerimentos). Any list you pass replaces the default; [] returns every type, including REQ/RQS. types is case-insensitive; every sigla listed by the official Câmara and Senado APIs is accepted.
  • Dates are presentation dates (YYYY-MM-DD). Without dates, the last 7 days are searched; year alone searches that whole year. Long windows are split automatically (the Câmara API accepts at most 3 months per query).
  • Balanced houses: when both houses have matches, maxItems is split between them round-robin (newest first in each house); if one house has fewer matches, the other fills the rest.
  • includeDetails (default true) adds status, authors and full-text link to Câmara bills (2 extra API calls per bill returned); Senado data already includes them.
  • Validation: a bill not written as SIGLA NUMBER/YEAR, or an unknown sigla, fails the run with a clear message before any request is made or anything is charged, e.g. Invalid input: unknown bill type(s): XYZ. Valid types: PL, PLP, PEC, MPV, ....

Output example

Track mode (real run, 2026-10-19, history trimmed to 3)

PL 2338/2023 (the AI framework bill) exists in both houses, so it returns two items. PL 5607/2026 exists only in the Senado, so the Câmara lookup is free and returns nothing.

{
"mode": "track", "bill": "PL 2338/2023", "source": "camara", "id": "camara-2487262", "type": "PL", "number": 2338, "year": 2023,
"title": "PL 2338/2023",
"ementa": "Dispõe sobre o desenvolvimento, o fomento e o uso ético e responsável da inteligência artificial com base na centralidade da pessoa humana.",
"url": "https://www.camara.leg.br/propostas-legislativas/2487262",
"currentStatus": { "situation": "Aguardando Parecer", "organ": "MESA", "date": "2026-09-02T15:06", "lastAction": "Notificação de Apensação",
"dispatch": "Apensação da proposição PL 1542/2026 à proposição PL 904/2026." },
"lastUpdate": "2026-09-02T15:06", "regime": "Prioridade (Art. 151, II, RICD)",
"history": [
{ "date": "2026-09-02T15:06", "organ": "MESA", "situation": "Aguardando Parecer",
"description": "Notificação de Apensação – Apensação da proposição PL 1542/2026 à proposição PL 904/2026.",
"url": "https://www.camara.leg.br/proposicoesWeb/prop_mostrarintegra?codteor=3154148" },
{ "date": "2026-09-01T20:10", "organ": "MESA", "situation": "Aguardando Parecer",
"description": "Notificação de Apensação – Apense-se a este o PL 3060/2026",
"url": "https://www.camara.leg.br/proposicoesWeb/prop_mostrarintegra?codteor=3157537" },
{ "date": "2026-06-17T19:25", "organ": "MESA", "situation": "Aguardando Parecer",
"description": "Notificação de Apensação – Apensação da proposição PL 5433/2025 à proposição PL 3782/2025.",
"url": "https://www.camara.leg.br/proposicoesWeb/prop_mostrarintegra?codteor=3107056" }
],
"newEvents": 386, "totalEvents": 386
}
{
"mode": "track", "bill": "PL 2338/2023", "source": "senado", "id": "senado-8441243", "type": "PL", "number": 2338, "year": 2023,
"title": "PL 2338/2023", "ementa": "Dispõe sobre o uso da Inteligência Artificial.", "nickname": "Marco Legal da Inteligência Artificial",
"url": "https://www25.senado.leg.br/web/atividade/materias/-/materia/157233",
"currentStatus": { "situation": "REMETIDA À CÂMARA DOS DEPUTADOS", "organ": "SEXPE", "date": "2025-03-17" },
"lastUpdate": "2026-09-09T17:43:42.548", "inProgress": false,
"history": [
{ "date": "2025-03-17T15:53:41", "organ": "SEXPE", "situation": "REMETIDA À CÂMARA DOS DEPUTADOS",
"description": "Remetido Ofício SF nº 235, de 17/03/25, ao Senhor Primeiro-Secretário da Câmara dos Deputados, encaminhando autógrafo do projeto para revisão, nos termos do art. 65 da Constituição Federal." },
{ "date": "2024-12-19T18:49:43", "organ": "SEXPE", "situation": "APROVADO O SUBSTITUTIVO", "description": "Anexado o texto revisado." },
{ "date": "2024-12-10T21:14:59", "organ": "PLEN", "situation": "APROVADO O SUBSTITUTIVO",
"description": "(Sessão Deliberativa Ordinária, realizada em 10/12/2024) Encaminhadas à publicação as Emendas nºs 200 a 244-PLEN. ..." }
],
"newEvents": 375, "totalEvents": 375
}

On a second onlyNew run with no news, nothing is pushed or charged, and the run ends Succeeded with the status message 0 items: no new andamentos since last run: PL 2338/2023 (Câmara), PL 2338/2023 (Senado), PL 5607/2026 (Senado).

Search mode (real sample)

{
"source": "camara", "id": "camara-2648397", "type": "PL", "typeName": "Projeto de Lei", "number": 5608, "year": 2026,
"title": "PL 5608/2026",
"ementa": "Dispõe sobre a dispensa de inscrição suplementar para advogados que atuem em processos fora da jurisdição do Conselho Seccional ...",
"presentationDate": "2026-10-19T16:24", "authors": ["Kim Kataguiri"],
"status": "Apresentação de Proposição", "statusBody": "MESA", "lastUpdate": "2026-10-19T16:24",
"urlInteiroTeor": "https://www.camara.leg.br/proposicoesWeb/prop_mostrarintegra?codteor=3185011",
"url": "https://www.camara.leg.br/propostas-legislativas/2648397",
"rawIds": { "camaraId": 2648397, "codTipo": 139 }
}
{
"source": "senado", "id": "senado-9115291", "type": "PL", "typeName": "Projeto de Lei Ordinária", "number": 5607, "year": 2026,
"title": "PL 5607/2026", "ementa": "Altera a Lei nº 4.737, de 15 de julho de 1965 (Código Eleitoral) ...",
"presentationDate": "2026-10-19", "authors": ["Senadora Damares Alves (REPUBLICANOS/DF)"],
"status": "AGUARDANDO DESPACHO", "statusBody": "SF", "lastUpdate": "2026-10-19T16:22:16.605", "inProgress": true,
"urlInteiroTeor": "https://legis.senado.gov.br/sdleg-getter/dadosabertos/documento/b89c0c71-...",
"url": "https://www25.senado.leg.br/web/atividade/materias/-/materia/175989",
"rawIds": { "senadoProcessoId": 9115291, "codigoMateria": 175989, "casa": "SF" }
}

Each search item also has matchedKeywords (which of your keywords matched; empty when you set none), plus lastAction, lastActionDispatch (despacho), regime, appreciation, nickname (Senado "apelido"), apiUrl, scrapedAt. The same bill can appear once per house (source tells which). Dates are Brasília time. Export to JSON, CSV or Excel, or read it via the Apify API.

How much does it cost? (Pricing)

One event, bill-result = US$0.010 ($10 / 1,000), charged once per item written to the dataset:

Mode1 charged item =Free (not charged)
search1 bill in 1 house matching your filtersbills already returned earlier (with onlyNew), bills over maxItems
track1 bill in 1 house with andamentos to report (with onlyNew: only if it has new andamentos)bills not found in a house, bills with no new andamentos, invalid input

Example: tracking PL 2338/2023 without onlyNew = 2 items (Câmara + Senado) = US$0.020. A daily onlyNew watch-list of 20 bills where 3 moved = US$0.030 that day. maxItems is a hard cap on the number of items, and the run stops cleanly when your max total charge is reached.

FAQ

Yes – it is public data (Lei de Acesso à Informação) published by both houses through their official open-data APIs (Dados Abertos da Câmara dos Deputados and Dados Abertos do Senado Federal).

How do I follow a specific bill's tramitação?

Use "mode": "track" with "bills": ["PL 2338/2023"]. You get the current status and the andamentos in the Câmara and in the Senado. Add onlyNew: true and a daily Schedule to be alerted (and charged) only when the bill moves.

How do I get daily alerts for new bills?

Create an Apify Schedule with onlyNew: true and attach a webhook/integration. Use a different stateKey (monitor name) for each independent watch list.

Can I filter bills by party or state?

Yes. For the Câmara the API filters by the author's party and UF; for the Senado they are matched in the author string, e.g. "Senador Fulano (MDB/PA)".

Why don't I see requerimentos (REQ/RQS)?

By default types is PL, PLP, PEC, MPV and PDL. Set types to [] for all types, or list the ones you want (e.g. ["REQ", "RQS"]).

What if a bill is not found?

A bill that doesn't exist in one house is just logged (free). If it isn't found in either house, you get a warning and the run's status message tells you which bills to check.

Why did my run return 0 items?

The run still ends Succeeded and the status message says why: no bill matched (with the counts scanned per house and what to loosen, e.g. 0 bills matched (Câmara scanned 63, Senado scanned 12). Try: widen dateFrom/dateTo or year, remove/loosen keywords, check types, or turn off onlyNew.), all matches were already returned (onlyNew), or the tracked bills had no new andamentos or weren't found. Empty runs cost nothing for results.

Does it return the bill's current status?

Yes: the current situação, the body where it sits and the last update. For the Câmara in search mode it comes from the last tramitação (includeDetails: true).


🇧🇷 Acompanhamento de tramitação de projetos de lei – Câmara dos Deputados e Senado Federal

Acompanhe a tramitação de projetos de lei, PEC, PLP, MPV e PDL na Câmara dos Deputados e no Senado Federal em uma só execução, com os dados abertos oficiais. Informe a lista ("mode": "track", "bills": ["PL 2338/2023"]) e receba, para cada Casa, a situação atual (situação, órgão e data) e o histórico de andamentos, do mais recente para o mais antigo.

  • 🔔 Com onlyNew: true e um agendamento diário, você recebe só os andamentos novos. Projetos sem novidade não aparecem e não são cobrados.
  • 🔍 Modo busca de proposições novas: palavra-chave na ementa (sem acento/maiúsculas), termos excluídos, tipo (PL, PEC…), ano, data de apresentação, autor, partido e UF; situação atual, autores, link do inteiro teor e da página da proposição.
  • 💰 US$ 0,010 por item: no acompanhamento, 1 item = 1 projeto em 1 Casa com andamentos (novos); na busca, 1 item = 1 proposição em 1 Casa. Projetos não encontrados ou sem andamentos novos são gratuitos.
  • ⚠️ Formato SIGLA NÚMERO/ANO (ex.: PL 2338/2023). Formato ou sigla inválidos encerram a execução com mensagem clara, sem cobrança.
  • Exporte para Excel/CSV ou envie para Slack, e-mail, n8n, Make, Zapier. Ideal para relações governamentais, advocacy, compliance regulatório, jornalismo político e escritórios de advocacia.

Actor comunitário não oficial; sem vínculo com a Câmara dos Deputados, o Senado Federal ou o Congresso Nacional.