Who owns what, who's buying, who's crowding in, across 4,080 institutional filers and 79,500,000 holdings. CUSIP→ticker resolved, amendments handled, quarter-over-quarter deltas computed, every datapoint traced to the filing it came from. Built for AI agents: MCP-native + REST.
Where the most funds opened or added a position, straight off this API (signal.crowding, mode='bought').
The clean activation path is simple: create a key, ask your agent who owns a ticker, then follow the provenance link back to the SEC filing. A new workspace gets a one-time 500-credit evaluation grant. Starter, Developer, and Pro add monthly included credits for real workflows.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://arkolith.com/api/v1/stocks/NVDA"
Use Arkolith to show which funds own NVDA, which funds added it last quarter, and link each claim to the source filing.
What 13F data actually takes to acquire and keep clean
| The trapped part | DIY from the source | With Arkolith |
|---|---|---|
| CUSIP → ticker | 13Fs identify securities by CUSIP, a proprietary identifier you must license or reverse-map yourself. | Every position resolved to ticker + issuer via our identifier service. You query by ticker. |
| Amendments | 13F/A restatements silently supersede originals; naive pipelines double-count or serve stale books. | Supersession handled: you always read the latest non-superseded filing per fund. |
| Quarter deltas | The signal is the CHANGE (new / added / reduced / exited). You must diff filings yourself, per fund, every quarter. | fund.holdings.diff and signal.crowding ship the change set precomputed. |
| Point-in-time | Backtests leak look-ahead bias unless you reconstruct what was known on each date. | fund.holdings.as_of selects by exact SEC acceptance time, including same-day amendments. Date-only cutoffs mean end-of-day UTC; incomplete clocks are refused. |
Live from the MCP catalog, also available as REST endpoints
fund.list1 crList the institutional managers (hedge funds, asset managers) that file SEC 13F reports, ranked by AUM. Returns each fund's name, AUM, latest reported quarter, holdings count, and its SEC CIK — the id you pass to fund.holdings, fund.holdings.diff, fund.holdings.as_of, and fund.position.history. Start here to find which funds to track. Public-domain SEC EDGAR data.
copy.leaderboard1 crRank the institutional managers (13F funds) worth copying. Each row is a followable actor — name, manager, book size (AUM), holdings count, latest reported quarter, follower count, the slug (for copy.target.get), and CIK (to follow via watchlist / pull via fund.holdings). Price-derived copy-return fields are withheld unless the price-source policy and freshness gate are green. The agent-native 'who should I copy?' entry point. Sort by book size, recent activity, follower count, or gated track record. Public-domain SEC EDGAR 13F data.
copy.target.get1 crGet one copy target (13F fund) by slug (from copy.leaderboard): its latest disclosed book — the top holdings you'd mirror, each with % of book and its quarter-over-quarter change (NEW/ADDED/REDUCED/EXITED) — plus book size, latest quarter, and filing history. Pair with watchlist tools to follow it. Public-domain SEC EDGAR 13F data.
fund.holdings1 crLatest reported 13F equity holdings for a fund (by SEC CIK) — top positions by value, each with its CUSIP and quarter-over-quarter change (new/added/reduced/exited). Public-domain SEC EDGAR data.
fund.holdings.as_of5 crPoint-in-time 13F holdings as publicly knowable at a cutoff, selected by the SEC acceptance timestamp with no filing-date fallback. YYYY-MM-DD means end-of-day UTC; timestamps must include a timezone. This is source-publication replay, not a claim about when Arkolith first stored or served the filing.
fund.position.history2 crTime-series of a single security position (by ticker or CUSIP) across a fund's filings — shares and USD value per quarter.
fund.holdings.diff3 crQuarter-over-quarter change set for a fund's most recent filing: new positions, adds, reduces, exits, and reviewed reporting-universe changes.
stock.owners2 crInstitutional (13F) owners of a stock by ticker — which funds hold it, position value, share count, and the quarter-over-quarter change. The 'who owns this stock' join across all tracked funds.
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.
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).
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: "holding:BRK-NVDA-2026Q1" }
{
"source_url": "https://www.sec.gov/Archives/edgar/data/...",
"fetched_at": "2026-06-04T07:12:03Z",
"parser": "edgar-13f v2.4.1",
"license": "public domain (SEC EDGAR)"
}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 a one-time grant of 500 evaluation credits to verify 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