# US Congress Financial Disclosures & Stock Trades Scraper (`memo23/congress-financial-disclosures-scraper`) Actor

Scrape US Congress stock trades & financial disclosures from the primary .gov sources — Senate eFD + House Clerk. One clean row per transaction, enriched with party, state/district & committee memberships. PTRs, annual reports & amendments, both chambers, incremental daily-diff mode.

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

## Pricing

from $2.00 / 1,000 transaction rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Financial Disclosures & Stock Trades Scraper (STOCK Act)

**Track what US Senators and Representatives are trading — straight from the official government sources, one clean row per transaction, enriched with the committees each member actually oversees.**

This Actor scrapes congressional financial disclosures and STOCK Act periodic transaction reports (PTRs) directly from the two primary `.gov` systems — the **U.S. Senate Electronic Financial Disclosure (eFD)** system and the **U.S. House Clerk** disclosure portal. No paywalled aggregator, no stale third‑party API that broke two years ago: the data comes from the source of record every time.

Every trade is returned as a structured, ready‑to‑analyze row: member, chamber, party, state/district, ticker, asset, buy/sell, dollar amount range, transaction date, reported date, filing type, and a direct link to the original filing — plus, uniquely, **the member's full committee and subcommittee memberships**, so you can connect a trade to the industries that lawmaker helps regulate.

---

### 🚀 Why use this Actor

- **🏛️ Committee‑membership mapping (the killer feature).** Every row can carry the member's committees and subcommittees, party, and district — sourced from the actively‑maintained `unitedstates/congress-legislators` dataset. Instantly see when a member on the Armed Services Committee buys a defense contractor, or someone on Financial Services trades a bank. **No competing scraper does this.**
- **🇺🇸 Both chambers, one Actor.** Senate *and* House in a single run, normalized into one consistent schema. Most tools cover only one side.
- **📄 More than just PTRs.** Periodic Transaction Reports (individual stock trades), **annual financial disclosures**, and **amendments** — not only the day‑to‑day trade filings.
- **🔁 Incremental "daily‑new‑trades" mode.** Turn on `incremental` and the Actor remembers what it has already scraped and returns only filings that are new since the last run — perfect for a scheduled feed of fresh congressional trades.
- **✅ Primary‑source reliability, at zero data cost.** The free House bulk index and Senate eFD are the systems the filings actually live in. Aggregator shortcuts (Stock Watcher S3 dumps, etc.) are dead; this Actor doesn't depend on any of them.
- **🔍 Precise filters.** By member first/last name, ticker symbol, chamber, filing type, and date range (filed or exact reported date).
- **🧾 Nothing dropped silently.** The ~5–11% of filings that are scanned paper images (no text layer) are flagged as `scanned_pdf_not_parsed` with a direct PDF/GIF link — never quietly skipped — and are **never charged**.

---

### 📥 Inputs

| Field | Type | Description |
|---|---|---|
| `First_Name` | string | Member first name filter (e.g. `Nancy`). Empty = all members. |
| `Last_Name` | string | Member last name filter (e.g. `Pelosi`). The single most useful filter. |
| `Stock_Symbol` | string | Ticker filter (e.g. `NVDA`). Case‑insensitive. Empty = all tickers. |
| `chamber` | select | `Both`, `House`, or `Senate`. |
| `filingTypes` | multiselect | Any of `PTR`, `Annual`, `Amendment`. Default `["PTR"]`. |
| `Start_Date` | string | Only filings on/after this date (`MM/DD/YYYY` or `YYYY-MM-DD`). |
| `End_Date` | string | Only filings on/before this date. |
| `Date_Reported` | string | Pin a single reported/filed date (overrides Start/End). Great for "what got filed today". |
| `includeCommittees` | boolean | Attach party, state/district, bioguide ID, and committee memberships to every row. **Default `true`.** |
| `incremental` | boolean | Only emit filings new since the previous run (state kept in a named key‑value store). Default `false`. |
| `maxItems` | integer | Hard cap on total transaction rows. |
| `proxy` | proxy | Proxy configuration. **The Senate leg is geo‑blocked to US IPs**, so the Actor defaults to US‑based Apify proxies — leave this as‑is unless you have your own US proxies. The House leg needs no proxy. |

