---
title: "One fund of the other layers"
method: GET
path: "/etf/{ticker}.json"
---

# One fund of the other layers

`GET /etf/{ticker}.json`

## Request

- Base URL: `https://tickerinside.com/api/v1`
- URL: `https://tickerinside.com/api/v1/etf/{ticker}.json`
- Auth: none required

The file of a fixed income, multi-asset, derivative-based, trust or pool, sponsor-file or prospectus-only ETF, which index.json lists under tickers_bond, tickers_multi_asset, tickers_derivative, tickers_trust, tickers_sponsor and tickers_prospectus. It has no holdings map and no positions count: a fund's own stocks are in held_outright, its lines in lines, and its contracts in derivatives. /fund/{ticker}.json answers for the same fund in the shape of the stock layers' files, built from this file, with a holdings map, holdings_kind and listed_pct. A fund of the stock layers asked for here, which has no file under /etf/, answers 301 to its file under /fund/, and its .csv to the CSV there.

## Path parameters

- `ticker` string, required

## Response `200`

The file. The example is a real answer, shortened: long lists and maps keep their first entries.

- LayerFund
  - `ticker` string, nullable, required: The fund's ticker, upper case.
  - `name` string, nullable, required: The fund's name.
  - `page_url` string, nullable, required: The fund's page on the site, or null when it has none yet. Link it when you quote a figure.
  - `cite_as` string, nullable, required: A citation line for a quoted figure: the fund, its source file and that file's date, a URL to check it, and the licence.
  - `cite_html` string, nullable, required: The credit as HTML: a link to the page cite_as names, then its address.
  - `identifiers` object, required: FIGI and SEC ids: /api/v1/identifiers.json.
    - `asset_type` 'etf' | 'etn' | 'stock', required: etf for a fund; etn for an exchange-traded note, a bank's debt with no holdings; stock for any other listed share: a company's stock, a depositary receipt, a closed-end fund.
    - `exchange` 'Cboe BYX' | 'Cboe BZX' | 'Cboe EDGA' | 'Cboe EDGX' | 'IEX' | 'NYSE' | 'NYSE American' | 'NYSE Arca' | 'NYSE Texas' | 'Nasdaq' | 'Nasdaq BX' | 'TXSE' | 'null', nullable, required: The exchange the security is listed on, as Nasdaq Trader's directory names it: Nasdaq, NYSE, NYSE Arca, Cboe BZX and the others its codes stand for. Null when the directory does not list it. Unlike the identifiers, it changes when the listing moves.
    - `composite_figi` string, nullable, required: The Financial Instrument Global Identifier of the US listing (the composite FIGI of exchange code US), from OpenFIGI, asked by ticker. FIGIs are in the public domain. Null until OpenFIGI answers for the ticker with one security of this asset type.
    - `share_class_figi` string, nullable, required: The FIGI of the share class, the same on every market it trades in. Null with composite_figi.
    - `cik` string, nullable, required: The SEC's Central Index Key, ten digits as EDGAR writes it, from the SEC's ticker files: the company's, or for a fund the registrant's, the trust that files for it and for its other funds. Several securities can share one, so key records on composite_figi or class_id instead. Null when the SEC's files do not list the ticker.
    - `series_id` string, nullable, required: For a fund, the SEC's id of its series (S and nine digits), which tells it apart from the other funds of its registrant: from the SEC's fund ticker file, or from the Form N-PORT its holdings are read from where the two differ. Null for a stock, and for a trust that files as a company.
    - `class_id` string, nullable, required: For a fund, the SEC's id of its share class (C and nine digits). Null when series_id is, or when it comes from the Form N-PORT and the fund ticker file lists the ticker under another series.
  - `source_layer` 'sec_nport_derivatives' | 'sec_nport_bonds' | 'sec_nport_multi_asset' | 'trust_filings' | 'sponsor_files' | 'prospectus', nullable, required: Where the holdings come from. issuer: the issuer's own file (the issuer layer). sec_nport: the fund's latest public SEC Form N-PORT filing (the SEC layer), whose holdings are the portfolio at the quarter end it describes (report_date), not on the day you read them; index.json coverage.sec_nport_age says how old the layer's holdings are on the day of the build. sec_nport_derivatives: a derivative-based fund, with its contracts apart from its holdings. sec_nport_bonds: a fixed income fund. sec_nport_multi_asset: a fund of funds or of several asset classes. trust_filings: a trust or commodity pool that files no Form N-PORT, from its own SEC filing. sponsor_files, prospectus: see /api/#sponsor-files.
  - `category` object, required: TickerInside's category (id, label, group, rule, measures): https://tickerinside.com/etf/category/
    - `id` string, nullable
    - `label` string, nullable
    - `group` string, nullable
    - `group_label` string, nullable
    - `asset_class` string, nullable
    - `rule` string, nullable
    - `basis` string, nullable
    - `as_of` string, nullable
    - `facets` object
      - `leverage` number, nullable
      - `underlying` string, nullable
    - `measured` object
      - `net_exposure_pct` number, nullable
    - `method` string, nullable
  - `as_of` string, nullable, required: The price date: the date of the price data behind every return and risk figure here. Null for an SEC-layer fund whose weekly is null.
  - `holdings_as_of` string, nullable, required: The date of the holdings: the date of the issuer's file, or for an SEC-layer fund the quarter end its filing describes. It is often weeks older than as_of, and often differs from the other fund's in a comparison, so quote it with any holdings figure. It can also be later than as_of, since some issuers date their file with the next business day.
  - `report_date` string, nullable, required: The quarter end the filing describes, the end of one of the fund's fiscal quarters. The holdings are the portfolio on that day, not on the day you read them; index.json coverage.sec_nport_age says how old the layer's holdings are on the day of the build. Quote this date with any figure from these holdings.
  - `filed` string, nullable, required: The day the filing reached the SEC, usually about 60 days after report_date.
  - `filing_url` string, nullable, required: The filing itself on SEC EDGAR, to check any figure against the source.
  - `net_assets` integer, nullable, required: The fund's net assets on report_date, in US dollars, as filed. For an ETF that is one share class of a larger fund, it covers every class.
  - `multi_class` boolean, nullable: True when the ETF is one share class of a fund that also has mutual fund classes. The holdings and weights are then the whole fund's, which is the same portfolio, and so is net_assets.
  - `stock_pct` number, nullable: How much of net assets the filing lists as common or preferred stock, long positions only. Cash, bonds, derivatives and collateral make up the rest and are not in holdings.
  - `unmapped_pct` number, nullable: The part of stock_pct that could not be tied to a ticker and is left out of holdings, usually private companies, warrants and thinly traded foreign lines. The holdings add up to stock_pct minus this.
  - `abroad` unknown
  - `expense_ratio` number, nullable, required: Annual cost as a percentage of assets: 0.03 means three basis points, or $3 a year on $10,000. From the fund's newest SEC filing that states it, after any fee waiver when the filing gives both figures, else from the market data. Null when neither gives one. Never read a null as zero.
  - `expense_ratio_gross` number, nullable, required: The total of the filing's fee table before any waiver, in percent, which counts the fees of the funds it holds; expense_ratio when there is no waiver. Null unless expense_ratio is from a filing.
  - `expense_ratio_source` 'sec_filing' | 'sec_filing_text' | 'market_data' | 'null', nullable, required: Where expense_ratio comes from. sec_filing: the fee table the filing tags by share class, from the SEC's risk/return data sets or the filing itself. sec_filing_text: the fee table's text, read in a newer prospectus, where no other figure exists or one agrees with it. market_data: undated, also where the filing read is over a year old and differs, or is not matched to the fund. Null when expense_ratio is null.
  - `expense_ratio_as_of` string, nullable, required: The day that filing reached the SEC, or null.
  - `expense_ratio_filing_url` string, nullable, required: That filing on EDGAR, or null.
  - `yield` number, nullable: Trailing twelve month distribution yield, as a percentage.
  - `aum_b` number, nullable, required: Assets under management, in billions of US dollars, rounded to 0.1, from the market data, read on aum_date. For a Vanguard fund it is the whole fund, every share class together; etf_class_net_assets_b is the ETF's own class. Null when the market data gives no size, the usual case for an SEC-layer fund, whose size is then net_assets on report_date.
  - `aum_source` 'market_data' | 'market_data_kept' | 'null', nullable, required: Where aum_b comes from. market_data: read on aum_date. market_data_kept: the latest read gave no size, so the last size known is kept, with the day it was read, for 30 days at most. Null when aum_b is null.
  - `aum_date` string, nullable, required: The day aum_b was read from the market data. Null when aum_b is null, or for a size read before the day was recorded.
  - `etf_class_net_assets_b` unknown
  - `etf_class_net_assets_as_of` unknown
  - `derivative_positions` integer, nullable: The derivative positions the filing lists, before the legs roll them up.
  - `vol` number, nullable, required: Annualised standard deviation of weekly total returns over three years, as a percentage.
  - `beta` number, nullable, required: Sensitivity to the S&P 500, from three years of weekly returns. 1.00 means it has moved with the index.
  - `mdd3` number, nullable, required: Largest peak to trough decline over three years, measured on weekly closes. Negative.
  - `r1` number, nullable, required: Cumulative total return over one year, as a percentage. Not annualised.
  - `r3` number, nullable, required: Cumulative total return over three years, as a percentage. Not annualised.
  - `r5` number, nullable, required: Cumulative total return over five years, as a percentage. Not annualised.
  - `last_close` number, nullable, required: The last closing price, raw, in the fund's trading currency. Returns use dividend-adjusted closes; this figure is the market close as traded.
  - `last_close_date` string, nullable, required: The date of that close.
  - `day_change_pct` number, nullable, required: The move from the previous close to the last, as a percentage.
  - `high_52w` number, nullable, required: The highest raw close over the last 252 trading days.
  - `low_52w` number, nullable, required: The lowest raw close over the last 252 trading days.
  - `currency` string, nullable, required: The trading currency of the price fields.
  - `held_outright` object, nullable: What the fund holds outright: a map of ticker to percent of net assets, never its contracts (see derivatives).
  - `summary` string, nullable, required: One sentence to quote: what the fund held, and for a trust the filing that says so.
  - `composition` object[], nullable: What the fund holds, as [{kind, label, pct}] in percent of net assets, largest first. kind is what the filing classes each line as: stocks, treasury_bills, treasury_notes_and_bonds, agency_debt, agency_mortgage_pools, corporate_bonds, municipal_bonds, money_market_funds, repurchase_agreements and the like. A trust lists its asset, pct 100.0 when it is the only investment and null where the filing gives no split.
    - `kind` string, nullable
    - `label` string, nullable
    - `pct` number, nullable
  - `derivatives` object[], nullable: Swaps, futures and options, one leg per instrument, underlying and direction: instrument, description, underlying or underlying_ticker, underlying_kind, direction (the fund's side; a written option is short), notional_pct (the size the filing states, in percent of net assets; null when it gives none in dollars, always for a pool; an option's is strike times shares), value_pct, positions, option_type, option_side, expires_first, expires_last.
    - `instrument` string, nullable
    - `description` string, nullable
    - `underlying` string, nullable
    - `underlying_ticker` unknown
    - `underlying_kind` string, nullable
    - `direction` string, nullable
    - `notional_pct` number, nullable
    - `value_pct` number, nullable
    - `positions` number, nullable
    - `option_type` unknown
    - `option_side` unknown
    - `expires_first` string, nullable
    - `expires_last` string, nullable
  - `underlyings` object[], nullable: The legs rolled up by underlying: long_pct and short_pct of swaps and futures, options by kind and side, instruments, net_pct, complete.
    - `underlying` string, nullable
    - `underlying_ticker` unknown
    - `underlying_kind` string, nullable
    - `long_pct` number, nullable
    - `short_pct` number, nullable
    - `options` object
    - `instruments` string[], nullable
    - `complete` boolean, nullable
    - `net_pct` number, nullable
  - `exposure` object: stocks_pct; swaps_futures_long_pct and swaps_futures_short_pct; options_notional_pct; complete; long_exposure_pct, stocks plus long swaps and futures when the fund has no short leg or option and every size is stated (TQQQ: about 300), else null.
    - `stocks_pct` number, nullable
    - `swaps_futures_long_pct` number, nullable
    - `swaps_futures_short_pct` number, nullable
    - `options_notional_pct` number, nullable
    - `complete` boolean, nullable
    - `long_exposure_pct` number, nullable
  - `exposure_notes` unknown
  - `weekly` number[], nullable, required: 156 weekly total returns as decimals, oldest first, ending at as_of. The weeks are the same in every fund and stock file, so any basket of them can be correlated without matching dates. A week is null when its return cannot be computed, because the fund's prices begin later or a weekly close is missing. An empty list for an issuer-layer fund with fewer than 110 weekly returns in those weeks, and null for a fund of another layer with fewer.
  - `weeks_end` string, nullable, required: The date the weekly series ends, always as_of. It is set even when weekly is an empty list, and null, like as_of, when weekly is null.
  - `license` string, nullable, required: The licence the data is published under.
  - `attribution` string, nullable, required: How to credit the data: a link to the page cite_as names where the medium allows one, the name where it does not.
  - `source` string, nullable, required: Where the method behind these figures is written down.
  - `structure` string, nullable: The kind of trust or pool.
  - `source_form` string, nullable: The SEC form the description was checked against.
  - `target` unknown
  - `filing_lines` integer, nullable: The lines the filing has, for a fixed income or multi-asset fund: a count, not holdings.
  - `fixed_income` object: A fixed income fund's figures, over every line of its filing: average_coupon_pct, average_maturity_years (a mortgage pool counts at its final maturity), duration_years (from the fund's own interest rate risk figures, null when it gives none), debt_pct, by_maturity, by_country and issuers [{issuer, key, pct, lines}], largest first, with issuers_total and issuers_shown_pct. Issuer overlap: the sum over shared key of the smaller pct.
    - `average_coupon_pct` number, nullable
    - `average_maturity_years` number, nullable
    - `duration_years` number, nullable
    - `debt_pct` number, nullable
    - `by_maturity` object[], nullable
      - `bucket` string, nullable
      - `pct` number, nullable
    - `by_country` object[], nullable
      - `country` string, nullable
      - `name` string, nullable
      - `pct` number, nullable
    - `issuers_total` number, nullable
    - `issuers_shown_pct` number, nullable
    - `issuers` object[], nullable
      - `issuer` string, nullable
      - `key` string, nullable
      - `pct` number, nullable
      - `lines` number, nullable
  - `lines` object[], nullable: The largest lines of the filing by name, with no identifier: issuer, kind, coupon_pct, maturity (a date, or the year of a group of mortgage pools), pct, count of filing lines it stands for and, for an ETF this API covers, ticker.
    - `issuer` string, nullable
    - `kind` string, nullable
    - `coupon_pct` unknown
    - `maturity` unknown
    - `pct` number, nullable
    - `count` number, nullable
  - `notes` string[], nullable: Caveats about the lines, in words. In a sponsor file, also how its weights are read (swap and futures weights are the sponsor's own, as notional in percent of net assets).
  - `sponsor` string, nullable: The sponsor whose site was read; in a prospectus file, its adviser.
  - `source_url` string, nullable: The address read.
  - `file_date` string, nullable: The date of the sponsor's file.
  - `date_from` string, nullable: file, page or read.
  - `read_on` string, nullable: The day it was read.
  - `served_from_earlier_file` boolean, nullable: True when an earlier night's file is kept.
  - `file_lines` integer, nullable: Rows in the sponsor's file.
  - `lines_total` integer, nullable: Lines not keyed and not a contract.
  - `form` string, nullable: 497K, 497, 485BPOS or 485APOS.
  - `registrant` string, nullable: The filing trust, or null.
  - `objective` string, nullable: The objective, quoted (at most 400 characters).
  - `objective_is_quoted` boolean, nullable: Always true.
  - `objective_cut` boolean, nullable: True when cut, ending in three dots.
  - `stated_target` unknown
  - `index` string, nullable: The index it tracks, or null.
  - `expense_ratio_pct` number, nullable: Expenses in percent, after a waiver; null if not read.
  - `inception_date` unknown
  - `holdings_note` string, nullable: Says its first holdings filing replaces this file.

## Other responses

- `301`: The address was not written the way the file is: an upper case ticker, a share class written BRK-B or BRK/B, a missing .json, or punctuation at the end. Follow the Location header (curl -L). A fund of the stock layers, which has no file under /etf/, answers 301 to /fund/{ticker}.json, in the shape of that operation (Fund), not LayerFund, and its .csv to /fund/{ticker}.csv.
- `304`: Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes.
- `404`: Not a fund of any layer: a fund of the stock layers answers 301 to its file under /fund/ instead, and index.json lists the funds of each layer. reason has_security_file when the ticker has a stock file (see security).
- `503`: The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.

---

[API](https://skmtc.dev/tickerinside/apis/tickerinside-api.md) · [All operations](https://skmtc.dev/tickerinside/apis/tickerinside-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tickerinside/apis/tickerinside-api/revisions/4dae3d8c4119?raw)
