# Congress Trades Scraper: Stock Trades & Late Filings (`getascraper/congress-financial-disclosures-scraper`) Actor

Scrape US House and Senate financial disclosures and stock trades. Numeric trade amounts, not just brackets, plus a STOCK Act late-filing flag, party, state, district, and committee data. Includes a recurring new-trades monitor. From $0.0018 per record.

- **URL**: https://apify.com/getascraper/congress-financial-disclosures-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** News, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.35 / 1,000 trade records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏛️ Congress Trades Scraper: Stock Trades & Late Filings

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed;margin:0">
<tbody style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed">
<tr style="width:100%">
<td style="width:100%;padding:24px 28px;background:#EFF6FF;border:1px solid #BFDBFE;border-top:4px solid #1D4ED8;border-radius:12px">
<span style="font-size:23px;font-weight:800;line-height:1.3;color:#1C1917">Congress trades are public. Whether they were reported on time is the story.</span><br>
<span style="font-size:15px;line-height:1.6;color:#57534E">Pull House and Senate stock trades with a real dollar estimate for every trade and a flag for filings that missed the STOCK Act's 45-day deadline. No more squinting at price brackets or guessing who's late.</span>
</td>
</tr>
</tbody>
</table>

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed;margin:0">
<tbody style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed">
<tr style="width:100%">
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BFDBFE;border-right:none;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">💵 Real dollar amounts</span><br>
<span style="font-size:12px;color:#57534E">Every trade gets a numeric estimate, not just a bracket you have to interpret yourself.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BFDBFE;border-right:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">⏰ Late-filing flag</span><br>
<span style="font-size:12px;color:#57534E">Know instantly which trades broke the 45-day STOCK Act reporting deadline.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BFDBFE;border-right:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">🏷️ Full member profile</span><br>
<span style="font-size:12px;color:#57534E">Party, state, district, and committee seats attached to every trade automatically.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BFDBFE;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">🔔 Alert-ready monitor</span><br>
<span style="font-size:12px;color:#57534E">Only new trades since your last run, with a plain-English summary ready for Slack or email.</span>
</td>
</tr>
</tbody>
</table>

Congress Trades Scraper pulls Periodic Transaction Reports filed by members of the US House and Senate under the STOCK Act. Search by member, state, ticker, or trade size, or turn on monitor mode and get pinged only when a new trade lands. Every row comes with a numeric dollar estimate, a late-filing flag, and the member's party, state, district, and committee seats already attached.

### 🔍 What does Congress Trades Scraper do?

It turns House and Senate financial disclosures into a spreadsheet or data feed, one row per trade.

Two things set it apart from just reading the raw filings:

- **Numeric trade amounts.** Filings only disclose a price bracket like "$1,001 to $15,000." This Actor turns that into `amountMinUsd`, `amountMaxUsd`, and a usable `amountEstimateUsd`, so you can sort, filter, and rank trades by size instead of squinting at brackets.
- **A late-filing flag.** The STOCK Act gives members 45 days to report a trade. This Actor calculates the actual gap and flags every filing that missed it, turning a compliance question into a single boolean.

### 💡 Why use it?

**"I write about congressional stock trading."**
You need more than a screenshot of a filing. Pull trades by member or ticker and you get the dollar amount, the filing date, and whether it was reported late, all in one row you can drop straight into a story.

**"I track congress trades as an investing signal."**
You don't want to re-read brackets by hand. Filter by minimum trade size to surface only the moves worth watching, then schedule monitor mode so new trades land in your feed the day they're filed.

**"I need a defensible accountability dataset."**
Late disclosures are the actual story, not just the trades themselves. This Actor calculates days-to-report on every filing, so you can build a leaderboard of who files on time and who doesn't, backed by numbers instead of a hand count.

### 🚀 How to use it

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed;margin:0">
<tbody style="display:table;width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed">
<tr style="width:100%">
<td style="width:33.333%;padding:16px 14px;background:#EFF6FF;border:1px solid #BFDBFE;border-right:none;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:13px;font-weight:800;color:#1D4ED8;letter-spacing:0.5px">STEP 1</span><br>
<span style="font-size:15px;font-weight:800;color:#1E3A8A">Pick your members or trades</span><br>
<span style="font-size:12px;color:#57534E">Filter by name, state, ticker, chamber, or trade size.</span>
</td>
<td style="width:33.333%;padding:16px 14px;background:#EFF6FF;border:1px solid #BFDBFE;border-right:none;vertical-align:top">
<span style="font-size:13px;font-weight:800;color:#1D4ED8;letter-spacing:0.5px">STEP 2</span><br>
<span style="font-size:15px;font-weight:800;color:#1E3A8A">Search once, or monitor ongoing</span><br>
<span style="font-size:12px;color:#57534E">Switch to monitor mode to get only new trades on every scheduled run.</span>
</td>
<td style="width:33.333%;padding:16px 14px;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:13px;font-weight:800;color:#1D4ED8;letter-spacing:0.5px">STEP 3</span><br>
<span style="font-size:15px;font-weight:800;color:#1E3A8A">Export or wire up an alert</span><br>
<span style="font-size:12px;color:#57534E">Download the data, or send monitor results straight to Slack or email.</span>
</td>
</tr>
</tbody>
</table>

