US Congress Financial Disclosures & Stock Trades Scraper avatar

US Congress Financial Disclosures & Stock Trades Scraper

Pricing

from $2.00 / 1,000 transaction rows

Go to Apify Store
US Congress Financial Disclosures & Stock Trades Scraper

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

16 hours ago

Last modified

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-legislators dataset. 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 incremental and 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_parsed with a direct PDF/GIF link — never quietly skipped — and are never charged.

📥 Inputs

FieldTypeDescription
First_NamestringMember first name filter (e.g. Nancy). Empty = all members.
Last_NamestringMember last name filter (e.g. Pelosi). The single most useful filter.
Stock_SymbolstringTicker filter (e.g. NVDA). Case‑insensitive. Empty = all tickers.
chamberselectBoth, House, or Senate.
filingTypesmultiselectAny of PTR, Annual, Amendment. Default ["PTR"].
Start_DatestringOnly filings on/after this date (MM/DD/YYYY or YYYY-MM-DD).
End_DatestringOnly filings on/before this date.
Date_ReportedstringPin a single reported/filed date (overrides Start/End). Great for "what got filed today".
includeCommitteesbooleanAttach party, state/district, bioguide ID, and committee memberships to every row. Default true.
incrementalbooleanOnly emit filings new since the previous run (state kept in a named key‑value store). Default false.
maxItemsintegerHard cap on total transaction rows.
proxyproxyProxy 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 incremental mode with a scheduler to power a daily "new congressional trades" newsletter, Slack/Telegram bot, or dashboard.

⚙️ How it works

How it works — US Congress Financial Disclosures & Stock Trades Scraper: filter by member/ticker/chamber → House Clerk + Senate eFD + committee mapping → one committee-mapped transaction row

  1. 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.
  2. 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.
  3. Enrichment — loads the unitedstates/congress-legislators member + committee‑membership datasets once per run (cached), and joins each filing to the member's party, state/district, bioguide ID and committee list.
  4. 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)

EventPrice
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_Reported or incremental)

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