Politician Stock Trading API
Rank every member of Congress by how much and how often they trade, and by how their stock purchases have done against the S&P 500. Then pull any member's profile, trading statistics for every period and estimated stock portfolio in one call. Two endpoints, as clean JSON: /congress/politicians for rankings and /congress/politician for one member. The API is free to use.
Part of the Congressional Trading API: each trade, with its amount and dates, is in Congress Trades, and congressional activity in a single stock is in Congress Trades by Stock. Prefer to browse? Every member has a page on our Congress Trading Tracker.
https://data.businessquant.com/congress/politicians?window={window}&api_key={api_key}
https://data.businessquant.com/congress/politician?member={member}&api_key={api_key}
1. Request Parameters — Politician Rankings
/congress/politicians returns every member of Congress who traded in a period, ranked. Periods are given with window: 30D, 90D, 180D, YTD, 1Y or ALL (all time, the default). Rank by dollar volume, number of trades, buys, sells, latest disclosure or the return of their purchases, and narrow by party, state or members serving now.
| Parameter | Description |
|---|---|
| api_key | Required Your unique API key for authentication and usage tracking. |
| window | Optional Period the ranking covers. Default ALL.Format: window=1Y |
| sort | Optional Ranking: volume (default, buy + sell dollar volume), trades, buys, sells, last_filing (most recent disclosure) or return (average return of purchases against the S&P 500).Format: sort=trades |
| party | Optional Only members of this party, e.g. D or R.Format: party=R |
| state | Optional Only members from this state (two-letter code).Format: state=TX |
| current_only | Optional Only members serving now. Default false.Format: current_only=true |
| page | Optional Page number. Defaults to 1.Format: page=1 |
| page_size | Optional Records per page. Maximum 500. Default 100.Format: page_size=50 |
curl -X GET "https://data.businessquant.com/congress/politicians?window=1Y&sort=trades&page_size=10&api_key=YOUR_API_KEY"
{
"metadata": {
"window": "1Y",
"sort": "trades",
"page": 1,
"page_size": 10,
"total_records": 113,
"total_pages": 12,
"note": ""
},
"data": [
{
"bioguide_id": "K000389",
"politician_name": "Ro Khanna",
"chamber": "House",
"party": "D",
"state": "CA",
"district": 17,
"is_current_member": true,
"window": "1Y",
"n_trades": 5559,
"n_buys": 2938,
"n_sells": 2621,
"n_exchanges": 0,
"buy_volume_est": 44277968,
"sell_volume_est": 39363808.5,
"net_volume_est": 4914159.5,
"n_filings": 12,
"first_trade_date": "2010-01-03",
"last_trade_date": "2026-09-30",
"last_filing_date": "2026-10-07",
"n_tickers": 547,
"top_tickers": [
"MU",
"FDS",
"MSFT",
"UBER",
"BRK-B"
],
"top_sector": "Technology",
"median_filing_delay_days": 22,
"pct_late": 0.0059363194819212085,
"avg_excess_return_buys": 0.015298716513429124,
"win_rate_buys": 0.5152462861610634
}
]
}
2. Request Parameters — One Politician
/congress/politician returns one member in a single call: their profile (chamber, party, state, district, committees), trading statistics for every period from 30 days to all time, their estimated current stock portfolio with value, cost, return and weight, and the stocks they trade most.
| Parameter | Description |
|---|---|
| api_key | Required Your unique API key for authentication and usage tracking. |
| member | Required The member: their member ID (P000197) or member slug (nancy-pelosi-p000197). Every trade record carries the ID as bioguide_id.Format: member=P000197 |
curl -X GET "https://data.businessquant.com/congress/politician?member=P000197&api_key=YOUR_API_KEY"
{
"metadata": {
"member": "P000197",
"politician_name": "Nancy Pelosi",
"note": ""
},
"data": {
"profile": {
"bioguide_id": "P000197",
"politician_name": "Nancy Pelosi",
"chamber": "House",
"party": "D",
"state": "CA",
"district": 11,
"is_current_member": true,
"committees": null,
"n_trades": 211,
"n_buys": 129,
"n_sells": 80,
"n_exchanges": 2,
"buy_volume_est": 116068564.5,
"sell_volume_est": 110618549.5,
"n_tickers": 44,
"first_trade_date": "2013-01-26",
"last_trade_date": "2026-09-08",
"last_filing_date": "2026-10-02"
},
"stats": [
{
"window": "90D",
"n_trades": 8,
"n_buys": 8,
"n_sells": 0,
"n_exchanges": 0,
"buy_volume_est": 10125004,
"sell_volume_est": 0,
"net_volume_est": 10125004,
"n_filings": 2,
"first_trade_date": "2026-07-24",
"last_trade_date": "2026-09-08",
"last_filing_date": "2026-10-02",
"n_tickers": 2,
"top_tickers": [
"BE",
"INTC"
],
"top_sector": "Industrials",
"median_filing_delay_days": 26.5,
"pct_late": 0,
"avg_excess_return_buys": -0.05460919040759641,
"win_rate_buys": 0.6666666666666666
},
{
"window": "180D",
"n_trades": 10,
"n_buys": 10,
"n_sells": 0,
"n_exchanges": 0,
"buy_volume_est": 13875005,
"sell_volume_est": 0,
"net_volume_est": 13875005,
"n_filings": 3,
"first_trade_date": "2026-05-29",
"last_trade_date": "2026-09-08",
"last_filing_date": "2026-10-02",
"n_tickers": 3,
"top_tickers": [
"BE",
"INTC",
"UBER"
],
"top_sector": "Industrials",
"median_filing_delay_days": 25,
"pct_late": 0,
"avg_excess_return_buys": -0.05460919040759641,
"win_rate_buys": 0.6666666666666666
}
],
"holdings": [
{
"ticker": "V",
"issuer_name": "Visa Inc.",
"sector": "Financial Services",
"held_shares_est": 46047.58403683807,
"held_value_est": 19592786.08215079,
"held_cost_est": 15000000.5,
"held_return": 0.3061856952705295,
"held_weight": 0.1345322667637085,
"held_since": "2026-05-15",
"price_latest": 425.49,
"price_latest_date": "2026-11-02"
},
{
"ticker": "CRM",
"issuer_name": "Salesforce, Inc.",
"sector": "Technology",
"held_shares_est": 86450.35430168854,
"held_value_est": 19552476.47411757,
"held_cost_est": 15000000.5,
"held_return": 0.30349838815789165,
"held_weight": 0.13425548412961408,
"held_since": "2026-05-15",
"price_latest": 226.17,
"price_latest_date": "2026-11-02"
}
],
"top_traded": [
{
"ticker": "AAPL",
"issuer_name": "Apple Inc.",
"sector": "Technology",
"asset_class": "Stock",
"n_trades": 34,
"n_buys": 17,
"n_sells": 17,
"buy_volume_est": 10825008.5,
"sell_volume_est": 59775008.5,
"net_volume_est": -48950000,
"first_trade_date": "2016-01-13",
"last_trade_date": "2025-12-30",
"avg_excess_return_buys": 3.1685995337542474
},
{
"ticker": "NVDA",
"issuer_name": "Nvidia Corp",
"sector": "Technology",
"asset_class": "Option",
"n_trades": 15,
"n_buys": 11,
"n_sells": 4,
"buy_volume_est": 17800005.5,
"sell_volume_est": 9175002,
"net_volume_est": 8625003.5,
"first_trade_date": "2021-06-03",
"last_trade_date": "2026-01-16",
"avg_excess_return_buys": 3.3566110886770457
}
]
}
}
3. Response Fields
Every response is a metadata object (the filters applied, and for rankings the page, page size, total records and total pages) and a data payload. Dollar volumes and portfolio values are estimates and carry the _est suffix. Returns are decimals: 0.12 is 12%.
/congress/politicians and the stats of /congress/politician
One record per member for the chosen window. A member's own stats list has one such record per period, without the member's name and profile fields.
| Field | Type | Description |
|---|---|---|
| bioguide_id | string | Member ID. |
| politician_name | string | Name of the member. |
| chamber / party / state / district | string | The member's chamber, party, state and district. |
| is_current_member | boolean | true while the member is serving. |
| window | string | Period the record covers: 30D, 90D, 180D, YTD, 1Y or ALL. |
| n_trades | integer | Trades in the period. |
| n_buys / n_sells / n_exchanges | integer | Trades by direction. |
| buy_volume_est | number | Estimated dollar volume bought. |
| sell_volume_est | number | Estimated dollar volume sold. |
| net_volume_est | number | Bought minus sold. |
| n_filings | integer | Disclosure reports filed in the period. |
| first_trade_date / last_trade_date | string | First and latest trade in the period. |
| last_filing_date | string | Latest disclosure. |
| n_tickers | integer | Distinct stocks traded. |
| top_tickers | array|null | Most-traded tickers, most active first. |
| top_sector | string|null | Sector traded most. |
| median_filing_delay_days | number|null | Typical number of days the member takes to disclose a trade. |
| pct_late | number|null | Share of trades disclosed after the 45-day deadline (0 to 1). |
| avg_excess_return_buys | number|null | Average return of the member's purchases since the trade, minus the S&P 500 over the same dates. |
| win_rate_buys | number|null | Share of purchases that have beaten the S&P 500 since the trade (0 to 1). |
/congress/politician
data is an object with four parts: profile (the member and their all-time totals, plus committees), stats (one record per period, fields as above), holdings and top_traded.
| Field | Type | Description |
|---|---|---|
| profile.committees | array|null | Committees the member sits on. |
| holdings[].ticker / issuer_name / sector | string | The stock held. |
| holdings[].held_shares_est | number | Estimated shares held today. |
| holdings[].held_value_est | number | Estimated value at the latest close. |
| holdings[].held_cost_est | number | Estimated dollars invested in the position. |
| holdings[].held_return | number|null | Estimated return on the position. |
| holdings[].held_weight | number | Share of the member's estimated stock portfolio (0 to 1). |
| holdings[].held_since | string | Date the position was opened. |
| holdings[].price_latest / price_latest_date | number / string | Latest close and its date. |
| top_traded[].ticker / issuer_name / sector / asset_class | string | The stock traded. |
| top_traded[].n_trades / n_buys / n_sells | integer | All-time trades in the stock by the member. |
| top_traded[].buy_volume_est / sell_volume_est / net_volume_est | number | Estimated dollars bought, sold and net. |
| top_traded[].first_trade_date / last_trade_date | string | First and latest trade in the stock. |
| top_traded[].avg_excess_return_buys | number|null | Average return of the member's purchases of the stock against the S&P 500. |
4. Endpoint Variations
Copy any of the following directly into your application or HTTP client.
https://data.businessquant.com/congress/politicians?window=1Y&sort=trades&api_key=YOUR_API_KEY
https://data.businessquant.com/congress/politicians?window=ALL&sort=return¤t_only=true&api_key=YOUR_API_KEY
https://data.businessquant.com/congress/politicians?window=YTD&party=R&sort=volume&api_key=YOUR_API_KEY
https://data.businessquant.com/congress/politicians?state=TX¤t_only=true&sort=last_filing&api_key=YOUR_API_KEY
https://data.businessquant.com/congress/politician?member=nancy-pelosi-p000197&api_key=YOUR_API_KEY
https://data.businessquant.com/congress/trades?member=P000197&api_key=YOUR_API_KEY
5. API Response Sample — Politician Rankings
The most active traders in Congress over the last year, ranked by number of trades — 113 members traded in the period, the top 10 shown.
API Response — Politician Rankings
Window 1Y · sorted by trades · 113 members
| Member | Chamber | Trades | Buys | Sells | Bought (est.) | Sold (est.) | Top Tickers | Last Disclosure |
|---|---|---|---|---|---|---|---|---|
| Ro Khanna D-CA |
House | 5,559 | 2,938 | 2,621 | $44.28M | $39.36M | MU, FDS, MSFT | 2026-10-07 |
| Gilbert Ray Cisneros, Jr. D-CA |
House | 1,239 | 771 | 464 | $13.43M | $10.92M | DASH, APP, FLEX | 2026-10-12 |
| Michael T. McCaul R-TX |
House | 1,073 | 572 | 501 | $42.89M | $31.08M | INTU, SPGI, SAP | 2026-10-14 |
| Lisa C. McClain R-MI |
House | 487 | 164 | 323 | $1.78M | $2.76M | AAPL, ASML, CACI | 2026-10-12 |
| April McClain Delaney D-MD |
House | 361 | 156 | 204 | $1.86M | $6.51M | CHRW, HUBB, TSCO | 2026-09-09 |
| Julia Letlow R-LA |
House | 257 | 164 | 93 | $1.39M | $744.0K | CRM, AAPL, META | 2026-03-12 |
| Julie Johnson D-TX |
House | 221 | 43 | 177 | $344.0K | $1.42M | CARR, CMS, DE | 2026-08-05 |
| Kevin Hern R-OK |
House | 211 | 29 | 172 | $5.48M | $14.56M | DVN, HD, BSX | 2026-10-28 |
| David J. Taylor R-OH |
House | 181 | 104 | 77 | $856.6K | $763.0K | AVGO, GOOGL, HD | 2026-10-29 |
| Scott H. Peters D-CA |
House | 151 | 82 | 69 | $21.60M | $20.04M | — | 2026-10-15 |
6. API Response Sample — Politician Portfolio
Nancy Pelosi's profile, trading statistics and estimated stock portfolio in one call — 211 disclosed trades in 44 stocks; the 10 largest estimated holdings shown.
API Response — Politician Portfolio
Nancy Pelosi · D-CA · House
| Holding | Sector | Shares (est.) | Value (est.) | Cost (est.) | Return | Weight | Held Since |
|---|---|---|---|---|---|---|---|
| V Visa Inc. |
Financial Services | 46,048 | $19.59M | $15.00M | 30.6% | 13.5% | 2026-05-15 |
| CRM Salesforce, Inc. |
Technology | 86,450 | $19.55M | $15.00M | 30.3% | 13.4% | 2026-05-15 |
| MSFT Microsoft Corp |
Technology | 35,552 | $18.03M | $15.00M | 20.2% | 12.4% | 2026-05-15 |
| AAPL Apple Inc. |
Technology | 49,962 | $16.90M | $15.00M | 12.7% | 11.6% | 2026-05-15 |
| AMZN Amazon Com Inc |
Consumer Discretionary | 56,788 | $13.95M | $15.00M | -7.0% | 9.6% | 2026-05-15 |
| NVDA Nvidia Corp |
Technology | 66,572 | $13.45M | $15.00M | -10.3% | 9.2% | 2026-05-15 |
| AVGO Broadcom Inc. |
Technology | 35,278 | $11.37M | $15.00M | -24.2% | 7.8% | 2026-05-15 |
| GOOGL Alphabet Inc. |
Technology | 37,804 | $10.55M | $15.00M | -29.7% | 7.2% | 2026-05-15 |
| CRWD CrowdStrike Holdings, Inc. |
Technology | 20,199 | $4.88M | $3.00M | 62.8% | 3.4% | 2026-05-15 |
| PANW Palo Alto Networks Inc |
Technology | 12,354 | $4.35M | $3.00M | 44.8% | 3.0% | 2026-05-15 |
7. Use Cases
Common ways the politician endpoints are used.
Copy-Trading & Signals
Follow the politicians whose purchases have beaten the market. Rank members with /congress/politicians?sort=return, then poll /congress/trades?member=... for their new disclosures.
Politician Profiles
Build a profile for every member: /congress/politician returns their committees, trading statistics per period, estimated holdings and most-traded stocks.
Journalism & Accountability
Spot trades in stocks overseen by a member's committees, trades disclosed late, and heavy trading ahead of major news, with the trade date, disclosure date and amount on every record.
8. More Congressional Trading Endpoints
The Congressional Trading API is three pages and four endpoints, all on the same API key and the same {metadata, data} envelope.
/congress/tradesEvery disclosed trade with the member, owner, asset, amount, trade and disclosure dates and the return since, filterable by stock, member, party, state, side, owner, asset type and dates.
/congress/politicians · /congress/politicianRank members of Congress by volume, trades or the return of their purchases, and pull any member's profile, statistics for every period and estimated portfolio.
/congress/tickerOne stock through Congress's eyes: buyers and sellers, the party split, every member who traded it with their position, and monthly buying and selling.
Frequently Asked Questions
What is a politician stock trading API?
It is an API that returns how members of Congress trade stocks as structured data: rankings of politicians by trading volume, number of trades and returns, and each member's statistics and estimated portfolio. The Business Quant Politician Stock Trading API returns them as JSON.
How do I find the politicians with the best stock trading returns?
Call /congress/politicians with sort=return. It ranks members by the average return of their purchases against the S&P 500 over the window you choose; add current_only=true for members serving now. Each record also carries win_rate_buys, the share of purchases that beat the S&P 500.
Can I get a politician's stock portfolio through the API?
Yes. /congress/politician?member=P000197 returns Nancy Pelosi's estimated current holdings with shares, value, cost, return and weight, next to her profile, trading statistics for every period and most-traded stocks. It works with any member's ID or member slug.
Which members of Congress trade the most?
/congress/politicians?window=1Y&sort=trades ranks members by number of trades over the last year, and sort=volume ranks them by estimated dollar volume. Filter by party, state or current_only.
Is the Politician Stock Trading API free?
Yes. Both endpoints are free to use on every plan, including the free plan.