# Capitol Trades Scraper: Congress Stock Trades & Monitor Mode (`getascraper/capitol-trades-scraper`) Actor

Extract every Congress stock trade from Capitol Trades: politician bio, sector tags, and a disclosure comment field competitors miss. Turn on monitor mode for scheduled trade alerts, the automation Unusual Whales charges $60 a month for. Pay per trade, no subscription. $0.62 per trade.

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

## Pricing

from $0.47 / 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

## Capitol Trades Scraper

<table width="100%">
<tr>
<td style="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;color:#1C1917;line-height:1.3">Congress trade alerts your inbox actually gets</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Every disclosed trade from Capitol Trades, with the politician's full bio, the company's sector, and a plain-English disclosure note, delivered on a schedule instead of a page you have to remember to check.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E40AF">🔔 Trade alerts, not a static export</span><br>
<span style="font-size:12px;color:#57534E">Turn on monitor mode and every scheduled run only brings back what's new since the last one.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E40AF">🧑‍⚖️ The full politician bio, every time</span><br>
<span style="font-size:12px;color:#57534E">Party, chamber, state, and date of birth on every row, not just a name.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E40AF">🏢 Company context included</span><br>
<span style="font-size:12px;color:#57534E">Sector tags and the disclosure's own note about the company, already attached.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E40AF">💵 A real number, not just a range</span><br>
<span style="font-size:12px;color:#57534E">An estimated trade value sits next to the standard disclosed size band.</span>
</td>
</tr>
</table>

A copiers-style trade list tells you what a lawmaker bought. It doesn't tell you their party, their state, what the company does, or when the next trade shows up. This Actor pulls every trade from [Capitol Trades](https://www.capitoltrades.com), with the politician's bio, the company's sector, and a plain-English disclosure note attached to every row, and can watch for new trades on a schedule.

### 🚀 Why use it

**"I built a signal feed off Congress trades."** A static export wasn't good enough. I needed new disclosures to show up on their own, on a schedule, not whenever I remembered to re-run something.

**"I track a handful of specific lawmakers for a newsletter."** Every other tool made me scroll a giant table to find their trades. I just want their disclosures, filtered, nothing else.

**"I research political-finance stories."** I'm tired of copy-pasting a company description by hand for every trade. I want that context already attached to the row.

### 🧭 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick your filters</span><br>
<span style="font-size:12px;color:#57534E">Politician, party, chamber, state, or buy/sell, or leave them blank for everything.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run it once, or put it on a schedule</span><br>
<span style="font-size:12px;color:#57534E">Turn on monitor mode and every scheduled run only returns trades disclosed since the last one.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get structured rows</span><br>
<span style="font-size:12px;color:#57534E">Politician, company, trade type, estimated value, and disclosure context, ready to use.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `politicians` | array of strings | No | Bioguide IDs to filter to specific members (e.g. P000197 for Nancy Pelosi). Leave empty for everyone. |
| `party` | enum | No | Filter to one party's trades. |
| `chamber` | enum | No | Filter to House or Senate. |
| `state` | string | No | Two-letter state code to filter to. |
| `txType` | enum | No | Filter to buy or sell trades only. |
| `proxyConfiguration` | object | No | Connection settings. Works reliably with the default. |
| `monitorMode` | boolean | No | When on, only pushes trades disclosed since the previous run. |
| `maxItems` | integer | No | Stop after this many trade records. |

### 📤 Output

