---
title: "A screen of funds, computed"
method: GET
path: "/screen"
---

# A screen of funds, computed

`GET /screen`

## Request

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

The funds of funds.json that pass every filter given, paged. limit 1 to 100, 50 by default; a CSV page holds 1 to 50, 50 by default; holds takes a security with a stock file.

## Query parameters

- `issuer` string
- `category` string
- `layer` 'issuer_files' | 'sec_nport' | 'sec_nport_bonds' | 'sec_nport_multi_asset' | 'sec_nport_derivatives' | 'trust_filings' | 'sponsor_files' | 'prospectus'
- `expense_ratio_max` number
- `aum_min` number
- `holds` string
- `min_weight` number
- `sort` 'weight' | 'aum' | 'expense_ratio' | 'positions' | 'ticker'
- `limit` integer
- `offset` integer
- `format` 'json' | 'csv'

## Response `200`

The answer, computed when asked and kept in the edge cache for up to a day. The example is a real answer, shortened.

- Screen
  - `as_of` string, nullable, required: The date of funds.json, the price date.
  - `filters` object, required: The filters applied, as read: issuer as the data spells it; category as the category's id, whether it was asked by id or by label, and category_asked beside it when it was asked by a category name the site printed before 9 October 2026, which the screener reads for as long as v1 is served (funds-columns.json category_aliases); and holds_reads_as when the holders are read under another key: BRK.B for BRK-B, or the key an old one reads as now.
  - `sort` 'weight' | 'aum' | 'expense_ratio' | 'positions' | 'ticker', required: The order of funds: weight (with holds) or aum, largest first by default; expense_ratio and ticker smallest first; positions largest first. A fund without the figure comes last.
  - `total` integer, required: How many funds pass the filters.
  - `offset` integer, required: Where this page starts in them.
  - `limit` integer, required: How many funds a page holds at most.
  - `count` integer, required: How many funds this page holds.
  - `funds` object[], required: The funds of this page.
    - `ticker` string, required: The fund's ticker.
    - `name` string, nullable, required: Its name.
    - `layer` 'issuer_files' | 'sec_nport' | 'sec_nport_bonds' | 'sec_nport_multi_asset' | 'sec_nport_derivatives' | 'trust_filings' | 'sponsor_files' | 'prospectus', required: Its layer: issuer_files, sec_nport, sec_nport_bonds, sec_nport_multi_asset, sec_nport_derivatives, trust_filings, sponsor_files, prospectus.
    - `issuer` string, nullable: Its issuer, as funds.json names it. Null when unknown.
    - `category` string, nullable: Its category, TickerInside's own, set every night from the fund's file (its name in funds.json c; https://tickerinside.com/etf/category/). Null for a fund the build has not classified.
    - `category_id` string, nullable: The id of that category, which never changes meaning. Null with category.
    - `expense_ratio` number, nullable: Its expense ratio, in percent a year. Null when unknown.
    - `aum_b` number, nullable: Its assets in billions of US dollars, from market data. Null when unknown.
    - `net_assets` number, nullable: Its net assets in US dollars on report_date, from its filing. Null for a fund read from its issuer's file.
    - `positions` integer, nullable: How many positions its file lists.
    - `report_date` string, nullable: The quarter end its filing describes, or the day its prospectus was filed. Null for a fund read from its issuer's file.
    - `weight_pct` number, nullable: With holds: the security's weight in the fund, in percent.
    - `holdings_as_of` string, nullable: With holds: the date of the fund's file the weight is read from.
    - `holdings_source` string: With holds: issuer file or SEC Form N-PORT.
    - `fund_file` string, required: The address of its file.
    - `page_url` string, nullable: Its page. Null without one.
  - `next` string, nullable, required: The address of the next page. Null on the last one.
  - `source` object, required: The files read, under api_urls: funds.json and, for holds, the stock file; and cite_as.
    - `provider` string
    - `api_urls` string[]
    - `cite_as` string
  - `license` string, required: The licence the data is published under.
  - `attribution` string, required: How to credit the data: a link to the page of a fund the figure comes from, or to this address, where the medium allows one, the name where it does not.
  - `docs` string, required: The reference of this endpoint.

## Other responses

- `304`: Not modified: the ETag of your copy, sent in If-None-Match, is still current.
- `400`: The query was refused: reason and parameter say what to fix, and limit and asked give the figures of a call past the limits.
- `405`: Another method than GET or HEAD.
- `503`: The answer could not be computed just then: retry after a minute.

---

[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)
