Capitol Trades API: Get politician trades
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.
Unofficial. Not affiliated with or endorsed by Capitol Trades.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Politician, required
politician Member of Congress to find by name, for example Nancy Pelosi.
Nancy Pelosi
- Start Date optional
start_date Earliest trade date (YYYY-MM-DD), for example 2026-01-01. Defaults to 12 months ago.
Not set
- Trade Type optional
trade_type Trade direction to include, for example buy.
any (default)
One of
any,buy,sell.- Max Results optional
max_results Maximum trades to return, for example 50.
3
Whole number from 1 to 200. Default
50.
Input as JSON
{ "politician": "Nancy Pelosi", "max_results": 3}Output
{ "party": "Democrat", "state": "California", "trades": [ { "owner": "spouse", "ticker": "BE:US", "asset_type": "Stock", "trade_date": "2026-07-28", "trade_link": "https://www.capitoltrades.com/trades/20003802222" , "trade_type": "buy", "amount_range": "500K–1M", "amount_low_usd": 500000, "amount_high_usd": 1000000, "disclosure_date": "2026-08-24", "price_per_share_usd": 166.84, "days_until_disclosed": 27, "company_or_asset_name": "Bloom Energy Corp" }, { "owner": "spouse", "ticker": "BE:US", "asset_type": "Stock Options", "trade_date": "2026-07-28", "trade_link": "https://www.capitoltrades.com/trades/20003802223" , "trade_type": "buy", "amount_range": "500K–1M", "amount_low_usd": 500000, "amount_high_usd": 1000000, "disclosure_date": "2026-08-24", "price_per_share_usd": null, "days_until_disclosed": 27, "company_or_asset_name": "Bloom Energy Corp" }, { "owner": null, "ticker": null, "asset_type": "Non-Public Stock", "trade_date": "2026-07-27", "trade_link": "https://www.capitoltrades.com/trades/20003802226" , "trade_type": "buy", "amount_range": "500K–1M", "amount_low_usd": 500000, "amount_high_usd": 1000000, "disclosure_date": "2026-08-24", "price_per_share_usd": null, "days_until_disclosed": 28, "company_or_asset_name": "REOF XXV LLC" } ], "chamber": "House", "politician": "Nancy Pelosi"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"capitoltrades.com/get_politician_trades","input":{"politician":"Nancy Pelosi","max_results":3}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "capitoltrades.com/get_politician_trades" , "input": { "politician": "Nancy Pelosi", "max_results": 3 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "capitoltrades.com/get_politician_trades" , "input": { "politician": "Nancy Pelosi", "max_results": 3 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run capitoltrades.com/get_politician_trades# with {"politician":"Nancy Pelosi","max_results":3}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "politician" ], "properties": { "politician": { "type": "string", "description": "Member of Congress to find by name, for example Nancy Pelosi." }, "start_date": { "type": "string", "description": "Earliest trade date (YYYY-MM-DD), for example 2026-01-01. Defaults to 12 months ago." }, "trade_type": { "enum": [ "any", "buy", "sell" ], "type": "string", "default": "any", "description": "Trade direction to include, for example buy." }, "max_results": { "type": "integer", "default": 50, "maximum": 200, "minimum": 1, "description": "Maximum trades to return, for example 50." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "politician", "party", "chamber", "state", "trades" ], "properties": { "party": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "trades": { "type": "array", "items": { "type": "object", "required": [ "trade_date", "disclosure_date", "days_until_disclosed", "company_or_asset_name", "ticker", "trade_type", "amount_range", "amount_low_usd", "amount_high_usd", "asset_type", "owner", "price_per_share_usd", "trade_link" ], "properties": { "owner": { "type": [ "string", "null" ] }, "ticker": { "type": [ "string", "null" ] }, "asset_type": { "type": [ "string", "null" ] }, "trade_date": { "type": "string", "format": "date" }, "trade_link": { "type": [ "string", "null" ] }, "trade_type": { "type": [ "string", "null" ] }, "amount_range": { "type": [ "string", "null" ] }, "amount_low_usd": { "type": [ "number", "null" ], "description": "Amount in USD." }, "amount_high_usd": { "type": [ "number", "null" ], "description": "Amount in USD." }, "disclosure_date": { "type": "string", "format": "date" }, "price_per_share_usd": { "type": [ "number", "null" ], "description": "Amount in USD." }, "days_until_disclosed": { "type": "integer" }, "company_or_asset_name": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "chamber": { "type": [ "string", "null" ] }, "politician": { "type": "string" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
capitoltrades.com/get_politician_trades- Returns
- politician, party, chamber, state, trades with dates, asset, ticker, type, amount range, owner, price, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method capitoltrades.com/get_politician_trades with the inputs above.
Ask your agent
- What stocks has Dan Crenshaw bought since 2025-06-01? List the most recent purchases first.
- Pull up Nancy Pelosi's disclosed trades on Capitol Trades going back to January 2025, newest first, max 100.
- Show me every sale Senator Tommy Tuberville has reported since March 15, 2025 — tickers, amount ranges, and who owned the asset.
- I need the last 20 trades disclosed by Josh Gottheimer, any direction, with prices and links to the filings.
- Check capitoltrades.com for Marjorie Taylor Greene's stock buys over the past year, including the party, state, and chamber info.
See more
All Capitol Trades methodsLists the newest disclosed congressional stock trades on Capitol Trades, optionally filtered by company, party, chamber and trade type.
capitoltrades.com/list_recent_tradesLists stock transactions reported on Form 4 filings by a company's officers, directors and major owners, newest first. Trades without a reported price have no calculated value.
sec.gov/list_insider_tradesFinds PolitiFact fact checks matching a claim, topic, or person, newest first. An exact person match returns that person's checked statements; otherwise fact-check text is searched. An optional Truth-O-Meter rating filters the results.
politifact.com/search_fact_checksGets a federal candidate's fundraising and spending for a two-year FEC cycle. If several names match, returns the match with the most reported receipts.
fec.gov/get_candidate_fundraisingLooks up a Ballotpedia candidate or officeholder profile by name, with election results, background and published links. An optional state narrows people with the same name; unreported details are left blank.
ballotpedia.org/get_candidateFinds a public company by name or ticker in SEC EDGAR and lists its filings, newest first, optionally narrowed by filing type and filing date.
sec.gov/get_company_filingsFinds Polymarket prediction markets about a topic, ranked by total trading volume, with outcome chances and market details.
polymarket.com/search_marketsLists recent Form 4 insider trades on Finviz, optionally for one company or ticker and filtered to buys, sales, or both.
finviz.com/list_insider_trades