# US Congress Trading Monitor - House Member Trade Signals (`datasignalslab/congress-trading-monitor`) Actor

US Congress trading monitor (House): stock trades of House members from official disclosures, parsed and scored. QuiverQuant alternative, pay per member.

- **URL**: https://apify.com/datasignalslab/congress-trading-monitor.md
- **Developed by:** [DataSignals Lab](https://apify.com/datasignalslab) (community)
- **Categories:** AI, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 member analyzeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## US Congress Trading Monitor (House): Stock Trades of House Members

**Track congress trading from the official source: parsed, scored stock trades by US House members, not a raw PDF dump.** Give one or more House member last names and get their recent congressional stock trades pulled straight from the official House Clerk financial-disclosure feed. Every transaction is parsed into ticker, buy or sell, estimated size and date, then scored by size and recency so the most notable political trading rises to the top. This is the signal, not the paperwork.

Members of the US House disclose their stock trades under the STOCK Act through Periodic Transaction Reports (PTRs). This Actor reads those official filings, parses each transaction out of the e-filed PDFs, and surfaces them per member with buys vs sells, an estimated total value and an impact score. You get clean, structured congress trading data without ever opening a PDF.

### Why this is different

Most options leave you with either nothing usable or a manual chore: raw disclosure portals hand you PDFs to read one by one, and third-party aggregators are a scrape of a scrape with no link back to the source. This Actor goes to the official House Clerk feed and computes the signal:

- **Parsed transactions** - ticker, buy or sell, estimated amount range and date pulled directly from the official PTR PDF.
- **Buys vs sells** - the member's recent net direction at a glance.
- **Estimated value** - the midpoint of each disclosed amount range, summed per member.
- **Impact score (0-100)** - trade size plus recency, so a large and recent trade ranks highest.
- **Official source** - the US House Clerk disclosures, not a scraped third-party feed.

### Who it's for

- **Traders and retail quants** who want to track political trading as an alternative-data signal.
- **Fintech and data apps** that need clean congressional-trade data to drop into a product or dashboard.
- **Journalists and researchers** who monitor House member trades and PTR disclosures without parsing PDFs by hand.

### Use cases

- **Watchlist monitoring.** Scan a list of House members on a schedule and flag any new large trade.
- **Signal feed.** Pull the highest-impact buys and sells into a trading or research model.
- **Newsroom alerts.** Get notified when a tracked member files a notable disclosure.
- **Product enrichment.** Embed structured congressional stock trades inside a fintech app or screener.
- **Research datasets.** Build a longitudinal record of House member trades for analysis.

### Input

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `members` | array | yes | - | One or more US House member last names (e.g. Pelosi, Williams, Greene). Each is scanned for recent PTR disclosures. |
| `sinceDays` | integer | no | 120 | Only include trades from disclosures filed within this many days (7 to 730). |
| `maxFilings` | integer | no | 8 | How many of the member's most recent PTRs to parse (1 to 25). |
| `minImpact` | integer | no | 0 | Only return trades at or above this impact score (e.g. 75 = roughly $50k+ recent trades). 0 returns all. |

### Output

One dataset item per member analyzed. Each item carries the query, the matched member, how many filings were parsed, the trades found, an estimated total value, buy and sell counts, and a ranked `trades` list. Example:

```json
{
  "type": "congress_trades",
  "query": "Pelosi",
  "member": "Nancy Pelosi",
  "filings_parsed": 3,
  "trades_found": 17,
  "est_total_value": 24500000,
  "buy_count": 9,
  "sell_count": 8,
  "trades": [
    {
      "member": "Nancy Pelosi",
      "ticker": "NVDA",
      "asset_code": "ST",
      "tx_type": "Purchase",
      "partial": false,
      "tx_date": "01/14/2026",
      "amount_low": 1000000,
      "amount_high": 5000000,
      "amount_mid": 3000000,
      "impact": 100,
      "catalyst": "Purchase of NVDA ($1,000,000-$5,000,000) on 01/14/2026"
    }
  ]
}
````

Trades are sorted by `impact` descending, so the largest and most recent trades appear first.

### How it works and scoring

1. **House Clerk feed.** The Actor downloads the official House financial-disclosure index for the year (a ZIP file from `disclosures-clerk.house.gov`, free, public, no API key) and filters it to each member's recent Periodic Transaction Reports.
2. **pdfplumber parsing.** For each matched PTR, it fetches the e-filed PDF and extracts the text with pdfplumber, then parses every transaction into ticker, asset code, type (Purchase, Sale or Exchange), partial flag, date and the disclosed amount range.
3. **Scoring.** Each trade gets an impact score from its midpoint value: roughly 90 for $250k and up, 75 for $50k and up, 60 for $15k and up, otherwise 45. Recency adds a bonus: +10 within 30 days, +5 within 90 days, capped at 100. No black box: the score is derived only from the size band the member disclosed and the trade date.

### Scope and limits

- **US House only.** This Actor covers the US House of Representatives.
- **E-filed PDFs only.** Only digitally e-filed PTRs are machine-readable. Older scanned paper filings are skipped, because there is no OCR. A member with only scanned filings in the window will return empty.
- **Senate is deliberately excluded.** To be plain and honest: the Senate eFD portal is anti-bot protected (Akamai) and its terms restrict commercial use, so the Senate is intentionally not covered. This is a legal and access decision, not a technical gap we are hiding.
- **Estimates, not exact amounts.** The STOCK Act requires members to disclose trade size as a range, not an exact figure, so values here are range midpoints.

### Use with AI agents and automation

This Actor returns clean JSON, so it slots directly into agent and automation stacks:

- **AI agents.** Call it from LangChain or LlamaIndex as a tool, or expose it through the Apify MCP server so an AI assistant (Claude, ChatGPT, Cursor) can run it and read the trades automatically.
- **No-code automation.** Trigger it from Zapier or Make to push new trades into a sheet, CRM or alert channel.
- **Webhooks.** Fire a webhook on run completion to notify your own service when new trades are parsed.
- **On demand or on schedule.** Run it ad hoc for one member, or on a schedule to keep a watchlist current.

### Pricing

**Pay-per-event: one charge per member analyzed.** No subscription. If you scan a 10-member watchlist, that is 10 charges. You pay only for the members you actually scan, which keeps small lookups cheap and large watchlists predictable.

### Data source and compliance

All data comes from the official US House Clerk financial-disclosure feed, published under the STOCK Act of 2012 as public-domain records. There is no API key and no third-party scraping. The Actor processes no personal data beyond what House members are already required by law to disclose publicly: the member name on the filing, the ticker, the transaction type, the amount range and the date. Nothing private is collected or inferred.

### FAQ

**Where does the data come from?** The official US House Clerk financial-disclosure feed (`disclosures-clerk.house.gov`), published under the STOCK Act. It is public domain and needs no key.

**Can an AI agent call this automatically?** Yes. Expose it through the Apify MCP server and an AI agent such as Claude, ChatGPT or Cursor can run the Actor and read the parsed trades on its own. It also works as a LangChain or LlamaIndex tool.

**Does it cover the Senate?** No, House only. The Senate eFD portal is anti-bot protected and its terms restrict commercial use, so the Senate is deliberately excluded. We state this plainly rather than imply full congressional coverage.

**Why are some members empty?** They may have no recent e-filed PTRs in your look-back window, or only scanned paper filings, which cannot be parsed without OCR. Widen `sinceDays` or `maxFilings` and try again.

**Why are the dollar amounts ranges?** The STOCK Act requires members to disclose trade size as a band, not an exact number. The Actor reports the low, high and midpoint of each band.

**How is the impact score calculated?** From the trade's midpoint value (larger band scores higher) plus a recency bonus for trades within 30 or 90 days, capped at 100. It is fully derived from the disclosed numbers.

***

*Keywords: congress trading, congressional stock trades, House member trades, political trading, PTR disclosures, STOCK Act, House Clerk financial disclosures, politician trading data, Pelosi tracker, periodic transaction report, government transparency data, alternative data.*

***

**Disclaimer:** Provided as data for research, journalism and monitoring. This is not investment advice. Historical patterns do not guarantee future results.

# Actor input Schema

## `members` (type: `array`):

One or more US House member last names (e.g. Pelosi, Greene, Williams). Each is scanned for recent stock-trade disclosures (PTRs).

## `sinceDays` (type: `integer`):

Only include trades from disclosures filed within this many days.

## `maxFilings` (type: `integer`):

How many of the member's most recent disclosures (PTRs) to parse.

## `minImpact` (type: `integer`):

Only return trades at or above this impact score (e.g. 75 = $50k+ recent trades). 0 = all.

## Actor input object example

```json
{
  "members": [
    "Pelosi",
    "Williams"
  ],
  "sinceDays": 120,
  "maxFilings": 8,
  "minImpact": 0
}
```

# 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 = {
    "members": [
        "Pelosi",
        "Williams"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasignalslab/congress-trading-monitor").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 = { "members": [
        "Pelosi",
        "Williams",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("datasignalslab/congress-trading-monitor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "members": [
    "Pelosi",
    "Williams"
  ]
}' |
apify call datasignalslab/congress-trading-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datasignalslab/congress-trading-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Congress Trading Monitor - House Member Trade Signals",
        "description": "US Congress trading monitor (House): stock trades of House members from official disclosures, parsed and scored. QuiverQuant alternative, pay per member.",
        "version": "0.1",
        "x-build-id": "if5aMX73PC1XWCjIp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datasignalslab~congress-trading-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datasignalslab-congress-trading-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/datasignalslab~congress-trading-monitor/runs": {
            "post": {
                "operationId": "runs-sync-datasignalslab-congress-trading-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/datasignalslab~congress-trading-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-datasignalslab-congress-trading-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "members"
                ],
                "properties": {
                    "members": {
                        "title": "House member last names",
                        "type": "array",
                        "description": "One or more US House member last names (e.g. Pelosi, Greene, Williams). Each is scanned for recent stock-trade disclosures (PTRs).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sinceDays": {
                        "title": "Look-back window (days)",
                        "minimum": 7,
                        "maximum": 730,
                        "type": "integer",
                        "description": "Only include trades from disclosures filed within this many days.",
                        "default": 120
                    },
                    "maxFilings": {
                        "title": "Max filings per member",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "How many of the member's most recent disclosures (PTRs) to parse.",
                        "default": 8
                    },
                    "minImpact": {
                        "title": "Minimum impact score (0-100)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Only return trades at or above this impact score (e.g. 75 = $50k+ recent trades). 0 = all.",
                        "default": 0
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