```json
{
  "rowType": "trade",
  "txId": 10000066727,
  "politicianFirstName": "Christopher",
  "politicianLastName": "Coons",
  "politicianNickname": "Chris",
  "politicianFullName": "Christopher Coons",
  "politicianDob": "1963-09-09",
  "politicianGender": "male",
  "party": "democrat",
  "chamber": "senate",
  "state": "de",
  "issuerName": "W L GORE & ASSOCIATES INC",
  "owner": "spouse",
  "txType": "sell",
  "txDate": "2026-08-07",
  "pubDate": "2026-08-28T14:01:53Z",
  "reportingGap": 21,
  "valueEstimate": 175000,
  "comment": "Company: W.L. Gore & Associates, Inc. (Newark, Delaware) Description: Advanced materials manufacturing",
  "sourceUrl": "https://www.capitoltrades.com/trades/10000066727",
  "scrapedAt": "2026-09-01T06:21:45.231Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 🗃️ Data table

| Field | Type | Description |
|---|---|---|
| `politicianFullName` | string | The trading politician's full name |
| `politicianDob` / `politicianGender` | string | Date of birth and gender, when disclosed |
| `party` / `chamber` / `state` | string | The politician's party, chamber, and state |
| `issuerName` / `issuerTicker` / `issuerSector` | string | The traded company and its sector |
| `owner` | string | Who made the trade: the politician, their spouse, or a dependent |
| `txType` | string | Buy or sell |
| `txDate` / `pubDate` | string | When the trade happened and when it was disclosed |
| `reportingGap` | number | Days between the trade and its disclosure |
| `valueEstimate` | number | An estimated trade value, the midpoint of the disclosed size range, not an exact dollar figure |
| `comment` | string | The disclosure's own note about the company, when included |
| `sourceUrl` | string | Link to the original disclosure |

### 💰 Pricing

This Actor uses pay per event pricing: you're charged per trade extracted, and nothing else. Empty runs cost nothing. There are no subscriptions and no minimum spend.

### ⭐ Enjoying Capitol Trades Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#EFF6FF;border:1px solid #BFDBFE;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">If this caught a trade before your other tracker did, that's worth 10 seconds of your time.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating helps other Congress-trade watchers, signal builders, 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 #BFDBFE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/capitol-trades-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>

### ❓ FAQ

**Does this Actor need a Capitol Trades account or API key?**
No. Every field comes from Capitol Trades' own public pages. There's no login, credential, or key input anywhere in this Actor.

**Is `valueEstimate` the exact dollar amount of the trade?**
No. Members of Congress disclose trades in a size range, not an exact figure. `valueEstimate` is a single number for easier sorting and comparison, the midpoint of that disclosed range, not a confirmed exact amount. The original range context is preserved in the `comment` field and the source link.

**Can I get alerted only about new trades, not the whole history?**
Yes. Turn on monitor mode and schedule the Actor to run periodically. Each run after the first only pushes trades disclosed since the previous run.

**Is this legal?**
This Actor only extracts publicly available information already shown to any visitor of Capitol Trades' site. Always review the target site's terms of service before using the data commercially.

### 🔗 Other actors

- [Congress Trades Scraper: Stock Trades & Late Filings](https://apify.com/getascraper/congress-financial-disclosures-scraper) ↗ - Official House and Senate disclosures with a STOCK Act late-filing flag.
- [SEC Form D monitor: startup funding rounds](https://apify.com/getascraper/sec-form-d-funding-monitor) ↗ - Startup funding rounds straight from SEC filings.
- [SEC Form 4 Insider Monitor: Filing Changes](https://apify.com/getascraper/sec-form4-insider-monitor) ↗ - Insider trading filing changes.
- [eToro Scraper: Top Investors & Portfolio Stats](https://apify.com/getascraper/etoro-scraper) ↗ - Risk and performance data behind every eToro top investor.
- [CryptoPanic News Scraper](https://apify.com/getascraper/cryptopanic-news-scraper) ↗ - Crypto news aggregation, no login or API key.

# Actor input Schema

## `politicians` (type: `array`):

Optional bioguide IDs to filter to specific members of Congress (e.g. P000197 for Nancy Pelosi). Leave empty to scrape all politicians.

## `party` (type: `string`):

Filter to trades by members of one party.

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

Filter to trades by House or Senate members.

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

Two-letter state code to filter to (e.g. ca, ny).

## `txType` (type: `string`):

Filter to buy or sell trades only.

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

A real browser session is required to load Capitol Trades. Residential is recommended for reliability.

## `monitorMode` (type: `boolean`):

When enabled, only pushes trades disclosed since the previous run, so a scheduled run acts as a trade-alert feed.

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

Stop after this many trade records.

## Actor input object example

```json
{
  "politicians": [],
  "party": "",
  "chamber": "",
  "state": "",
  "txType": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "monitorMode": false,
  "maxItems": 20
}
```

# Actor output Schema

## `trades` (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 = {
    "politicians": [],
    "party": "",
    "chamber": "",
    "state": "",
    "txType": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    },
    "monitorMode": false,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/capitol-trades-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 = {
    "politicians": [],
    "party": "",
    "chamber": "",
    "state": "",
    "txType": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
    "monitorMode": False,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/capitol-trades-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 '{
  "politicians": [],
  "party": "",
  "chamber": "",
  "state": "",
  "txType": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "monitorMode": false,
  "maxItems": 20
}' |
apify call getascraper/capitol-trades-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/capitol-trades-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/xpIBU3gRUfK4Ra7yp/builds/402zWjb2yihm4bans/openapi.json
