Congress Trading Tracker API: House & Senate Stock Trades avatar

Congress Trading Tracker API: House & Senate Stock Trades

Pricing

$50.00 / 1,000 up to 100 trades

Go to Apify Store
Congress Trading Tracker API: House & Senate Stock 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

SentiSense

Maintained by Community

Actor 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 politicians input.
  • 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 amountMin and amountMax so 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

FieldTypeDefaultNotes
tickersstring[][]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.
politiciansstring[][]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.
lookbackDaysinteger90Trailing window, 1 to 365, applied to the disclosure date, since a disclosure can trail the trade by up to 45 days.
chamberenumANYANY, HOUSE or SENATE. Filters every lookup.
maxTradesPerLookupinteger100Most 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:

  • lookupType and lookup say which input produced the row: ticker with the symbol, member with the member's display name, or latest with 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 amountRange is the band as filed and amountMin / amountMax are its parsed edges. Do not read amountMax as what was spent.
  • disclosureDate is what the window filters on, and disclosureDelayDays is 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.
  • transactionType is PURCHASE, SALE, EXCHANGE or OTHER. assetType is Stock, ETF or Stock Option. The three option* fields are set only on option rows whose filing states the type, strike and expiration; many option filings do not, so expect null there too.
  • owner is Self, Spouse, Child or Joint, or null when the filing leaves it blank. chamber is HOUSE or SENATE. bioguideId is 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 returns member_not_found; a name that fits several members (for example "Kelly") returns member_ambiguous with a candidates array of up to 5 names to pick from. Failed requests return request_failed or http_<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.