John Cole

Jul 23, 2026 • 4 min read

How to Track Congressional Stock Trades by Member or Ticker

Give the US Congress Stock Trades API a member, a ticker, or a date range and get every disclosed transaction as JSON, with a filing ID on every row.

Every stock trade a member of Congress makes is public record under the STOCK Act. Public does not mean usable: the filings are per-member documents split across two portals, some of them scanned images, built for looking up one report at a time. I wanted the record as rows I could query, not PDFs I had to read, so I built an API for it.

What the US Congress Stock Trades API does

The Congress Financial Disclosures and Stock Trades API turns the whole disclosure record into a queryable dataset. Filter by member, ticker, or date range and get one clean JSON row per transaction. Billing is per transaction returned with a hard cap you set, so a small query costs very little.

What it returns

Each row is one disclosed transaction, with the fields you need to analyze it and to verify it:

  • Who: first name, last name, chamber, and state or district.

  • What: ticker and the full asset description.

  • Direction and size: transaction type (purchase, sale, exchange) and the filed amount bracket.

  • When and where: the trade date, the notification date, and a Filing_ID so any row traces back to its source filing.

Track a member or a ticker in three steps

Open the Actor, set a filter (a Last_Name, a Stock_Symbol, or a Start_Date and End_Date range), and run it. Download the dataset as JSON, CSV, or Excel. The task Track Nancy Pelosi stock trades is the member-watch recipe in one click, and Track congress Nvidia stock trades flips it to one ticker across every member.

Call it as a REST API

Kick off a run with a single POST to the Actor's run endpoint:

POST /v2/acts/johnvc~us-congress-financial-disclosures-and-stock-trading-data/runs
{ "Last_Name": "Pelosi", "Start_Date": "2024-01-01", "End_Date": "2024-12-31", "Max_Results": 100 }

The run writes one JSON row per transaction to its dataset, which you read back over the API. Name and ticker filters are case-insensitive partial matches, which forgives the inconsistencies in the underlying filings.

Wire it into Claude with MCP

The Actor runs over MCP, so Claude, Claude Code, and Cursor can call it as a tool. Ask which members traded semiconductor stocks this quarter and the agent filters by ticker and date range mid-conversation, then cites the filing IDs it found. The task Get congress stock disclosures last year is the base dataset for any across-all-members analysis.

What people build with it

Journalists run accountability reporting on a member's trades, compliance and ESG teams screen a watchlist of tickers or members on a schedule, and quants test whether disclosed trades carry signal. Pair the Actor with an Apify Schedule and new disclosures land in your dataset the day they are filed, the way Track US congress stock trades daily is set up. See the runnable examples on the Peerlist project page.

FAQ About Scraping Congress Stock Trades

How much does the congress trades scraper cost?

Billing is per transaction returned plus a small per-run start fee. A 100-row member query runs about $0.19 on the free tier and a full 1,000-row pull about $1.91, with volume tiers lowering the per-row price. Max_Results caps any run, and new Apify accounts include free platform credit.

How do I call this scraper as an API?

Send a POST to the Actor's run endpoint with a member, ticker, or date-range filter, then read the dataset back as JSON, CSV, or Excel. Every row carries a Filing_ID, so any number traces back to the source filing.

Can I run this scraper from Claude with MCP?

Yes. Over the Apify MCP server the Actor becomes a callable tool, so an AI agent can filter by member, ticker, or date range mid-conversation and cite the filing IDs it found, no code required.

What are the limits of this congress trades scraper?

Filings trail trades by 30 to 45 days under the reporting deadline, so this is research data, not a live feed. Amounts are the brackets members file (for example $1,001 to $15,000), because exact values do not exist in the source. Rows flagged as image quality came through OCR, so spot-check those against the source PDF when a number matters.

Questions or a coverage gap? Open an issue on the Actor page and I usually reply within a day.

Join John on Peerlist!

Join amazing folks like John and thousands of other builders on Peerlist.

peerlist.io/

It’s available... this username is available! 😃

Claim your username before it's too late!

This username is already taken, you’re a little late.😐

0

0

0