1. Click **Try for free** and open the input form.
2. Leave **Mode** on **Search filings**, then set a last name, state, or ticker to narrow results.
3. Turn on **Late filings only** if you want just the compliance misses.
4. Set **Max items** to how many trades you want back.
5. Click **Start**, then open the **Output** tab to preview and download your data.

Switch **Mode** to **Monitor for new trades** and schedule the Actor to run daily or weekly. Every run after the first only returns trades filed since the last one.

### ⚙️ Input

| Field | Type | Required | Description |
|---|---|---|---|
| `mode` | enum | No | `search` to filter filings, or `newFilingsMonitor` to pull only new trades since the last run. |
| `chamber` | enum | No | Both, House only, or Senate only. |
| `firstName` | string | No | Filter by the member's first name. |
| `lastName` | string | No | Filter by the member's last name. |
| `state` | string | No | Two-letter state code. |
| `ticker` | string | No | Only return trades in this stock ticker. |
| `startDate` | string | No | Earliest filing date to include. |
| `endDate` | string | No | Latest filing date to include. |
| `minAmountUsd` | integer | No | Only return trades with an estimated value at or above this amount. |
| `maxAmountUsd` | integer | No | Only return trades with an estimated value at or below this amount. |
| `lateFilingsOnly` | boolean | No | Only return trades reported more than 45 days after the transaction date. |
| `maxItems` | integer | No | Maximum number of trade records to return. |
| `proxyConfiguration` | object | No | Connection settings. The default works and needs no changes. |

### 📊 Output

Each trade comes back as one row. You can download the dataset as JSON, CSV, Excel, or HTML.

```json
{
  "rowType": "transaction",
  "chamber": "house",
  "filerFullName": "Richard W. Allen",
  "party": "Republican",
  "state": "GA",
  "district": "12",
  "committees": ["House Committee on Energy and Commerce"],
  "owner": "SP",
  "assetName": "Ferguson Enterprises Inc. Common Stock (FERG)",
  "ticker": "FERG",
  "transactionType": "P",
  "transactionDate": "12/12/2025",
  "notificationDate": "01/06/2026",
  "amountRange": "$15,001 - $50,000",
  "amountEstimateUsd": 32501,
  "daysToReport": 25,
  "isLateFiling": false,
  "filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/20033751.pdf",
  "summaryText": "Richard W. Allen purchased Ferguson Enterprises worth $15,001 - $50,000, filed 25 days after the trade"
}
```

### 📋 Data table

| Field | Type | Description |
|---|---|---|
| `filerFullName` | string | The member who made the trade. |
| `chamber` | string | House or Senate. |
| `party` | string | The member's political party. |
| `state` | string | The member's state. |
| `district` | string | House district, when the member represents one. |
| `committees` | array | Committees the member currently sits on. |
| `owner` | string | Who made the trade: the member, a spouse, or a dependent. |
| `assetName` | string | The stock or asset name as disclosed. |
| `ticker` | string | Stock ticker, when the asset has one. |
| `transactionType` | string | Purchase, sale, or exchange. |
| `transactionDate` | string | When the trade happened. |
| `notificationDate` | string | When the trade was reported. |
| `amountRange` | string | The disclosed price bracket. |
| `amountMinUsd` | number | Lower bound of the bracket. |
| `amountMaxUsd` | number | Upper bound of the bracket. |
| `amountEstimateUsd` | number | Midpoint estimate, ready to sort and filter on. |
| `daysToReport` | number | Days between the trade and when it was reported. |
| `isLateFiling` | boolean | Whether the filing missed the 45-day STOCK Act deadline. |
| `summaryText` | string | A ready-to-use plain-English summary of the trade. |
| `filingUrl` | string | Direct link back to the original filing. |

### 💰 Pricing

This Actor runs on pay per result. You are charged for the trade records you actually receive, plus a small one-time fee when the run starts. A run that returns nothing costs you almost nothing, and there is no subscription or monthly minimum.

