/api/v1/nport/by-ticker/{ticker}Monthly filing history for a fund by ticker
Find a fund or ETF's monthly holdings filing by ticker. Returns published N-PORT filing history, newest month first, with as_of reporting dates and accession_number. Each row's accession_number identifies the filing whose complete portfolio holdings GET /api/v1/nport/{accession}/holdings returns for that row's as_of date. The history is paginated; meta.pagination.has_more reports whether older months remain.
Why use this
Common use case
N-PORT filings identify funds by SEC series id, while markets identify them by ticker — this endpoint is the bridge. The ticker-to-series join is built from four sources and resolved per share class by a fixed precedence: the filing's own acceptance-header roster (source sgml, present on live-ingested filings), the SEC's N-CEN annual-report datasets (ncen), the SEC's mutual-fund ticker file (mf), and a registrant-CIK fallback (cik) for single-fund unit investment trusts that appear in none of the above (SPY is the canonical example). Disagreements between sources are never silently overwritten — the winning claim per class is served and reported in meta.resolution.
A regular fund ticker resolves to its series and serves that series' monthly history. A trust-level match (source cik) serves the registrant's whole-fund filings, which carry no series id.
A fund whose trust received its SEC series id partway through is served as one history. When the trust's published reports carry exactly one series id, its earlier reports without one are returned together with the series' reports, exactly as filed (series_id null): QQQ filed 25 reports without a series id and, after it became an open-end ETF on December 22, 2025, reports under series S000101292, and this lookup returns all 28. A trust with several series keeps the series-only behavior, and if a second series appears later the attribution stops at that series' first report. GET /api/v1/nport/by-series/{series_id} stays literal to the SEC id and returns only the reports filed under it.
The row shape is identical to GET /api/v1/nport/by-series/{series_id}.
For just the AUM numbers over time (the chartable series), prefer GET /api/v1/nport/funds/{ticker}/aum-history — same resolution, leaner rows, cursor pagination.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| ticker | path | required | — | — | Fund/class ticker, case-insensitive. Resolution precedence per class: the filing's own header roster (sgml) > the SEC's N-CEN datasets (ncen) > the SEC mutual-fund ticker file (mf) > registrant-CIK fallback for single-fund trusts (cik). Unknown tickers return 404 UNKNOWN_TICKER. | IVV |
| limit | query | optional | 100 | — | Rows per page (1-500). | 100 |
| offset | query | optional | 0 | — | Pagination offset. | 0 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| data[] | array | no | Filing summary rows, newest reporting month first — same row shape as /latest. For a single-fund trust resolved by CIK, rows are the trust's whole-fund filings (series_id null). |
| meta.resolution | object | no | { ticker, matches: [{class_id, series_id, reg_cik, source}] }: the winning ticker claim per share class after source-precedence resolution. A ticker mapping to a series serves that series' months; a trust-level (cik-source) match serves the registrant's series-less filings. |
| meta.pagination | object | no | { total: null, limit, offset, has_more } — page forward with offset while has_more is true. |
Sample response
- "status": "success"
- "data":
- "meta":
- "resolution":
- "pagination":
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/v1/nport/by-ticker/IVV?limit=100&offset=0" \
-H "X-API-Key: YOUR_API_KEY"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).