Congress trading data
Congress stock trading API & MCP
Every stock trade that members of the US House and Senate report in their official financial disclosure filings, as clean JSON through our REST API, and as a tool for ChatGPT, Claude and other AI assistants through our MCP server.
What the data covers
- More than 92,000 trades reported by about 350 current and former members of Congress, with trade dates from 2012 (as of October 2026).
- Each trade: member, official member ID, party on the trade date, chamber, state and district; ticker, company and the asset as filed; asset class; buy or sell; amount range with its lower and upper bound and an estimate; who holds the asset (self, spouse, joint, child); trade date, filing date, filing delay and a late-filing flag; a link to the official filing.
- Summaries by member, party, chamber or stock, a member list, and the members' net worth from their annual financial disclosures.
- Source: the official House and Senate periodic transaction reports. Amounts are ranges as filed, so value fields are estimates.
How often it updates
- New filings are checked twice a day (16:15 and 23:15 UTC).
- By law a trade is filed up to 45 days after it happens, so the most recent weeks fill in over time; late filings are flagged.
The same data is on the website: Politician Trades.
Endpoints
GET /politician-tradesTrades, filtered by stock, member, party, chamber, state, trade type, dates and amount.GET /politician-trades/summaryTotals grouped by party, member, stock, month, year, chamber and more (two at once for a cross table).GET /politician-trades/membersMembers who reported trades, with trade counts, buys, sells, filing delays and their most traded stocks.GET /politician-trades/symbolsStocks traded by members, with trades, buys, sells, estimated values and the split by party.GET /politician-trades/net-worthNet worth of members from their yearly financial disclosures: ranges and a middle estimate.
Every parameter and field is in the API Docs and in the OpenAPI file. Send your key in an apikey header (or ?apikey=).
Sample response
A real answer of this request on October 22, 2026, shortened: the first 2 of 1,184 trades in Microsoft stock, without the "about" note.
GET https://api.dataporium.io/politician-trades?symbol=MSFT&limit=2{
"total": 1184,
"limit": 2,
"offset": 0,
"sort": "trade_date",
"order": "desc",
"rows": [
{
"id": 429511,
"chamber": "house",
"member_id": "M001136",
"member_name": "Lisa C. McClain",
"party": "Republican",
"party_short": "R",
"current_party": "Republican",
"state": "MI",
"district": "9",
"filer_type": "member",
"symbol": "MSFT",
"symbol_as_filed": "MSFT",
"symbol_source": "filed",
"company_name": "Microsoft Corporation",
"asset_name": "Microsoft Corporation - Common Stock",
"asset_class": "Stock",
"trade_type": "purchase",
"trade_type_as_filed": "Purchase",
"held_by": "Spouse",
"amount_range": "$1,001 - $15,000",
"amount_min": 1001,
"amount_max": 15000,
"amount_estimate": 8000.5,
"trade_date": "2026-09-30",
"filed_date": "2026-10-12",
"filing_delay_days": 12,
"late_filing": false,
"gain_over_200_reported": false,
"filer_note": null,
"filing_url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/20035585.pdf"
},
{
"id": 335796,
"chamber": "house",
"member_id": "R000619",
"member_name": "Michael A. Rulli",
"party": "Republican",
"party_short": "R",
"current_party": "Republican",
"state": "OH",
"district": "6",
"filer_type": "member",
"symbol": "MSFT",
"symbol_as_filed": "MSFT",
"symbol_source": "filed",
"company_name": "Microsoft Corporation",
"asset_name": "Microsoft Corp",
"asset_class": "Stock",
"trade_type": "sale",
"trade_type_as_filed": "Sale",
"held_by": "Self",
"amount_range": "$1,001 - $15,000",
"amount_min": 1001,
"amount_max": 15000,
"amount_estimate": 8000.5,
"trade_date": "2026-09-28",
"filed_date": "2026-10-05",
"filing_delay_days": 7,
"late_filing": false,
"gain_over_200_reported": false,
"filer_note": null,
"filing_url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2026/20035558.pdf"
}
]
}Code examples
curl -H "apikey: YOUR_API_KEY" \
"https://api.dataporium.io/politician-trades?symbol=MSFT&limit=2"import requests
r = requests.get(
"https://api.dataporium.io/politician-trades",
params={"symbol": "MSFT", "limit": 2},
headers={"apikey": "YOUR_API_KEY"},
timeout=30,
)
for row in r.json()["rows"]:
print(row["trade_date"], row["member_name"], row["trade_type"], row["amount_range"])const res = await fetch(
'https://api.dataporium.io/politician-trades?symbol=MSFT&limit=2',
{ headers: { apikey: 'YOUR_API_KEY' } },
);
const { rows } = await res.json();
for (const row of rows) {
console.log(row.trade_date, row.member_name, row.trade_type, row.amount_range);
}Use it in ChatGPT or Claude (MCP)
Our MCP server gives AI assistants this data as a tool (get_politician_trades), with the same API key and the same plan limits as the REST API.
Server address
https://mcp.dataporium.io/mcpTransport: Streamable HTTP.
Your API key
Send it as Authorization: Bearer YOUR_API_KEY, as X-API-Key, or in the address as ?apikey=YOUR_API_KEY for apps that only accept a URL.
Set up in your AI app
Set up in Claude
Claude.ai, Claude Desktop and the Claude mobile apps. Custom connectors need a paid Claude plan.
- 1Open Settings, then Connectors, then Add custom connector.
- 2Name: Dataporium. Remote MCP server URL: paste the address below (it contains your API key).
- 3Click Add, then turn Dataporium on in a chat's tools menu.
https://mcp.dataporium.io/mcp?apikey=YOUR_API_KEYSet up in ChatGPT
ChatGPT Plus, Pro, Business and Enterprise accept custom MCP connectors through Developer mode.
- 1Open Settings, then Apps & Connectors, then Advanced settings, and turn on Developer mode.
- 2Create a connector. Name: Dataporium. MCP server URL: paste the address below. Authentication: none.
- 3In a new chat, choose Developer mode in the tools menu and enable Dataporium.
https://mcp.dataporium.io/mcp?apikey=YOUR_API_KEYQuestions to try
- Which members of Congress traded Microsoft stock in the last 90 days?
- List the largest stock purchases filed by senators this month, with links to the filings.
- Which trades were filed more than 45 days late this year?
Treat an address that contains your API key like a password: do not share screenshots of it. If it leaks, create a new key in your account settings.
Claude Code, Cursor, VS Code, Gemini CLI and other apps: see the MCP setup guide.
Price and API key
- REST API access to this dataset and every other DataPorium dataset
- API access (600 calls/min)
- The MCP server for ChatGPT, Claude and other AI apps, with the same key
- Your API key is in your account settings once you subscribe