ArkolithDataCongressional trades
STOCK Act PTRs · US House · parsed from the source PDFs

What Congress is trading, as an API

56,919 parsed trade line items from 8,353 STOCK Act disclosures across 423 members: buy/sell, disclosed amount range, trade and notification dates, self/spouse owner. The disclosures are PDFs behind a daily index; there is no official API. We parse them so your agent can query them.

Start your $1 trial Read quickstartCompare plans$1 trial with 300 research credits for 3 days to start · paid starts at $29/mo
Parsed trades
56,919
Disclosures
8,353
Members
423

Live demo: congressional net buying, last 90 days

Tickers members are net-buying, by disclosed amount-range midpoint, straight off this API (congress.trades).

#TickerNet bought
1
BE
$7.5M
2
INTC
$1.1M
3
XOM
$326K
4
SPCX
$239K
5
HONAV
$173K
6
FWONK
$146K
7
LTH
$121K
8
CHRW
$97K
9
LLY
$67K
10
CB
$65K

Values are amount-range midpoints. The STOCK Act discloses buckets, not exact sizes. Every figure traces to the member's filed PTR via provenance.get.

Build it yourself vs. one key

What congressional trade data actually takes to acquire and keep clean

The trapped partDIY from the sourceWith Arkolith
PDFs, not dataHouse disclosures are PDFs behind a daily XML index; Senate adds a session gate and scanned images needing OCR.Parsed line items: member, ticker, side, amount range, dates, owner.
No incumbent APIThere is no official STOCK Act API. You build the scraper, the parser, and the retry logic, then maintain them forever.congress.trades: query by member or ticker, today.
NormalizationFree-text asset names → tickers, amount buckets → comparable values, self vs spouse vs dependent ownership.Tickers resolved, ranges normalized, owner classified, joinable against 13F and Form 4.
The cross-source joinThe real signal is agreement: Congress AND insiders AND funds on the same name. That is three pipelines to build.signal.confluence joins all three legs in one call.

The tools your agent gets

Live from the MCP catalog, also available as REST endpoints

6 tools
congress.disclosures.listfree

List the US House financial-disclosure filing INDEX for a year (STOCK Act). filingType 'P' = Periodic Transaction Report (stock trades). Returns one row per filing with a link to the source PDF — this is the index, NOT parsed trades. Parsed line-items (member, ticker, buy/sell, amount range) are available via congress.trades (US House live; Senate being added). Public-domain US House Clerk data. Free (0 credits).

congress.member.searchfree

Find US House representatives who filed financial disclosures in a year, by name (filing index — parsed trades available via congress.trades, US House live; Senate being added). Free (0 credits).

congress.tradesfree

Parsed STOCK Act transaction line-items: actual congressional stock trades by ticker or by member — buy/sell, the disclosed amount range, trade + notification dates, and owner (self/spouse). Each row links to its source PTR PDF. US House (e-filed) is live; Senate is being added. Pass `ticker` OR `member`. Free (0 credits).

signal.trending5 cr

Stocks trending on SEC filings, not prices or page views: the ranking behind https://arkolith.com/trending. Blends four measured signals, each z-scored against its own distribution in the window: qualified insider buy clusters (2+ distinct open-market buyers, $10K+ each), open-market insider trade surges (3+ Form 4 buys/sells at 2x the name's own 90-day pace; awards, exercises and tax withholding never count), 13F holder momentum (quarter over quarter) and rising Google search interest. Every row carries per-signal evidence numbers and plain-English reasons, strongest first. Cost: 5 credits per call.

signal.crowding5 cr

Cross-fund 'smart money' consensus from every tracked fund's latest 13F: the securities the MOST funds are collectively holding (mode='held'), buying this quarter (mode='bought' — NEW/ADDED cluster-buys), or selling (mode='sold' — REDUCED). The inverse of stock.owners: surfaces WHAT to look at, ranked by how many funds agree. Served from the consensus snapshot the refresh-signals cron rebuilds twice daily (computed_at and snapshot_age_hours in the response); never computed live, and refused uncharged if the snapshot is older than 26h. Cost: 5 credits per call.

signal.confluence10 cr

The moat join — where do informed INSIDERS (Form 4 open-market buys), institutional SMART MONEY (13F cluster-buys), and CONGRESS (US House STOCK Act trades) AGREE? Pass a `ticker` for all three legs on one name (insider + fund + congress net buy/sell + a verdict that escalates to triple_confluence_buy when all three are buying). Omit `ticker` for the market-wide ranked list — insider×fund names, surfaced first when Congress is buying too (triple_confluence). Joined on ticker — never a fuzzy name match. Each leg carries source provenance; congress $ are amount-range midpoints (approximate). Cost: 10 credits per call.

Every datapoint traced to its source

provenance.get: anti-hallucination grounding for agents

Any figure your agent quotes can be traced to the primary source: the origin URL, the fetch timestamp, and the parser version that produced it. Your agent cites the filing. It doesn't hallucinate one. That audit trail is first-class on every tool, REST and MCP.

> provenance.get { datapoint: "congress:2026-PTR-..." }
{
  "source_url": "https://disclosures-clerk.house.gov/...",
  "fetched_at": "2026-06-05T09:30:14Z",
  "parser": "congress-ptr v1.3.2",
  "license": "public domain (US House Clerk)"
}

Worked example

Which members of Congress bought defense stocks

The same disclosure data, read as a question: who filed defense-sector purchases, when they filed them, and the primary-source PTR behind every row.

Query every congressional trade from your agent in 60 seconds

Mint a key, add one line to Claude Code (or any MCP client), and your agent can answer money questions against the live dataset. Metered per call, with 300 research credits over three days for $1 to try the data first.

Start your $1 trial Read quickstartCompare plans$1 trial with 300 research credits for 3 days to start · paid starts at $29/mo
Claude Code
claude mcp add --transport http arkolith \
  https://arkolith.com/api/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

REST too: curl -H "Authorization: Bearer KEY" https://arkolith.com/api/v1/… · full docs