Most platforms that track congress trades bundle it as a secondary feature behind a monthly subscription. This Actor charges only for the trade records you pull, with no subscription required.

### ⭐ Enjoying Congress Trades Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#EFF6FF;border:1px solid #EFF6FF;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Real dollar amounts and a late-filing flag on every congress trade, so the compliance story writes itself.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other journalists, investors, and researchers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1D4ED8;border:1px solid #EFF6FF;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/congress-financial-disclosures-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🎯 Tips

- **Build a compliance leaderboard.** Turn on late filings only, run it with no member filter, and you have a ranked list of who consistently misses the 45-day deadline.
- **Filter before you enrich.** Use `minAmountUsd` to focus on trades big enough to matter before pulling the full dataset, especially on a wide date range.
- **Schedule monitor mode weekly.** Congress trades trickle in throughout the year. A weekly schedule catches new filings without burning budget on redundant re-checks.
- **Watch the owner field.** A trade made by a spouse or dependent still counts under the STOCK Act and is included here, not filtered out.

### ❓ FAQ

**Does this cover both the House and Senate?**
Yes. Set **Chamber** to Both, House only, or Senate only.

**How is the late-filing flag calculated?**
As the number of days between the trade date and the date it was reported, compared against the STOCK Act's 45-day deadline. Both dates come directly from the official filing.

**Do I need any login or API key for the House or Senate sites?**
No. Both are public filing systems with no login required.

**Can I get alerted to new trades automatically?**
Yes. Set **Mode** to Monitor for new trades and put the Actor on an Apify schedule. Each run after the first only returns trades filed since the last one, and every row includes a ready-to-use summary line for Slack or email.

### ⚖️ Disclaimers

This Actor collects only publicly available financial disclosure filings from the official House Clerk and Senate eFD systems. It does not access any private data. You are responsible for using the data in line with applicable law.

Found a problem or want a field added? Open an issue on the **Issues** tab and it will be looked at.

### 🔗 Other actors

- [SEC EDGAR Scraper for RAG: 10-K/10-Q/8-K as JSON](https://apify.com/getascraper/sec-edgar-rag-extractor) ↗ - SEC filings as clean structured data, the other half of the public-company accountability picture.
- [Heavy Equipment Auction Results: Price Comps](https://apify.com/getascraper/heavy-equipment-auction-comps-feed) ↗ - Public auction sold-price comparables, the same evidence-over-guessing approach applied to equipment.
- [AuctionNinja Scraper: Estate Sales & Online Auctions](https://apify.com/getascraper/auctionninja-scraper) ↗ - Public auction and estate sale listings, useful for parallel provenance research.
- [China Award Monitor 全国公共资源交易](https://apify.com/getascraper/china-supplier-award-monitor) ↗ - Public tender and award data, a government-transparency dataset outside the US.

# Actor input Schema

## `mode` (type: `string`):

Search filings by filters, or pull only new trades filed since the last run.

## `chamber` (type: `string`):

Which chamber to cover.

## `firstName` (type: `string`):

Filter by the member's first name.

## `lastName` (type: `string`):

Filter by the member's last name.

## `state` (type: `string`):

Two-letter state code, e.g. CA, TX.

## `ticker` (type: `string`):

Only return trades in this stock ticker.

## `startDate` (type: `string`):

Earliest filing date to include.

## `endDate` (type: `string`):

Latest filing date to include.

## `minAmountUsd` (type: `integer`):

Only return trades with a disclosed value estimate at or above this amount. Leave at 0 for no limit.

## `maxAmountUsd` (type: `integer`):

Only return trades with a disclosed value estimate at or below this amount. Leave at 0 for no limit.

## `lateFilingsOnly` (type: `boolean`):

Only return trades reported more than 45 days after the transaction date, the STOCK Act's disclosure deadline.

## `maxItems` (type: `integer`):

Maximum number of trade records to return.

## `proxyConfiguration` (type: `object`):

Datacenter proxy (the default) clears both the House and Senate sites in testing and is far cheaper. Switch to Residential only if a run hits persistent blocks.

## Actor input object example

```json
{
  "mode": "search",
  "chamber": "both",
  "firstName": "",
  "lastName": "",
  "state": "",
  "ticker": "",
  "minAmountUsd": 0,
  "maxAmountUsd": 0,
  "lateFilingsOnly": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "chamber": "both",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/congress-financial-disclosures-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "chamber": "both",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/congress-financial-disclosures-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "chamber": "both",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/congress-financial-disclosures-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/congress-financial-disclosures-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/wZLGBoNTR8ufODXZE/builds/tGTEgJEiEaagg1MdV/openapi.json
