TickerInside Screen API

The Screen API from TickerInside — 1 operation(s) for screen.

Business capability
Market & Financial Data AE-230.20

Operations 1

GET /screen A screen of funds, computed #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tickerinside:tickerinside-screen-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tickerinside-screen-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TickerInside Screen API
  version: '1'
  summary: Holdings of 5,433 US ETFs, which ETFs hold a stock, and overlap, as static JSON.
  description: TickerInside is an open, machine-readable database of US ETF holdings, with the source and date of each holding.
  termsOfService: https://tickerinside.com/terms/
  contact:
    name: TickerInside
    email: contact@tickerinside.com
    url: https://tickerinside.com/api/
  license:
    name: CC BY 4.0
    identifier: CC-BY-4.0
servers:
- url: https://tickerinside.com/api/v1
  description: Static JSON files, and five answers computed from them when asked. No key.
security: []
tags:
- name: Screen
paths:
  /screen:
    get:
      operationId: getScreen
      summary: A screen of funds, computed
      description: 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.
      externalDocs:
        url: https://tickerinside.com/api/#screen
      parameters:
      - name: issuer
        in: query
        required: false
        description: The issuer, as funds.json names it, whatever the case.
        schema:
          type: string
        example: Vanguard
      - name: category
        in: query
        required: false
        description: The category, by its id or its label, whatever the case (https://tickerinside.com/etf/category/).
        schema:
          type: string
        example: us-large-blend
      - name: layer
        in: query
        required: false
        description: The layer.
        schema:
          type: string
          enum:
          - issuer_files
          - sec_nport
          - sec_nport_bonds
          - sec_nport_multi_asset
          - sec_nport_derivatives
          - trust_filings
          - sponsor_files
          - prospectus
        example: issuer_files
      - name: expense_ratio_max
        in: query
        required: false
        description: The highest expense ratio, in percent a year.
        schema:
          type: number
          minimum: 0
          maximum: 100
        example: 0.1
      - name: aum_min
        in: query
        required: false
        description: The smallest size, in billions of US dollars.
        schema:
          type: number
          minimum: 0
          maximum: 100000
        example: 1
      - name: holds
        in: query
        required: false
        description: 'A security with a stock file: only the funds that hold it. BRK-B reads as BRK.B.'
        schema:
          type: string
        example: NVDA
      - name: min_weight
        in: query
        required: false
        description: 'With holds: the least weight of the security in the fund, in percent.'
        schema:
          type: number
          minimum: 0
          maximum: 100
        example: 5
      - name: sort
        in: query
        required: false
        description: 'The order: weight with holds, aum by default.'
        schema:
          type: string
          enum:
          - weight
          - aum
          - expense_ratio
          - positions
          - ticker
        example: aum
      - name: limit
        in: query
        required: false
        description: How many funds a page holds, 1 to 100, 50 by default; for CSV 1 to 50, 50 by default.
        schema:
          type: integer
          minimum: 1
          maximum: 100
        example: 50
      - name: offset
        in: query
        required: false
        description: Where the page starts.
        schema:
          type: integer
          minimum: 0
          maximum: 100000
        example: 0
      - name: format
        in: query
        required: false
        description: json, the default, or csv for the CSV twin, which the path with .csv also gives.
        schema:
          type: string
          enum:
          - json
          - csv
      responses:
        '200':
          description: The answer, computed when asked and kept in the edge cache for up to a day. The example is a real answer, shortened.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screen'
              example:
                as_of: '2026-10-09'
                filters:
                  holds: NVDA
                  min_weight: 15
                sort: weight
                total: 29
                offset: 0
                limit: 3
                count: 3
                funds:
                - ticker: GXPT
                  name: Global X PureCap℠ MSCI Information Technology ETF
                  layer: issuer_files
                  issuer: Global X
                  category: Technology
                  category_id: technology
                  expense_ratio: 0.15
                  aum_b: 0.1
                  net_assets: null
                  positions: 85
                  report_date: null
                  weight_pct: 19.89
                  holdings_as_of: '2026-10-09'
                  holdings_source: issuer file
                  fund_file: https://tickerinside.com/api/v1/fund/gxpt.json
                  page_url: null
                - ticker: SMHX
                  name: VanEck Fabless Semiconductor ETF
                  layer: sec_nport
                  issuer: VanEck
                  category: Technology
                  category_id: technology
                  expense_ratio: 0.35
                  aum_b: null
                  net_assets: 297043576
                  positions: 22
                  report_date: '2026-06-30'
                  weight_pct: 18.5624
                  holdings_as_of: '2026-06-30'
                  holdings_source: SEC Form N-PORT
                  fund_file: https://tickerinside.com/api/v1/fund/smhx.json
                  page_url: null
                - ticker: VGT
                  name: Vanguard Information Technology ETF
                  layer: issuer_files
                  issuer: Vanguard
                  category: Technology
                  category_id: technology
                  expense_ratio: 0.09
                  aum_b: 177.9
                  net_assets: null
                  positions: 318
                  report_date: null
                  weight_pct: 17.7869
                  holdings_as_of: '2026-08-31'
                  holdings_source: issuer file
                  fund_file: https://tickerinside.com/api/v1/fund/vgt.json
                  page_url: https://tickerinside.com/etf/vgt/
                next: https://tickerinside.com/api/v1/screen?holds=NVDA&min_weight=15&sort=weight&limit=3&offset=3
                source:
                  provider: TickerInside
                  api_urls:
                  - https://tickerinside.com/api/v1/funds.json
                  - https://tickerinside.com/api/v1/sec/nvda.json
                  cite_as: TickerInside (tickerinside.com), from its list of funds and the funds holding NVDA, dated as shown.
                license: CC BY 4.0
                attribution: Credit TickerInside with a link to the page of a fund the figure comes from (source names them), or to this address, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.
                docs: https://tickerinside.com/api/#screen
            text/csv:
              schema:
                type: string
              example: 'ticker,name,layer,issuer,category,expense_ratio,aum_b,net_assets,positions,report_date,weight_pct,holdings_as_of,holdings_source,fund_file,note,category_id

                GXPT,Global X PureCap℠ MSCI Information Technology ETF,issuer_files,Global X,Technology,0.15,0.1,,85,,19.89,2026-10-09,issuer file,https://tickerinside.com/api/v1/fund/gxpt.json,,technology

                SMHX,VanEck Fabless Semiconductor ETF,sec_nport,VanEck,Technology,0.35,,297043576,22,2026-06-30,18.5624,2026-06-30,SEC Form N-PORT,https://tickerinside.com/api/v1/fund/smhx.json,,technology

                VGT,Vanguard Information Technology ETF,issuer_files,Vanguard,Technology,0.09,177.9,,318,,17.7869,2026-08-31,issuer file,https://tickerinside.com/api/v1/fund/vgt.json,,technology

                ,,,,,,,,,,,,,,Rows 1 to 3 of 29 funds. The next rows: https://tickerinside.com/api/v1/screen.csv?holds=NVDA&min_weight=15&sort=weight&limit=3&offset=3,

                '
        '304':
          description: 'Not modified: the ETag of your copy, sent in If-None-Match, is still current.'
        '400':
          description: 'The query was refused: reason and parameter say what to fix, and limit and asked give the figures of a call past the limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              example:
                error: bad_request
                reason: too_few_funds
                message: funds must name at least 2 different funds.
                parameter: funds
                min: 2
                docs: https://tickerinside.com/api/#overlap
        '405':
          description: Another method than GET or HEAD.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    const: method_not_allowed
                  message:
                    type: string
                  docs:
                    type: string
        '503':
          description: 'The answer could not be computed just then: retry after a minute.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unavailable'
      tags:
      - Screen
components:
  schemas:
    BadRequest:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
          const: bad_request
          description: Always bad_request.
        reason:
          type: string
          enum:
          - missing_parameter
          - unknown_parameter
          - repeated_parameter
          - invalid_value
          - too_few_funds
          - too_many_funds
          - too_large
          - no_price_history
          description: missing_parameter, unknown_parameter, repeated_parameter, invalid_value, too_few_funds, too_many_funds, too_large, a call past the limits of its endpoint (see limit and asked), or no_price_history, Find with no fund held that has weekly returns here.
        message:
          type: string
          description: What to fix, in words.
        parameter:
          type: string
          description: The parameter to fix. Absent with too_large.
        min:
          type: integer
          description: 'With too_few_funds: the fewest funds the parameter takes.'
        max:
          type: integer
          description: 'With too_many_funds: the most funds the parameter takes.'
        limit:
          type: object
          additionalProperties:
            type: integer
          description: 'With too_large: the limit the call passed, as chars (the size of the files read, in bytes, a file of the other layers for a third of it), pairs (the holdings overlap compares), holdings (those a look-through or diversify reads), comparisons (those of diversify''s overlaps) or subrequests (the reads of files and of the edge cache one call makes).'
        asked:
          type: object
          additionalProperties:
            type: integer
          description: 'With too_large: the call''s own figure for that limit.'
        files:
          type: object
          additionalProperties:
            type: integer
          description: 'With too_large past limit.chars: what each fund''s file weighed, by ticker, in the units of chars (diversify''s asked.chars adds the reference file''s), so that a client can drop the largest.'
        holdings_by_fund:
          type: object
          additionalProperties:
            type: integer
          description: 'With too_large on diversify past limit.holdings or limit.comparisons: the lines of each fund counted, by ticker (before any fund is read, those with a compact file).'
        answered_by:
          type: object
          additionalProperties: true
          description: 'With too_large from overlap or lookthrough, what answers the same question, as the message names it: mcp, the MCP server''s tool (url, tool, arguments); for two funds diversify answers, diversify and page; for a portfolio whose x-ray the site writes, page.'
        docs:
          type: string
          description: The reference of this endpoint.
      required:
      - error
      - reason
      - message
      - docs
    Unavailable:
      type: object
      additionalProperties: true
      required:
      - error
      - message
      - status
      - uptime
      properties:
        error:
          type: string
          const: unavailable
        message:
          type: string
        status:
          type: string
          description: The nightly report.
        uptime:
          type: string
          description: 'The live checks: whether the site fails its own checks.'
    Screen:
      type: object
      additionalProperties: true
      properties:
        as_of:
          type:
          - string
          - 'null'
          description: The date of funds.json, the price date.
        filters:
          type: object
          additionalProperties: true
          description: '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:
          type: string
          enum:
          - weight
          - aum
          - expense_ratio
          - positions
          - ticker
          description: '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:
          type: integer
          description: How many funds pass the filters.
        offset:
          type: integer
          description: Where this page starts in them.
        limit:
          type: integer
          description: How many funds a page holds at most.
        count:
          type: integer
          description: How many funds this page holds.
        funds:
          type: array
          items:
            type: object
            additionalProperties: true
            properties:
              ticker:
                type: string
                description: The fund's ticker.
              name:
                type:
                - string
                - 'null'
                description: Its name.
              layer:
                type: string
                enum:
                - issuer_files
                - sec_nport
                - sec_nport_bonds
                - sec_nport_multi_asset
                - sec_nport_derivatives
                - trust_filings
                - sponsor_files
                - prospectus
                description: 'Its layer: issuer_files, sec_nport, sec_nport_bonds, sec_nport_multi_asset, sec_nport_derivatives, trust_filings, sponsor_files, prospectus.'
              issuer:
                type:
                - string
                - 'null'
                description: Its issuer, as funds.json names it. Null when unknown.
              category:
                type:
                - string
                - 'null'
                description: 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:
                type:
                - string
                - 'null'
                description: The id of that category, which never changes meaning. Null with category.
              expense_ratio:
                type:
                - number
                - 'null'
                description: Its expense ratio, in percent a year. Null when unknown.
              aum_b:
                type:
                - number
                - 'null'
                description: Its assets in billions of US dollars, from market data. Null when unknown.
              net_assets:
                type:
                - number
                - 'null'
                description: Its net assets in US dollars on report_date, from its filing. Null for a fund read from its issuer's file.
              positions:
                type:
                - integer
                - 'null'
                description: How many positions its file lists.
              report_date:
                type:
                - string
                - 'null'
                description: 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:
                type:
                - number
                - 'null'
                description: 'With holds: the security''s weight in the fund, in percent.'
              holdings_as_of:
                type:
                - string
                - 'null'
                description: 'With holds: the date of the fund''s file the weight is read from.'
              holdings_source:
                type: string
                description: 'With holds: issuer file or SEC Form N-PORT.'
              fund_file:
                type: string
                description: The address of its file.
              page_url:
                type:
                - string
                - 'null'
                description: Its page. Null without one.
            required:
            - ticker
            - name
            - layer
            - fund_file
          description: The funds of this page.
        next:
          type:
          - string
          - 'null'
          description: The address of the next page. Null on the last one.
        source:
          type: object
          additionalProperties: true
          properties:
            provider:
              type: string
            api_urls:
              type: array
              items:
                type: string
            cite_as:
              type: string
          description: 'The files read, under api_urls: funds.json and, for holds, the stock file; and cite_as.'
        license:
          type: string
          description: The licence the data is published under.
        attribution:
          type: string
          description: '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:
          type: string
          description: The reference of this endpoint.
      required:
      - as_of
      - filters
      - sort
      - total
      - offset
      - limit
      - count
      - funds
      - next
      - source
      - license
      - attribution
      - docs
externalDocs:
  description: The reference, with examples and recipes
  url: https://tickerinside.com/api/