---
title: "The US-listed ETFs, and their coverage"
method: GET
path: "/universe.json"
---

# The US-listed ETFs, and their coverage

`GET /universe.json`

## Request

- Base URL: `https://tickerinside.com/api/v1`
- URL: `https://tickerinside.com/api/v1/universe.json`
- Auth: none required

One row for each ETF in Nasdaq Trader's symbol directory: ticker, name, fund or exchange-traded note, and the layer that covers it or why it is not covered yet. The coverage is measured here over the funds only; the same block is in index.json and status.json. A ticker of the list with no fund file answers 404 at /api/v1/fund/{ticker}.json; this file says why.

## Response `200`

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

- Universe
  - `as_of` string, nullable, required: The price date across the whole site.
  - `available` boolean, nullable, required: False, with an empty funds list, when the list of US-listed ETFs could not be read for this build.
  - `source` string, nullable, required: Nasdaq Trader's symbol directory.
  - `file_date` string, nullable, required: The day of the directory file.
  - `sentence` string, nullable, required: The measured coverage in one sentence to quote.
  - `coverage` object, required: The measure, the block of index.json coverage.universe: etfs, covered (with holdings), pct, by_layer, prospectus, with_file, with_objective, not_covered by reason, etns, other_products, outside_universe, file_date, source, sentence, all_us_etfs, headline, claim and assets.
    - `etfs` number, nullable: How many funds the list has, less the notes and other lines in etns and other_products.
    - `covered` number, nullable: How many of them have a holdings file here (not a prospectus file).
    - `pct` number, nullable: covered over etfs, in percent, to one decimal.
    - `by_layer` object: covered by layer: issuer_files, sec_nport, sec_nport_derivatives, sec_nport_bonds, sec_nport_multi_asset, trust_filings, sponsor_files.
      - `issuer_files` number, nullable
      - `sec_nport` number, nullable
      - `sec_nport_derivatives` number, nullable
      - `sec_nport_bonds` number, nullable
      - `sec_nport_multi_asset` number, nullable
      - `trust_filings` number, nullable
      - `sponsor_files` number, nullable
    - `prospectus` number, nullable: How many more have a prospectus file.
    - `with_file` number, nullable: covered plus prospectus.
    - `with_objective` number, nullable: How many files quote the fund's objective.
    - `not_covered` object: The funds with no file, by reason code; the reasons object says what each means.
      - `no_prospectus_found` number, nullable
      - `no_filing_yet` number, nullable
      - `not_in_sec_list` number, nullable
      - `other_fund` number, nullable
      - `stale_filing` number, nullable
    - `etns` number, nullable: Lines that are exchange-traded notes, debts of their banks and not funds.
    - `other_products` number, nullable: Other lines that are not funds (a trust certificate).
    - `outside_universe` number, nullable: Fund files for tickers the list no longer has.
    - `file_date` string, nullable: The day of the directory file.
    - `available` boolean, nullable: True when the list was read.
    - `source` string, nullable: Where the list comes from.
    - `sentence` string, nullable: The measured coverage in one sentence to quote.
    - `all_us_etfs` boolean, nullable: True only when each ETF of the directory has a file tonight, a holdings file or a prospectus file. It does not say that every ETF has holdings: covered counts those.
    - `headline` string, nullable: The words the claim opens with, while all_us_etfs is true, else null. Quote them with the counts of claim, never alone.
    - `claim` string, nullable: The headline with its counts (the ETFs with a file, how many have holdings, how many the objective their prospectus states), or null while all_us_etfs is false. The exact counts are in sentence.
    - `assets` object: Coverage of assets from holdings files only: net_assets_b, with_holdings_b, pct, funds_sized, funds_unsized, unsized_with_holdings, basis, sentence.
      - `net_assets_b` number, nullable
      - `with_holdings_b` number, nullable
      - `pct` number, nullable
      - `funds_sized` number, nullable
      - `funds_unsized` number, nullable
      - `unsized_with_holdings` number, nullable
      - `basis` string, nullable
      - `sentence` string, nullable
  - `layers` object, required: What each layer of fund files is.
    - `issuer_files` string, nullable
    - `sec_nport` string, nullable
    - `sec_nport_derivatives` string, nullable
    - `sec_nport_bonds` string, nullable
    - `sec_nport_multi_asset` string, nullable
    - `trust_filings` string, nullable
    - `sponsor_files` string, nullable
    - `prospectus` string, nullable
  - `reasons` object, required: Why a fund has no fund file, by code.
    - `etn` string, nullable
    - `other_product` string, nullable
    - `no_filing_yet` string, nullable
    - `not_in_sec_list` string, nullable
    - `other_fund` string, nullable
    - `stale_filing` string, nullable
    - `no_prospectus_found` string, nullable
  - `funds` array[], nullable, required: One row for each US-listed ETF and each exchange-traded note the directory flags: [ticker, name, kind, layer, why]. kind: etf, etn (a debt of the issuing bank, not a fund) or other. layer: how the fund is covered, null when it is not yet, and why is then its reason.
    - string[]
  - `license` string, nullable, required: The licence the data is published under.
  - `attribution` string, nullable, required: How to credit the data: a link to this file where the medium allows one, the name where it does not.

## Other responses

- `304`: Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes.
- `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/66a3e0d66a02?raw)
