# Apify Congress Stock Trades API

> Pull US Congressional stock trades and financial disclosures as structured JSON with the Apify Congress Financial Disclosures and Stock Trades Actor (johnvc/us-congress-financial-disclosures-and-stock-trading-data). Filter Periodic Transaction Reports from the House and Senate by member name, ticker, or date range and get one row per transaction with Ticker, Asset, Transaction_Type, Amount_Range, Date, House, State_District, and Filing_ID. Use when the user wants a congress stock trades api, wants to scrape congressional financial disclosures, export House or Senate stock trades to JSON or CSV, pull a member's disclosed trades, look up which members traded a ticker, or build a congressional trading dataset for research. Pay-per-transaction billing, MCP-ready for Claude and other AI agents.

- Skill: `johnisanerd/apify-congress-stock-trades-api` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add johnisanerd/apify-congress-stock-trades-api`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnisanerd/apify-congress-stock-trades-api/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: johnisanerd (https://skillmd.com/u/johnisanerd)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/johnisanerd/apify-congress-stock-trades-api

---


# Congress Stock Trades API: Disclosures to Structured JSON

Query US Congressional stock trades as an API. Give it a member name, a ticker, or a date range and get one clean JSON row per disclosed transaction from House and Senate Periodic Transaction Reports (PTRs), with the member, chamber, asset, transaction type, amount bracket, and filing IDs already parsed out of the source PDFs.

## When to use this skill

- The user wants a congress stock trades api or asks how to query congressional trades programmatically.
- They want a member's disclosed trades (for example "every Pelosi trade in 2024") as JSON or CSV.
- They want every member who traded a specific ticker, or all filings in a date range.
- They are collecting data for journalism, academic research, or a transparency dataset.

Not for: real-time trade signals (filings trail trades by 30 to 45 days by law), exact dollar amounts (members file brackets, not values), or investment recommendations (this is public-records data collection, not advice).

## What you get (one row per transaction)

`id` (stable row identifier), `First_Name`, `Last_Name`, `House` (House or Senate), `State_District`, `Ticker` (blank when the asset is not publicly listed), `Asset`, `Asset_Type_Code`, `Transaction_Type` (P, S, S (partial), E), `Amount_Range` (the filed bracket, such as "$1,001 - $15,000"), `Date` (transaction date), `Notification_Date`, `Year`, `Details` (free text, for example option strikes when present), `Capital_Gains_Over_200` (often blank), `Filing_ID`, `DocID`, `PDF_Quality` (text or image source filing), `created_at`, and a `search_metadata` object echoing the query (`max_results`, `search_timestamp`, `total_results_found`, `query_execution_time`).

## Prerequisites

- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).
- Authentication via `apify login`, or an `APIFY_TOKEN` environment variable (Apify Console, Settings, Integrations).

## The Actor

- Store page: https://apify.com/johnvc/us-congress-financial-disclosures-and-stock-trading-data?fpr=9n7kx3&fp_sid=skillrepo
- Actor ID: `johnvc/us-congress-financial-disclosures-and-stock-trading-data`
- Pricing: pay per transaction returned, plus a small per-run start fee (see `references/gotchas.md`).

## Run it with the Apify CLI

One member over a date range:

```bash
apify actors call "johnvc/us-congress-financial-disclosures-and-stock-trading-data" -i '{"Last_Name":"Pelosi","Start_Date":"2024-01-01","End_Date":"2024-12-31","Max_Results":100}' \
  --json \
  --user-agent apify-awesome-skills/apify-congress-stock-trades-api \
  2>/dev/null
```

Every member who traded one ticker:

```bash
apify actors call "johnvc/us-congress-financial-disclosures-and-stock-trading-data" -i '{"Stock_Symbol":"NVDA","Max_Results":200}' \
  --json \
  --user-agent apify-awesome-skills/apify-congress-stock-trades-api \
  2>/dev/null
```

Every call carries the three flags this repo expects: `--json`, `--user-agent apify-awesome-skills/apify-congress-stock-trades-api`, and `2>/dev/null`.

## Run it from Claude or another AI agent (MCP)

The Actor is MCP-ready. Add the hosted server URL:

`https://mcp.apify.com/?tools=actors,docs,johnvc/us-congress-financial-disclosures-and-stock-trading-data`

Then ask, for example: "Pull every disclosed Congress trade in NVDA this year and export the rows as JSON." MCP setup docs: https://docs.apify.com/platform/integrations/mcp

## Workflow

1. Pick the filter. All inputs are optional; run with none to get the most recent filings. Narrow by `First_Name` plus `Last_Name` (case-insensitive partial match), `Stock_Symbol`, or a `Start_Date` and `End_Date` range in YYYY-MM-DD.
2. Bound the volume. `Max_Results` caps rows returned (1 to 1000, default 100). Start at 50 to 100 for a member query; a single ticker across all of Congress is usually well under 200 rows.
3. Estimate cost, then confirm with the user if the run is large. See `references/gotchas.md`.
4. Run the Actor and read the dataset. Deliver rows as JSON or CSV, or hand back the dataset link.
5. Post-process. Filter `Asset_Type_Code` for stock-only rows, `Transaction_Type` for purchases or sales, and dedupe across runs on `id`.

## Inputs

- `First_Name` (string): member first name, case-insensitive partial match
- `Last_Name` (string): member last name, case-insensitive partial match
- `Stock_Symbol` (string): ticker filter, for example AAPL or NVDA, partial match
- `Start_Date` and `End_Date` (string, YYYY-MM-DD): inclusive transaction date range
- `Date_Reported` (string, YYYY-MM-DD): exact transaction date, use the range instead for most queries
- `Max_Results` (integer, 1 to 1000, default 100): cap on rows returned

## Cost

Billing is per transaction returned plus a small per-run start fee. A 100-row member query is about $0.19 on the free tier; a full 1000-row pull is about $1.91. Volume tiers lower the per-transaction price. Estimate first and confirm large runs; live prices are in `references/gotchas.md`.

## Honest limits

- Filings trail the actual trades by 30 to 45 days (the STOCK Act reporting deadline), so this is a research dataset, not a live feed.
- `Amount_Range` is a bracket exactly as filed; no exact dollar values exist anywhere in the source.
- `Ticker` is blank for unlisted assets (private funds, real estate, treasuries).
- `Asset_Type_Code` carries more codes than the common ST, OP, MF, BD, ET, CT set; treat it as an open vocabulary.
- Rows where `PDF_Quality` is "image" came from scanned filings read by OCR; spot-check those against the source PDF via `Filing_ID` when a number matters.
- This skill collects public disclosure records. It does not evaluate, recommend, or time trades.

## Troubleshooting

- Empty dataset: check the name spelling (partial match still needs the right letters), widen the date range, or drop the ticker filter.
- Fewer rows than `Max_Results`: normal; the filters matched fewer filings.
- A member seems missing: very recent trades may simply not be filed yet; the deadline is 30 to 45 days.
- Odd rows for a common last name: partial matching can catch multiple members; add `First_Name`.

See `references/gotchas.md` for cost guardrails and error recovery, and `references/actor-index.md` for the Actor routing table.

## Related financial-data Actors

- Earnings Call Transcript API: https://apify.com/johnvc/earnings-call-transcript-api?fpr=9n7kx3&fp_sid=skillrepo
- Google Finance API: https://apify.com/johnvc/google-finance-api?fpr=9n7kx3&fp_sid=skillrepo
- Google News API: https://apify.com/johnvc/GoogleNewsAPI?fpr=9n7kx3&fp_sid=skillrepo

