Free Congressional Trading Data API
Access real-time congressional stock trades, politician portfolios, and market data through our free REST API. Built for developers, researchers, and journalists.
The QuantEngines API provides free, programmatic access to congressional stock trading disclosures filed under the STOCK Act. Every trade reported by members of the U.S. Senate and House of Representatives is parsed, normalized, and made available through simple REST endpoints.
Use this data to build trading tools, conduct academic research, create dashboards, or power journalism investigations. No registration required for public endpoints.
Base URL
https://quantengines.com/api/v1No API key required for public endpoints. Simply make HTTP requests to any endpoint listed below.
Premium endpoints (webhooks, alerts, bulk export) require a Bearer token obtained after signing up for a paid plan.
# Only needed for premium endpoints
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://quantengines.com/api/v1/premium/alerts| Plan | Rate Limit | Features | Price |
|---|---|---|---|
| Free | 20 req/min | All public endpoints, JSON responses | $0 |
| Premium | 200 req/min | Webhooks, alerts, bulk CSV export, historical archive | See pricing |
Rate limit headers are included in every response: X-RateLimit-Remaining, X-RateLimit-Reset
Endpoints
/api/v1/trades/recent/listReturns the most recent congressional stock trades, sorted by disclosure date. Includes transaction type, estimated amounts, and the filing politician.
Parameters
| Name | Type | Description |
|---|---|---|
limit | integer | Number of trades to return. Default: 10, Max: 100 |
skip | integer | Offset for pagination. Default: 0 |
Example Response
{
"trades": [
{
"id": "txn_2024_0918_pelosi_nvda",
"politician": "Nancy Pelosi",
"politician_id": "P000197",
"chamber": "house",
"party": "Democrat",
"ticker": "NVDA",
"company": "NVIDIA Corporation",
"transaction_type": "purchase",
"amount_range": "$1,000,001 - $5,000,000",
"disclosure_date": "2024-09-18",
"transaction_date": "2024-09-12",
"asset_type": "Stock",
"comment": null
},
{
"id": "txn_2024_0917_tuberville_ba",
"politician": "Tommy Tuberville",
"politician_id": "T000278",
"chamber": "senate",
"party": "Republican",
"ticker": "BA",
"company": "The Boeing Company",
"transaction_type": "sale_full",
"amount_range": "$100,001 - $250,000",
"disclosure_date": "2024-09-17",
"transaction_date": "2024-09-10",
"asset_type": "Stock",
"comment": null
}
],
"total": 14832,
"limit": 10,
"skip": 0
}/api/v1/politicians/List all tracked politicians with their chamber, party, and trading activity summary. Filter by chamber or party affiliation.
Parameters
| Name | Type | Description |
|---|---|---|
chamber | string | Filter by chamber: "senate" or "house" |
party | string | Filter by party: "Democrat", "Republican", or "Independent" |
limit | integer | Number of results to return. Default: 50, Max: 200 |
skip | integer | Offset for pagination. Default: 0 |
Example Response
{
"politicians": [
{
"id": "P000197",
"name": "Nancy Pelosi",
"chamber": "house",
"party": "Democrat",
"state": "CA",
"district": 11,
"total_trades": 237,
"total_volume_estimate": "$15,000,000+",
"last_trade_date": "2024-09-12",
"top_tickers": ["NVDA", "AAPL", "MSFT", "GOOGL", "RBLX"]
},
{
"id": "T000278",
"name": "Tommy Tuberville",
"chamber": "senate",
"party": "Republican",
"state": "AL",
"district": null,
"total_trades": 482,
"total_volume_estimate": "$8,200,000+",
"last_trade_date": "2024-09-10",
"top_tickers": ["BA", "GE", "TSLA", "META", "AMZN"]
}
],
"total": 538,
"limit": 50,
"skip": 0
}/api/v1/market-data/public/quote/{symbol}Get a real-time stock quote for any US-listed equity. Returns the latest price, volume, change, and basic company info.
Parameters
| Name | Type | Description |
|---|---|---|
symbolREQUIRED | string | Stock ticker symbol, e.g. "AAPL", "NVDA" |
Example Response
{
"symbol": "NVDA",
"company_name": "NVIDIA Corporation",
"price": 138.27,
"change": 4.52,
"change_percent": 3.38,
"volume": 312849100,
"market_cap": 3400000000000,
"pe_ratio": 67.4,
"week_52_high": 152.89,
"week_52_low": 39.23,
"timestamp": "2024-09-18T16:00:00Z"
}/api/v1/market-data/public/historical/{symbol}Retrieve historical OHLCV price data for a given stock symbol. Perfect for charting, backtesting, or correlating with congressional trade timing.
Parameters
| Name | Type | Description |
|---|---|---|
symbolREQUIRED | string | Stock ticker symbol, e.g. "AAPL" |
period | string | Time period: "1mo", "3mo", "6mo", "1y", "5y". Default: "3mo" |
interval | string | Data interval: "1d", "1wk", "1mo". Default: "1d" |
Example Response
{
"symbol": "NVDA",
"interval": "1d",
"period": "3mo",
"data": [
{
"date": "2024-09-18",
"open": 134.50,
"high": 139.20,
"low": 133.82,
"close": 138.27,
"volume": 312849100
},
{
"date": "2024-09-17",
"open": 131.10,
"high": 134.92,
"low": 130.44,
"close": 133.75,
"volume": 245612800
}
],
"total_points": 63
}Code Examples
Copy-paste examples to start pulling congressional trading data in seconds.
Python
import requests
# Get the latest congressional trades
response = requests.get("https://quantengines.com/api/v1/trades/recent/list", params={
"limit": 25
})
trades = response.json()
for trade in trades["trades"]:
print(f"{trade['politician']} {trade['transaction_type']} "
f"{trade['ticker']} ({trade['amount_range']})")
# Get all senators' trading activity
senators = requests.get("https://quantengines.com/api/v1/politicians/", params={
"chamber": "senate",
"limit": 100
}).json()
# Get a stock quote for a recently traded ticker
quote = requests.get(
f"https://quantengines.com/api/v1/market-data/public/quote/NVDA"
).json()
print(f"NVDA: ${quote['price']} ({quote['change_percent']:+.2f}%)")JavaScript
// Get recent congressional trades
const response = await fetch(
"https://quantengines.com/api/v1/trades/recent/list?limit=25"
);
const { trades } = await response.json();
trades.forEach(trade => {
console.log(
`${trade.politician} ${trade.transaction_type} ` +
`${trade.ticker} (${trade.amount_range})`
);
});
// Get historical data to correlate with trade timing
const history = await fetch(
"https://quantengines.com/api/v1/market-data/public/historical/NVDA?period=6mo"
).then(r => r.json());
console.log(`Got ${history.total_points} data points for ${history.symbol}`);cURL
# Recent trades
curl -s "https://quantengines.com/api/v1/trades/recent/list?limit=5" | jq .
# Filter politicians by chamber
curl -s "https://quantengines.com/api/v1/politicians/?chamber=senate&limit=10" | jq .
# Real-time quote
curl -s "https://quantengines.com/api/v1/market-data/public/quote/AAPL" | jq .
# Historical price data
curl -s "https://quantengines.com/api/v1/market-data/public/historical/TSLA?period=1y&interval=1wk" | jq .| Status | Meaning |
|---|---|
200 | Success |
400 | Bad request - check your parameters |
404 | Resource not found (invalid symbol, politician ID, etc.) |
429 | Rate limit exceeded - wait and retry, or upgrade your plan |
500 | Server error - please report if persistent |
Found a bug or have a feature request? We welcome contributions and feedback.
QuantEngines Congressional Trading API -- Free for developers, researchers, and journalists.
Data sourced from public STOCK Act filings. Updated daily.