Congressional Trades

Access US Congress & Senate trading disclosures and corporate PAC donations linked to public company leadership.

What's inside#

FIRM's Congressional Trades product combines two complementary datasets from Quiver Quant:

  • Congressional trading disclosures — SEC Form 4 filings from House and Senate members + disclosed trades by politician, aggregated by ticker (Quiver Quant: updated daily).
  • US Congress roster — Live member list with trade counts per politician.
  • Corporate PAC donations — Campaign contributions from a company's corporate PAC to politicians, linked by ticker.

Real-world use: Monitor legislative trading to detect information leakage (Nancy Pelosi bought 10k NVDA calls), correlate votes/committee assignments with positions, detect donation flows that may signal lobbying leverage.

Access#

2 credits/call. Available in Starter and up. Add-on for free-tier accounts.

Endpoints#

MethodPathDescription
GET/api/v3/intel/congressRecent congressional trades (cross-ticker feed or by ticker)
GET/api/v3/intel/politiciansUS Congress roster with trade counts
GET/api/v3/intel/corporate_donors/{ticker}Corporate-PAC donations linked to ticker
GET/api/v2/congressional/{ticker}Historical congressional trades for a ticker

Examples#

Bash: Recent congressional trades (all members)#

Shell
1curl -H "Authorization: Bearer $TENGU_API_KEY" \2  "https://firm.tengu.co/api/v3/intel/congress"

Response:

JSON
1{2  "ok": true,3  "timestamp": "2026-07-05T14:32:18.123456+00:00",4  "provider": "unusual_whales",5  "ticker": null,6  "items": [7    {8      "politician_name": "Nancy Pelosi",9      "chamber": "House",10      "transaction_date": "2026-07-03",11      "ticker": "NVDA",12      "side": "BUY",13      "quantity": 10000,14      "price": 142.50,15      "value_usd": 142500016    }17  ],18  "count": 119}

Python: Congressional trades + politicians roster#

Python
1import os, requests2 3KEY = os.environ["TENGU_API_KEY"]4headers = {"Authorization": f"Bearer {KEY}"}5 6# Get recent congressional trades7trades = requests.get(8    "https://firm.tengu.co/api/v3/intel/congress",9    headers=headers,10    timeout=30,11).json()12print(f"Latest trades: {trades['count']} items")13print(trades["items"][:2])14 15# Get Congress roster with trade counts16congress = requests.get(17    "https://firm.tengu.co/api/v3/intel/politicians?limit=50",18    headers=headers,19    timeout=30,20).json()21print(f"Congress members: {congress['count']}")22for member in congress["items"][:3]:23    print(f"  {member['name']} ({member['chamber']}) — {member.get('trade_count', 0)} trades")24 25# Get corporate donations for a ticker26donors = requests.get(27    "https://firm.tengu.co/api/v3/intel/corporate_donors/NVDA",28    headers=headers,29    timeout=30,30).json()31print(f"NVDA PAC donations: {donors['count']} recipients")32print(donors["items"][:2])