#### Example input

```json
{
  "Last_Name": "Tuberville",
  "chamber": "Both",
  "filingTypes": ["PTR"],
  "Start_Date": "01/01/2026",
  "includeCommittees": true,
  "maxItems": 500
}
````

***

### 📤 Output

One row per transaction line. Example (Senate PTR, committee‑enriched):

```json
{
  "source": "senate",
  "chamber": "Senate",
  "member": "Tommy Tuberville",
  "firstName": "Thomas H",
  "lastName": "Tuberville",
  "party": "Republican",
  "state": "AL",
  "district": null,
  "bioguideId": "T000278",
  "committees": [
    "Senate Committee on Armed Services",
    "Senate Committee on Armed Services — Seapower",
    "Senate Committee on Agriculture, Nutrition, and Forestry",
    "Senate Committee on Health, Education, Labor, and Pensions"
  ],
  "owner": "Self",
  "ticker": "WAB",
  "assetName": "Westinghouse Air Brake Technologies Corporation Common Stock",
  "assetType": "Stock",
  "transactionType": "Sale (Full)",
  "amountRange": "$1,001 - $15,000",
  "transactionDate": "06/09/2026",
  "reportedDate": "07/16/2026",
  "filingType": "PTR",
  "filingId": "S-392ac3e5-07f6-4f8c-840f-84e9066ffb29",
  "filingUrl": "https://efdsearch.senate.gov/search/view/ptr/392ac3e5-07f6-4f8c-840f-84e9066ffb29/",
  "parseStatus": "parsed"
}
```

House example (bond, joint‑owned):

```json
{
  "source": "house",
  "chamber": "House",
  "member": "Hon. Mark Alford",
  "party": "Republican",
  "state": "MO",
  "district": "4",
  "bioguideId": "A000379",
  "committees": ["House Committee on Appropriations", "House Committee on Small Business"],
  "owner": "Joint",
  "ticker": null,
  "assetName": "Arlington Cnty VA 5.00% 7/01/35",
  "assetType": "GS",
  "transactionType": "Purchase",
  "amountRange": "$15,001 - $50,000",
  "transactionDate": "02/19/2026",
  "reportedDate": "03/01/2026",
  "filingType": "PTR",
  "filingId": "H-2026-20034085",
  "filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/20034085.pdf",
  "parseStatus": "parsed"
}
```

Scanned/paper filings that can't be text‑parsed come back flagged (and free):

```json
{
  "member": "Hon. ...",
  "parseStatus": "scanned_pdf_not_parsed",
  "comment": "Scanned/paper filing — no text layer. Fetch the PDF and OCR to read transactions.",
  "filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/8XXXXXXX.pdf"
}
```

#### Key output fields

`member`, `chamber`, `party`, `state`, `district`, `bioguideId`, `committees[]`, `owner`, `ticker`, `assetName`, `assetType`, `transactionType`, `amountRange`, `transactionDate`, `reportedDate`, `filingType`, `filingId`, `filingUrl`, `source`, `parseStatus`.

***

### 💡 Use cases

- **📰 Investigative & financial journalism.** Surface conflict‑of‑interest stories — a lawmaker trading a company their committee regulates — in seconds instead of clicking through hundreds of PDFs.
- **⚖️ Compliance & ethics monitoring.** Watchdog groups, ethics offices and compliance teams tracking STOCK Act filings for disclosure completeness and timeliness.
- **📈 Quant & retail trading signals.** Build "congressional trade" datasets and alpha signals; back‑test copy‑trading strategies (à la popular "Pelosi tracker" products) on clean, structured data.
- **🎓 Academic & policy research.** Study insider‑trading patterns, committee‑to‑sector correlations, and disclosure behavior across chambers and parties.
- **🔔 Alerting products.** Combine `incremental` mode with a scheduler to power a daily "new congressional trades" newsletter, Slack/Telegram bot, or dashboard.

***

### ⚙️ How it works

![How it works — US Congress Financial Disclosures & Stock Trades Scraper: filter by member/ticker/chamber → House Clerk + Senate eFD + committee mapping → one committee-mapped transaction row](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-congress@2x.png)

1. **House** — downloads the House Clerk's yearly bulk index (`<YEAR>FD.zip`, refreshed ~daily), filters to the filings you want, then fetches each e‑filed PTR PDF and parses its text layer into transaction rows. Works from any IP, no proxy required.
2. **Senate** — performs the Senate eFD system's CSRF handshake + prohibition‑agreement step, queries the search endpoint server‑side (name/date/report‑type filters), then parses the clean HTML transaction tables on each PTR/annual report page. Routed through US proxies because eFD is geo‑blocked outside the US.
3. **Enrichment** — loads the `unitedstates/congress-legislators` member + committee‑membership datasets once per run (cached), and joins each filing to the member's party, state/district, bioguide ID and committee list.
4. **Output** — normalizes both chambers into one schema, one row per transaction, and flags anything that's a scanned image rather than dropping it.

Pure HTTP (Cheerio + PDF text extraction) — no headless browser, so it's fast and cheap.

***

### 💰 Pricing (Pay‑Per‑Event)

| Event | Price |
|---|---|
| Actor start | $0.001 |
| Transaction row | **$0.002** per parsed transaction |

You are charged **only for real parsed transaction rows**. Scanned‑filing notice rows (the ones flagged `scanned_pdf_not_parsed`) are **never charged**. A cost‑preview line is logged at the start of every run so you always know the maximum a run can cost. Committee enrichment is included at no extra charge.

***

### 🤖 For AI agents & LLM apps

This Actor is built to be an **MCP‑friendly tool for AI agents**. It exposes a clean, deterministic input schema and returns fully‑structured JSON — no HTML scraping or PDF wrangling left for the model to do. An agent can call it to answer questions like:

- *"Did any member of the House Financial Services Committee buy or sell a bank stock last month?"*
- *"List every NVDA trade by a sitting Senator this year, with the committees that Senator sits on."*
- *"Give me all new congressional stock trades filed today."* (use `Date_Reported` or `incremental`)

Because every row already includes party, chamber, district, committees, ticker, direction, amount and a source link, an LLM can reason over conflicts of interest and cite the original filing directly. Point your agent framework (LangChain, LlamaIndex, the Apify MCP server, custom tools) at this Actor and let it query Congress's trades in natural language.

***

### ❓ FAQ

**Where does the data come from?** The official U.S. Senate eFD system (`efdsearch.senate.gov`) and the U.S. House Clerk disclosure portal (`disclosures-clerk.house.gov`) — the systems where these filings are legally recorded. Member/committee metadata comes from the open‑source `unitedstates/congress-legislators` project.

**Why do I need a US proxy?** The Senate eFD system blocks non‑US IP addresses at the network edge. The Actor routes the Senate pipeline through US‑based Apify proxies by default. The House source has no such restriction.

**What are the `scanned_pdf_not_parsed` rows?** A small share of filings (~5–11%) are scanned paper documents with no text layer, so their individual transactions can't be extracted without OCR. Rather than silently dropping them, the Actor emits a flagged row with a direct link to the original document — and doesn't charge you for it.

**Can I get only *new* trades on a schedule?** Yes — enable `incremental` and schedule the Actor. It keeps a per‑input memory of filings it has already returned and emits only new ones.

**Does it cover annual disclosures and amendments too?** Yes — set `filingTypes` to include `Annual` and/or `Amendment` in addition to (or instead of) `PTR`.

**How current is the data?** The House bulk index is regenerated roughly daily; the Senate eFD is live. Member/committee metadata is refreshed from an actively‑maintained source.

***

### ⚠️ Disclaimer

This Actor collects **publicly available U.S. government records** published by the Senate and the House of Representatives under the STOCK Act, plus open‑source member metadata. It is an **independent tool** and is not affiliated with, endorsed by, or sponsored by the U.S. Congress, the Senate, the House Clerk, any member of Congress, or any government agency. The data is provided for research, journalism, transparency and informational purposes only, and is **not financial advice**. Always verify against the original filing (linked in every row) before relying on it. Use in compliance with the source systems' terms and applicable law.

***

### 🔎 SEO keywords

congress stock trades scraper · STOCK Act scraper · congressional trading data · senate financial disclosures · house financial disclosures · house clerk PTR · periodic transaction report scraper · congress stock tracker API · Pelosi stock tracker · Nancy Pelosi trades · senator stock trades · representative stock trades · congress insider trading data · efdsearch senate scraper · disclosures-clerk house scraper · congressional stock trading dataset · lawmaker stock trades · committee membership data · politician stock trades · quiver congress alternative

# Actor input Schema

## `First_Name` (type: `string`):

Filter to a member's first name (e.g. Nancy). Leave empty to sweep all members. Matched server-side on the Senate, and against the House index.

## `Last_Name` (type: `string`):

Filter to a member's last name (e.g. Pelosi). Leave empty to sweep all members. This is the most useful single filter — e.g. Last name = Pelosi returns every Pelosi filing across both chambers.

## `Stock_Symbol` (type: `string`):

Only keep transaction rows for this ticker (e.g. NVDA, AAPL, MSFT). Case-insensitive. Leave empty to return every transaction. Filtering happens after each filing is parsed.

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

Which chamber(s) of Congress to scrape. 'Both' runs the Senate eFD and House Clerk pipelines together (deduped in output).

## `filingTypes` (type: `array`):

Which disclosure filing types to include. PTR = Periodic Transaction Report (individual stock trades, the STOCK Act filings). Annual = the yearly Financial Disclosure report (assets + a full-year transaction summary). Amendment = corrected/amended filings. Default: PTRs only.

## `Start_Date` (type: `string`):

Only include filings on/after this date. Format MM/DD/YYYY or YYYY-MM-DD. Applied to the reported/filed date. Leave empty for no lower bound (defaults to the current year on the House side).

## `End_Date` (type: `string`):

Only include filings on/before this date. Format MM/DD/YYYY or YYYY-MM-DD. Leave empty for no upper bound.

## `Date_Reported` (type: `string`):

Shortcut to pin a single reported/filed date (MM/DD/YYYY or YYYY-MM-DD). When set it overrides Start/End date and returns only filings reported on exactly this day — handy for a daily 'what got filed today' pull.

## `includeCommittees` (type: `boolean`):

Attach each member's party, state, district, bioguide ID and full committee/subcommittee memberships to every transaction row (sourced from the maintained unitedstates/congress-legislators dataset). This is what lets you connect a trade to the committees that member oversees — the core edge over plain trade scrapers. On by default; no extra charge.

## `incremental` (type: `boolean`):

When on, the actor remembers which filings it has already scraped (keyed by your input) in its key-value store and emits only filings that are new since the previous run. Ideal for a scheduled 'daily new congressional trades' feed. Leave off for a full one-shot pull.

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

Hard cap on total transaction rows pushed to the dataset across both chambers.

## `proxy` (type: `object`):

The Senate eFD system (efdsearch.senate.gov) is geo-blocked to US IPs, so the actor routes the Senate pipeline through US-based Apify datacenter proxies by default — leave this as-is unless you have your own US proxies. The House Clerk source needs no proxy.

## Actor input object example

```json
{
  "chamber": "Both",
  "filingTypes": [
    "PTR"
  ],
  "includeCommittees": true,
  "incremental": false,
  "maxItems": 1000,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# 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 = {
    "Last_Name": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/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 = { "Last_Name": "" }

# Run the Actor and wait for it to finish
run = client.actor("memo23/congress-financial-disclosures-scraper").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 '{
  "Last_Name": ""
}' |
apify call memo23/congress-financial-disclosures-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Congress Financial Disclosures & Stock Trades Scraper",
        "description": "Scrape US Congress stock trades & financial disclosures from the primary .gov sources — Senate eFD + House Clerk. One clean row per transaction, enriched with party, state/district & committee memberships. PTRs, annual reports & amendments, both chambers, incremental daily-diff mode.",
        "version": "0.0",
        "x-build-id": "bbGFikgQeilYyYaeZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~congress-financial-disclosures-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-congress-financial-disclosures-scraper",
                "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/memo23~congress-financial-disclosures-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-congress-financial-disclosures-scraper",
                "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/memo23~congress-financial-disclosures-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-congress-financial-disclosures-scraper",
                "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",
                "properties": {
                    "First_Name": {
                        "title": "First name",
                        "type": "string",
                        "description": "Filter to a member's first name (e.g. Nancy). Leave empty to sweep all members. Matched server-side on the Senate, and against the House index."
                    },
                    "Last_Name": {
                        "title": "Last name",
                        "type": "string",
                        "description": "Filter to a member's last name (e.g. Pelosi). Leave empty to sweep all members. This is the most useful single filter — e.g. Last name = Pelosi returns every Pelosi filing across both chambers."
                    },
                    "Stock_Symbol": {
                        "title": "Stock ticker filter",
                        "type": "string",
                        "description": "Only keep transaction rows for this ticker (e.g. NVDA, AAPL, MSFT). Case-insensitive. Leave empty to return every transaction. Filtering happens after each filing is parsed."
                    },
                    "chamber": {
                        "title": "Chamber",
                        "enum": [
                            "Both",
                            "House",
                            "Senate"
                        ],
                        "type": "string",
                        "description": "Which chamber(s) of Congress to scrape. 'Both' runs the Senate eFD and House Clerk pipelines together (deduped in output).",
                        "default": "Both"
                    },
                    "filingTypes": {
                        "title": "Filing types",
                        "type": "array",
                        "description": "Which disclosure filing types to include. PTR = Periodic Transaction Report (individual stock trades, the STOCK Act filings). Annual = the yearly Financial Disclosure report (assets + a full-year transaction summary). Amendment = corrected/amended filings. Default: PTRs only.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "PTR",
                                "Annual",
                                "Amendment"
                            ],
                            "enumTitles": [
                                "Periodic Transaction Reports (stock trades)",
                                "Annual financial disclosures",
                                "Amendments"
                            ]
                        },
                        "default": [
                            "PTR"
                        ]
                    },
                    "Start_Date": {
                        "title": "Start date",
                        "type": "string",
                        "description": "Only include filings on/after this date. Format MM/DD/YYYY or YYYY-MM-DD. Applied to the reported/filed date. Leave empty for no lower bound (defaults to the current year on the House side)."
                    },
                    "End_Date": {
                        "title": "End date",
                        "type": "string",
                        "description": "Only include filings on/before this date. Format MM/DD/YYYY or YYYY-MM-DD. Leave empty for no upper bound."
                    },
                    "Date_Reported": {
                        "title": "Exact reported date (optional)",
                        "type": "string",
                        "description": "Shortcut to pin a single reported/filed date (MM/DD/YYYY or YYYY-MM-DD). When set it overrides Start/End date and returns only filings reported on exactly this day — handy for a daily 'what got filed today' pull."
                    },
                    "includeCommittees": {
                        "title": "Enrich with party, state/district & committee memberships",
                        "type": "boolean",
                        "description": "Attach each member's party, state, district, bioguide ID and full committee/subcommittee memberships to every transaction row (sourced from the maintained unitedstates/congress-legislators dataset). This is what lets you connect a trade to the committees that member oversees — the core edge over plain trade scrapers. On by default; no extra charge.",
                        "default": true
                    },
                    "incremental": {
                        "title": "Incremental mode — only NEW filings since last run",
                        "type": "boolean",
                        "description": "When on, the actor remembers which filings it has already scraped (keyed by your input) in its key-value store and emits only filings that are new since the previous run. Ideal for a scheduled 'daily new congressional trades' feed. Leave off for a full one-shot pull.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum transaction rows",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on total transaction rows pushed to the dataset across both chambers.",
                        "default": 1000
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "The Senate eFD system (efdsearch.senate.gov) is geo-blocked to US IPs, so the actor routes the Senate pipeline through US-based Apify datacenter proxies by default — leave this as-is unless you have your own US proxies. The House Clerk source needs no proxy.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": []
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
