# Capitol Trades API

> Capitol Trades provides disclosed congressional stock trades as a workflow and API.

Capitol Trades returns a member of Congress’s disclosed trades through Get politician trades, using a politician’s name and optional filters. List recent trades returns newly disclosed congressional trades, optionally filtered by company, party, chamber, or trade type.

- Page: https://fous.com/workflows/capitol-trades
- Handle: `@capitol-trades`
- Category: [Finance](https://fous.com/workflows/category/finance)
- Source website: https://capitoltrades.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Capitol Trades.

## Methods

### Get politician trades

Operation `get_politician_trades`, version 1. 1 credit per call.

See a member of Congress’s disclosed trades from a chosen date, newest trade first. Capitol Trades provides up to three years of history; prices and other details may be unavailable for some trades.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `politician` | string | yes | `"Mitch McConnell"` | Member of Congress to find by name, for example Nancy Pelosi. |
| `start_date` | string | no | `"2026-01-01"` | Earliest trade date, for example 2026-01-01. Defaults to 12 months ago. |
| `trade_type` | string | no | `"sell"` | Trade direction to include, for example buy. |
| `max_results` | integer | no | `3` | Maximum trades to return, for example 50. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "politician"
  ],
  "properties": {
    "politician": {
      "type": "string",
      "description": "Member of Congress to find by name, for example Nancy Pelosi.",
      "examples": [
        "Mitch McConnell",
        "Nancy Pelosi"
      ]
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "description": "Earliest trade date, for example 2026-01-01. Defaults to 12 months ago.",
      "examples": [
        "2026-01-01",
        "2026-09-01"
      ]
    },
    "trade_type": {
      "enum": [
        "any",
        "buy",
        "sell"
      ],
      "type": "string",
      "default": "any",
      "description": "Trade direction to include, for example buy.",
      "examples": [
        "sell"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum trades to return, for example 50.",
      "x-fous-developer": true,
      "examples": [
        3,
        2
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "politician": "Mitch McConnell",
      "start_date": "2026-01-01",
      "trade_type": "sell",
      "max_results": 3
    },
    {
      "politician": "Nancy Pelosi",
      "max_results": 3
    },
    {
      "politician": "Nancy Pelosi",
      "start_date": "2026-09-01",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `party` | string or null | `"Republican"` |  |
| `state` | string or null | `"Kentucky"` |  |
| `trades` | array |  |  |
| `trades[].owner` | string or null | `"spouse"` |  |
| `trades[].ticker` | string or null | `"BE:US"` |  |
| `trades[].asset_type` | string or null | `"Stock"` |  |
| `trades[].trade_date` | string | `"2026-07-28"` |  |
| `trades[].trade_link` | string or null | `"https://www.capitoltrades.com/trades/20003802222"` |  |
| `trades[].trade_type` | string or null | `"buy"` |  |
| `trades[].amount_range` | string or null | `"500K–1M"` |  |
| `trades[].amount_low_usd` | number or null | `500000` | Amount in USD. |
| `trades[].amount_high_usd` | number or null | `1000000` | Amount in USD. |
| `trades[].disclosure_date` | string | `"2026-08-24"` |  |
| `trades[].price_per_share_usd` | number or null | `166.84` | Amount in USD. |
| `trades[].days_until_disclosed` | integer | `27` |  |
| `trades[].company_or_asset_name` | string or null | `"Bloom Energy Corp"` |  |
| `chamber` | string or null | `"Senate"` |  |
| `politician` | string | `"Mitch McConnell"` |  |

**Example input**

```json
{
  "politician": "Mitch McConnell",
  "start_date": "2026-01-01",
  "trade_type": "sell",
  "max_results": 3
}
```

**Example output**

```json
{
  "party": "Republican",
  "state": "Kentucky",
  "trades": [],
  "chamber": "Senate",
  "politician": "Mitch McConnell"
}
```

### List recent trades

Operation `list_recent_trades`, version 1. 1 credit per call.

List the newest disclosed congressional stock trades, optionally filtered by company, party, chamber, and trade type. Capitol Trades displays up to three years of history.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `party` | string | no | `"democrat"` | Political party, such as democrat. |
| `chamber` | string | no | `"house"` | Congress chamber, such as senate. |
| `company` | string | no | `"Microsoft"` | Company name or ticker, such as Microsoft or MSFT. |
| `trade_type` | string | no | `"buy"` | Transaction type, such as buy. |
| `max_results` | integer | no | `25` | Maximum number of trades to return, such as 25. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "party": {
      "enum": [
        "any",
        "democrat",
        "republican"
      ],
      "type": "string",
      "default": "any",
      "description": "Political party, such as democrat.",
      "examples": [
        "democrat",
        "republican"
      ]
    },
    "chamber": {
      "enum": [
        "any",
        "house",
        "senate"
      ],
      "type": "string",
      "default": "any",
      "description": "Congress chamber, such as senate.",
      "examples": [
        "house",
        "senate"
      ]
    },
    "company": {
      "type": "string",
      "description": "Company name or ticker, such as Microsoft or MSFT.",
      "examples": [
        "Microsoft",
        "zzznosuchtickerxyz",
        "MSFT"
      ]
    },
    "trade_type": {
      "enum": [
        "any",
        "buy",
        "sell"
      ],
      "type": "string",
      "default": "any",
      "description": "Transaction type, such as buy.",
      "examples": [
        "buy",
        "sell"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of trades to return, such as 25.",
      "x-fous-developer": true,
      "examples": [
        25,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "max_results": 25
    },
    {
      "party": "democrat",
      "chamber": "house",
      "company": "Microsoft",
      "trade_type": "buy",
      "max_results": 25
    },
    {
      "company": "zzznosuchtickerxyz",
      "max_results": 25
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `trades` | array |  |  |
| `trades[].party` | string or null |  |  |
| `trades[].state` | string or null |  |  |
| `trades[].ticker` | string or null |  |  |
| `trades[].chamber` | string or null |  |  |
| `trades[].currency` | string |  |  |
| `trades[].trade_date` | string or null |  |  |
| `trades[].trade_link` | string |  |  |
| `trades[].trade_type` | string or null |  |  |
| `trades[].amount_range` | string or null |  |  |
| `trades[].amount_low_usd` | number or null |  |  |
| `trades[].amount_high_usd` | number or null |  |  |
| `trades[].disclosure_date` | string or null |  |  |
| `trades[].politician_name` | string or null |  |  |
| `trades[].company_or_asset_name` | string or null |  |  |

**Example input**

```json
{
  "company": "zzznosuchtickerxyz",
  "max_results": 25
}
```

**Example output**

```json
{
  "trades": []
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@capitol-trades",
  "visibility": "public",
  "operation": "get_politician_trades",
  "version": 1,
  "input": {
    "politician": "Mitch McConnell",
    "start_date": "2026-01-01",
    "trade_type": "sell",
    "max_results": 3
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@capitol-trades\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_politician_trades\",\n  \"version\": 1,\n  \"input\": {\n    \"politician\": \"Mitch McConnell\",\n    \"start_date\": \"2026-01-01\",\n    \"trade_type\": \"sell\",\n    \"max_results\": 3\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@capitol-trades",
  "visibility": "public",
  "operation": "get_politician_trades",
  "version": 1,
  "input": {
    "politician": "Mitch McConnell",
    "start_date": "2026-01-01",
    "trade_type": "sell",
    "max_results": 3
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@capitol-trades","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Review a member of Congress’s disclosed trades.
- Track recent congressional trades by company or ticker.
- Compare disclosed trades by political party or chamber.
- Filter congressional trades by transaction type.
- Review trade dates, disclosure dates, and reported amount ranges.

## FAQ

### Is Fous affiliated with Capitol Trades?

No. Fous is not affiliated with Capitol Trades. This workflow reads the public capitoltrades.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Capitol Trades account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from capitoltrades.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### What trades has a member of Congress disclosed?

Get politician trades returns disclosed trades for a member of Congress identified by name.

### What are the newest disclosed congressional trades?

List recent trades returns the newest disclosed congressional trades, with optional filters.

### When was a trade disclosed?

Get politician trades and List recent trades return disclosure dates.

## Related

- [SEC EDGAR API](https://fous.com/workflows/sec-edgar.md): SEC EDGAR provides filings, annual and quarterly financials, exact-phrase matches, up to 200 insider trades, and quarterly 13F manager holdings; older filings appear when available.
- [Finviz API](https://fous.com/workflows/finviz.md): Finviz provides delayed US stock snapshots, screening by company and trading criteria, and up to 200 recent public executive and director Form 4 trades.
- [TradingView API](https://fous.com/workflows/tradingview.md): TradingView provides charts, markets, and technical analysis, with changing buy, sell, or neutral signals and stock screening; quotes may be delayed.
- [CompaniesMarketCap API](https://fous.com/workflows/companiesmarketcap.md): CompaniesMarketCap ranks public companies worldwide or by country and industry across size and financial measures, and provides company figures with market-cap history for completed years.
- [Macrotrends API](https://fous.com/workflows/macrotrends.md): Macrotrends provides long-term financial and economic charts, company metric histories, and yearly commodity and index prices; current-year prices may be incomplete.
- [Congress.gov API](https://fous.com/workflows/congress-gov.md): Congress.gov returns federal bills and resolutions matching topic, Congress, status, or chamber, and provides an individual bill’s status, summary, titles, actions, and related bills; summaries may be unavailable.
- [CNBC API](https://fous.com/workflows/cnbc.md): CNBC provides business news, page-view headlines, searchable CNBC articles excluding videos, wire stories and press releases, and potentially delayed major index and U.S. futures quotes.
- [Stock Analysis API](https://fous.com/workflows/stock-analysis.md): Stock Analysis returns free-period company statements, statistics current as of its displayed date, typically top-25 ETF holdings, and US IPOs since 2019 with potentially missing prices or returns.
- [All Finance workflows](https://fous.com/workflows/category/finance)
