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.
Tickers members are net-buying, by disclosed amount-range midpoint, straight off this API (congress.trades).
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.
What congressional trade data actually takes to acquire and keep clean
| The trapped part | DIY from the source | With Arkolith |
|---|---|---|
| PDFs, not data | House 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 API | There 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. |
| Normalization | Free-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 join | The 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. |
Live from the MCP catalog, also available as REST endpoints
congress.disclosures.listfreeList 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.searchfreeFind 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.tradesfreeParsed 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 crStocks 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 crCross-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 crThe 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.
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
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.
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.
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