Congress Trading Tracker API: House & Senate Stock Trades
Pricing
$50.00 / 1,000 up to 100 trades
Congress Trading Tracker API: House & Senate Stock Trades
House and Senate STOCK Act stock trades, one row per trade: look up a ticker, a member by name, or the newest disclosures across Congress. Updated daily.
Pricing
$50.00 / 1,000 up to 100 trades
Rating
0.0
(0)
Developer
SentiSense
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Share
Stock trades U.S. Senators and Representatives disclose under the STOCK Act, one flat row per trade. Look up a ticker to see which members traded it, look up a member by name to see what they traded, or leave both empty for the newest disclosures across all of Congress. Up to 25 tickers and 10 members in one run, from official House and Senate filings, updated daily.
Who it is for
- Traders who watch congressional buying in a name as one more smart-money signal next to insiders and institutions, and want it as rows, not PDFs.
- Journalists, researchers and compliance teams who need a member's disclosed trades in a spreadsheet instead of reading two chambers' filing systems one disclosure at a time.
- AI agents answering "did anyone in Congress buy this stock" or "what has this Senator been trading" with typed rows instead of a search session.
What you get per trade
- Who traded: member name, chamber, party, state, the official Congressional Bioguide id and a
member slug you can pass back as a
politiciansinput. - What was traded: ticker, asset description, asset type (Stock, ETF or Stock Option), and for options the type, strike and expiration.
- The trade itself: PURCHASE, SALE, EXCHANGE or OTHER, the trade date, the disclosure date, and how many days the filing trailed the trade.
- The amount: the STOCK Act range exactly as filed, such as "$15,001 - $50,000", plus the parsed
amountMinandamountMaxso ranges sort and sum. - Whose account: Self, Spouse, Child or Joint, whenever the filing says.
Built by SentiSense, which ingests news, social media, filings and market data all day and distills it
with AI. For a few congressional and insider rows next to sentiment, quote and analyst data, use the
companion actor stock-research-report.
Data by SentiSense. API docs: sentisense.ai/docs/api.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
tickers | string[] | [] | US stock or ETF symbols, e.g. ["NVDA", "TSLA"]. Up to 25 per run, case-insensitive, duplicates removed. Each returns the members who disclosed a trade in it. |
politicians | string[] | [] | Full or partial member names, e.g. ["Nancy Pelosi"] or ["pelosi"]. Up to 10 per run, resolved against the tracked directory, which includes former members. |
lookbackDays | integer | 90 | Trailing window, 1 to 365, applied to the disclosure date, since a disclosure can trail the trade by up to 45 days. |
chamber | enum | ANY | ANY, HOUSE or SENATE. Filters every lookup. |
maxTradesPerLookup | integer | 100 | Most trades returned per ticker, per member, or for the latest feed, 1 to 500. Newest disclosure first. Billed per block of up to 100 rows. |
Leave both tickers and politicians empty to get the latest disclosures across Congress.
Output
One dataset row per disclosed trade, flat and CSV-friendly. Illustrative rows, every value invented. A ticker lookup row:
{"lookupType": "ticker", "lookup": "NVDA","politicianName": "Example Member", "chamber": "HOUSE", "party": "Democrat", "state": "CA","bioguideId": "X000001", "memberSlug": "Example-Member","ticker": "NVDA", "assetDescription": "NVIDIA Corp Common Stock", "assetType": "Stock","optionType": null, "optionStrike": null, "optionExpiration": null,"transactionType": "PURCHASE", "transactionDate": "2025-10-15", "disclosureDate": "2025-11-01","disclosureDelayDays": 17,"amountRange": "$15,001 - $50,000", "amountMin": 15001, "amountMax": 50000,"owner": "Spouse"}
A member lookup row for an options trade:
{"lookupType": "member", "lookup": "Example Senator","politicianName": "Example Senator", "chamber": "SENATE", "party": "Republican", "state": "TX","bioguideId": "X000002", "memberSlug": "Example-Senator","ticker": "AAPL", "assetDescription": "Apple Inc Call Option", "assetType": "Stock Option","optionType": "CALL", "optionStrike": 250, "optionExpiration": "2025-12-19","transactionType": "SALE", "transactionDate": "2025-09-30", "disclosureDate": "2025-10-28","disclosureDelayDays": 28,"amountRange": "$1,001 - $15,000", "amountMin": 1001, "amountMax": 15000,"owner": "Self"}
Reading the fields:
lookupTypeandlookupsay which input produced the row:tickerwith the symbol,memberwith the member's display name, orlatestwith the literal"latest"when both inputs were empty. Rows are newest disclosure first within each lookup.- Amounts are ranges by law. A STOCK Act filing reports a band, never a dollar figure, so
amountRangeis the band as filed andamountMin/amountMaxare its parsed edges. Do not readamountMaxas what was spent. disclosureDateis what the window filters on, anddisclosureDelayDaysis the gap between the trade and its filing. The law allows up to 45 days, so a 90-day window on disclosures can carry trades from more than four months back.transactionTypeisPURCHASE,SALE,EXCHANGEorOTHER.assetTypeisStock,ETForStock Option. The threeoption*fields are set only on option rows whose filing states the type, strike and expiration; many option filings do not, so expectnullthere too.ownerisSelf,Spouse,ChildorJoint, ornullwhen the filing leaves it blank.chamberisHOUSEorSENATE.bioguideIdis the official Congressional Bioguide identifier, so the same person matches across spellings of the name.- Uncharged marker rows: a ticker with nothing disclosed in the window returns
{"lookupType": "ticker", "lookup": "XYZ", "error": "no_trades"}, which is normal for most stocks. A name that matches nobody returnsmember_not_found; a name that fits several members (for example "Kelly") returnsmember_ambiguouswith acandidatesarray of up to 5 names to pick from. Failed requests returnrequest_failedorhttp_<status>. None of these is charged.
Pricing
$0.05 per block of up to 100 trades a lookup returns, rounded up. A ticker or member lookup with 1 to 100 trades costs $0.05, one with 101 to 200 costs $0.10, and a full 500-trade latest feed costs $0.25. Lookups with no trades, unknown or ambiguous names and failed requests cost nothing. Five tickers and two members, each with between 1 and 100 trades, cost $0.35.
FAQ
How fresh is the data? Updated daily from official House and Senate STOCK Act disclosures. The lag
that matters is the law's: a member has up to 45 days to disclose a trade, so the newest rows describe
trades from days to weeks ago. disclosureDelayDays tells you each row's gap.
Why does my ticker come back with no_trades? Because nobody in Congress disclosed a trade in it
during the window, which is the normal case. Several thousand trades a year are disclosed across all of
Congress; a heavily traded mega cap can show dozens in a year, while many stocks show none. Widen lookbackDays to 365 for a quieter stock. The row is free.
How do I look up a member? Pass the name, full or partial, in politicians: "Nancy Pelosi" and
"pelosi" resolve to the same member. An exact name match wins outright. If a partial name fits several
members, you get an uncharged member_ambiguous row listing up to five candidates; pass one of those
names back. Former members are in the directory too.
What does the latest feed give me? Leave tickers and politicians empty and you get the newest
disclosures across all of Congress, newest first, up to maxTradesPerLookup rows, filtered by chamber
and lookbackDays like any other lookup, and priced the same way: the default 100 rows cost $0.05 and the
500-row maximum costs $0.25.
Can I get exact dollar amounts? No, nobody can from these filings. The STOCK Act asks members to
report a range, so amountRange is the most precise figure that exists. amountMin and amountMax
make the ranges sortable and summable.
Does it cover options and ETFs? Yes. assetType is Stock, ETF or Stock Option, and option
rows carry the type, strike and expiration when the filing states them (often it does not). A ticker lookup on an ETF symbol
returns the members who disclosed trading that fund.
How often should I run it? Once a day is enough: filings are processed daily and a trade can take weeks to be disclosed, so there is nothing intraday to catch. A daily run with the latest feed plus your watchlist tickers covers both angles.
Educational and informational use only. Not investment advice.