Skip to content

Congressional Trading API

Retrieve stock trading activity from US House Representatives and Senators disclosed under the STOCK Act. House and Senate trades are served by separate endpoints with an identical schema.

GET /v2/congress/house/{symbol}
GET /v2/congress/senate/{symbol}

The API supports multiple authentication methods:

Method Example
Bearer token (recommended) Authorization: Bearer YOUR_API_KEY
X-API-Key header X-API-Key: YOUR_API_KEY
Query parameter ?apiKey=YOUR_API_KEY
Legacy query parameter ?token=YOUR_API_KEY
Parameter Type Required Description
symbol string Yes Stock ticker symbol (e.g., AAPL, NVDA)
Parameter Type Required Description
startDate string No Start date (YYYY-MM-DD)
endDate string No End date (YYYY-MM-DD)
limit integer No Maximum number of results to return

startDate and endDate filter on the transaction date, not on disclosureDate. A trade executed inside the window is returned even if it was disclosed after endDate.

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
house_df = fb.house_trades.ticker("NVDA",
date_from="2025-01-01",
date_to="2025-06-30",
as_dataframe=True)
senate_df = fb.senate_trades.ticker("NVDA",
date_from="2025-01-01",
date_to="2025-06-30",
as_dataframe=True)
print(house_df)
print(senate_df)
{
"success": true,
"data": {
"symbol": "AAPL",
"name": "Apple Inc.",
"chamber": "house",
"trades": [
{
"date": "2025-11-24",
"politician": "Debbie Dingell",
"transactionType": "Sale",
"amount": "$50,001 - $100,000",
"disclosureDate": "2025-12-16"
},
{
"date": "2024-03-11",
"politician": "Debbie Dingell",
"transactionType": "Purchase",
"amount": "$1,001 - $15,000",
"disclosureDate": null
}
]
},
"meta": {
"timestamp": "2026-01-19T15:06:31.764Z"
}
}

The Senate endpoint returns the same structure with "chamber": "senate".

Field Type Description
success boolean Whether the request was successful
data.symbol string Stock ticker symbol
data.name string Company name
data.chamber string Congressional chamber (house or senate)
data.trades array Array of trade objects
meta.timestamp string Response timestamp (ISO 8601)
Field Type Description
date string Transaction date (YYYY-MM-DD)
politician string Name of the House or Senate member
transactionType string Transaction type (Purchase or Sale)
amount string Transaction amount (exact value or range)
disclosureDate string or null Date the trade was publicly disclosed in the periodic transaction report (YYYY-MM-DD). The STOCK Act allows up to 45 days, so this is the correct point-in-time anchor for backtesting. null on historical rows filed before this field was captured
Range Min Max
$1,001 - $15,000 $1,001 $15,000
$15,001 - $50,000 $15,001 $50,000
$50,001 - $100,000 $50,001 $100,000
$100,001 - $250,000 $100,001 $250,000
$250,001 - $500,000 $250,001 $500,000
$500,001 - $1,000,000 $500,001 $1,000,000
$1,000,001 - $5,000,000 $1,000,001 $5,000,000
Over $5,000,000 $5,000,001 N/A
Code Error Description
400 Bad Request Invalid symbol
401 Unauthorized Invalid or missing API key
403 Forbidden Authenticated, but not authorized to access this resource
404 Not Found Ticker not found
429 Too Many Requests Rate limit exceeded — wait and retry
500 Internal Server Error Server-side error