# TickerTrace > Free, open API and MCP server for daily institutional ETF holdings changes: what ARK, Avantis, YieldMax, Roundhill and other fund families bought and sold, with conviction-scored signals. TickerTrace scrapes fund-provider websites every day, normalizes the holdings, detects position changes, and scores them. The data is free and open: no API key, no signup, read-only. Signals are based on active weight (a position's weight change after subtracting price-only drift and creation/redemption flows), not raw weight change, so a stock rising in price is not mistaken for a fund buying it. This is a measure of fund activity, not investment advice. Use /api/v1/funds or /api/v1/stats for the current list of tracked funds and providers. ## API - [Base URL](https://api.tickertrace.pro): all endpoints below are relative to this - [OpenAPI spec](https://api.tickertrace.pro/openapi.json): machine-readable schema (also at https://tickertrace.pro/openapi.json) - [Interactive docs](https://api.tickertrace.pro/docs): Swagger UI - [/api/v1/signals](https://api.tickertrace.pro/api/v1/signals): top buying and selling signals with conviction scores - [/api/v1/changes](https://api.tickertrace.pro/api/v1/changes?provider=ARK&direction=buying): guarded equity changes (daily/weekly/monthly; provider, fund, direction, category, sector, q, type). Each row's `direction` (buying/selling/unchanged) is the split-adjusted share-count direction (what was traded; the ADD/TRIM badge); `activeWeightDelta` is the drift-removed signal and can legitimately carry the opposite sign (a buy smaller than the fund's inflow). The `direction=` filter keys off the signal sign. Legacy limit=50 (max 5000). Add page=1&size=2000 for uncapped paging with total/page/size/pages/snapshot; pass snapshot on later pages (409: restart). Stable order: absolute active Δ descending, then fund/ticker/type. format=csv exports every filtered row, ignoring limit/page/size - [/api/v1/fund/{fund}](https://api.tickertrace.pro/api/v1/fund/ARKK): one fund's top holdings, options and AUM - [/api/v1/ticker/{ticker}](https://api.tickertrace.pro/api/v1/ticker/TSLA): cross-fund view of who is buying or selling a ticker - [/api/v1/sectors](https://api.tickertrace.pro/api/v1/sectors): sector-level weight flows - [/api/v1/divergences](https://api.tickertrace.pro/api/v1/divergences): same ticker, opposite directions across funds - [/api/v1/options/{underlying}](https://api.tickertrace.pro/api/v1/options/AMD): one underlying's option legs across funds, grouped into synthetics, spreads, collars and rolls - [/api/v1/holdings](https://api.tickertrace.pro/api/v1/holdings?fund=ARKK&sort=absdelta&page=1&size=50): every holding row (equities, options, cash, treasuries, swaps) with raw and drift-adjusted `activeWeightDelta` (null while a fund is catching up) and snapshot `dte`; filters `fund`, `asset`, `q`, `sort`, `dir`, paging `page`/`size`, and `format=csv` for an uncapped export - [/api/v1/fund/{fund}/rotation](https://api.tickertrace.pro/api/v1/fund/ULTI/rotation): theme/sector allocation rotation report for ULTI and ULTY (other funds return 404) - Delta period: every response with deltas (`/api/v1/fund/{fund}`, `/api/v1/ticker/{ticker}`, `/api/v1/changes`, `/api/v1/holdings`, `/api/v1/signals`) also carries `previousDate` (the earlier snapshot the deltas are measured against) and `comparisonTradingDays` (sessions between it and `asOfDate`; 1 = consecutive, more across a holiday or missed scrape). A catch-up fund's deltas are null; its span is `catchUpSince` to `asOfDate`. - [/api/v1/options-listings/schedule](https://api.tickertrace.pro/api/v1/options-listings/schedule): the MWF Elite 0DTE symbol list and the Mon/Wed/Fri expiration calendar - [/api/v1/funds](https://api.tickertrace.pro/api/v1/funds): all tracked funds - [/api/v1/stats](https://api.tickertrace.pro/api/v1/stats): global stats, including the fund count and as-of date `/api/v1/signals` and `/api/v1/briefing` also take `limit` (1 to 200): the same ranked order, just longer lists (signals buying and selling, briefing top buys/sells, multi-provider and streaks). Omit it for the usual top lists; the response echoes `limit` when you send one. Most list endpoints accept `category=active-equity|option-income` to separate stock-pickers from option-income funds. More endpoints (institutional flow, income funds, layering patterns, signal performance, options listings) are in the OpenAPI spec. ## Dollar estimates and category-filtered briefings Existing `aum` and `consensusAum` values are in billions of USD. Additive `aumUsd` and `consensusAumUsd` use whole US dollars. `positionUsd` is an estimated signed position value (weight percent × latest fund AUM / 100), not underlying option notional. `activeFlowUsd` is estimated signed active allocation flow, not execution proceeds. Missing AUM produces null values, including legacy `aum`, combined AUM and dollar estimates. Layering entries use latest AUM with their historical entry weights; `positionUsdTotal` totals these estimates and is null if any AUM is missing. - `/api/v1/briefing?category=active-equity`: filter before conviction scoring; omit category for the historical mixed-funds behavior. Use active-equity for stock conviction and option-income for overlay activity. ## MCP Remote MCP server (streamable HTTP, open, read-only): https://api.tickertrace.pro/mcp Claude Code: `claude mcp add --transport http tickertrace https://api.tickertrace.pro/mcp` Also works as a custom connector in Claude Desktop/claude.ai and in Cursor. 21 tools: - get_signals, get_changes, get_holdings_changes: buying/selling signals and position changes - get_fund_detail, get_ticker_detail, get_stock_activity: per-fund, per-ticker and per-stock views - get_sector_flow, get_divergences, get_layering_patterns: sector flows and cross-fund patterns - get_market_summary, get_briefing, get_global_stats: summaries and stats - get_institutional_flow, get_institutional_trend: institutional flow - list_all_funds, list_all_tickers: directories - get_income_overview, get_income_fund_detail: option-income funds - get_options_listings, get_option_structures: options data - get_signal_performance: how past signals played out ## Optional - [GitHub](https://github.com/tradernetwork/etf-holdings-tracker): source code and methodology - [Dashboard](https://tickertrace.pro/dashboard): signals and heatmaps in the browser - [Changes](https://tickertrace.pro/changes): daily position changes - [Funds](https://tickertrace.pro/funds): fund profiles - [Income funds](https://tickertrace.pro/income): option-income fund view - [TraderMatrix](https://www.tradermatrix.pro/?ref=MPHINANCE): trading agent that consumes this data (referral link) ## Stock history freshness `/api/v1/stock/{ticker}` returns AUM-blended history and day/week/month institutional horizons from a shared per-snapshot index. Carry-forward-to-fresh funds are excluded from the affected comparisons. A chart stitched to remove catch-up jumps adds `historyAdjustedForCatchUp: true`: earlier chart weight levels are adjusted, while latest exposure and historical ownership counts remain actual observations. Monthly windows starting before a gap retain legitimate multi-week changes. Ordinary payloads remain unchanged.