US Congress Financial Disclosures & Stock Trades Scraper
Pricing
from $2.00 / 1,000 transaction rows
US Congress Financial Disclosures & Stock Trades Scraper
Scrape US Congress stock trades & financial disclosures from the primary .gov sources — Senate eFD + House Clerk. One clean row per transaction, enriched with party, state/district & committee memberships. PTRs, annual reports & amendments, both chambers, incremental daily-diff mode.
Pricing
from $2.00 / 1,000 transaction rows
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
16 hours ago
Last modified
Categories
Share
US Congress Financial Disclosures & Stock Trades Scraper (STOCK Act)
Track what US Senators and Representatives are trading — straight from the official government sources, one clean row per transaction, enriched with the committees each member actually oversees.
This Actor scrapes congressional financial disclosures and STOCK Act periodic transaction reports (PTRs) directly from the two primary .gov systems — the U.S. Senate Electronic Financial Disclosure (eFD) system and the U.S. House Clerk disclosure portal. No paywalled aggregator, no stale third‑party API that broke two years ago: the data comes from the source of record every time.
Every trade is returned as a structured, ready‑to‑analyze row: member, chamber, party, state/district, ticker, asset, buy/sell, dollar amount range, transaction date, reported date, filing type, and a direct link to the original filing — plus, uniquely, the member's full committee and subcommittee memberships, so you can connect a trade to the industries that lawmaker helps regulate.
🚀 Why use this Actor
- 🏛️ Committee‑membership mapping (the killer feature). Every row can carry the member's committees and subcommittees, party, and district — sourced from the actively‑maintained
unitedstates/congress-legislatorsdataset. Instantly see when a member on the Armed Services Committee buys a defense contractor, or someone on Financial Services trades a bank. No competing scraper does this. - 🇺🇸 Both chambers, one Actor. Senate and House in a single run, normalized into one consistent schema. Most tools cover only one side.
- 📄 More than just PTRs. Periodic Transaction Reports (individual stock trades), annual financial disclosures, and amendments — not only the day‑to‑day trade filings.
- 🔁 Incremental "daily‑new‑trades" mode. Turn on
incrementaland the Actor remembers what it has already scraped and returns only filings that are new since the last run — perfect for a scheduled feed of fresh congressional trades. - ✅ Primary‑source reliability, at zero data cost. The free House bulk index and Senate eFD are the systems the filings actually live in. Aggregator shortcuts (Stock Watcher S3 dumps, etc.) are dead; this Actor doesn't depend on any of them.
- 🔍 Precise filters. By member first/last name, ticker symbol, chamber, filing type, and date range (filed or exact reported date).
- 🧾 Nothing dropped silently. The ~5–11% of filings that are scanned paper images (no text layer) are flagged as
scanned_pdf_not_parsedwith a direct PDF/GIF link — never quietly skipped — and are never charged.
📥 Inputs
| Field | Type | Description |
|---|---|---|
First_Name | string | Member first name filter (e.g. Nancy). Empty = all members. |
Last_Name | string | Member last name filter (e.g. Pelosi). The single most useful filter. |
Stock_Symbol | string | Ticker filter (e.g. NVDA). Case‑insensitive. Empty = all tickers. |
chamber | select | Both, House, or Senate. |
filingTypes | multiselect | Any of PTR, Annual, Amendment. Default ["PTR"]. |
Start_Date | string | Only filings on/after this date (MM/DD/YYYY or YYYY-MM-DD). |
End_Date | string | Only filings on/before this date. |
Date_Reported | string | Pin a single reported/filed date (overrides Start/End). Great for "what got filed today". |
includeCommittees | boolean | Attach party, state/district, bioguide ID, and committee memberships to every row. Default true. |
incremental | boolean | Only emit filings new since the previous run (state kept in a named key‑value store). Default false. |
maxItems | integer | Hard cap on total transaction rows. |
proxy | proxy | Proxy configuration. The Senate leg is geo‑blocked to US IPs, so the Actor defaults to US‑based Apify proxies — leave this as‑is unless you have your own US proxies. The House leg needs no proxy. |
Example input
{"Last_Name": "Tuberville","chamber": "Both","filingTypes": ["PTR"],"Start_Date": "01/01/2026","includeCommittees": true,"maxItems": 500}
📤 Output
One row per transaction line. Example (Senate PTR, committee‑enriched):
{"source": "senate","chamber": "Senate","member": "Tommy Tuberville","firstName": "Thomas H","lastName": "Tuberville","party": "Republican","state": "AL","district": null,"bioguideId": "T000278","committees": ["Senate Committee on Armed Services","Senate Committee on Armed Services — Seapower","Senate Committee on Agriculture, Nutrition, and Forestry","Senate Committee on Health, Education, Labor, and Pensions"],"owner": "Self","ticker": "WAB","assetName": "Westinghouse Air Brake Technologies Corporation Common Stock","assetType": "Stock","transactionType": "Sale (Full)","amountRange": "$1,001 - $15,000","transactionDate": "06/09/2026","reportedDate": "07/16/2026","filingType": "PTR","filingId": "S-392ac3e5-07f6-4f8c-840f-84e9066ffb29","filingUrl": "https://efdsearch.senate.gov/search/view/ptr/392ac3e5-07f6-4f8c-840f-84e9066ffb29/","parseStatus": "parsed"}
House example (bond, joint‑owned):
{"source": "house","chamber": "House","member": "Hon. Mark Alford","party": "Republican","state": "MO","district": "4","bioguideId": "A000379","committees": ["House Committee on Appropriations", "House Committee on Small Business"],"owner": "Joint","ticker": null,"assetName": "Arlington Cnty VA 5.00% 7/01/35","assetType": "GS","transactionType": "Purchase","amountRange": "$15,001 - $50,000","transactionDate": "02/19/2026","reportedDate": "03/01/2026","filingType": "PTR","filingId": "H-2026-20034085","filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/20034085.pdf","parseStatus": "parsed"}
Scanned/paper filings that can't be text‑parsed come back flagged (and free):
{"member": "Hon. ...","parseStatus": "scanned_pdf_not_parsed","comment": "Scanned/paper filing — no text layer. Fetch the PDF and OCR to read transactions.","filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/8XXXXXXX.pdf"}
Key output fields
member, chamber, party, state, district, bioguideId, committees[], owner, ticker, assetName, assetType, transactionType, amountRange, transactionDate, reportedDate, filingType, filingId, filingUrl, source, parseStatus.
💡 Use cases
- 📰 Investigative & financial journalism. Surface conflict‑of‑interest stories — a lawmaker trading a company their committee regulates — in seconds instead of clicking through hundreds of PDFs.
- ⚖️ Compliance & ethics monitoring. Watchdog groups, ethics offices and compliance teams tracking STOCK Act filings for disclosure completeness and timeliness.
- 📈 Quant & retail trading signals. Build "congressional trade" datasets and alpha signals; back‑test copy‑trading strategies (à la popular "Pelosi tracker" products) on clean, structured data.
- 🎓 Academic & policy research. Study insider‑trading patterns, committee‑to‑sector correlations, and disclosure behavior across chambers and parties.
- 🔔 Alerting products. Combine
incrementalmode with a scheduler to power a daily "new congressional trades" newsletter, Slack/Telegram bot, or dashboard.
⚙️ How it works

