US Congress Stock Trades & Financial Disclosures Scraper
Pricing
from $2.20 / 1,000 results
US Congress Stock Trades & Financial Disclosures Scraper
[π° $2.20 / 1K] Track US Congress stock trades from official STOCK Act filings (House & Senate). Get one clean row per transaction: member, ticker, asset, buy/sell, dates, amount range, and a link to the source filing. Filter by member name, ticker, chamber, trade type, or date range.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Track every stock and securities transaction reported by members of the US Congress β one clean row per trade, pulled straight from the official STOCK Act filings of all 435 House representatives and 100 senators. Every row carries the member, the asset exactly as filed, the ticker whenever the filing prints one, the asset type, owner, trade direction, dollar-amount range, trade date, reported date, and a direct link back to the source filing. Built for retail investors, financial journalists, and compliance and research teams who need to follow congressional trading without manually downloading and decoding PDFs from two separate government portals.
Why This Scraper?
- Both chambers in one run β all 435 US House representatives and 100 US senators, pulled from the official House Clerk disclosure portal and the Senate Electronic Financial Disclosure (eFD) system. Set
chamberto query one or both. - One flat row per transaction β no nested arrays to unpack. Every trade line is its own record, ready to drop straight into a spreadsheet, database, or backtesting pipeline.
- Parsed amount bounds on every row β the official
$1,001 - $15,000style brackets come back as a cleanamount_rangestring plus numericamount_minandamount_maxintegers, so you can sort, sum, and filter by dollar size without regex. - A decoded owner on 100% of rows β every cryptic STOCK Act code is spelled out as Self, Spouse, Dependent Child, or Joint. The official form leaves the column blank for the member's own holdings; we fill in Self, so
owner_labelis never empty. No legend lookup required. - Every printed ticker captured β 660 of 660 on our last audit β across a 1,677-row check of both chambers, every single row whose filing actually prints a symbol came back with its
tickerfilled in, zero misses. Treasuries, municipal bonds, hedge funds and private equity print no symbol anywhere on the official form, so those rows carry the full asset name instead βassetis populated on 100% of rows either way. - 44 official asset-type codes decoded to plain English β Stock, Exchange Traded Fund (ETF), Government Securities, Corporate Securities (Bonds/Notes), Options, Cryptocurrency, Private Stock / Equity, Asset-Backed Securities, Hedge Fund, Real Estate and 30+ more, using the exact wording of the official House asset-type legend so labels match the filings you are citing.
- Decoded trade direction on 100% of rows β Purchase, Sale, Sale (partial), Purchase (partial), or Exchange, spelled out identically across House and Senate so a single
transactionTypefilter works on both sources. Partial sales keep their own value rather than being flattened into plain sales. - Direct source-filing link per row β
filing_urlpoints to the exact House PTR PDF or Senate eFD report behind every transaction, with the filing and document IDs alongside for citation and audit. - Opt-in reading of pre-2014 scanned House filings β older House disclosures were filed as scanned paper images. Name a member and switch on
includeScannedFilingsto read those too, reaching back to 2012 for history most aggregators skip entirely. - Official first-party government data β sourced directly from House Clerk and Senate eFD, the authoritative STOCK Act record, not a third-party re-seller.
Use Cases
Retail Investing & Copy-Trading
- Mirror the disclosed trades of high-profile members like Pelosi or Tuberville
- Filter to a single ticker to see which members are buying or selling it
- Sort by
amount_maxto surface the largest disclosed positions - Build watchlists from the most-traded congressional symbols
Financial Journalism
- Spot unusual trades around major legislation or committee hearings
- Cite the exact source filing with a direct link in every story
- Track a member's full trading history across a date range
- Compare buying versus selling activity ahead of market-moving votes
Compliance & Ethics Research
- Monitor disclosures for conflicts of interest by committee assignment
- Pull one member's full filing history by name and screen it for a single security
- Audit reporting lag between trade date and notification date
- Maintain an evidence trail with filing and document IDs
Quant & Alternative Data
- Feed structured congressional-trade signals into models
- Backtest strategies against historical disclosure data
- Aggregate trade volume by sector, ticker, or chamber
- Enrich existing datasets with politician-trading features
Academic Research
- Study political-economy questions on insider activity at scale
- Analyze owner breakdowns (self versus spouse versus joint) across Congress
- Measure disclosure-timing patterns across thousands of filings
- Build reproducible datasets sourced from the primary record
Getting Started
Most Recent Trades Across All of Congress
Leave everything blank to pull the latest disclosures from both chambers:
{"maxResults": 100}
Follow One Member's Trades in a Ticker
{"lastName": "Pelosi","chamber": "house","stockSymbol": "NVDA","maxResults": 50}
Full Filtered Pull With Date Range and OCR
{"lastName": "Tuberville","chamber": "senate","transactionType": "purchase","startDate": "2024-01-01","endDate": "2024-12-31","includeScannedFilings": true,"maxResults": 0}
Input Reference
Who to Search
| Parameter | Type | Default | Description |
|---|---|---|---|
lastName | string | "" | Filter to a member by last name, e.g. "Pelosi". Case-insensitive, matches partial names. Leave blank to include all members. Naming a member returns that member's full available House filing history; a blank, name-less House search covers the current and previous filing year, while a Senate search reaches back to 2012. |
firstName | string | "" | Optional first name to combine with the last name when several members share a surname (e.g. "Nancy" with "Pelosi"). Case-insensitive partial match. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
stockSymbol | string | "" | Only return transactions in this security, e.g. "AAPL" or "NVDA". Leave blank to include every asset. |
chamber | string | "Both Chambers" | Which chamber to include: Both Chambers, House of Representatives, or Senate. On a Both Chambers run without a member name, the Senate side reaches back to 2012 while the House side covers the current and previous filing year. |
transactionType | string | "All Transactions" | Filter by trade direction: All Transactions, Purchases, Sales, or Exchanges. |
Date Range
| Parameter | Type | Default | Description |
|---|---|---|---|
startDate | string | "" | Earliest transaction date to include, in YYYY-MM-DD format (e.g. 2024-01-01). Leave blank for no lower limit. |
endDate | string | "" | Latest transaction date to include, in YYYY-MM-DD format. Leave blank for no upper limit. |
dateReported | string | "" | Return only filings reported (notified) on this exact date, in YYYY-MM-DD format. Use instead of a date range when you want a single reporting day. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of transactions to return. Set to 0 for unlimited. Tip: start with 10-50 to test, then increase. Note that "unlimited" still covers the current and previous filing year on a name-less House search (Senate reaches back to 2012) β name a member to pull their full House history. |
includeScannedFilings | boolean | false | House filings from before roughly 2014 are scanned paper images. Turn this on to also read those older filings via text recognition. Senate and modern House filings are always read regardless of this setting. |
Output
Each dataset item is a single congressional transaction. Example:
{"first_name": "Nancy","last_name": "Pelosi","chamber": "House","state_district": "CA12","owner": "SP","owner_label": "Spouse","asset": "NVIDIA Corporation","ticker": "NVDA","asset_type_code": "ST","asset_type_label": "Stock","transaction_type_code": "P","transaction_type_label": "Purchase","transaction_date": "2024-06-24","notification_date": "2024-07-02","amount_range": "$1,000,001 - $5,000,000","amount_min": 1000001,"amount_max": 5000000,"details": "Purchased 50 call options with a strike price of $80.","transaction_id": "house-20026411-0","filing_id": "20026411","doc_id": "20026411","year": 2024,"chamber_pdf_quality": "text","filing_url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2024/20026411.pdf","scraped_at": "2026-06-10T14:32:05Z"}
A Senate row, showing a partial sale held for a dependent child:
{"first_name": "John W","last_name": "Hickenlooper","chamber": "Senate","owner": "DC","owner_label": "Dependent Child","asset": "Palantir Technologies Inc. - Class A Common Stock","ticker": "PLTR","asset_type_code": "ST","asset_type_label": "Stock","transaction_type_code": "S (partial)","transaction_type_label": "Sale (partial)","transaction_date": "2025-04-16","notification_date": "2026-05-05","amount_range": "$1,001 - $15,000","amount_min": 1001,"amount_max": 15000,"transaction_id": "senate-8036348f-2470-41f7-be97-d822d0b17e7c-2","filing_id": "8036348f-2470-41f7-be97-d822d0b17e7c","doc_id": "8036348f-2470-41f7-be97-d822d0b17e7c","year": 2026,"chamber_pdf_quality": "text","filing_url": "https://efdsearch.senate.gov/search/view/ptr/8036348f-2470-41f7-be97-d822d0b17e7c/","scraped_at": "2026-09-11T04:41:09Z"}
Member Fields
| Field | Type | Description |
|---|---|---|
first_name | string | Member's first name. |
last_name | string | Member's last name. |
chamber | string | "House" or "Senate". |
state_district | string | State and district code for House members (e.g. "CA12"); blank for senators. |
Transaction Fields
| Field | Type | Description |
|---|---|---|
owner | string | Raw owner code (SP, DC, JT, or blank for self). |
owner_label | string | Decoded owner: Self, Spouse, Dependent Child, or Joint. |
asset | string | Full asset name as filed (e.g. "NVIDIA Corporation"). |
ticker | string | Stock ticker symbol, filled in on every row whose filing prints one (e.g. "NVDA"). Blank for Treasuries, municipal bonds and other unlisted holdings, which carry no symbol on the official form. |
asset_type_code | string | Raw two-letter asset-type code (e.g. "ST"). |
asset_type_label | string | Decoded asset type in the official legend's wording (e.g. "Stock", "Government Securities", "Corporate Securities (Bonds/Notes)"), when the filing states an asset-type code. |
transaction_type_code | string | Raw trade-direction code: P, S, E, or a partial variant β S (partial) / P (partial). |
transaction_type_label | string | Decoded direction: Purchase, Sale, Sale (partial), Purchase (partial), or Exchange. |
transaction_date | string | Date the trade occurred, in YYYY-MM-DD format. |
notification_date | string | Date the trade was reported/notified, in YYYY-MM-DD format. |
details | string | Any extra note filed with the transaction β a clarifying comment, a bond's coupon and maturity, an option's strike and expiry β when present. Almost always filled on House rows; the Senate comment column is blank on most plain stock trades. |
Amount Fields
| Field | Type | Description |
|---|---|---|
amount_range | string | Disclosed dollar bracket as text (e.g. "$1,000,001 - $5,000,000"). |
amount_min | integer | Lower bound of the amount bracket, as a number. |
amount_max | integer | Upper bound of the amount bracket, as a number. |
Source Fields
| Field | Type | Description |
|---|---|---|
transaction_id | string | Stable per-row identifier built from the chamber, document ID, and row position. |
filing_id | string | Identifier of the source filing. |
doc_id | string | Document identifier of the source filing. |
year | integer | Filing year of the source disclosure. |
chamber_pdf_quality | string | "text" for digitally filed disclosures, "image" for scanned filings read via text recognition. |
filing_url | string | Direct link to the source House PTR PDF or Senate eFD report. |
scraped_at | string | ISO-8601 timestamp of when the record was collected. |
Tips for Best Results
- Chamber coverage differs on a broad search. A name-less House search covers the current and previous filing year, while a Senate search reaches all the way back to 2012. So on a Both Chambers run the oldest rows will be Senate β that is the search window, not evidence the House wasn't trading. Enter a
lastNameand the House side returns that member's full filing history, every year available. - Set
chamberto Senate for the freshest, fastest results β Senate e-filings are already structured. LeaveincludeScannedFilingsoff unless you specifically need pre-2014 House history: modern filings are always included either way, and the older scanned ones take longer to read. - Combine
lastNamewithfirstNamewhen a surname is shared (e.g. several Kellys in the House) to pin results to one person. - Start with a small
maxResults(10-50) to preview output, then set it to 0 for an unlimited full pull once your filters look right. - Filter by
stockSymbolto instantly see which members traded a specific company across both chambers. - Remember that STOCK Act reporting runs 30-45 days behind the trade itself β a transaction's
transaction_datewill be well before itsnotification_date. UsedateReportedto capture a single day's newly filed disclosures. - Sort by
amount_maxto surface the largest disclosed positions first, since the official brackets only give a range rather than an exact figure.
Pricing
From $2.20 per 1,000 results β pay only for the transactions you collect, sourced directly from the primary government record. No compute or time-based charges β you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.26 | $0.245 | $0.23 | $0.22 |
| 1,000 | $2.60 | $2.45 | $2.30 | $2.20 |
| 10,000 | $26.00 | $24.50 | $23.00 | $22.00 |
| 100,000 | $260.00 | $245.00 | $230.00 | $220.00 |
A "result" is one congressional transaction row. Platform usage fees are additional.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n β Workflow automation
- Google Sheets β Direct spreadsheet export
- Slack / Email β Notifications on new disclosures
- Webhooks β Trigger custom APIs on run completion
- Apify API β Full programmatic access
Legal & Ethical Use
Congressional financial disclosures are public records, published by the US House Clerk and the US Senate under the Stop Trading on Congressional Knowledge (STOCK) Act of 2012. This actor collects only that publicly available filing data for research, journalism, and transparency purposes. You are responsible for using the data in compliance with the source portals' terms and all applicable laws. Do not use the data to harass individuals or for any unlawful purpose.