Skip to content
/api/v1/nport/by-ticker/{ticker}

Monthly filing history for a fund by ticker

Resolve a fund/class ticker to its SEC series, then return that fund's published N-PORT history, newest month first.

5 tokensoffset paginationSince 3.139.0

Why use this

The same monthly history as /by-series/{series_id} without needing the SEC id first. meta.resolution reports exactly how the ticker resolved (winning class claims and their source), so a surprising history is explainable from the response itself.

Common use case

Fetching an ETF's filing timeline straight from its ticker (e.g. IVV), including single-fund unit investment trusts (e.g. SPY) that have no series id and resolve by registrant CIK instead.

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. 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

NameInRequiredDefaultAllowedDescriptionExample
tickerpathrequiredFund/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
limitqueryoptional100Rows per page (1-500).100
offsetqueryoptional0Pagination offset.0

Response schema

FieldTypeNullableDescription
data[]arraynoFiling 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.resolutionobjectno{ 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.paginationobjectno{ total: null, limit, offset, has_more } — page forward with offset while has_more is true.

Sample response

·
  • "status": "success"
  • "data":
    ]
  • "meta":
    • "resolution":
    • "pagination":
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/nport/by-ticker/IVV?api_Token=YOUR_API_KEY&limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).