- House — downloads the House Clerk's yearly bulk index (
<YEAR>FD.zip, refreshed ~daily), filters to the filings you want, then fetches each e‑filed PTR PDF and parses its text layer into transaction rows. Works from any IP, no proxy required. - Senate — performs the Senate eFD system's CSRF handshake + prohibition‑agreement step, queries the search endpoint server‑side (name/date/report‑type filters), then parses the clean HTML transaction tables on each PTR/annual report page. Routed through US proxies because eFD is geo‑blocked outside the US.
- Enrichment — loads the
unitedstates/congress-legislatorsmember + committee‑membership datasets once per run (cached), and joins each filing to the member's party, state/district, bioguide ID and committee list. - Output — normalizes both chambers into one schema, one row per transaction, and flags anything that's a scanned image rather than dropping it.
Pure HTTP (Cheerio + PDF text extraction) — no headless browser, so it's fast and cheap.
💰 Pricing (Pay‑Per‑Event)
| Event | Price |
|---|---|
| Actor start | $0.001 |
| Transaction row | $0.002 per parsed transaction |
You are charged only for real parsed transaction rows. Scanned‑filing notice rows (the ones flagged scanned_pdf_not_parsed) are never charged. A cost‑preview line is logged at the start of every run so you always know the maximum a run can cost. Committee enrichment is included at no extra charge.
🤖 For AI agents & LLM apps
This Actor is built to be an MCP‑friendly tool for AI agents. It exposes a clean, deterministic input schema and returns fully‑structured JSON — no HTML scraping or PDF wrangling left for the model to do. An agent can call it to answer questions like:
- "Did any member of the House Financial Services Committee buy or sell a bank stock last month?"
- "List every NVDA trade by a sitting Senator this year, with the committees that Senator sits on."
- "Give me all new congressional stock trades filed today." (use
Date_Reportedorincremental)
Because every row already includes party, chamber, district, committees, ticker, direction, amount and a source link, an LLM can reason over conflicts of interest and cite the original filing directly. Point your agent framework (LangChain, LlamaIndex, the Apify MCP server, custom tools) at this Actor and let it query Congress's trades in natural language.
❓ FAQ
Where does the data come from? The official U.S. Senate eFD system (efdsearch.senate.gov) and the U.S. House Clerk disclosure portal (disclosures-clerk.house.gov) — the systems where these filings are legally recorded. Member/committee metadata comes from the open‑source unitedstates/congress-legislators project.
Why do I need a US proxy? The Senate eFD system blocks non‑US IP addresses at the network edge. The Actor routes the Senate pipeline through US‑based Apify proxies by default. The House source has no such restriction.
What are the scanned_pdf_not_parsed rows? A small share of filings (~5–11%) are scanned paper documents with no text layer, so their individual transactions can't be extracted without OCR. Rather than silently dropping them, the Actor emits a flagged row with a direct link to the original document — and doesn't charge you for it.
Can I get only new trades on a schedule? Yes — enable incremental and schedule the Actor. It keeps a per‑input memory of filings it has already returned and emits only new ones.
Does it cover annual disclosures and amendments too? Yes — set filingTypes to include Annual and/or Amendment in addition to (or instead of) PTR.
How current is the data? The House bulk index is regenerated roughly daily; the Senate eFD is live. Member/committee metadata is refreshed from an actively‑maintained source.
⚠️ Disclaimer
This Actor collects publicly available U.S. government records published by the Senate and the House of Representatives under the STOCK Act, plus open‑source member metadata. It is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Congress, the Senate, the House Clerk, any member of Congress, or any government agency. The data is provided for research, journalism, transparency and informational purposes only, and is not financial advice. Always verify against the original filing (linked in every row) before relying on it. Use in compliance with the source systems' terms and applicable law.
🔎 SEO keywords
congress stock trades scraper · STOCK Act scraper · congressional trading data · senate financial disclosures · house financial disclosures · house clerk PTR · periodic transaction report scraper · congress stock tracker API · Pelosi stock tracker · Nancy Pelosi trades · senator stock trades · representative stock trades · congress insider trading data · efdsearch senate scraper · disclosures-clerk house scraper · congressional stock trading dataset · lawmaker stock trades · committee membership data · politician stock trades · quiver congress alternative