{"openapi":"3.1.0","info":{"title":"TickerInside API","version":"1","summary":"Holdings of 5,423 US ETFs and the largest US mutual funds, which ETFs hold a stock, and overlap, as static JSON. No key.","description":"TickerInside is an open, machine-readable database of US ETF holdings, with the source and date of each holding. It serves the holdings of 5,423 US ETFs with their weights, which ETFs hold a stock and at what weight, and the overlap between any two stock ETFs. Static JSON, with no key or sign-up, and CORS open to any origin. The licence is CC BY 4.0: credit TickerInside with a link to the page the figure comes from wherever the medium allows a link, and by name where it does not; how you mark the link is up to you. It covers TickerInside's own contribution; the holdings in issuer files are facts as each issuer publishes them, so check the issuer's terms before bulk commercial reuse. The holdings history (/api/v1/history.json, /api/v1/history/) and the ETF flows computed from it (/api/v1/flows.json, /api/v1/flows.csv, /api/v1/flows/, /feeds/) have their own terms: https://tickerinside.com/legal/#history.\n\n624 funds, the issuer layer, are read every weekday night from their issuers' own holdings files. 2,009 more, the SEC layer, are read from their latest SEC Form N-PORT filing, which is months older. 921 fixed income funds, 237 multi-asset funds and 1,368 derivative-based funds come from the same filings, and 130 trusts and pools from their own SEC filings. 134 funds from their sponsors' own files, too new for a Form N-PORT. Every fund file carries the date of its holdings. Where the price data has enough of a fund's or a stock's history, its file also carries its weekly returns over 156 weeks. The weeks are the same in every file, so any basket of them can be correlated. Each stock file also carries its line of the ETF ownership ledger: the share of the company's shares outstanding that the covered funds hold, at least, with the SEC's count and its date. The method is in https://tickerinside.com/api/v1/methods.json. The same data answers inside Claude, Cursor, VS Code and other MCP clients through the server at https://tickerinside.com/mcp.","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":[],"externalDocs":{"description":"The reference, with examples and recipes","url":"https://tickerinside.com/api/"},"paths":{"/index.json":{"get":{"operationId":"getIndex","summary":"What exists","description":"What exists, and the date of the data. Start here if you are pulling the whole set.","externalDocs":{"url":"https://tickerinside.com/api/#index"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Index"},"example":{"as_of":"2026-10-16","coverage":{"funds":626,"securities_held":16724,"what":"US listed ETFs from iShares, SPDR, Invesco and Global X, each from the issuer's own full holdings file. Beside them, 2,049 other US stock ETFs, listed under tickers_sec, come from their latest public SEC Form N-PORT filing, which describes the portfolio at a quarter end, usually three to five months back; each of their fund files gives that date as report_date. From the same filings: 924 fixed income ETFs (tickers_bond), 252 multi-asset ETFs (tickers_multi_asset) and 1,403 derivative-based ETFs (tickers_derivative). 130 trusts and commodity pools (tickers_trust) come from their own SEC filings. 134 funds from their sponsors' own files (tickers_sponsor), too new for a Form N-PORT, are read from the holdings their sponsors publish on their own sites. 307 more (tickers_prospectus) have a file from their prospectus and no holdings yet.","sec_nport":2049,"sec_nport_periods":{"oldest":"2026-01-31","newest":"2026-08-31"},"sec_nport_age":{"low_months":3,"high_months":5,"text":"three to five months"},"sec_nport_bonds":924,"sec_nport_multi_asset":252,"sec_nport_derivatives":1403,"trust_filings":130,"sponsor_files":134,"prospectus":307,"funds_total":5518,"universe":{"etfs":5733,"covered":5423,"pct":94.6,"by_layer":{"issuer_files":624,"sec_nport":2009,"sec_nport_derivatives":1368,"sec_nport_bonds":921,"sec_nport_multi_asset":237,"trust_filings":130,"sponsor_files":134},"prospectus":307,"with_file":5730,"with_objective":307,"not_covered":{"no_prospectus_found":3},"etns":53,"other_products":1,"outside_universe":95,"file_date":"2026-10-16","available":true,"source":"Nasdaq Trader symbol directory (nasdaqtraded.txt)","sentence":"5,423 of the 5,733 US-listed ETFs in Nasdaq Trader's symbol directory of 2026-10-16 have holdings here (94.6%), and 307 more have a file from their prospectus, with the objective it states and no holdings.","all_us_etfs":true,"headline":"All US ETFs","claim":"All US ETFs: 5,730 of the 5,733 in Nasdaq Trader's symbol directory of 2026-10-16 have a file, 5,423 with holdings and 307 with the objective their prospectus states; the 3 listed most recently get theirs on the nights after.","assets":{"net_assets_b":11532.2,"with_holdings_b":11492.9,"pct":99.7,"funds_sized":5573,"funds_unsized":160,"unsized_with_holdings":101,"basis":"Net assets of each ETF in US dollars, from the fund's own filing or file where it gives one and from market data otherwise; a fund the market data puts at 0.0 billion (under 50 million dollars) counts at that figure; only the totals are published.","sentence":"Holdings files cover 99.7% of the net assets of US-listed ETFs ($11,493 billion of $11,532 billion), measured over the 5,573 ETFs whose net assets are known; 160 have no known size and are in neither figure."}},"stocks_with_file":5043,"stocks_with_weekly_series":4673,"pages":{"funds":664,"stocks":361},"issuers":["iShares","Invesco","State Street SPDR","Global X"]},"endpoints":{"funds":"https://tickerinside.com/api/v1/funds.json","fund":"https://tickerinside.com/api/v1/fund/{ticker}.json","etf":"https://tickerinside.com/api/v1/etf/{ticker}.json","security":"https://tickerinside.com/api/v1/sec/{ticker}.json","holders":"https://tickerinside.com/api/v1/holders.json","holders_shard":"https://tickerinside.com/api/v1/holders/{c}.json","securities":"https://tickerinside.com/api/v1/securities.json","identifiers":"https://tickerinside.com/api/v1/identifiers.json","universe":"https://tickerinside.com/api/v1/universe.json","compare":"https://tickerinside.com/api/v1/compare/{a}-vs-{b}.json","overlap":"https://tickerinside.com/api/v1/overlap?funds={a},{b}","lookthrough":"https://tickerinside.com/api/v1/lookthrough?portfolio={ticker}:{weight},{ticker}:{weight}","batch":"https://tickerinside.com/api/v1/batch?funds={a},{b}","screen":"https://tickerinside.com/api/v1/screen?holds={ticker}","diversify":"https://tickerinside.com/api/v1/diversify?have={a},{b}&try={c}","ownership":"https://tickerinside.com/api/v1/ownership.json","methods":"https://tickerinside.com/api/v1/methods.json","history":"https://tickerinside.com/api/v1/history.json","fund_history":"https://tickerinside.com/api/v1/history/{ticker}.json","status":"https://tickerinside.com/api/v1/status.json","uptime":"https://tickerinside.com/api/v1/uptime.json","manifest":"https://tickerinside.com/api/v1/manifest.json","changelog":"https://tickerinside.com/api/v1/changelog.json","deprecations":"https://tickerinside.com/api/v1/deprecations.json","corrections":"https://tickerinside.com/api/v1/corrections.json","openapi":"https://tickerinside.com/api/openapi.json","docs_markdown":"https://tickerinside.com/api/index.md"},"tickers":["AAXJ","ACHP","ACWI"],"tickers_sec":["AAAA","AADR","AAEQ"],"tickers_derivative":["AALG","AAOG","AAOX"],"tickers_trust":["AAAU","AGQ","ARKB"],"tickers_bond":["AAA","AAAC","AAAP"],"tickers_multi_asset":["AAPR","ABUF","ABXB"],"tickers_sponsor":["AAUB","ACQQ","ACRT"],"tickers_prospectus":["AAAB","AAAD","AAOZ"],"written_comparisons":[{"pair":["VOO","VTI"],"url":"https://tickerinside.com/api/v1/compare/voo-vs-vti.json"},{"pair":["QQQ","VGT"],"url":"https://tickerinside.com/api/v1/compare/qqq-vs-vgt.json"},{"pair":["SCHD","SCHG"],"url":"https://tickerinside.com/api/v1/compare/schd-vs-schg.json"}],"without_file":{"etn":["AIQD","AIQU","AMJB"],"no_prospectus_found":["HFIX","OCTI","RTHY"],"other_product":["IPB"]},"docs":"https://tickerinside.com/api/","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","terms":"https://tickerinside.com/legal/"}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/funds.json":{"get":{"operationId":"getFunds","summary":"Every fund, one line each","description":"Ticker, name, category, cost, position count, and whether the fund has a written page: the funds read from issuer files under funds, and those from SEC filings under sec_funds. The list to iterate before pulling fund files.","externalDocs":{"url":"https://tickerinside.com/api/#funds"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Funds"},"example":{"as_of":"2026-10-16","count":626,"with_a_page":664,"note":"page is true when the fund has a written page on the site. Every fund here has a /api/v1/fund/{ticker}.json file and can be compared, whether or not it has a page. c is the fund's category, TickerInside's own, set every night from the fund's latest file, and cat_id the category's id, which never changes meaning (https://tickerinside.com/etf/category/). issuer is the fund's issuer, named as in index.json coverage.issuers, or null. aum_b is the fund's assets in billions of US dollars from market data, as in its fund file, or null.","funds":[{"t":"AAXJ","n":"iShares MSCI All Country Asia ex Japan ETF","c":"Asia Pacific ex Japan","cat_id":"asia-pacific-ex-japan","er":0.72,"p":948,"issuer":"iShares","aum_b":4.0,"page":true,"url":"https://tickerinside.com/etf/aaxj/","api":"https://tickerinside.com/api/v1/fund/aaxj.json"},{"t":"ACHP","n":"Global X Asia Semiconductor ETF","c":"Asia Pacific ex Japan","cat_id":"asia-pacific-ex-japan","er":0.5,"p":25,"issuer":"Global X","aum_b":null,"page":false,"url":null,"api":"https://tickerinside.com/api/v1/fund/achp.json"},{"t":"ACWI","n":"iShares MSCI ACWI ETF","c":"Global Large Blend","cat_id":"global-large-blend","er":0.32,"p":2197,"issuer":"iShares","aum_b":32.8,"page":true,"url":"https://tickerinside.com/etf/acwi/","api":"https://tickerinside.com/api/v1/fund/acwi.json"}],"sec_count":2049,"sec_note":"sec_funds are the other US stock ETFs, served from their latest public SEC Form N-PORT filing rather than an issuer's daily file. Their holdings describe the portfolio on report_date, usually three to five months back. page and url are as in funds: a fund of a published cohort has a page built from its filing. er is null where the cost is not in the data. issuer is the fund family its name or its filer gives, or null. net_assets is the fund's net assets in US dollars on report_date, from the filing; aum_b is null unless market data gives the fund's size.","sec_funds":[{"t":"AAAA","n":"Amplius Aggressive Asset Allocation ETF","c":"Aggressive Allocation","cat_id":"allocation-aggressive","er":0.49,"p":43,"api":"https://tickerinside.com/api/v1/fund/aaaa.json","report_date":"2026-07-31","issuer":null,"aum_b":null,"net_assets":278318309,"page":true,"url":"https://tickerinside.com/etf/aaaa/"},{"t":"AADR","n":"AdvisorShares Dorsey Wright ADR ETF","c":"International Large Blend","cat_id":"international-large-blend","er":1.09,"p":36,"api":"https://tickerinside.com/api/v1/fund/aadr.json","report_date":"2026-06-30","issuer":"AdvisorShares","aum_b":null,"net_assets":41715126,"page":false,"url":null},{"t":"AAEQ","n":"Alpha Architect US Equity 2 ETF","c":"Large Blend","cat_id":"us-large-blend","er":0.09,"p":340,"api":"https://tickerinside.com/api/v1/fund/aaeq.json","report_date":"2026-06-30","issuer":"Alpha Architect","aum_b":null,"net_assets":497032856,"page":false,"url":null}],"sponsor_funds":[{"t":"AAUB","n":"Alpha Architect US Equity 4 ETF","c":"Large Blend","cat_id":"us-large-blend","er":0.1,"p":406,"api":"https://tickerinside.com/api/v1/etf/aaub.json","report_date":"2026-09-30","issuer":"ETF Architect sponsor site","aum_b":null,"net_assets":851630000},{"t":"ACQQ","n":"ProShares Nasdaq-100 Autocallable Income ETF","c":"Option Income","cat_id":"option-income","er":0.72,"p":3,"api":"https://tickerinside.com/api/v1/etf/acqq.json","report_date":"2026-10-16","issuer":"ProShares","aum_b":0.0,"net_assets":null},{"t":"ACRT","n":"ProShares Russell 2000 Autocallable Income ETF","c":"Option Income","cat_id":"option-income","er":0.72,"p":3,"api":"https://tickerinside.com/api/v1/etf/acrt.json","report_date":"2026-10-16","issuer":"ProShares","aum_b":0.0,"net_assets":null}],"prospectus_funds":[{"t":"AAAB","n":"Corgi FTSE Aaa-A Intermediate Corporate Bond ETF","c":"Intermediate Corporate Bonds","cat_id":"corporate-intermediate","er":0.05,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaab.json","filed":"2026-10-13","form":"485BPOS","issuer":"Corgi Strategies, LLC","aum_b":null},{"t":"AAAD","n":"PGIM AAA CLO Aggregate Duration ETF","c":"CLO Bonds","cat_id":"clo","er":0.19,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaad.json","filed":"2026-05-27","form":"497K","issuer":null,"aum_b":0.0},{"t":"AAOZ","n":"Tradr 2X Short AAOI Daily ETF","c":"Inverse Single Stock","cat_id":"inverse-single-stock","er":1.49,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaoz.json","filed":"2026-07-15","form":"497K","issuer":"AXS Investments LLC","aum_b":0.0}],"bond_funds":[{"t":"AAA","n":"Alternative Access First Priority CLO Bond ETF","c":"CLO Bonds","cat_id":"clo","er":0.19,"p":31,"api":"https://tickerinside.com/api/v1/etf/aaa.json","report_date":"2026-06-30","issuer":null,"aum_b":null,"net_assets":44906491},{"t":"AAAC","n":"Columbia AAA CLO ETF","c":"CLO Bonds","cat_id":"clo","er":0.2,"p":37,"api":"https://tickerinside.com/api/v1/etf/aaac.json","report_date":"2026-06-30","issuer":"Columbia","aum_b":null,"net_assets":10035240},{"t":"AAAP","n":"Pacer Barings CLO Market Flex ETF","c":"CLO Bonds","cat_id":"clo","er":0.39,"p":79,"api":"https://tickerinside.com/api/v1/etf/aaap.json","report_date":"2026-07-31","issuer":"Pacer","aum_b":0.1,"net_assets":86334734}],"multi_asset_funds":[{"t":"AAPR","n":"Innovator Equity Defined Protection ETF - 2 Yr to April 2028","c":"Defined Outcome","cat_id":"defined-outcome","er":0.79,"p":1,"api":"https://tickerinside.com/api/v1/etf/aapr.json","report_date":"2026-07-31","issuer":"Innovator","aum_b":null,"net_assets":72633790},{"t":"ABUF","n":"Aptus Laddered Buffer ETF","c":"Defined Outcome","cat_id":"defined-outcome","er":0.3,"p":4,"api":"https://tickerinside.com/api/v1/etf/abuf.json","report_date":"2026-07-31","issuer":"Aptus","aum_b":null,"net_assets":7358410},{"t":"ABXB","n":"Abacus Flexible Bond Leaders ETF","c":"Multisector Bonds","cat_id":"multisector-bond","er":0.62,"p":9,"api":"https://tickerinside.com/api/v1/etf/abxb.json","report_date":"2026-07-31","issuer":null,"aum_b":null,"net_assets":1905866}],"derivative_funds":[{"t":"AALG","n":"Leverage Shares 2X Long AAL Daily ETF","c":"Leveraged Single Stock","cat_id":"leveraged-single-stock","er":0.78,"p":0,"api":"https://tickerinside.com/api/v1/etf/aalg.json","report_date":"2026-07-31","issuer":null,"aum_b":null,"net_assets":2827625},{"t":"AAOG","n":"Leverage Shares 2X Long AAOI Daily ETF","c":"Leveraged Single Stock","cat_id":"leveraged-single-stock","er":0.75,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaog.json","report_date":"2026-07-31","issuer":null,"aum_b":0.0,"net_assets":16017480},{"t":"AAOX","n":"Tradr 2X Long AAOI Daily ETF","c":"Leveraged Equity","cat_id":"leveraged-equity","er":1.49,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaox.json","report_date":"2026-07-31","issuer":null,"aum_b":null,"net_assets":142959476}],"trust_funds":[{"t":"AAAU","n":"Goldman Sachs Physical Gold ETF","c":"Gold and Precious Metals","cat_id":"precious-metals","er":0.18,"p":0,"api":"https://tickerinside.com/api/v1/etf/aaau.json","report_date":"2026-06-30","issuer":"Goldman Sachs","aum_b":2.9,"net_assets":null},{"t":"AGQ","n":"ProShares Ultra Silver","c":"Leveraged Commodities","cat_id":"leveraged-commodity","er":1.29,"p":0,"api":"https://tickerinside.com/api/v1/etf/agq.json","report_date":"2026-06-30","issuer":"ProShares","aum_b":1.5,"net_assets":null},{"t":"ARKB","n":"ARK 21Shares Bitcoin ETF","c":"Bitcoin","cat_id":"bitcoin","er":0.21,"p":0,"api":"https://tickerinside.com/api/v1/etf/arkb.json","report_date":"2026-06-30","issuer":"ARK","aum_b":2.7,"net_assets":null}],"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/universe.json":{"get":{"operationId":"getUniverse","summary":"The US-listed ETFs, and their coverage","description":"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.","externalDocs":{"url":"https://tickerinside.com/api/#universe"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Universe"},"example":{"as_of":"2026-10-16","available":true,"source":"Nasdaq Trader symbol directory (nasdaqtraded.txt), https://www.nasdaqtrader.com/dynamic/SymDir/nasdaqtraded.txt","file_date":"2026-10-16","sentence":"5,423 of the 5,733 US-listed ETFs in Nasdaq Trader's symbol directory of 2026-10-16 have holdings here (94.6%), and 307 more have a file from their prospectus, with the objective it states and no holdings.","coverage":{"etfs":5733,"covered":5423,"pct":94.6,"by_layer":{"issuer_files":624,"sec_nport":2009,"sec_nport_derivatives":1368,"sec_nport_bonds":921,"sec_nport_multi_asset":237,"trust_filings":130,"sponsor_files":134},"prospectus":307,"with_file":5730,"with_objective":307,"not_covered":{"no_prospectus_found":3},"etns":53,"other_products":1,"outside_universe":95,"file_date":"2026-10-16","available":true,"source":"Nasdaq Trader symbol directory (nasdaqtraded.txt)","sentence":"5,423 of the 5,733 US-listed ETFs in Nasdaq Trader's symbol directory of 2026-10-16 have holdings here (94.6%), and 307 more have a file from their prospectus, with the objective it states and no holdings.","all_us_etfs":true,"headline":"All US ETFs","claim":"All US ETFs: 5,730 of the 5,733 in Nasdaq Trader's symbol directory of 2026-10-16 have a file, 5,423 with holdings and 307 with the objective their prospectus states; the 3 listed most recently get theirs on the nights after.","assets":{"net_assets_b":11532.2,"with_holdings_b":11492.9,"pct":99.7,"funds_sized":5573,"funds_unsized":160,"unsized_with_holdings":101,"basis":"Net assets of each ETF in US dollars, from the fund's own filing or file where it gives one and from market data otherwise; a fund the market data puts at 0.0 billion (under 50 million dollars) counts at that figure; only the totals are published.","sentence":"Holdings files cover 99.7% of the net assets of US-listed ETFs ($11,493 billion of $11,532 billion), measured over the 5,573 ETFs whose net assets are known; 160 have no known size and are in neither figure."}},"layers":{"issuer_files":"Read every weekday night from the issuer's own daily holdings file.","sec_nport":"A US stock ETF, from its latest public SEC Form N-PORT filing.","sec_nport_derivatives":"A leveraged, inverse, option income or other derivative-based ETF, from its latest SEC Form N-PORT filing: what it holds, and its swaps, futures and options as notional exposure.","sec_nport_bonds":"A fixed income ETF (bond, credit, mortgage, Treasury, municipal and the like), from its latest SEC Form N-PORT filing: its lines by issuer, coupon and maturity, and its weight by kind, maturity and country.","sec_nport_multi_asset":"A multi-asset ETF: a fund that holds other funds or several asset classes (allocation, target date, buffer, income and hedged strategies), from its latest SEC Form N-PORT filing.","trust_filings":"A trust or pool that files no Form N-PORT (physical metal, crypto, currency, commodity futures), from its own SEC filings.","sponsor_files":"A fund with no Form N-PORT yet, from the holdings its sponsor publishes on its own site, read every night by tickers only: the file's date and the sponsor's page are in the file.","prospectus":"A fund with no holdings file yet: what its prospectus states (its objective, its index or target, its cost). No holdings; its first holdings filing replaces the file."},"reasons":{"etn":"An exchange-traded note is a debt of the bank that issues it, not a fund, and holds nothing to list. Told from a fund by its name (ETN, ETNs, ETRACS, iPath, X-Links), unless the name also says ETF.","other_product":"Not a fund: a trust certificate, which holds nothing to list. Told by its name.","no_filing_yet":"The SEC lists the fund's ticker and it has filed no public Form N-PORT yet. A new fund files its first about two to five months after it lists.","not_in_sec_list":"Not in the SEC's list of fund tickers yet, so it has no Form N-PORT to read. A new fund reaches that list after it lists.","other_fund":"The SEC's ticker file still gives this ticker the series of another fund, and that series' newest filing is under the other fund's name, so the ETF's own holdings are not read from it. It joins when its own filing does.","stale_filing":"The newest public Form N-PORT found for this ticker describes a portfolio more than nine months old, so it is not served as current holdings. It joins when a newer filing does.","no_prospectus_found":"No holdings file yet, and no prospectus of the fund was found on EDGAR. It is looked up again every few days."},"funds":[["AAA","Alternative Access First Priority CLO Bond ETF","etf","sec_nport_bonds",null],["AAAA","Amplius Aggressive Asset Allocation ETF","etf","sec_nport",null],["AAAB","Corgi FTSE Aaa-A Intermediate Corporate Bond ETF","etf","prospectus","not_in_sec_list"]],"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/fund/{ticker}.json":{"get":{"operationId":"getFund","summary":"One fund","description":"The holdings with their weights and the date of their source, then cost, returns, risk and weekly returns over 156 weeks where the data has them. A figure the data lacks is null, and so is a week without a return; with fewer than 110 weekly returns, weekly is an empty list, or null for a fund from SEC filings. This is the endpoint most things are built from. The funds no issuer file covers are served in the same shape from their latest SEC filing, with eight more fields: report_date, filed, filing_url, net_assets, multi_class, stock_pct, unmapped_pct and abroad. A fund of the other layers answers too, from its /etf/ file. The holdings map and the weekly series make this file enough on its own. The overlap of any two stock ETFs is a walk over two holdings maps, and a covariance matrix for any basket is a walk over their weekly series.","externalDocs":{"url":"https://tickerinside.com/api/#fund"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fund"},"example":{"ticker":"IVV","name":"iShares Core S&P 500 ETF","page_url":"https://tickerinside.com/etf/ivv/","cite_as":"TickerInside, iShares Core S&P 500 ETF (IVV), holdings from the issuer's file of 2026-10-15, https://tickerinside.com/etf/ivv/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/etf/ivv/\">TickerInside</a> (https://tickerinside.com/etf/ivv/)","identifiers":{"asset_type":"etf","exchange":"NYSE Arca","composite_figi":"BBG000BVZ4F5","share_class_figi":"BBG001SFB7R6","cik":"0001100663","series_id":"S000004310","class_id":"C000012040"},"source_layer":"issuer","category":{"id":"us-large-blend","label":"US Large Blend","group":"us-equity","group_label":"US stocks","asset_class":"equity","rule":"In its file of 2026-10-15, 100% of its stocks are US companies; weighted by holding, they sit where 43% of their market's value is in larger companies (large: up to 78%); growth index funds hold 54% of their value against 57% for companies of the same sizes in the whole market (blend: within 10 points).","basis":"holdings","as_of":"2026-10-15","facets":{"region":"us","country":"US","size":"large","style":"blend","top_sectors":["technology","financials"]},"measured":{"us_share":1.0,"emerging_share":0,"size_place":0.433,"growth_share":0.542,"growth_share_market":0.567,"top_sector_share":0.384,"country_cover":1.0,"sector_cover":1.0,"stocks":505},"method":"https://tickerinside.com/etf/category/"},"as_of":"2026-10-16","holdings_as_of":"2026-10-15","expense_ratio":0.03,"expense_ratio_gross":0.03,"expense_ratio_source":"sec_filing","expense_ratio_as_of":"2026-07-27","expense_ratio_filing_url":"https://www.sec.gov/Archives/edgar/data/1100663/000119312526318131/","yield":1.1,"aum_b":881.3,"aum_source":"market_data","aum_date":"2026-10-17","etf_class_net_assets_b":null,"etf_class_net_assets_as_of":null,"positions":505,"breakdown":{"sectors_pct":{"technology":38.2828,"financials":11.6261,"communication_services":9.819,"health_care":9.5907,"consumer_discretionary":8.7855,"industrials":7.9766,"consumer_staples":4.7135,"energy":3.6317,"utilities":1.955,"real_estate":1.7103,"materials":1.6517},"no_sector_pct":0.0,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":36.984,"top10_us_companies_pct":38.4483,"countries_pct":{"US":99.7428},"no_country_pct":0.0,"answer":"In its iShares file of 2026-10-15, IVV is 38.3% technology, 11.6% financials and 9.8% communication services by sector, with 37.0% in mega-cap tech and 38.4% in the ten largest US companies by market value.","method":"https://tickerinside.com/how-the-numbers-are-produced/#sectors"},"vol":14.3,"beta":1.0,"mdd3":-16.9,"r1":17.5,"r3":90.4,"r5":82.7,"last_close":775.16,"last_close_date":"2026-10-15","day_change_pct":0.27,"high_52w":782.54,"low_52w":634.93,"currency":"USD","holdings":{"NVDA":7.8627,"AAPL":7.4652,"MSFT":5.9911},"weekly":[-0.025,0.0583,0.0139],"weeks_end":"2026-10-16","flows":{"date":"2026-10-12","flow_usd":null,"flow_pct_of_assets":null,"previous_close":"2026-10-09","status":"not_measured","last_closes":{"from":"2026-10-06","to":"2026-10-12","closes":5,"measured":3,"net_usd":-856554194},"series":[["2026-09-29",null],["2026-09-30",-1415521375],["2026-10-01",153684465]],"text":"IVV's flow on the close of Monday, October 12, 2026 is not measured: the two measures of it, from its holdings, disagreed, as they do on a rebalance or a corporate action. Over its last 5 closes, a net outflow of $857 million, 3 of them measured.","page_url":"https://tickerinside.com/etf-flows/","method_url":"https://tickerinside.com/how-the-numbers-are-produced/#etf-flows","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history"},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"Not a covered fund. reason has_security_file when the ticker has a stock file or the holders-only answer (see security). A fund that listed after the SEC's latest quarterly data set has no file yet (see covered, index.json, and universe.json for the reason).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The ticker in lower case, for example voo. An upper case ticker is answered with a 301 to the lower case path.","schema":{"type":"string"},"example":"voo"}]}},"/etf/{ticker}.json":{"get":{"operationId":"getEtf","summary":"One fund of the other layers","description":"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.","externalDocs":{"url":"https://tickerinside.com/api/#fixed-income-funds"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayerFund"},"example":{"ticker":"IVV","name":"iShares Core S&P 500 ETF","page_url":"https://tickerinside.com/etf/ivv/","cite_as":"TickerInside, iShares Core S&P 500 ETF (IVV), holdings from the issuer's file of 2026-10-15, https://tickerinside.com/etf/ivv/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/etf/ivv/\">TickerInside</a> (https://tickerinside.com/etf/ivv/)","identifiers":{"asset_type":"etf","exchange":"NYSE Arca","composite_figi":"BBG000BVZ4F5","share_class_figi":"BBG001SFB7R6","cik":"0001100663","series_id":"S000004310","class_id":"C000012040"},"source_layer":"issuer","category":{"id":"us-large-blend","label":"US Large Blend","group":"us-equity","group_label":"US stocks","asset_class":"equity","rule":"In its file of 2026-10-15, 100% of its stocks are US companies; weighted by holding, they sit where 43% of their market's value is in larger companies (large: up to 78%); growth index funds hold 54% of their value against 57% for companies of the same sizes in the whole market (blend: within 10 points).","basis":"holdings","as_of":"2026-10-15","facets":{"region":"us","country":"US","size":"large","style":"blend","top_sectors":["technology","financials"]},"measured":{"us_share":1.0,"emerging_share":0,"size_place":0.433,"growth_share":0.542,"growth_share_market":0.567,"top_sector_share":0.384,"country_cover":1.0,"sector_cover":1.0,"stocks":505},"method":"https://tickerinside.com/etf/category/"},"as_of":"2026-10-16","holdings_as_of":"2026-10-15","expense_ratio":0.03,"expense_ratio_gross":0.03,"expense_ratio_source":"sec_filing","expense_ratio_as_of":"2026-07-27","expense_ratio_filing_url":"https://www.sec.gov/Archives/edgar/data/1100663/000119312526318131/","yield":1.1,"aum_b":881.3,"aum_source":"market_data","aum_date":"2026-10-17","etf_class_net_assets_b":null,"etf_class_net_assets_as_of":null,"positions":505,"breakdown":{"sectors_pct":{"technology":38.2828,"financials":11.6261,"communication_services":9.819,"health_care":9.5907,"consumer_discretionary":8.7855,"industrials":7.9766,"consumer_staples":4.7135,"energy":3.6317,"utilities":1.955,"real_estate":1.7103,"materials":1.6517},"no_sector_pct":0.0,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":36.984,"top10_us_companies_pct":38.4483,"countries_pct":{"US":99.7428},"no_country_pct":0.0,"answer":"In its iShares file of 2026-10-15, IVV is 38.3% technology, 11.6% financials and 9.8% communication services by sector, with 37.0% in mega-cap tech and 38.4% in the ten largest US companies by market value.","method":"https://tickerinside.com/how-the-numbers-are-produced/#sectors"},"vol":14.3,"beta":1.0,"mdd3":-16.9,"r1":17.5,"r3":90.4,"r5":82.7,"last_close":775.16,"last_close_date":"2026-10-15","day_change_pct":0.27,"high_52w":782.54,"low_52w":634.93,"currency":"USD","holdings":{"NVDA":7.8627,"AAPL":7.4652,"MSFT":5.9911},"weekly":[-0.025,0.0583,0.0139],"weeks_end":"2026-10-16","flows":{"date":"2026-10-12","flow_usd":null,"flow_pct_of_assets":null,"previous_close":"2026-10-09","status":"not_measured","last_closes":{"from":"2026-10-06","to":"2026-10-12","closes":5,"measured":3,"net_usd":-856554194},"series":[["2026-09-29",null],["2026-09-30",-1415521375],["2026-10-01",153684465]],"text":"IVV's flow on the close of Monday, October 12, 2026 is not measured: the two measures of it, from its holdings, disagreed, as they do on a rebalance or a corporate action. Over its last 5 closes, a net outflow of $857 million, 3 of them measured.","page_url":"https://tickerinside.com/etf-flows/","method_url":"https://tickerinside.com/how-the-numbers-are-produced/#etf-flows","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history"},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"}}}},"301":{"description":"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":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The ticker in lower case, for example voo. An upper case ticker is answered with a 301 to the lower case path.","schema":{"type":"string"},"example":"voo"}]}},"/sec/{ticker}.json":{"get":{"operationId":"getSecurity","summary":"One stock","description":"In this path sec stands for security, not the SEC: the file is one stock and the funds that hold it, and a fund's own holdings are in /api/v1/fund/{ticker}.json. Name, sector, market cap, valuation, returns, risk, the funds that hold it from issuer files and from SEC filings, and its weekly returns over the same 156 weeks as the fund files. Every stock in the price data with at least 110 weekly returns in those weeks has a file here, whether or not any covered fund holds it. A stock with fewer has one when a fund read from an issuer file or a stock ETF from SEC filings holds it in a file dated since it listed, the price data has its closes since its listing, or a year of them, the last at most five sessions old, and Nasdaq Trader's directory lists it under its name. weekly is then an empty list, the figures over three and five years and the correlated stocks are null or empty, calendar is given once 40 of the last 52 weeks have a return, and r1 once the weekly closes cover a full year. A security covered funds hold with no file of its own, a stock the price data does not list or lists too few weekly returns for, or a line listed abroad (7203.JP), answers with \"coverage\": \"holders_only\": its holders from the shard of its first character, each dated, the price and return fields null, and none of the fields built from each fund's file or the ledger, such as etf_ownership and holders_all. A 404 means no covered fund holds the key. Read coverage first: since October 2026, holders_only marks an answer without the fields Security requires and SecurityHoldersOnly does not list, such as etf_ownership, holders_all and answer.","externalDocs":{"url":"https://tickerinside.com/api/#security"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries. A security covered funds hold with no stock file answers as SecurityHoldersOnly, with coverage holders_only.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Security"},{"$ref":"#/components/schemas/SecurityHoldersOnly"}]},"example":{"ticker":"NVDA","name":"Nvidia","page_url":"https://tickerinside.com/stock/nvda/","cite_as":"TickerInside, Nvidia (NVDA), holders from each covered fund's own file and from SEC Form N-PORT filings, each dated, prices through 2026-10-16, https://tickerinside.com/stock/nvda/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/stock/nvda/\">TickerInside</a> (https://tickerinside.com/stock/nvda/)","sector":"Information Technology","industry":"Semiconductors","identifiers":{"asset_type":"stock","exchange":"Nasdaq","composite_figi":"BBG000BBJQV0","share_class_figi":"BBG001S5TZJ6","cik":"0001045810","series_id":null,"class_id":null},"as_of":"2026-10-16","page":true,"cap_b":5170.6,"pe":27.1,"yield":null,"vol":43.9,"beta":2.16,"mdd3":-36.1,"r1":18.8,"r3":426.4,"r5":860.1,"last_close":217.23,"last_close_date":"2026-10-15","day_change_pct":-1.84,"high_52w":239.24,"low_52w":165.17,"currency":"USD","calendar":{"2022":-50.3,"2023":239.0,"2024":171.2},"held_by":160,"heaviest":["GXPT",19.88],"held_by_sec_nport":587,"holders":[["GXPT",19.88,"2026-10-16"],["IYW",16.5999,"2026-10-15"],["TOPT",15.6462,"2026-10-15"]],"holders_sec_nport":[["SMHX",18.5624,"2026-06-30"],["SMH",17.5486,"2026-06-30"],["FDG",17.3562,"2026-05-31"]],"synthetic_exposure":[{"fund":"DIPS","exposure":"options","long_pct":0.0,"short_pct":0.0,"options":{"purchased_puts_pct":193.12,"written_puts_pct":96.55,"written_calls_pct":100.43,"purchased_calls_pct":159.64},"instruments":["option"],"complete":true,"report_date":"2026-07-31"},{"fund":"NVIT","exposure":"options","long_pct":0.0,"short_pct":0.0,"options":{"purchased_calls_pct":209.43,"written_calls_pct":103.48,"written_puts_pct":98.56},"instruments":["option"],"complete":true,"report_date":"2026-07-31"},{"fund":"NVDY","exposure":"options","long_pct":0.0,"short_pct":0.0,"options":{"purchased_calls_pct":188.97,"written_calls_pct":87.92,"written_puts_pct":97.78},"instruments":["option"],"complete":true,"report_date":"2026-07-31"}],"left_out":[],"same_code_abroad":[],"earlier_key_reads_as":null,"etf_ownership":{"pct_lower_bound":7.56,"basis":"company","company":"Nvidia","shares_held":1823016427,"shares_held_by_layer":{"issuer_files":1438829944,"sec_nport":384186483},"shares_outstanding":24100000000,"shares_outstanding_as_of":"2026-08-21","shares_outstanding_filing":"https://www.sec.gov/Archives/edgar/data/1045810/000104581026000075/","funds_holding":{"issuer_files":160,"sec_nport":587},"funds_counted":{"issuer_files":159,"sec_nport":575},"funds_prorated":0,"not_counted":{"through_fund":1,"whole_series":12},"rows_not_counted":{"through_fund":1,"whole_series":12},"holdings_dates":{"oldest":"2026-05-29","newest":"2026-10-16"},"holdings_dates_by_layer":{"issuer_files":{"oldest":"2026-10-01","newest":"2026-10-16"},"sec_nport":{"oldest":"2026-05-29","newest":"2026-08-31"}},"classes":null,"refused":null,"refused_reason":null,"held_back":null,"method":"ti-ownership/1","method_url":"https://tickerinside.com/api/v1/methods.json","cite_as":"TickerInside, Nvidia (NVDA), at least 7.56% of its shares outstanding held by 734 covered US ETFs (ti-ownership/1), holdings dated 2026-05-29 to 2026-10-16, shares outstanding as of 2026-08-21 from SEC filings, https://tickerinside.com/api/v1/sec/nvda.json, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/api/v1/sec/nvda.json\">TickerInside</a> (https://tickerinside.com/api/v1/sec/nvda.json)"},"etf_holders_since_2019":{"answer":"727 of today's US stock ETFs held NVDA in their SEC reports for the second quarter of 2026, against 141 for the fourth quarter of 2019.","counted":"Today's US stock ETFs, in their reports on SEC Form N-PORT, each counted once a quarter by its report for a period ended in it.","quarters":[{"quarter":"2019Q4","etfs":141,"largest_weight_etf":"BOTZ","largest_weight_pct":8.992},{"quarter":"2020Q1","etfs":163,"largest_weight_etf":"SOXX","largest_weight_pct":11.0275},{"quarter":"2020Q2","etfs":205,"largest_weight_etf":"BOTZ","largest_weight_pct":12.7646}],"method":"https://tickerinside.com/how-the-numbers-are-produced/#sec-history"},"holders_all":[["GXPT",19.88,"2026-10-16","issuer",2,85,null],["SMHX",18.5624,"2026-06-30","sec_nport",1,22,55.1],["SMH",17.5486,"2026-06-30","sec_nport",1,25,13500]],"rank_summary":{"funds":747,"top_holding_in":336,"top10_in":582,"funds_without_value":85,"short_positions":0,"by_layer":{"issuer":{"funds":160,"top_holding_in":75,"top10_in":129},"sec_nport":{"funds":587,"top_holding_in":261,"top10_in":453}}},"top_by_value":[{"fund":"IVV","value_usd_m":69300,"weight":7.8627,"holdings_as_of":"2026-10-15","layer":"issuer","net_assets_b":881.3,"net_assets_basis":"fund","net_assets_as_of":"2026-10-17"},{"fund":"SPY","value_usd_m":63700,"weight":7.8776,"holdings_as_of":"2026-10-15","layer":"issuer","net_assets_b":809.2,"net_assets_basis":"fund","net_assets_as_of":"2026-10-17"},{"fund":"QQQ","value_usd_m":40200,"weight":8.0647,"holdings_as_of":"2026-10-15","layer":"issuer","net_assets_b":498.9,"net_assets_basis":"fund","net_assets_as_of":"2026-10-17"}],"membership":[{"fund":"VOO","kind":"broad","category":"US Large Blend","held":true,"weight":7.5142,"rank_in_fund":1,"positions":504,"holdings_as_of":"2026-06-30","layer":"sec_nport"},{"fund":"SPY","kind":"broad","category":"US Large Blend","held":true,"weight":7.8776,"rank_in_fund":1,"positions":504,"holdings_as_of":"2026-10-15","layer":"issuer"},{"fund":"IVV","kind":"broad","category":"US Large Blend","held":true,"weight":7.8627,"rank_in_fund":1,"positions":505,"holdings_as_of":"2026-10-15","layer":"issuer"}],"by_issuer":[{"issuer":"iShares","funds":68,"value_usd_m":148000,"funds_without_value":22,"heaviest":["IYW",16.5999],"largest":["IVV",69300]},{"issuer":"SPDR","funds":28,"value_usd_m":108000,"funds_without_value":14,"heaviest":["XLK",15.194],"largest":["SPY",63700]},{"issuer":"Invesco","funds":38,"value_usd_m":53200,"funds_without_value":14,"heaviest":["XLG",12.3771],"largest":["QQQ",40200]}],"fee_per_1000":[{"fund":"BKLC","fee_usd_per_1000":0.0,"expense_ratio":0.0,"weight":7.2316,"holdings_as_of":"2026-07-31","layer":"sec_nport"},{"fund":"GGRW","fee_usd_per_1000":0.0,"expense_ratio":0.0,"weight":8.522,"holdings_as_of":"2026-06-30","layer":"sec_nport"},{"fund":"GGTL","fee_usd_per_1000":0.0,"expense_ratio":0.0,"weight":2.3277,"holdings_as_of":"2026-06-30","layer":"sec_nport"}],"name_collision":null,"answer":"Nvidia (NVDA) is held by 747 covered US ETFs (160 issuer files dated 2026-10-01 to 2026-10-16 and 587 SEC filings dated 2026-05-29 to 2026-08-31), is the largest holding of 336 of them, weighs most in GXPT (19.88%, 2026-10-16), is held in the largest amount by IVV (about $69.3 billion, 2026-10-15), and at least 7.56% of its shares outstanding are held by 734 of them (shares outstanding as of 2026-08-21).","least_correlated":[["AWK",-0.37,"American Water Works"],["WTRG",-0.31,"Essential Utilities, Inc."],["ED",-0.3,"Consolidated Edison"]],"most_correlated":[["VRT",0.66,"Vertiv"],["NVT",0.64,"nVent Electric plc"],["TSM",0.61,"Taiwan Semiconductor Manufacturing Company Ltd."]],"weekly":[-0.0214,0.1112,0.074],"weeks_end":"2026-10-16","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"No covered fund holds this key: a security they hold with no stock file answers 200 with coverage holders_only. An old key that now reads as keys with their market (7203) gets them in reads_as, from the aliases of holders, the shard of its first character. reason is_a_fund when the ticker is a covered fund (see fund).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The stock's ticker in lower case, for example nvda. Keep a share class with its dot (brk.b); BRK.B and brk-b answer 301 to that form.","schema":{"type":"string"},"example":"nvda"}]}},"/compare/{a}-vs-{b}.json":{"get":{"operationId":"getComparison","summary":"A written comparison","description":"One of the 15 written comparisons, the pairs listed in index.json written_comparisons: overlap measured three ways, correlation over one, three and five years, and a summary of each fund. The file is written in the order listed there (voo-vs-vti); the other order answers 301 to it. Any other pair answers 404, reason no_written_comparison, with the two fund files. From them, compute the overlap by weight: the sum, over the tickers both hold, of the smaller of the two weights, as the overlap example does.","externalDocs":{"url":"https://tickerinside.com/api/#compare"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Compare"},"example":{"pair":["VOO","VTI"],"as_of":"2026-10-16","holdings_as_of":{"VOO":"2026-06-30","VTI":"2026-06-30"},"overlap":{"by_weight":88.1,"share_of_a":99.9,"share_of_b":88.3,"n_shared":502,"n_a":504,"n_b":3483,"top":[{"ticker":"NVDA","wa":7.51,"wb":6.36,"min":6.36,"pa":100.0,"pb":84.7,"name":"Nvidia"},{"ticker":"AAPL","wa":6.59,"wb":5.87,"min":5.87,"pa":87.7,"pb":78.2,"name":"Apple Inc."},{"ticker":"MSFT","wa":4.3,"wb":3.83,"min":3.83,"pa":57.3,"pb":51.0,"name":"Microsoft"}],"only_a":[{"ticker":"NXPI","w":0.11,"name":"NXP Semiconductors"},{"ticker":"AMCR","w":0.03,"name":"Amcor"}],"only_b":[{"ticker":"SPCX","w":0.14,"name":"Space Exploration Technologies Corp"},{"ticker":"SNOW","w":0.12,"name":"Snowflake Inc."},{"ticker":"BE","w":0.11,"name":"Bloom Energy Corporation"}],"method":"ti-overlap/1","method_url":"https://tickerinside.com/api/v1/methods.json"},"correlation":{"c1y":0.99,"c3y":1.0,"c5y":1.0,"cov":203.2,"weeks":["2025-10-24","2025-10-31","2025-11-07"]},"funds":{"VOO":{"ticker":"VOO","name":"Vanguard S&P 500 ETF","kind":"etf","group":"US Large Cap","vol":14.2,"beta":0.99,"r1":17.5,"r3":90.4,"r5":82.7,"mdd3":-16.7,"cal":{"2022":-18.2,"2023":26.3,"2024":25.0},"er":0.03,"yield":null,"aum_b":null,"family":"Vanguard","cat":"US Large Blend","nh":504,"spark":[100.0,100.7,99.1],"px":{"last":709.43,"date":"2026-10-15","d1":0.28,"hi52":716.2,"lo52":580.93,"ccy":"USD"}},"VTI":{"ticker":"VTI","name":"Vanguard Total Stock Market ETF","kind":"etf","group":"US Large Cap","vol":14.4,"beta":1.01,"r1":16.9,"r3":88.6,"r5":73.1,"mdd3":-17.4,"cal":{"2022":-19.5,"2023":26.0,"2024":23.8},"er":0.03,"yield":null,"aum_b":null,"family":"Vanguard","cat":"US Large Blend","nh":3483,"spark":[100.0,100.5,98.9],"px":{"last":378.42,"date":"2026-10-15","d1":0.41,"hi52":384.3,"lo52":311.68,"ccy":"USD"}}},"page_url":"https://tickerinside.com/compare/voo-vs-vti/","cite_as":"TickerInside, VOO vs VTI, holdings from VOO's SEC Form N-PORT for the period ended 2026-06-30, filed 2026-08-28, and VTI's SEC Form N-PORT for the period ended 2026-06-30, filed 2026-08-28, https://tickerinside.com/compare/voo-vs-vti/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/compare/voo-vs-vti/\">TickerInside</a> (https://tickerinside.com/compare/voo-vs-vti/)","source":"https://tickerinside.com/compare/voo-vs-vti/","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"301":{"description":"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 written comparison asked for in the other order answers 301 to its file."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"reason no_written_comparison: no comparison file for this pair in either order. fund_files gives the two fund files to compute the overlap from; the other order of a written pair answers 301 to its file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"a","in":"path","required":true,"description":"The first fund of a written comparison, lower case, in the order of index.json written_comparisons.","schema":{"type":"string"},"example":"voo"},{"name":"b","in":"path","required":true,"description":"The second fund, lower case.","schema":{"type":"string"},"example":"qqq"}]}},"/overlap":{"get":{"operationId":"getOverlap","summary":"Overlap of funds, computed","description":"Two funds give the pair answer of the MCP tool compare_etfs (kind pair), three or more the ranked pairs of get_etf_overlap_matrix (kind matrix). 2 to 10 funds. The files read weigh at most 64 KB for two funds and 58 KB for three or more, a file of the other layers a third of its size, and the pairs compare at most 2,600 holdings, each pair the holdings of the fund that holds fewer.","externalDocs":{"url":"https://tickerinside.com/api/#overlap"},"parameters":[{"name":"funds","in":"query","required":true,"description":"Tickers separated by commas, 2 to 10; case does not matter and a ticker given twice counts once.","schema":{"type":"string"},"example":"VOO,QQQ"},{"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":{"oneOf":[{"$ref":"#/components/schemas/OverlapPair"},{"$ref":"#/components/schemas/OverlapMatrix"}]},"example":{"kind":"pair","page_url":"https://tickerinside.com/compare/voo-vs-qqq/","share_url":"https://tickerinside.com/diversify/?have=VOO&try=QQQ","pair":["VOO","QQQ"],"prices_as_of":"2026-10-09","holdings_as_of":{"VOO":"2026-08-31","QQQ":"2026-10-08"},"holdings_source":{"VOO":"issuer file","QQQ":"issuer file"},"overlap":{"by_weight":53.9,"share_of_a":54,"share_of_b":92.9,"companies_in_both":85,"positions_a":503,"positions_b":100,"largest_shared":[{"ticker":"NVDA","in_a":8.09,"in_b":8.33,"counted":8.09},{"ticker":"AAPL","in_a":7.04,"in_b":7.45,"counted":7.04},{"ticker":"MSFT","in_a":5.7,"in_b":5.82,"counted":5.7}]},"correlation_3y":0.95,"covariance_annualised_pct2":262.3,"weeks_used":156,"funds":{"VOO":{"name":"Vanguard S&P 500 ETF","expense_ratio_pct":0.03,"return_3y_pct":87.5,"volatility_pct":14.2,"worst_fall_3y_pct":-16.7,"beta_vs_sp500":0.99,"beta_vs_sp500_1y":1,"positions":503},"QQQ":{"name":"Invesco QQQ Trust","expense_ratio_pct":0.18,"return_3y_pct":109.2,"volatility_pct":19.5,"worst_fall_3y_pct":-21.3,"beta_vs_sp500":1.29,"beta_vs_sp500_1y":1.41,"positions":100}},"how_to_quote":"Name the overlap measure quoted and give the holdings_as_of dates. by_weight is symmetric; the two shares are not.","source":{"provider":"TickerInside","links":[{"ticker":"VOO","page_url":"https://tickerinside.com/etf/voo/","api_url":"https://tickerinside.com/api/v1/fund/voo.json","holdings_source":"issuer file"},{"ticker":"QQQ","page_url":"https://tickerinside.com/etf/qqq/","api_url":"https://tickerinside.com/api/v1/fund/qqq.json","holdings_source":"issuer file"}],"license":"CC BY 4.0","cite_as":"TickerInside (tickerinside.com), VOO vs QQQ, https://tickerinside.com/compare/voo-vs-qqq/, from the issuers' holdings files, dated as shown.","benchmark_url":"https://tickerinside.com/api/v1/fund/spy.json"},"note":"Measurement, not investment advice.","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/#overlap"}},"text/csv":{"schema":{"type":"string"},"example":"fund_a,fund_b,overlap_kind,by_weight,share_of_a,share_of_b,in_both,correlation_3y,holdings_as_of_a,holdings_as_of_b,holdings_source_a,holdings_source_b,note\r\nVOO,QQQ,shares,53.9,54,92.9,85,,2026-08-31,2026-10-08,issuer file,issuer file,\r\nVOO,SCHD,shares,8,8,95.1,46,,2026-08-31,2026-05-31,issuer file,SEC Form N-PORT,\r\nQQQ,SCHD,shares,4.6,4.7,26.2,8,,2026-10-08,2026-05-31,issuer file,SEC Form N-PORT,\r\n"}}},"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"}}}},"404":{"description":"A fund the answer needs is not covered: not_covered lists the tickers, with the reason in message, and reason has_security_file the stock file of one that has one (security).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"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"}}}}}}},"/lookthrough":{"get":{"operationId":"getLookthrough","summary":"Look-through of a portfolio, computed","description":"The companies under a portfolio, as the MCP tool get_etf_portfolio_lookthrough gives them. 1 to 6 funds, whose files weigh at most 30 KB, a file of the other layers a third of its size, and hold at most 1,100 lines between them. The portfolios whose x-ray the site writes, listed under pages in /og/answers.json, answer past these limits, in any order of their funds, with the weights written as listed there, top up to 25 and currency as given.","externalDocs":{"url":"https://tickerinside.com/api/#lookthrough"},"parameters":[{"name":"portfolio","in":"query","required":true,"description":"Funds separated by commas, each with its weight or amount after a colon, or none for equal weights; a weight for every fund or for none.","schema":{"type":"string"},"example":"VOO:60,QQQ:40"},{"name":"top","in":"query","required":false,"description":"How many companies, 1 to 200; 25 by default.","schema":{"type":"integer","minimum":1,"maximum":200},"example":25},{"name":"currency","in":"query","required":false,"description":"The currency of the amounts, three letters, echoed and never converted.","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"},"example":"USD"},{"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/Lookthrough"},"example":{"page_url":"https://tickerinside.com/xray/?p=VOO:60,QQQ:40","share_url":"https://tickerinside.com/xray/?p=VOO:60,QQQ:40","priced":true,"portfolio_value":100,"currency":"unstated","prices_as_of":"2026-10-09","funds":2,"distinct_companies":518,"top_10_weight_pct":41.1,"looked_through_pct":100,"holdings_as_of":{"VOO":"2026-08-31","QQQ":"2026-10-08"},"holdings_source":{"VOO":"issuer file","QQQ":"issuer file"},"companies":[{"ticker":"NVDA","weight_pct":8.189,"weight_pct_2dp":8.19,"through":[{"fund":"VOO","weight_pct":4.8556},{"fund":"QQQ","weight_pct":3.3337}],"value":8.19},{"ticker":"AAPL","weight_pct":7.208,"weight_pct_2dp":7.21,"through":[{"fund":"VOO","weight_pct":4.2259},{"fund":"QQQ","weight_pct":2.9818}],"value":7.21},{"ticker":"MSFT","weight_pct":5.751,"weight_pct_2dp":5.75,"through":[{"fund":"VOO","weight_pct":3.422},{"fund":"QQQ","weight_pct":2.3291}],"value":5.75}],"source":{"provider":"TickerInside","links":[{"ticker":"VOO","page_url":"https://tickerinside.com/etf/voo/","api_url":"https://tickerinside.com/api/v1/fund/voo.json","holdings_source":"issuer file"},{"ticker":"QQQ","page_url":"https://tickerinside.com/etf/qqq/","api_url":"https://tickerinside.com/api/v1/fund/qqq.json","holdings_source":"issuer file"}],"license":"CC BY 4.0","cite_as":"TickerInside (https://tickerinside.com/), look-through of VOO and QQQ, from the issuers' holdings files, dated as shown."},"note":"Measurement, not investment advice.","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/#lookthrough"}},"text/csv":{"schema":{"type":"string"},"example":"rank,ticker,weight_pct,value,currency,listed_abroad,through,holdings_as_of,note\r\n1,NVDA,8.189,8.19,unstated,,VOO 4.8556; QQQ 3.3337,VOO 2026-08-31; QQQ 2026-10-08,\r\n2,AAPL,7.208,7.21,unstated,,VOO 4.2259; QQQ 2.9818,VOO 2026-08-31; QQQ 2026-10-08,\r\n3,MSFT,5.751,5.75,unstated,,VOO 3.422; QQQ 2.3291,VOO 2026-08-31; QQQ 2026-10-08,\r\n"}}},"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"}}}},"404":{"description":"A fund the answer needs is not covered: not_covered lists the tickers, with the reason in message, and reason has_security_file the stock file of one that has one (security).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"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"}}}}}}},"/batch":{"get":{"operationId":"getBatch","summary":"Several fund files, computed","description":"Each fund as /fund/{ticker}.json answers it, keyed by ticker, with the tickers not covered and why. 1 to 10 funds. The files of the other layers composed in one call add up to at most 55 KB; the first is always composed.","externalDocs":{"url":"https://tickerinside.com/api/#batch"},"parameters":[{"name":"funds","in":"query","required":true,"description":"Tickers separated by commas, 1 to 10; case does not matter and a ticker given twice counts once.","schema":{"type":"string"},"example":"VOO,QQQ"},{"name":"format","in":"query","required":false,"description":"json only: batch has no CSV twin.","schema":{"type":"string","enum":["json"]}}],"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/Batch"},"example":{"asked":["VOO","QQQ","NVDA"],"found":2,"not_covered":[{"error":"not_covered","reason":"has_security_file","ticker":"NVDA","message":"NVDA is not a fund we cover, but it has a security file: /api/v1/sec/nvda.json lists the covered funds that hold it, if any, with the weight and the date of each file.","security":"https://tickerinside.com/api/v1/sec/nvda.json"}],"funds":{"VOO":{"ticker":"VOO","name":"Vanguard S&P 500 ETF","page_url":"https://tickerinside.com/etf/voo/","cite_as":"TickerInside, Vanguard S&P 500 ETF (VOO), holdings from the issuer's file of 2026-08-31, https://tickerinside.com/etf/voo/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/etf/voo/\">TickerInside</a> (https://tickerinside.com/etf/voo/)","identifiers":{"asset_type":"etf","exchange":"NYSE Arca","composite_figi":"BBG0015VYNT4","share_class_figi":"BBG001TC6MC1","cik":"0000036405","series_id":"S000002839","class_id":"C000092055"},"source_layer":"issuer","category":{"id":"us-large-blend","label":"US Large Blend","group":"us-equity","group_label":"US stocks","asset_class":"equity","rule":"In its file of 2026-08-31, 100% of its stocks are US companies; weighted by holding, they sit where 45% of their market's value is in larger companies (large: up to 78%); growth index funds hold 53% of their value against 55% for companies of the same sizes in the whole market (blend: within 10 points).","basis":"holdings","as_of":"2026-08-31","facets":{"region":"us","country":"US","size":"large","style":"blend","top_sectors":["technology","financials"]},"measured":{"us_share":1,"emerging_share":0,"size_place":0.445,"growth_share":0.535,"growth_share_market":0.55,"top_sector_share":0.379,"country_cover":1,"sector_cover":1,"stocks":503},"method":"https://tickerinside.com/etf/category/"},"as_of":"2026-09-25","holdings_as_of":"2026-08-31","expense_ratio":0.03,"expense_ratio_gross":null,"expense_ratio_source":"market_data","expense_ratio_as_of":null,"expense_ratio_filing_url":null,"yield":1.04,"aum_b":1756.9,"aum_source":"market_data","aum_date":null,"etf_class_net_assets_b":1000,"etf_class_net_assets_as_of":"2026-08-31","positions":503,"breakdown":{"sectors_pct":{"technology":37.8939,"financials":12.2468,"communication_services":9.5052,"health_care":9.2852,"consumer_discretionary":9.1491,"industrials":8.3165,"consumer_staples":4.5039,"energy":3.4822,"utilities":1.9853,"materials":1.8283,"real_estate":1.8029},"no_sector_pct":0,"sector_coverage_pct":100,"sectors_stated":true,"other_funds_pct":0,"mega_cap_tech_pct":36.2227,"top10_us_companies_pct":37.8591,"countries_pct":{"US":99.9993},"no_country_pct":0,"answer":"In its Vanguard file of 2026-08-31, VOO is 37.9% technology, 12.2% financials and 9.5% communication services by sector, with 36.2% in mega-cap tech and 37.9% in the ten largest US companies by market value.","method":"https://tickerinside.com/how-the-numbers-are-produced/#sectors"},"vol":14.2,"beta":0.99,"mdd3":-16.7,"r1":17.9,"r3":87.5,"r5":90.5,"last_close":710.79,"last_close_date":"2026-09-25","day_change_pct":0.54,"high_52w":714.95,"low_52w":580.93,"currency":"USD","holdings":{"NVDA":8.0927,"AAPL":7.0432,"MSFT":5.7033},"weekly":[0.0047,0.0047,-0.0238],"weeks_end":"2026-09-25","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"},"QQQ":{"ticker":"QQQ","name":"Invesco QQQ Trust","page_url":"https://tickerinside.com/etf/qqq/","cite_as":"TickerInside, Invesco QQQ Trust (QQQ), holdings from the issuer's file of 2026-09-26, https://tickerinside.com/etf/qqq/, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/etf/qqq/\">TickerInside</a> (https://tickerinside.com/etf/qqq/)","identifiers":{"asset_type":"etf","exchange":"Nasdaq","composite_figi":"BBG000BSWKH7","share_class_figi":"BBG001S9GN63","cik":"0001067839","series_id":"S000101292","class_id":"C000271435"},"source_layer":"issuer","category":{"id":"us-large-growth","label":"US Large Growth","group":"us-equity","group_label":"US stocks","asset_class":"equity","rule":"In its file of 2026-09-26, 97% of its stocks are US companies; weighted by holding, they sit where 40% of their market's value is in larger companies (large: up to 78%); growth index funds hold 71% of their value against 60% for companies of the same sizes in the whole market (growth: 10 points or more above); technology companies are 60% of its stocks whose sector is known, within 2.5 points of the 60% line for a sector fund, and it keeps the side of that line it had the night before.","basis":"holdings","as_of":"2026-09-26","facets":{"region":"us","country":"US","size":"large","style":"growth","top_sectors":["technology","communication_services"]},"measured":{"us_share":0.967,"emerging_share":0.006,"size_place":0.396,"growth_share":0.711,"growth_share_market":0.598,"top_sector_share":0.596,"country_cover":1,"sector_cover":1,"stocks":101},"method":"https://tickerinside.com/etf/category/"},"as_of":"2026-09-25","holdings_as_of":"2026-09-26","expense_ratio":0.18,"expense_ratio_gross":null,"expense_ratio_source":"market_data","expense_ratio_as_of":null,"expense_ratio_filing_url":null,"yield":0.42,"aum_b":489,"aum_source":"market_data","aum_date":null,"etf_class_net_assets_b":null,"etf_class_net_assets_as_of":null,"positions":101,"breakdown":{"sectors_pct":{"technology":59.4575,"communication_services":15.052,"consumer_discretionary":10.1318,"consumer_staples":5.6543,"health_care":3.7661,"industrials":3.1614,"utilities":1.0109,"materials":0.9,"energy":0.4557,"financials":0.1956},"no_sector_pct":0,"sector_coverage_pct":100,"sectors_stated":true,"other_funds_pct":0,"mega_cap_tech_pct":40.1979,"top10_us_companies_pct":47.9263,"countries_pct":{"US":96.5,"NL":1.2693,"CA":0.8692},"no_country_pct":0,"answer":"In its Invesco file of 2026-09-26, QQQ is 59.5% technology, 15.1% communication services and 10.1% consumer discretionary by sector, with 40.2% in mega-cap tech and 47.9% in the ten largest US companies by market value. By country, 96.5% of QQQ is in the United States, 1.3% in the Netherlands.","method":"https://tickerinside.com/how-the-numbers-are-produced/#sectors"},"vol":19.5,"beta":1.29,"mdd3":-21.3,"r1":25.5,"r3":111.3,"r5":113,"last_close":744.5,"last_close_date":"2026-09-25","day_change_pct":0.46,"high_52w":747.46,"low_52w":558.28,"currency":"USD","holdings":{"NVDA":8.1725,"AAPL":7.4912,"MSFT":5.7683},"weekly":[0.0179,0.0016,-0.0292],"weeks_end":"2026-09-25","flows":{"date":"2026-10-12","flow_usd":-1154472579,"flow_pct_of_assets":-0.231,"previous_close":"2026-10-09","status":"measured","last_closes":{"from":"2026-10-06","to":"2026-10-12","closes":5,"measured":3,"net_usd":-2687120349},"series":[["2026-09-29",3131530722],["2026-09-30",-812361372],["2026-10-01",1370425978]],"text":"On the close of Monday, October 12, 2026, $1.15 billion came out of QQQ, 0.23% of its assets, as it redeemed shares. Over its last 5 closes, a net outflow of $2.69 billion, 3 of them measured.","page_url":"https://tickerinside.com/etf-flows/","method_url":"https://tickerinside.com/how-the-numbers-are-produced/#etf-flows","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history"},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"}},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to the page each fund file's cite_as names 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/#batch"}}}},"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"}}}}}}},"/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\r\nGXPT,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\r\nSMHX,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\r\nVGT,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\r\n,,,,,,,,,,,,,,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,\r\n"}}},"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"}}}}}}},"/diversify":{"get":{"operationId":"getDiversify","summary":"Does it diversify me?, computed","description":"With have alone (Find, mode find): the large US ETFs of a published list ranked by the correlation of their weekly returns with the portfolio's, one per group first, each with its figures and dates. For each fund of try, against the portfolio of the funds of have: its overlap by weight, the correlation of weekly returns on all weeks and on the weeks the portfolio fell, its part in mega-cap tech, its sectors and countries, and a sentence to quote, ranked. 1 to 6 funds in have and 1 to 6 in try. The files read weigh at most 90 KB, a compact file for half its size and a file of the other layers for a third, and hold at most 20,000 lines between them; each fund to try is compared with each fund held in at most 16,000 comparisons of lines in all, about the lines of the shorter of each pair. With have alone, Find ranks the list for any portfolio of up to 6 funds with weekly returns; the overlap of its 3 runs when the files of both sides fit the lower limits of Find, and overlap says whether it ran.","externalDocs":{"url":"https://tickerinside.com/api/#diversify"},"parameters":[{"name":"have","in":"query","required":true,"description":"The funds held, separated by commas, each with its weight after a colon, or none for equal weights; a weight for every fund or for none.","schema":{"type":"string"},"example":"QQQ:60,SMH:20,GLD:20"},{"name":"try","in":"query","required":false,"description":"The funds to try, separated by commas, none of them in have. Without it, Find.","schema":{"type":"string"},"example":"VXUS,SPMO"},{"name":"format","in":"query","required":false,"description":"json only: diversify has no CSV twin; its page is /diversify/ with the same query.","schema":{"type":"string","enum":["json"]}}],"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":{"oneOf":[{"$ref":"#/components/schemas/Diversify"},{"$ref":"#/components/schemas/DiversifyFind"}]},"example":{"kind":"diversify","mode":"compare","question":"Does VXUS or SPMO diversify a portfolio of QQQ 60%, SMH 20% and GLD 20%?","answer":"Of VXUS and SPMO, VXUS has the lowest overlap with QQQ 60%, SMH 20% and GLD 20%, 0.6% by weight in the issuer files and Form N-PORT filings of 2026-06-30 to 2026-10-10, and the lowest weekly correlation with them, 0.75 over 156 weeks to 2026-10-09.","answers":["VXUS has an overlap of 0.6% by weight with a portfolio of QQQ 60%, SMH 20% and GLD 20%, by the issuer files of 2026-08-31 for VXUS and 2026-10-10 for QQQ, and the Form N-PORT filing of 2026-06-30 for SMH; its weekly returns had a 0.75 correlation over 156 weeks to 2026-10-09, and 0.65 over the 57 weeks the portfolio fell.","SPMO has an overlap of 30.6% by weight with a portfolio of QQQ 60%, SMH 20% and GLD 20%, by the issuer files of 2026-10-10 for QQQ and SPMO, and the Form N-PORT filing of 2026-06-30 for SMH; its weekly returns had a 0.91 correlation over 156 weeks to 2026-10-09, and 0.83 over the 57 weeks the portfolio fell."],"have":{"funds":[{"ticker":"QQQ","weight_pct":60,"name":"Invesco QQQ Trust","holdings_as_of":"2026-10-10","holdings_source":"issuer file","holds_shares":true,"weekly_returns":156},{"ticker":"SMH","weight_pct":20,"name":"VanEck Semiconductor ETF","holdings_as_of":"2026-06-30","holdings_source":"SEC Form N-PORT","holds_shares":true,"weekly_returns":156},{"ticker":"GLD","weight_pct":20,"name":"SPDR Gold Shares","holdings_as_of":"2026-06-30","holdings_source":"trust's own SEC filing","holds_shares":false,"weekly_returns":156}],"weights":"given","looked_through_pct":80,"holds_no_shares":["GLD"],"returns_from":["QQQ","SMH","GLD"],"mega_cap_tech_pct":28.8,"sectors":{"known_pct":79.9,"coverage_pct":100,"stated":true,"weights":[{"sector":"technology","name":"technology","pct":55.5},{"sector":"communication_services","name":"communication services","pct":8.8},{"sector":"consumer_discretionary","name":"consumer discretionary","pct":6.2}]},"countries":{"us_pct":74.5,"weights":[{"country":"US","name":"United States","pct":74.5},{"country":"NL","name":"Netherlands","pct":2},{"country":"TW","name":"Taiwan","pct":1.9}],"other_pct":0.1},"sentence":"A portfolio of QQQ 60%, SMH 20% and GLD 20% puts 28.8% of the portfolio in mega-cap tech. Its largest sector is technology at 55.5%, with a sector found for 100.0% of its stock weight."},"candidates":[{"ticker":"VXUS","name":"Vanguard Total International Stock ETF","holdings_as_of":"2026-08-31","holdings_source":"issuer file","fund_file":"https://tickerinside.com/api/v1/fund/vxus.json","page_url":"https://tickerinside.com/etf/vxus/","overlap":{"by_weight_pct":0.6,"share_of_candidate_pct":0.6,"companies_in_both":4,"largest_shared":[{"ticker":"SHOP","in_candidate_pct":0.4,"in_have_pct":0.51,"counted_pct":0.4},{"ticker":"PDD","in_candidate_pct":0.14,"in_have_pct":0.13,"counted_pct":0.13},{"ticker":"CCEP","in_candidate_pct":0.05,"in_have_pct":0.11,"counted_pct":0.05}]},"correlation":{"weekly":0.75,"weeks":156,"from":"2023-10-20","to":"2026-10-09","down_weeks":0.65,"down_weeks_count":57,"with":["QQQ","SMH","GLD"]},"volatility_pct":14.5,"with_10_pct":{"volatility_pct":18,"instead_of_pct":18.8,"weeks":156,"to":"2026-10-09"},"mega_cap_tech_pct":0,"sectors":{"known_pct":74.2,"coverage_pct":74.6,"stated":true,"weights":[{"sector":"financials","name":"financials","pct":17.5},{"sector":"technology","name":"technology","pct":15},{"sector":"industrials","name":"industrials","pct":10.2}]},"countries":{"us_pct":0.1,"weights":[{"country":"JP","name":"Japan","pct":15.5},{"country":"TW","name":"Taiwan","pct":8.7},{"country":"GB","name":"United Kingdom","pct":8.2}],"other_pct":46.2},"rank":1,"sentence":"VXUS has an overlap of 0.6% by weight with a portfolio of QQQ 60%, SMH 20% and GLD 20%, by the issuer files of 2026-08-31 for VXUS and 2026-10-10 for QQQ, and the Form N-PORT filing of 2026-06-30 for SMH; its weekly returns had a 0.75 correlation over 156 weeks to 2026-10-09, and 0.65 over the 57 weeks the portfolio fell."},{"ticker":"SPMO","name":"Invesco S&P 500 Momentum ETF","holdings_as_of":"2026-10-10","holdings_source":"issuer file","fund_file":"https://tickerinside.com/api/v1/fund/spmo.json","page_url":"https://tickerinside.com/etf/spmo/","overlap":{"by_weight_pct":30.6,"share_of_candidate_pct":60.4,"companies_in_both":23,"largest_shared":[{"ticker":"AAPL","in_candidate_pct":9.11,"in_have_pct":4.4,"counted_pct":4.4},{"ticker":"MU","in_candidate_pct":9.2,"in_have_pct":4.01,"counted_pct":4.01},{"ticker":"AMD","in_candidate_pct":5.61,"in_have_pct":3.58,"counted_pct":3.58}]},"correlation":{"weekly":0.91,"weeks":156,"from":"2023-10-20","to":"2026-10-09","down_weeks":0.83,"down_weeks_count":57,"with":["QQQ","SMH","GLD"]},"volatility_pct":20.5,"with_10_pct":{"volatility_pct":18.8,"instead_of_pct":18.8,"weeks":156,"to":"2026-10-09"},"mega_cap_tech_pct":18,"sectors":{"known_pct":100,"coverage_pct":100,"stated":true,"weights":[{"sector":"technology","name":"technology","pct":53.8},{"sector":"health_care","name":"health care","pct":10.4},{"sector":"communication_services","name":"communication services","pct":8.9}]},"countries":{"us_pct":100,"weights":[{"country":"US","name":"United States","pct":100}],"other_pct":0},"rank":2,"sentence":"SPMO has an overlap of 30.6% by weight with a portfolio of QQQ 60%, SMH 20% and GLD 20%, by the issuer files of 2026-10-10 for QQQ and SPMO, and the Form N-PORT filing of 2026-06-30 for SMH; its weekly returns had a 0.91 correlation over 156 weeks to 2026-10-09, and 0.83 over the 57 weeks the portfolio fell."}],"ranking":"By overlap, lowest first, then by weekly correlation, lowest first, each as printed (one and two decimals). An ETF with a figure not measured comes after those measured, then in the order asked. Two measurements, not a recommendation.","prices_as_of":"2026-10-09","definitions":{"overlap":"The sum, over the companies both hold, of the smaller of two weights: the company's weight in the candidate, and its weight in the portfolio, which is its weight in each of the portfolio's ETFs times that ETF's weight. An ETF that holds no shares adds nothing to the portfolio's side. For an ETF read from its SEC filings, a holding the filing lists on a market abroad matches only the same holding abroad.","share_of_candidate":"The part of the candidate's weight in companies the portfolio also holds, each counted at the candidate's own weight. It is never below the overlap, which counts the smaller of the two weights.","correlation":"Pearson's correlation between the candidate's weekly returns and the portfolio's, on the weeks both have: at most the 156 the files carry, at least 52. The portfolio's weekly return is the return of its ETFs at their weights, counting every ETF with at least 52 weekly returns here, whatever it holds. A weekly return is a weekly total return, from the last close of one week to the last close of the next, with dividends reinvested, as in the fund files. The weeks end on Fridays, or on the Thursday when the exchange is shut that Friday, and the last one ends on the files' last close.","down_weeks":"The same correlation on the weeks the portfolio's return was below zero, when there are at least 20.","mega_cap_tech":{"rule":"A fixed list, the one every fund file's breakdown and every ETF page count: Apple, Microsoft, Nvidia, Alphabet, Amazon, Meta Platforms, Broadcom and Tesla, every listed class of each.","companies":[{"name":"Apple","tickers":["AAPL"]},{"name":"Microsoft","tickers":["MSFT"]},{"name":"Nvidia","tickers":["NVDA"]}]},"sectors":"Each ETF's breakdown, as its fund file and ETF page give it. A company's sector is the one most of the single-sector index funds that hold it belong to, each fund one vote, or else the sector of its SEC industry code. When a sector is found for under 50% of an ETF's stock weight, no sector weight is given. A portfolio's breakdown is its ETFs' at their weights.","sectors_stated_from_pct":50,"countries":"Each ETF's breakdown, as its fund file gives it. A line listed abroad counts under the country of its market. A US-listed line counts under the United States, unless its company files with the SEC as a foreign issuer or is Canadian: it then counts under the country of the company's business address. A fund held by a fund counts under the United States."},"share_url":"https://tickerinside.com/diversify/?have=QQQ:60,SMH:20,GLD:20&try=VXUS,SPMO","api_url":"https://tickerinside.com/api/v1/diversify?have=QQQ:60,SMH:20,GLD:20&try=VXUS,SPMO","source":{"provider":"TickerInside","links":[{"ticker":"QQQ","page_url":"https://tickerinside.com/etf/qqq/","api_url":"https://tickerinside.com/api/v1/fund/qqq.json","holdings_source":"issuer file"},{"ticker":"SMH","page_url":"https://tickerinside.com/etf/smh/","api_url":"https://tickerinside.com/api/v1/fund/smh.json","holdings_source":"SEC Form N-PORT"},{"ticker":"GLD","page_url":"https://tickerinside.com/etf/gld/","api_url":"https://tickerinside.com/api/v1/etf/gld.json","holdings_source":"trust's own SEC filing"}],"reference_url":"https://tickerinside.com/api/v1/diversify/reference.json","license":"CC BY 4.0","cite_as":"TickerInside (tickerinside.com), Does it diversify me?, https://tickerinside.com/diversify/?have=QQQ:60,SMH:20,GLD:20&try=VXUS,SPMO, from the ETFs' holdings files and weekly prices, dated as shown."},"note":"Measurement, not investment advice.","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/#diversify"}}}},"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"}}}},"404":{"description":"A fund the answer needs is not covered: not_covered lists the tickers, with the reason in message, and reason has_security_file the stock file of one that has one (security).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"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"}}}}}}},"/holders.json":{"get":{"operationId":"getHolders","summary":"Who holds what, issuer files","description":"The reverse index of the 626 issuer files: for each of the 16,724 securities their funds hold, which of them hold it and at what weight. One file of 3.9 MB, the right shape for a client that loads it once and walks it. SEC-layer funds are not in it. A stock's SEC-layer holders are in /api/v1/sec/{ticker}.json, under holders_sec_nport, and those of a key with no stock file are in the shard of its first character, /api/v1/holders/{c}.json.","externalDocs":{"url":"https://tickerinside.com/api/#holders"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Holders"},"example":{"as_of":"2026-10-16","holdings_as_of":{"CNRG":"2026-10-15","CWI":"2026-10-15","BMVP":"2026-10-15"},"funds":{"XLC":"Communication Services Select Sector SPDR Fund","XLY":"Consumer Discretionary Select Sector SPDR Fund","XLP":"Consumer Staples Select Sector SPDR Fund"},"securities":16724,"names":{"ACA":"Arcosa, Inc.","CEG":"Constellation Energy","CIG":"Cia Energetica de Spon ADR"},"note":"For each security, the funds holding it as [ticker, weight percent], heaviest first. Weights come from the issuer file dated in holdings_as_of. A security listed outside the United States is keyed by its local code and its market, a two letter country code: 7203.JP is Toyota in Tokyo and 7203.SA Elm in Riyadh. aliases gives the keys written before that, when the local code alone was the key, with the keys each reads as now: SAN reads as SAN (the Santander ADR in New York), SAN.ES (Banco Santander in Madrid) and SAN.FR (Sanofi in Paris). A key that reads only as itself with its market after it (NESN as NESN.CH) is listed in the holders shard of its first letter. The Toronto line of a Canadian company that also trades in New York is the same shares, keyed by the US ticker (RY). The funds known from SEC Form N-PORT filings are not in this file: a stock's own file lists them (holders_sec_nport in /api/v1/sec/{ticker}.json), and for a security with no file of its own, such as a line listed abroad, the holders shard of its first character does (holders_sec_nport in /api/v1/holders/a.json for AZN.GB).","holders":{"ACA":[["CNRG",4.4352],["PSCI",2.372],["SLYG",0.5695]],"CEG":[["XLU",6.9211],["IDU",5.7065],["JXI",4.2278]],"CIG":[["CNRG",4.1413],["EMIF",3.0541],["KOMP",0.3554]]},"aliases":{"000100":["000100.CN","000100.KR"],"000155":["000155.CN","000155.KR"],"000157":["000157.CN","000157.KR"]},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you.","source":"https://tickerinside.com/how-the-numbers-are-produced/"}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/holders/{c}.json":{"get":{"operationId":"getHoldersShard","summary":"Who holds what, one first character","description":"The reverse index split by the first character of the key: a.json to z.json, and 0.json for a key that starts with any other character (7203.JP is in 0.json, AZN.GB in a.json). Each shard holds the part of holders.json for its keys, with their names and figures under facts. It also holds what holders.json does not: the SEC-layer funds that hold a key with no stock file, such as a line listed abroad, under holders_sec_nport, and the old keys of its first character under aliases. It is the source of the holders-only answers under /sec/. 0.json is the largest shard (3.0 MB). The same content is split again by the key's first digit, in /api/v1/holders/0/0.json to /api/v1/holders/0/9.json (7203.JP is in 0/7.json), for a client that wants a smaller file. Ask for the key's first character in lower case, or 0 when it is not a letter. The files are a.json to z.json, 0.json, and 0/0.json to 0/9.json; any other address under /api/v1/holders/ answers 404, reason not_a_shard.","externalDocs":{"url":"https://tickerinside.com/api/#holders-shard"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldersShard"},"example":{"as_of":"2026-10-16","holdings_as_of":{"CNRG":"2026-10-15","CWI":"2026-10-15","BMVP":"2026-10-15"},"funds":{"CNRG":"State Street SPDR S&P Kensho Clean Power ETF","CWI":"State Street SPDR MSCI ACWI ex-US ETF","BMVP":"Invesco Bloomberg MVP Multi-factor ETF"},"facts":{"A":{"n":"Agilent Technologies","r1":24.6,"r3":64.3,"vol":31.6,"mdd3":-33.1,"cap_b":48.8,"pe":34.1,"yield":0.58,"page":true},"A0009K0.KR":{"n":"Aimed Bio Inc"},"A00680K.KR":{"n":"Mirae Asset Securities 2P"}},"holders":{"ACA":[["CNRG",4.4352],["PSCI",2.372],["SLYG",0.5695]],"AES":[["CNRG",3.7937],["RSPU",3.328],["PEY",2.2486]],"AVA":[["CNRG",3.1634],["PSCU",3.1316],["PEY",2.3903]]},"holders_sec_nport":{"ACWI":[["HF",6.9817],["AAAA",2.04],["AQLG",0.3449]],"ABVX":[["AADR",3.1198],["GVIP",2.209],["MEDI",2.1642]],"ASX":[["CHPY",3.7805],["NSI",3.5964],["SOXY",2.6191]]},"sec_nport_as_of":{"AAAA":"2026-07-31","AADR":"2026-06-30","ABLD":"2026-07-31"},"aliases":{"A000070":["000070.KR"],"A000080":["000080.KR"],"A000100":["000100.KR"]},"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"reason not_a_shard: the address is not one of a.json to z.json, 0.json or 0/0.json to 0/9.json; holders names the shard of the key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"c","in":"path","required":true,"description":"The first character of the key, lower case: a to z, or 0 for any other character (AZN.GB is in a.json, 7203.JP in 0.json).","schema":{"type":"string","pattern":"^[a-z0]$"},"example":"a"}]}},"/securities.json":{"get":{"operationId":"getSecurities","summary":"Every security, one line each","description":"Every security the funds of the 626 issuer files hold, with how many of them hold it and its largest weight, in one file of 792 KB. The list to walk before asking for stock files: its last place says whether a stock file exists.","externalDocs":{"url":"https://tickerinside.com/api/#securities"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Securities"},"example":{"as_of":"2026-10-16","count":16724,"note":"Each entry is [ticker, how many issuer-layer funds hold it, its largest weight in any of them, company name, 1 when it has a written page at /stock/{ticker}/, 1 when it has a stock file at /api/v1/sec/{ticker}.json, where any other key answers with coverage holders_only]. Sorted by holder count.","securities":[["NVDA",160,19.88,"Nvidia",1,1],["MSFT",158,15.07,"Microsoft",1,1],["AAPL",145,20.37,"Apple Inc.",1,1]],"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/identifiers.json":{"get":{"operationId":"getIdentifiers","summary":"Identifiers that outlive a ticker","description":"One row for each of the 10,868 funds and stocks with a file here: ticker, name, asset type, the exchange it is listed on, its composite and share class FIGIs from OpenFIGI, its SEC CIK and, for a fund, its SEC series and class ids, in one file of 1.3 MB, and the same rows in /api/v1/identifiers.csv. A ticker can change, and a ticker given up can pass to another security. Key your records on the composite FIGI or, for a fund, its SEC class id, not on the ticker: neither changes with the ticker nor passes to another security. A CIK names the company or trust that files with the SEC, and several securities can share one. Of them, 10,773 have a FIGI, 9,849 a CIK and 5,444 a series id; a field is null where its source does not list the security yet. Each fund and stock file carries its row's values under identifiers.","externalDocs":{"url":"https://tickerinside.com/api/#identifiers"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identifiers"},"example":{"read_on":"2026-10-17","count":10868,"note":"One row per fund and stock with a file here, the columns in the order of fields: the ticker, the name its file gives, asset_type (etf, etn or stock), the exchange it is listed on, its composite FIGI (the US listing) and share class FIGI, its SEC CIK (for a fund, that of the registrant that files for it) and, for a fund, its SEC series and class ids. A ticker can change, and a ticker given up can pass to another security. Key your records on the composite FIGI or, for a fund, its SEC class id, not on the ticker: neither changes with the ticker nor passes to another security. A CIK names the company or trust that files with the SEC, and several securities can share one. A field is null where its source does not list the security yet. The same values are in each fund and stock file, under identifiers.","fields":["ticker","name","asset_type"],"counts":{"securities":10868,"etf":5825,"etn":15,"stock":5028,"exchange":10760,"composite_figi":10773,"share_class_figi":10773,"cik":9849,"series_id":5444,"class_id":4668},"sources":[{"name":"OpenFIGI","url":"https://api.openfigi.com/v3/mapping","fields":["composite_figi","share_class_figi"],"read_on":"2026-10-17","terms":"FIGIs are in the public domain under OpenFIGI's terms: https://www.openfigi.com/docs/terms-of-service"},{"name":"SEC company tickers","url":"https://www.sec.gov/files/company_tickers_exchange.json","fields":["cik"],"read_on":"2026-10-17"},{"name":"SEC fund tickers","url":"https://www.sec.gov/files/company_tickers_mf.json","fields":["cik","series_id","class_id"],"read_on":"2026-10-17"}],"securities":[["A","Agilent Technologies","stock"],["AA","Alcoa Corporation","stock"],["AAA","Alternative Access First Priority CLO Bond ETF","etf"]],"license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/diversify/candidates.json":{"get":{"operationId":"getDiversifyList","summary":"The list Find ranks","description":"The files Find reads, public like every file under /api/v1/. candidates.json is the list: its date, its groups, its rule in words, and each ETF of it with its weekly returns, its breakdown or what it holds, and what its file counts for against the limits of an answer. /api/v1/diversify/weekly/{ticker}.json, in lower case, is one ETF's weekly returns and breakdown, for every ETF with at least 52 weekly returns whose last week is the list's, with its own ranking against the list. An answer of have alone is a sort of these measurements by the published rule, the same list for every portfolio: a ranking can be recomputed from these files alone, as Pearson's correlation of w against the portfolio's weekly returns at its weights.","externalDocs":{"url":"https://tickerinside.com/api/#diversify"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiversifyList"},"example":{"name":"Large US ETFs across six kinds of exposure","list_date":"2026-10-10","about":"30 large US ETFs across six kinds of exposure, one ETF per exposure, the same list for every portfolio.","left_out_on_purpose":["S&P 500 ETFs weighted by company size, near duplicates of VTI","sector ETFs for technology, financials, industrials, consumer discretionary, communication services and materials","Treasury bills","single commodities other than gold","gold miners","bitcoin","leveraged, inverse and volatility products"],"weeks_end":"2026-10-16","rule":"From the ETFs of the list, leaving out any ETF the portfolio holds: in each group, the ETF whose weekly returns had the lowest correlation with the portfolio's over the weeks both have, up to 156, compared before rounding; the answer opens on the 3 groups whose lowest is lowest, and an exact tie keeps the order of the list.","top":3,"min_weeks":52,"groups":[{"id":"us-equity","label":"US stocks","one":"US stock","tickers":["VTI","RSP","QQQ"]},{"id":"sector-equity","label":"Sector stocks","one":"sector stock","tickers":["XLU","XLP","XLV","XLE","VNQ","VNQI","IGF"]},{"id":"international-equity","label":"International stocks","one":"international stock","tickers":["VXUS","VEA","AVDV"]}],"unit":"weekly returns in whole numbers of 0.0001, oldest first, ending at weeks_end","left_out_tonight":[],"funds":[{"t":"VTI","g":"us-equity","vol":14.4,"n":"Vanguard Total Stock Market ETF","page":"https://tickerinside.com/etf/vti/","size":14010,"lines":3483,"l":"sec_nport","h":"2026-06-30","bd":{"sectors_pct":{"technology":35.2055,"financials":11.9702,"industrials":10.5854,"health_care":9.6137,"communication_services":9.2755,"consumer_discretionary":9.2347,"consumer_staples":4.2975,"energy":3.1347,"real_estate":2.2407,"utilities":2.1764,"materials":2.0369},"no_sector_pct":0.0049,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":30.2355,"countries_pct":{"US":99.6635,"CA":0.1066,"PE":0.006}},"w":[-257,605,95]},{"t":"RSP","g":"us-equity","vol":13.0,"n":"Invesco S&P 500 Equal Weight ETF","page":"https://tickerinside.com/etf/rsp/","size":3242,"lines":503,"l":"issuer","h":"2026-10-15","bd":{"sectors_pct":{"industrials":16.3687,"technology":15.2213,"financials":14.6348,"health_care":12.8652,"consumer_discretionary":9.4766,"consumer_staples":6.9597,"utilities":6.0368,"real_estate":5.7682,"materials":4.6576,"energy":4.1632,"communication_services":3.6918},"no_sector_pct":0.0,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":1.6467,"countries_pct":{"US":99.8438}},"w":[-245,593,-59]},{"t":"QQQ","g":"us-equity","vol":19.5,"n":"Invesco QQQ Trust","page":"https://tickerinside.com/etf/qqq/","size":6984,"lines":101,"l":"issuer","h":"2026-10-15","bd":{"sectors_pct":{"technology":57.8218,"communication_services":15.0411,"consumer_discretionary":10.4983,"consumer_staples":6.147,"health_care":4.3549,"industrials":3.278,"utilities":1.0896,"materials":0.9669,"energy":0.4625,"financials":0.2079},"no_sector_pct":0.0,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":41.08,"countries_pct":{"US":96.4831,"NL":1.2083,"CA":1.0884}},"w":[-262,649,290]}],"license":"CC BY 4.0","reference_weight":1961}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/diversify/weekly/{ticker}.json":{"get":{"operationId":"getDiversifyWeekly","summary":"One ETF's weekly returns, as Find reads them","description":"The files Find reads, public like every file under /api/v1/. candidates.json is the list: its date, its groups, its rule in words, and each ETF of it with its weekly returns, its breakdown or what it holds, and what its file counts for against the limits of an answer. /api/v1/diversify/weekly/{ticker}.json, in lower case, is one ETF's weekly returns and breakdown, for every ETF with at least 52 weekly returns whose last week is the list's, with its own ranking against the list. An answer of have alone is a sort of these measurements by the published rule, the same list for every portfolio: a ranking can be recomputed from these files alone, as Pearson's correlation of w against the portfolio's weekly returns at its weights.","externalDocs":{"url":"https://tickerinside.com/api/#diversify"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiversifyWeekly"},"example":{"t":"VOO","n":"Vanguard S&P 500 ETF","page":"https://tickerinside.com/etf/voo/","end":"2026-10-16","size":3147,"lines":504,"l":"sec_nport","h":"2026-06-30","bd":{"sectors_pct":{"technology":37.7922,"financials":11.558,"communication_services":9.8912,"consumer_discretionary":9.3077,"industrials":8.9551,"health_care":8.8768,"consumer_staples":4.5712,"energy":2.9776,"utilities":2.1951,"real_estate":1.8229,"materials":1.8022},"no_sector_pct":0.0,"sector_coverage_pct":100.0,"sectors_stated":true,"other_funds_pct":0.0,"mega_cap_tech_pct":34.3848,"countries_pct":{"US":99.75}},"w":[-250,586,136],"solo":{"list_date":"2026-10-10","lowest":["SHY","GLD","XLE"],"rows":[["SHY",3,-27,156,61],["IEF",6,-29,156,61],["TLT",8,-27,156,61]]}}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"No weekly file for this ticker: it has fewer than 52 weekly returns here, or none, or they end on another week than the list's. Its fund file gives what it holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The ticker in lower case, for example voo. An upper case ticker is answered with a 301 to the lower case path.","schema":{"type":"string"},"example":"voo"}]}},"/ownership.json":{"get":{"operationId":"getOwnership","summary":"ETF ownership, every stock","description":"The ETF ownership ledger. For each of the 3,345 stocks with a figure, most held first: the share of its shares outstanding held by the covered US ETFs, at least, how many funds were counted, and the basis. The basis is company when the percent is of the company, every class counted, and class when it is of the ticker's class alone. Then the share of the money in the covered US stock ETFs that sits in the ten largest US companies, and the companies held by the most funds. Each figure's parts and dates are in the stock's file, /api/v1/sec/{ticker}.json, under etf_ownership: shares_held, shares_outstanding and shares_outstanding_as_of, funds_counted, and holdings_dates {oldest, newest}. Here as_of is the newest holdings date counted, not a price date. A lower bound, never an estimate of the whole: shares held by ETFs outside the coverage, and by covered funds whose count could not be used, are not in it. One exception: the count of shares outstanding is used when it is at most 2% below a current independent count, so a figure can be up to about 2% of itself too high. The holdings and the count of shares carry different dates, both published.","externalDocs":{"url":"https://tickerinside.com/api/#ownership"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ownership"},"example":{"as_of":"2026-10-16","method":"ti-ownership/1","method_url":"https://tickerinside.com/api/v1/methods.json","count":3345,"note":"Each entry is [ticker, at least this percent held by the covered US ETFs, how many funds were counted, basis], most held first. With basis company the percent is of the company's shares outstanding, every class counted; with basis class it is of the outstanding shares of the ticker's class alone, which is not the company's figure. most_widely_held carries the same basis. A lower bound: funds not covered, and covered funds whose count could not be used, are not in it. The parts of each figure, its dates and its source are in the stock's file, /api/v1/sec/{ticker}.json, under etf_ownership. A measurement, not investment advice.","stocks":[["EU",33.47,19,"company"],["URG",32.89,16,"company"],["ATEN",30.49,97,"company"]],"refused":{"class_unknown":17,"count_below_independent":339,"count_mismatch":42,"count_too_old":3,"no_fund_counted":544,"no_independent_count":48,"no_sec_count":557,"split_between_dates":120,"under_0_01_pct":28},"refused_reasons":{"class_unknown":"the company's filing does not say which class this ticker is","count_below_independent":"the SEC's count is more than 2% below a current independent count of the same shares, so the percent would be too high","count_mismatch":"the SEC's count is far above an independent count of the same shares, so it counts other shares","count_too_old":"the company's count is more than 400 days older than the holdings","no_fund_counted":"no covered fund's share count could be used","no_independent_count":"no independent count to check the SEC's count against","no_sec_count":"the SEC data gives no count of the company's shares","split_between_dates":"a split of the stock falls after the date of the SEC's count, which is in the old shares","under_0_01_pct":"the counted funds hold less than 0.01% of the shares, below the two decimals of the figure"},"top10_share":{"pct":27.9,"companies":["NVDA","AAPL","GOOGL"],"funds":1487,"funds_without_net_assets":0,"net_assets_dates":{"oldest":"2026-01-31","newest":"2026-10-16"}},"most_widely_held":[["NVDA","Nvidia",747,7.56,"company"],["GOOGL","Alphabet Inc.",745,6.13,"company"],["MSFT","Microsoft",715,7.39,"company"]],"held_back":null,"docs":"https://tickerinside.com/api/#ownership","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/methods.json":{"get":{"operationId":"getMethods","summary":"Methods and test vectors","description":"Each method a published figure names in its method field, with its version, formula, rules and test vectors: inputs with the output the method gives, to check an implementation against. It holds ti-ownership/1, the ETF ownership ledger, ti-ownership-index/1 and ti-overlap/1. A change to what a method computes from inputs it already accepted is a new version, never an edit of the one published. A rule for an input it did not accept before is added to the version with its own test vector, and changes gives the day it was first published.","externalDocs":{"url":"https://tickerinside.com/api/#methods"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Methods"},"example":{"note":"Each method is named by an id and a version. A published figure names the method that produced it. A change to what a method computes from inputs it already accepted is a new version, never an edit of this one. A rule for an input it did not accept before is added to this version with its own test vector, and changes gives the day it was first published, so every earlier vector keeps its output. The test vectors are inputs with the output the method gives for them, to check an implementation against.","methods":[{"id":"ti-ownership/1","name":"ETF ownership ledger","version":1,"since":"2026-09-28","changes":[{"since":"2026-10-03","rule":"before_first_close","what":"A row dated before the stock's first close in the price data is not counted, with the input first_close and a vector for it. The rule applies only to a stock whose file has an empty weekly series, which had no figure under this version before, so no earlier figure or vector changes."}],"measures":"For one US company, the share of its shares outstanding held by the covered US ETFs, as a lower bound: at least this percent, from this many funds.","formula":"pct_lower_bound = floor(100 * shares_held / shares_outstanding, 2 decimals)","definitions":{"shares_held":"The sum, over the covered funds counted, of the shares each holds of every listed class of the company, each class counted at its weight. An issuer file gives the count of its row; a fund from SEC filings the share balance of its common stock rows in its latest Form N-PORT filing. A Vanguard ETF's file counts the whole fund, so its count is multiplied by the ETF class's net assets over the whole fund's, as Vanguard prints them, the first taken at the low end of its rounding and the second at the high end.","shares_outstanding":"The count of the company's shares outstanding on the cover of a periodic report (a 10-K, 10-Q, 20-F or 40-F, amendments and transition reports included), tagged dei:EntityCommonStockSharesOutstanding in the SEC's XBRL data: the most recent one read, published with the date the cover counts the shares on and the filing it comes from. One figure, or one per class rolled up to the company, each class at its weight (one unless the charter says otherwise: a Berkshire class A share is 1,500 class B shares). A count the cover gives for another security, such as preferred stock, warrants, notes, the units of a partnership beside a class of shares or a fully diluted total, is no class and is left out. When the roll-up does not check out and the stock's own class does, the figure is the class's own count, and basis says so; one count read from a filing that names no other class of stock is the company's.","lower_bound":"Funds not covered are not counted, nor covered funds whose count cannot be used, and the percent is rounded down. Holdings and the count carry their own dates, which differ; both are published with the figure. The count is used only when it is at most 2% below a current independent count of the same shares, so the count can put a figure at most about 2% of itself above what the current count would give."},"rules":["A fund is counted once. A fund in both layers is counted from its issuer file. A fund that holds another covered fund is read from its own book, so the shares it holds through that fund are counted there, once.","Only the rows under the stock's own ticker are counted, each the US line: a line listed abroad has a key of its own, its code and its market (7203.JP beside TM, Toyota's ADR), and is another security, never counted for a US stock. A Toronto line of a company whose shares trade in New York is the same shares, of the same class, and is counted under the US ticker (RY).","A row that is another security under the stock's ticker is not counted: the rows of a preferred stock fund, a row whose name in the issuer's file is a preferred or depositary share of the company, and a row whose value per share is more than 25% above or 20% below the stock's close on the row's date."],"not_counted":{"no_share_count":"its file gives no share count for the row","through_fund":"it holds the stock through another covered fund, which is counted instead","preferred_fund":"a preferred stock fund, whose row is a preferred share","preferred_row":"the row's name in the issuer's file is a preferred or depositary share of the company, filed under the common's ticker","price_mismatch":"the row's value per share is more than 25% above or 20% below the stock's close on its date, so the row is another security or a count in other shares","value_mismatch":"the file does not match its weights times the fund's stated net assets, so its counts are wrong or in other shares: for a file without market values, the row's count at the stock's close by more than 25% above or 20% below, or the fund's rows by more than 10% either way in their median; for a file with them, the fund's rows' values by more than 10% either way in their median","no_value_check":"the file gives no market values and the fund states no net assets, so its share count cannot be checked","no_class_size":"a Vanguard file without the ETF class's share of the fund","whole_series":"an SEC filing that covers mutual fund classes too","before_split":"the row is dated before a split of the stock, so its count is in the old shares","before_first_close":"the row is dated before the stock's first close in the price data, so it is not counted against this listing","single_issuer_file":"the only issuer file counted, whose count is never published alone"},"refusals":{"no_sec_count":"the SEC data gives no count of the company's shares","class_unknown":"the company's filing does not say which class this ticker is","count_too_old":"the company's count is more than 400 days older than the holdings","count_date_invalid":"the company's count is dated after the newest holdings, a slip in the filing's data","no_independent_count":"no independent count to check the SEC's count against","split_between_dates":"a split of the stock falls after the date of the SEC's count, which is in the old shares","count_below_independent":"the SEC's count is more than 2% below a current independent count of the same shares, so the percent would be too high","count_mismatch":"the SEC's count is far above an independent count of the same shares, so it counts other shares","no_fund_counted":"no covered fund's share count could be used","under_0_01_pct":"the counted funds hold less than 0.01% of the shares, below the two decimals of the figure","above_100":"the count comes to more than 100% of the shares","held_back":"tonight's ledger failed its checks, and the last one that passed, served in its place, has no line for this stock, or there is none"},"vector_format":"input: ticker; shares_outstanding {as_of, classes [{class, tickers, shares}]}; independent {ticker: {class, company}}; funds [{fund, layer, as_of, shares {ticker: n}, and where they apply issuer, value_usd, weights {ticker: percent}, net_assets, class_net_assets, fund_net_assets, own_book, multi_class, series_id, series_tickers}]; close, the stock's close for the value check, and beside it first_close, the date of the stock's first close; splits {ticker: [[date, numerator, denominator]]}. output: the published fields, or refused with its reason.","vectors":[{"name":"two issuer files and one SEC filing","input":{"ticker":"AAA","shares_outstanding":{"as_of":"2026-08-01","classes":[{"class":null,"tickers":["AAA"],"shares":1000000}]},"independent":{"AAA":{"class":1000000,"company":1000000}},"funds":[{"fund":"F1","layer":"issuer_files","as_of":"2026-09-24","shares":{"AAA":30000}},{"fund":"F2","layer":"issuer_files","as_of":"2026-09-23","shares":{"AAA":20000}},{"fund":"S1","layer":"sec_nport","as_of":"2026-06-30","shares":{"AAA":5555}}]},"output":{"pct_lower_bound":5.55,"basis":"company","shares_held":55555,"shares_outstanding":1000000,"funds_counted":{"issuer_files":2,"sec_nport":1},"not_counted":{}}},{"name":"a Vanguard file pro-rated to its ETF class, at the ends of the rounding","input":{"ticker":"AAA","shares_outstanding":{"as_of":"2026-08-01","classes":[{"class":null,"tickers":["AAA"],"shares":1000000}]},"independent":{"AAA":{"class":1000000,"company":1000000}},"funds":[{"fund":"V1","layer":"issuer_files","as_of":"2026-08-31","issuer":"Vanguard","shares":{"AAA":185000},"class_net_assets":1000000000000,"fund_net_assets":1800000000000},{"fund":"F1","layer":"issuer_files","as_of":"2026-09-24","shares":{"AAA":5000}}]},"output":{"pct_lower_bound":10.0,"basis":"company","shares_held":100000,"shares_outstanding":1000000,"funds_counted":{"issuer_files":2,"sec_nport":0},"not_counted":{}}},{"name":"two listed classes and an unlisted one, rolled up to the company","input":{"ticker":"AAA","shares_outstanding":{"as_of":"2026-07-15","classes":[{"class":"Class A","tickers":["AAA"],"shares":600000},{"class":"Class B","tickers":[],"shares":100000},{"class":"Class C","tickers":["AAC"],"shares":300000}]},"independent":{"AAA":{"class":600000,"company":1000000},"AAC":{"class":300000,"company":1000000}},"funds":[{"fund":"F1","layer":"issuer_files","as_of":"2026-09-24","shares":{"AAA":40000,"AAC":20000}},{"fund":"F2","layer":"issuer_files","as_of":"2026-09-24","shares":{"AAA":10000,"AAC":5000}}]},"output":{"pct_lower_bound":7.5,"basis":"company","shares_held":75000,"shares_outstanding":1000000,"funds_counted":{"issuer_files":2,"sec_nport":0},"not_counted":{}}}]},{"id":"ti-ownership-index/1","name":"ETF Ownership Index","version":1,"since":"2026-10-09","changes":[],"measures":"For each US company, the share of its shares outstanding held by the covered US ETFs (the ledger's figure, a lower bound), how concentrated that ownership is in the three funds holding the most, and how it changed over the last 5 and 20 market closes in the funds read daily from their issuers' files; and the same over the market and by sector, weighted by market cap.","formula":"pct = ledger pct_lower_bound; top3_share = round(100 * sum of the 3 largest fund holdings / shares_held, 1 decimal); change_nd_pp = round(100 * sum over the last n closes of net_shares / shares_outstanding, 4 decimals); cap_weighted_pct = floor(sum(pct * cap) / sum(cap), 2 decimals)","definitions":{"pct":"The figure of the ETF ownership ledger (ti-ownership/1): at least this percent of the company's shares outstanding, from the SEC's count, is held by the covered US ETFs. Its rules, refusals and test vectors are those of that method.","top3_share":"The shares held by the three counted funds holding the most, over the shares held by every counted fund, in percent. A fund holding two classes of the company is one fund, each class at its weight. Published when at least 6 funds are counted and no sum the stock file publishes gives back one fund's count by difference with it.","net_shares":"What the funds read daily from their issuers' files bought less what they sold of the stock on one market close, as the ETF flows (ti-flows/1) publish it: a sum over three funds or more, no fund more than 80% of it, the lines a split, a merger or a spin-off moved left out.","change_nd_pp":"The sum of net_shares over the last n market closes, every listed class at its weight on a company basis, over the ledger's count of shares outstanding, in percentage points. The funds known from SEC filings are not in it.","cap_weighted_pct":"Over one company line per company on a company basis: the sum of pct times market cap over the sum of market caps, a lower bound of the share of those companies' combined market value held by the covered US ETFs."},"rules":["A figure of one class alone (basis class) is in the stock rows and left out of the market and sector lines, since a class's percent is not the company's.","A company with several listed classes is one line, under the ticker with the largest market cap.","top3_share is null under 6 funds counted. The stock file publishes the shares held by layer and by class, and the counts of the funds known from SEC filings are on EDGAR, so the funds read from issuer files among the three largest, and those beside them, fall into groups whose sums can be had by difference: each layer's, and each class's whose shares held are published, the other classes together. Each group must be empty or a sum over 3 funds or more, no fund above 80% of it, or top3_share is null.","A change is null when a daily sum of its window is withheld, when the flows name a corporate action of the stock within the window or 3 closes before it, when a close of the window is not a complete close of the flows, and when no fund read daily held or moved the stock in the flows' window.","A line's change is the cap-weighted mean of the changes of its companies that have one, with the share of the line's cap they make up.","A sector has a line when it has at least 5 companies. The sector is the price data's, which covers the companies of its S&P 500 list.","The daily history keeps one line per market close, written on the first night that close is published and never rewritten. The closes before the first night are rebuilt from the flows of that night: their changes only."],"not_counted":{"window_not_covered":"A close of the window is not a complete close of the flows, or the window starts before the first close they publish.","withheld":"A daily sum of the window is withheld by the flows' rules, so the change would give it back.","corporate_action":"The flows name a corporate action of the stock within the window or just before it.","not_in_flows":"No fund read daily from its issuer's files held or moved the stock in the flows' window."},"refusals":{"fewer_than_6_funds":"Fewer than 6 funds are counted, so the three largest or the rest would be a sum over fewer than three funds.","split_under_3_funds":"With the shares held by layer or by class that the stock file publishes, the share of the three largest would leave one or two funds read from issuer files in a group whose sum can be had by difference.","one_fund_dominant":"With the shares held by layer or by class that the stock file publishes, the share of the three largest would leave a group of funds read from issuer files in which one fund holds more than 80%.","not_in_ledger":"The ledger served tonight was made before the concentration was measured."},"vector_format":"input: kind, then for concentration funds_held [shares of each counted fund], layers [issuer_files or sec_nport, for each] and parts [{class: shares} for each, null for a single part]; for change scope [[ticker, weight]], series {ticker: [[close, net_shares or null]] or null}, actions {ticker: [dates]}, closes, complete, since, shares_out (the ledger's count of shares outstanding); for line companies [{pct, cap_b, change {n: pp}}], windows and fields. output: the figure, or refused with its reason.","vectors":[{"name":"the three largest of seven funds","input":{"kind":"concentration","funds_held":[400000,250000,150000,100000,50000,30000,20000],"layers":["issuer_files","issuer_files","issuer_files","issuer_files","issuer_files","issuer_files","issuer_files"]},"output":{"top3_share":80.0}},{"name":"five funds are too few for a concentration","input":{"kind":"concentration","funds_held":[400000,250000,150000,100000,50000],"layers":["issuer_files","issuer_files","issuer_files","issuer_files","issuer_files"]},"output":{"refused":"fewer_than_6_funds"}},{"name":"a fund known from SEC filings among the three largest leaves two issuer files there","input":{"kind":"concentration","funds_held":[400000,250000,150000,100000,50000,30000,20000],"layers":["issuer_files","sec_nport","issuer_files","issuer_files","issuer_files","issuer_files","issuer_files"]},"output":{"refused":"split_under_3_funds"}}]},{"id":"ti-overlap/1","name":"Holdings overlap of two funds","version":1,"since":"2026-10-09","changes":[],"measures":"How much two funds hold of the same securities, by weight: one figure that is the same from either side, and the share of each fund's own weight that sits in the securities both hold.","formula":"by_weight = round(sum over shared keys k of min(w_a[k], w_b[k]), 1); share_of_a = round(100 * sum over shared k of w_a[k] / sum over every k of w_a[k], 1); share_of_b the same from b's side","definitions":{"w_a, w_b":"Each fund's holdings map, {key: weight in percent}, as its fund file gives it under holdings.","shared keys":"The keys both maps hold, compared exactly as written.","n_shared":"How many keys both maps hold.","n_a, n_b":"How many keys each map holds."},"rules":["Keys are compared as written: GOOG and GOOGL are two keys, and so are 7203.JP and 7203.SA.","share_of_a is over the first fund's listed total weight, which can differ a little from 100; by_weight is not rescaled.","A figure is rounded once, at the end, to one decimal."],"not_counted":{},"refusals":{"not_shares":"A fund whose holdings are not shares of companies: a derivative-based fund, a trust or pool, a multi-asset fund, a fund read from its sponsor's file, or a prospectus file.","fixed_income":"Two fixed income funds, which are compared by issuer instead (issuer_overlap), not by this method."},"vector_format":"input: a and b, each {key: weight percent}; output: by_weight, share_of_a, share_of_b, n_shared, n_a, n_b","vectors":[{"name":"two shared keys","input":{"a":{"AAA":50.0,"BBB":30.0,"CCC":20.0},"b":{"AAA":40.0,"BBB":10.0,"DDD":50.0}},"output":{"by_weight":50.0,"share_of_a":80.0,"share_of_b":50.0,"n_shared":2,"n_a":3,"n_b":3}},{"name":"nothing in common","input":{"a":{"AAA":60.0,"BBB":40.0},"b":{"CCC":70.0,"DDD":30.0}},"output":{"by_weight":0.0,"share_of_a":0.0,"share_of_b":0.0,"n_shared":0,"n_a":2,"n_b":2}},{"name":"two classes are two keys, and totals that are not 100","input":{"a":{"GOOG":2.0,"GOOGL":2.5,"MSFT":6.0},"b":{"GOOGL":3.0,"MSFT":4.0,"NVDA":5.0}},"output":{"by_weight":6.5,"share_of_a":81.0,"share_of_b":58.3,"n_shared":2,"n_a":3,"n_b":3}}]}],"docs":"https://tickerinside.com/api/#methods","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/ownership-index.json":{"get":{"operationId":"getOwnershipIndex","summary":"ETF Ownership Index","description":"The ETF Ownership Index (ti-ownership-index/1). For each stock with a figure in the ownership ledger: the share of its shares outstanding held by the covered US ETFs, at least, the funds counted, and top3_share_pct, the share of those funds' holdings held by the three funds holding the most. Then the market line, over one line per company, with the cap-weighted share of the companies' market value the ETFs hold, the mean, the median and the quartiles, and the same line by sector. Its CSV twin, /api/v1/ownership-index.csv, has the same rows. The methodology, with a worked example, is at /etf-ownership/methodology/. A lower bound, like the ledger it reads: funds outside the coverage, and covered funds whose count could not be used, are not in it. Market caps weight the lines and enter no stock's figure. Under CC BY 4.0.","externalDocs":{"url":"https://tickerinside.com/api/#ownership-index"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipIndex"},"example":{"name":"TickerInside ETF Ownership Index","as_of":"2026-10-16","method":"ti-ownership-index/1","ledger_method":"ti-ownership/1","method_url":"https://tickerinside.com/api/v1/methods.json","methodology":"https://tickerinside.com/etf-ownership/methodology/","holdings_dates":{"oldest":"2026-01-31","newest":"2026-10-16"},"shares_outstanding_dates":{"oldest":"2025-10-21","newest":"2026-09-25"},"caps_as_of":"2026-10-16","count":3345,"columns":["ticker","company","sector"],"stocks":[["EU","enCore Energy Corp.",null],["URG","Ur Energy Inc",null],["ATEN","A10 Networks, Inc.",null]],"market":{"companies":3241,"cap_weighted_pct":7.88,"mean_pct":8.68,"median_pct":7.92,"p25_pct":3.7,"p75_pct":12.8,"companies_without_cap":129,"cap_b":83221.2},"sectors":[{"sector":"Communication Services","companies":18,"cap_weighted_pct":6.91,"mean_pct":9.31,"median_pct":8.94,"p25_pct":6.91,"p75_pct":10.57,"companies_without_cap":0,"cap_b":7380.4},{"sector":"Consumer Discretionary","companies":47,"cap_weighted_pct":7.12,"mean_pct":9.63,"median_pct":9.08,"p25_pct":8.02,"p75_pct":11.3,"companies_without_cap":0,"cap_b":6602.6},{"sector":"Consumer Staples","companies":31,"cap_weighted_pct":8.27,"mean_pct":10.73,"median_pct":10.29,"p25_pct":8.96,"p75_pct":12.43,"companies_without_cap":0,"cap_b":3549.1}],"class_basis_left_out":83,"concentration_min_funds":6,"concentration_not_published":{"fewer_than_6_funds":338,"one_fund_dominant":13,"split_under_3_funds":1575},"held_back":null,"failed":false,"history":"https://tickerinside.com/api/v1/ownership-index/history.json","csv":"https://tickerinside.com/api/v1/ownership-index.csv","note":"Each row of stocks is described by columns: ticker; company; sector, where the price data gives one (the companies of its S&P 500 list); basis, company when the percent is of the company's shares outstanding, every class counted, class when it is of the ticker's class alone; pct_lower_bound, at least this percent held by the covered US ETFs (the ledger's figure); funds_counted; top3_share_pct, the share of those funds' holdings held by the three funds holding the most, null under 6 funds or where a published sum would give back one fund's count (concentration_not_published); holdings_newest, the newest holdings date counted; shares_outstanding_as_of, the date of the SEC's count. market and sectors are over one line per company on a company basis, weighted by market cap for cap_weighted_pct. The changes over 5 and 20 market days are in the history file, under the history terms. A measurement, not investment advice.","cite_as":"TickerInside, ETF Ownership Index (ti-ownership-index/1) of 2026-10-16: at least 7.88% of the combined market value of 3,241 US-listed companies held by the covered US ETFs, https://tickerinside.com/api/v1/ownership-index.json, CC BY 4.0","cite_html":"<a href=\"https://tickerinside.com/api/v1/ownership-index.json\">TickerInside</a> (https://tickerinside.com/api/v1/ownership-index.json)","docs":"https://tickerinside.com/api/#ownership-index","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/ownership-index/history.json":{"get":{"operationId":"getOwnershipIndexHistory","summary":"ETF Ownership Index, daily history","description":"One row per market close of the market line and of each sector line: the levels of the night the close was first published, and the change of ETF ownership ending on the close over 1, 5 and 20 market days, weighted by market cap. Then each stock's changes ending on the latest close, in percentage points of its shares outstanding, from the net shares the funds read daily bought and sold, as the ETF flows publish them. Its CSV twin, /api/v1/ownership-index/history.csv, has the rows of every line. A row is written the first night its close is published and never rewritten. The rows before the first night are rebuilt from the flows of that night: their changes only. Not under CC BY 4.0: the history terms apply.","externalDocs":{"url":"https://tickerinside.com/api/#ownership-index-history"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipIndexHistory"},"example":{"name":"TickerInside ETF Ownership Index, daily history","method":"ti-ownership-index/1","flows_method":"ti-flows/1","methodology":"https://tickerinside.com/etf-ownership/methodology/","first_close":"2026-09-29","last_close":"2026-10-12","windows":{"1d":{"from":"2026-10-09","to":"2026-10-12","covered":true},"5d":{"from":"2026-10-05","to":"2026-10-12","covered":true},"20d":{"from":"2026-09-14","to":"2026-10-12","covered":false}},"series_columns":["date","as_of","companies"],"market":[["2026-09-29",null,null],["2026-09-30",null,null],["2026-10-01",null,null]],"sectors":{"Communication Services":[["2026-09-29",null,null],["2026-09-30",null,null],["2026-10-01",null,null]],"Consumer Discretionary":[["2026-09-29",null,null],["2026-09-30",null,null],["2026-10-01",null,null]],"Consumer Staples":[["2026-09-29",null,null],["2026-09-30",null,null],["2026-10-01",null,null]]},"stocks_columns":["ticker","change_1d_pp","change_5d_pp","change_20d_pp","null_1d","null_5d","null_20d"],"stocks":[["A",0.0121,0.0328,null,null,null,null],["AA",0.0079,0.0225,null,null,null,null],["AADX",null,null,null,"withheld","withheld",null]],"not_measured":{"1d":{"corporate_action":1,"not_in_flows":115,"withheld":1876},"5d":{"corporate_action":1,"not_in_flows":115,"withheld":2189},"20d":{"window_not_covered":3345}},"null_reasons":{"window_not_covered":"A close of the window is not a complete close of the flows, or the window starts before the first close they publish.","withheld":"A daily sum of the window is withheld by the flows' rules, so the change would give it back.","corporate_action":"The flows name a corporate action of the stock within the window or just before it.","not_in_flows":"No fund read daily from its issuer's files held or moved the stock in the flows' window."},"index":"https://tickerinside.com/api/v1/ownership-index.json","csv":"https://tickerinside.com/api/v1/ownership-index/history.csv","note":"One row per market close, oldest first, with the columns named in series_columns: date, the close; as_of, the date of the ownership ledger whose levels the row carries, null for a rebuilt row; the levels of that night (as in /api/v1/ownership-index.json); then for 1, 5 and 20 market days the change of ETF ownership ending on the close, in percentage points of the shares outstanding, weighted by market cap over the companies with a change, and the share of the line's market cap they make up. A row is written the first night its close is published and never rewritten; a rebuilt row is a close before that night, its changes read from the flows of that night and its levels null. The changes count the funds read daily from their issuers' files, from the ETF flows (ti-flows/1): each daily sum over three funds or more, the lines a corporate action moved left out. stocks gives each stock's changes ending on last_close, with the reason a change is null. Not under CC BY 4.0: the history terms apply. A measurement, not investment advice.","cite_as":"TickerInside, ETF Ownership Index, daily history of the closes of 2026-09-29 to 2026-10-12, https://tickerinside.com/api/v1/ownership-index/history.json","cite_html":"<a href=\"https://tickerinside.com/api/v1/ownership-index/history.json\">TickerInside</a> (https://tickerinside.com/api/v1/ownership-index/history.json)","docs":"https://tickerinside.com/api/#ownership-index-history","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you. Free per request, commercial use included; republishing the archive as a whole or a substantial part of it, and extracting it systematically, are not allowed."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/history.json":{"get":{"operationId":"getHistoryIndex","summary":"Holdings history, every fund","description":"Every issuer-layer fund that has a history here, with the dates of its oldest and newest files in the archive, how many file dates it holds, how often the issuer publishes, and the address of its history file. Not under CC BY 4.0: the history terms apply (license, terms). Fetching this list or many funds' history files on a schedule to store them is not allowed.","externalDocs":{"url":"https://tickerinside.com/api/#history-index"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryIndex"},"example":{"as_of":"2026-10-16","since":"2026-09-01","count":633,"funds":[{"t":"AAXJ","first":"2026-09-02","last":"2026-10-15","file_dates":31,"cadence":"daily","traded_pp_from":"2026-09-29","ended":null,"url":"https://tickerinside.com/api/v1/history/aaxj.json"},{"t":"ACHP","first":"2026-10-16","last":"2026-10-16","file_dates":1,"cadence":null,"traded_pp_from":null,"ended":null,"url":"https://tickerinside.com/api/v1/history/achp.json"},{"t":"ACWI","first":"2026-09-01","last":"2026-10-15","file_dates":31,"cadence":"daily","traded_pp_from":"2026-09-29","ended":null,"url":"https://tickerinside.com/api/v1/history/acwi.json"}],"holdings_at":null,"note":"One file per fund read from its issuer's own files, from the first file the archive holds: each file date, and what changed from one file to the next, weights only. previous names the file each step is compared with, so a gap and a monthly file show. A step marked restated is a change of the keys or of the reading of the files, not a trade. A fund no longer read from its issuer's files keeps its history to its last file, whose date ended gives; the other funds known from SEC filings have no history here.","docs":"https://tickerinside.com/api/#history","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you. Free per request, commercial use included; republishing the archive as a whole or a substantial part of it, and extracting it systematically, are not allowed."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/history/{ticker}.json":{"get":{"operationId":"getFundHistory","summary":"One fund's holdings history","description":"Each file date the archive holds for the fund, with its position count and top 10 weight. Then each step from a file to the next: the lines that entered and exited with their weights, the lines whose weight moved by 0.05 points or more, and three measures of the step. Then how its overlap with its ten closest funds moved. Every step names the file it is compared with, so a gap in the archive or a monthly file shows. A step across a change of the keys is restated, not read as trades: it has no entered, exited or moved, so read them with a default. Weights only: no share count, market value or fund size is served. weights_moved_pp is not turnover, since prices move every weight; traded_pp, from share counts, is. Not under CC BY 4.0: the history terms apply (license, terms). Fetch it per request, one fund at a time; fetching many funds' history on a schedule to store it is not allowed.","externalDocs":{"url":"https://tickerinside.com/api/#fund-history"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundHistory"},"example":{"ticker":"SPY","name":"SPDR S&P 500 ETF Trust","source_layer":"issuer","key_scheme":2,"first":"2026-09-02","last":"2026-10-15","file_dates":31,"cadence":"daily","snapshots":{"columns":["holdings_as_of","positions","top10_weight","key_scheme","unplaced"],"rows":[["2026-09-02",504,37.95,1,[]],["2026-09-03",504,38.13,1,[]],["2026-09-04",504,38.0,1,[]]]},"moved_threshold_pp":0.05,"traded_min_pairs":20,"traded_pairs":14,"traded_pp_from":"2026-09-28","traded_pp_reason":"fewer_than_20_pairs_with_share_counts","changes":[{"date":"2026-09-03","previous":"2026-09-02","entered":[],"exited":[],"moved":[["AVGO",2.6319,2.5327],["MSFT",5.586,5.6753],["TSLA",1.5212,1.5869]],"moved_below_threshold":475,"names_turnover_pp":0.0,"weights_moved_pp":0.6092,"traded_pp":null},{"date":"2026-09-04","previous":"2026-09-03","entered":[],"exited":[],"moved":[["AAPL",7.2197,7.0638],["MU",1.6183,1.7232],["NVDA",8.287,8.3865]],"moved_below_threshold":469,"names_turnover_pp":0.0,"weights_moved_pp":0.786,"traded_pp":null},{"date":"2026-09-08","previous":"2026-09-04","entered":[],"exited":[],"moved":[["NVDA",8.3865,8.2659],["AVGO",2.5471,2.6383],["AMD",1.1704,1.2467]],"moved_below_threshold":475,"names_turnover_pp":0.0,"weights_moved_pp":0.7754,"traded_pp":null}],"overlap_history":{"with_top_funds_by_overlap":10,"series":{"IVVW":[["2026-09-24",99.7],["2026-09-25",99.7],["2026-09-28",99.7]],"SPYM":[["2026-09-02",99.8],["2026-09-03",99.8],["2026-09-04",99.8]],"IVV":[["2026-09-02",98.8],["2026-09-03",99.2],["2026-09-04",99.2]]}},"holdings_at":null,"fund":"https://tickerinside.com/api/v1/fund/spy.json","ended":null,"cite_as":"TickerInside, SPDR S&P 500 ETF Trust (SPY), holdings history from the issuer's files of 2026-09-02 to 2026-10-15, https://tickerinside.com/api/v1/history/spy.json","cite_html":"<a href=\"https://tickerinside.com/api/v1/history/spy.json\">TickerInside</a> (https://tickerinside.com/api/v1/history/spy.json)","docs":"https://tickerinside.com/api/#history","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you. Free per request, commercial use included; republishing the archive as a whole or a substantial part of it, and extracting it systematically, are not allowed."}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"reason not_in_archive: the fund has no history (see history). A dated address under the fund answers its latest quarterly SEC report on or before the date, or before_first_report, holdings_at_date_not_enabled (a fund that files none) or invalid_date.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The fund's ticker in lower case, for example spy.","schema":{"type":"string"},"example":"spy"}]}},"/flows.json":{"get":{"operationId":"getFlows","summary":"ETF flows, the day's summary","description":"What the US ETFs read daily from their issuers' files bought and sold, security by security, from the change in shares held between each fund's previous file and its file of date, each file placed at the market close it reflects: the largest net additions and reductions by value, in percent and beyond the funds' own growth, the securities that entered or exited funds tracking the same index, the corporate actions, and each of the last 20 closes. Its CSV twin, /api/v1/flows.csv, lists every security moved on date. A change in shares held mixes the creations and redemptions of a fund's own shares with its rebalancing: read beyond_growth for the second. Only the funds read daily from their issuers are counted, never the funds known from SEC filings, and only common shares: futures, options and short positions are left out. A split, a bonus issue or a stock dividend, a count in other units, a line a file dropped for a day, a change of ticker and the lines a merger or a spin-off moved are left out as no trade. A sum is published only when three or more funds make it and no one fund more than 80% of it; withheld says why one is null. Feeds: /feeds/flows.xml, /feeds/fund/{ticker}.xml, /feeds/stock/{ticker}.xml (RSS 2.0). Not under CC BY 4.0: the history terms apply. A feed reader may poll the feeds; fetching the shards or many securities' answers on a schedule to keep them is systematic extraction.","externalDocs":{"url":"https://tickerinside.com/api/#flows"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsSummary"},"example":{"date":"2026-10-12","newest_file":"2026-10-16","first_date":"2026-09-28","method":"ti-flows/1","coverage":{"funds_read_daily":624,"funds_counted":609,"issuers":["Global X","Invesco","SPDR","iShares"],"net_assets_usd":6248330747647,"share_of_stock_etf_assets_pct":71.6,"not_counted":{"fund_of_funds":10,"no_file_for_date":5,"no_longer_read":7,"not_daily":2}},"added_by_value":[{"ticker":"NVDA","name":"Nvidia","funds_adding":31,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":1306360,"net_shares_pct":0.0911,"net_shares_beyond_growth":-113612,"net_value_usd":293512213,"net_value_beyond_growth_usd":-25718871,"withheld":null},{"ticker":"AAPL","name":"Apple Inc.","funds_adding":29,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":752399,"net_shares_pct":0.0882,"net_shares_beyond_growth":-82252,"net_value_usd":254598223,"net_value_beyond_growth_usd":-28050983,"withheld":null},{"ticker":"MSFT","name":"Microsoft","funds_adding":30,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":409426,"net_shares_pct":0.0924,"net_shares_beyond_growth":-26191,"net_value_usd":219984625,"net_value_beyond_growth_usd":-14177580,"withheld":null}],"reduced_by_value":[{"ticker":"EBS.AT","name":"Erste Group Bank AG","funds_adding":1,"funds_trimming":3,"funds_entered":0,"funds_exited":1,"net_shares":-94268,"net_shares_pct":-1.2742,"net_shares_beyond_growth":null,"net_value_usd":-11492074,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"one_fund_dominant","net_value_beyond_growth_usd":"one_fund_dominant"}},{"ticker":"DB1.DE","name":"Deutsche Boerse AG","funds_adding":3,"funds_trimming":2,"funds_entered":0,"funds_exited":0,"net_shares":-21329,"net_shares_pct":-0.4402,"net_shares_beyond_growth":null,"net_value_usd":-7110849,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"one_fund_dominant","net_value_beyond_growth_usd":"one_fund_dominant"}},{"ticker":"BBVA.ES","name":"Banco Bilbao Vizcaya Argentaria SA","funds_adding":3,"funds_trimming":1,"funds_entered":0,"funds_exited":0,"net_shares":-239760,"net_shares_pct":-0.1575,"net_shares_beyond_growth":null,"net_value_usd":-6322982,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"one_fund_dominant","net_value_beyond_growth_usd":"one_fund_dominant"}}],"added_by_shares_pct":[{"ticker":"CRGY","name":"Crescent Energy Company","funds_adding":9,"funds_trimming":4,"funds_entered":0,"funds_exited":0,"net_shares":2236236,"net_shares_pct":4.7736,"net_shares_beyond_growth":null,"net_value_usd":28553523,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"one_fund_dominant","net_value_beyond_growth_usd":"one_fund_dominant"}},{"ticker":"SDLF.GB","name":"Standard Life PLC","funds_adding":5,"funds_trimming":1,"funds_entered":0,"funds_exited":0,"net_shares":977386,"net_shares_pct":4.2367,"net_shares_beyond_growth":null,"net_value_usd":11085572,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"fewer_than_3_funds","net_value_beyond_growth_usd":"fewer_than_3_funds"}},{"ticker":"EL","name":"Estée Lauder Companies (The)","funds_adding":18,"funds_trimming":7,"funds_entered":1,"funds_exited":0,"net_shares":231117,"net_shares_pct":1.4168,"net_shares_beyond_growth":106493,"net_value_usd":22706704,"net_value_beyond_growth_usd":10653289,"withheld":null}],"reduced_by_shares_pct":[{"ticker":"TIT.IT","name":"Telecom Italia SpA/Milano","funds_adding":1,"funds_trimming":19,"funds_entered":0,"funds_exited":0,"net_shares":-851973,"net_shares_pct":-11.093,"net_shares_beyond_growth":null,"net_value_usd":-5222479,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"fewer_than_3_funds","net_value_beyond_growth_usd":"fewer_than_3_funds"}},{"ticker":"0126Z0.KR","name":"Samsung Episholdings Co Ltd","funds_adding":1,"funds_trimming":9,"funds_entered":0,"funds_exited":0,"net_shares":-1166,"net_shares_pct":-4.6041,"net_shares_beyond_growth":null,"net_value_usd":-283970,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"fewer_than_3_funds","net_value_beyond_growth_usd":"fewer_than_3_funds"}},{"ticker":"ACDC","name":"ProFrac Holding Corp.","funds_adding":1,"funds_trimming":3,"funds_entered":0,"funds_exited":1,"net_shares":-27979,"net_shares_pct":-2.4303,"net_shares_beyond_growth":null,"net_value_usd":-127372,"net_value_beyond_growth_usd":null,"withheld":{"net_shares_beyond_growth":"one_fund_dominant","net_value_beyond_growth_usd":"one_fund_dominant"}}],"added_beyond_growth_by_value":[{"ticker":"EL","name":"Estée Lauder Companies (The)","funds_adding":18,"funds_trimming":7,"funds_entered":1,"funds_exited":0,"net_shares":231117,"net_shares_pct":1.4168,"net_shares_beyond_growth":106493,"net_value_usd":22706704,"net_value_beyond_growth_usd":10653289,"withheld":null},{"ticker":"000660.KR","name":"SK hynix Inc","funds_adding":7,"funds_trimming":2,"funds_entered":0,"funds_exited":0,"net_shares":13764,"net_shares_pct":0.0769,"net_shares_beyond_growth":5745,"net_value_usd":16503947,"net_value_beyond_growth_usd":6885899,"withheld":null},{"ticker":"BRK.B","name":"Berkshire Hathaway","funds_adding":17,"funds_trimming":8,"funds_entered":0,"funds_exited":0,"net_shares":90854,"net_shares_pct":0.0991,"net_shares_beyond_growth":6433,"net_value_usd":46538514,"net_value_beyond_growth_usd":3329403,"withheld":null}],"reduced_beyond_growth_by_value":[{"ticker":"AAPL","name":"Apple Inc.","funds_adding":29,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":752399,"net_shares_pct":0.0882,"net_shares_beyond_growth":-82252,"net_value_usd":254598223,"net_value_beyond_growth_usd":-28050983,"withheld":null},{"ticker":"NVDA","name":"Nvidia","funds_adding":31,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":1306360,"net_shares_pct":0.0911,"net_shares_beyond_growth":-113612,"net_value_usd":293512213,"net_value_beyond_growth_usd":-25718871,"withheld":null},{"ticker":"MSFT","name":"Microsoft","funds_adding":30,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"net_shares":409426,"net_shares_pct":0.0924,"net_shares_beyond_growth":-26191,"net_value_usd":219984625,"net_value_beyond_growth_usd":-14177580,"withheld":null}],"index_events":[{"date":"2026-10-09","ticker":"MRNA","change":"entered","funds":["QQQ","QQQM"],"same_index_as":"QQQ","group_funds":8,"text":"entered 2 of the 8 funds tracking the same index as QQQ on 2026-10-09"},{"date":"2026-10-08","ticker":"MRNA","change":"entered","funds":["QYLD","IQQ","QNDX","QYLG","QRMI","QTR"],"same_index_as":"QQQ","group_funds":8,"text":"entered 6 of the 8 funds tracking the same index as QQQ on 2026-10-08"},{"date":"2026-10-07","ticker":"WBD","change":"exited","funds":["IWB","IYY"],"same_index_as":"IWB","group_funds":2,"text":"exited the 2 funds tracking the same index as IWB on 2026-10-07"}],"corporate_actions":[{"date":"2026-10-12","kind":"distribution","from":"PNN.GB","to":"PNNN.GB","ratio":0.4667,"text":"PNNN.GB distributed to holders of PNN.GB at 0.4667 shares each on 2026-10-12"},{"date":"2026-10-12","kind":"distribution","from":"UNI.IT","to":"UNIAXA.IT","ratio":1.0,"text":"UNIAXA.IT distributed to holders of UNI.IT at 1 share each on 2026-10-12"},{"date":"2026-10-12","kind":"split","from":"001309.CN","to":"001309.CN","ratio":1.4,"text":"each share of 001309.CN became 1.4 shares on 2026-10-12: a split, a bonus issue or a stock dividend, no trade"}],"not_ranked":[{"ticker":"001309.CN","reason":"split"},{"ticker":"2689012D.GB","reason":"distribution"},{"ticker":"532425.IN","reason":"uniform_change"}],"funds_most_changed":[{"fund":"BIDD","name":"iShares International Dividend Active ETF","previous":"2026-10-09","date":"2026-10-12","entered":17,"exited":8,"increased":4,"decreased":25,"growth_pct":-1.2181,"not_trusted":0},{"fund":"BFLX","name":"iShares Flexible Equity Active ETF","previous":"2026-10-09","date":"2026-10-12","entered":3,"exited":3,"increased":53,"decreased":45,"growth_pct":0.0,"not_trusted":0},{"fund":"RSSL","name":"Global X Russell 2000 ETF","previous":"2026-10-09","date":"2026-10-12","entered":2,"exited":3,"increased":0,"decreased":0,"growth_pct":0.0,"not_trusted":0}],"days":[{"date":"2026-10-12","funds":609,"complete":true,"securities_changed":7019,"added_by_value":[["NVDA",293512213,1306360],["AAPL",254598223,752399],["MSFT",219984625,409426]],"reduced_by_value":[["EBS.AT",-11492074,-94268],["DB1.DE",-7110849,-21329],["BBVA.ES",-6322982,-239760]]},{"date":"2026-10-09","funds":609,"complete":true,"securities_changed":8790,"added_by_value":[["NVDA",440116612,1926143],["AAPL",404283560,1204893],["MSFT",327200534,613525]],"reduced_by_value":[["700.HK",-24296141,-446050],["LMT",-8780919,-17176],["BA",-8442744,-44137]]},{"date":"2026-10-08","funds":611,"complete":true,"securities_changed":8945,"added_by_value":[["XOM",156836473,940635],["BRK.B",128173963,254385],["JPM",116428984,356439]],"reduced_by_value":[["TSM",-12498425,-27164],["GE",-11614453,-37422],["2330.TW",-11059585,-137100]]}],"not_counted":[{"fund":"CORO","reason":"fund_of_funds","last_file":"2026-10-15"},{"fund":"HAWX","reason":"fund_of_funds","last_file":"2026-10-15"},{"fund":"HEEM","reason":"fund_of_funds","last_file":"2026-10-15"}],"file_gaps":27,"security":"https://tickerinside.com/api/v1/flows/{ticker}.json","csv":"https://tickerinside.com/api/v1/flows.csv","feed":"https://tickerinside.com/feeds/flows.xml","feed_fund":"https://tickerinside.com/feeds/fund/{ticker}.xml","feed_stock":"https://tickerinside.com/feeds/stock/{ticker}.xml","note":"Changes in shares held by the covered ETFs, read from consecutive issuer files of each fund read daily, each file placed at the market close it reflects. A change mixes the creations and redemptions of a fund's own shares with its rebalancing; beyond_growth leaves out the part in proportion to the fund's own growth. Corporate actions are no trades: the lines a merger converted, a spin-off distributed or a split, bonus issue or stock dividend multiplied are left out of the sums, and the security is named in corporate_actions and not ranked. Values are at the files' own prices per share, never an outside price. Share counts are published as sums over funds, never fund by fund: a sum is published only when three or more funds make it and no one fund more than 80% of it, else it is null with its reason in withheld.","cite_as":"TickerInside, ETF flows of the close of 2026-10-12 from the issuers' files, https://tickerinside.com/api/v1/flows.json","cite_html":"<a href=\"https://tickerinside.com/api/v1/flows.json\">TickerInside</a> (https://tickerinside.com/api/v1/flows.json)","docs":"https://tickerinside.com/api/#flows","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you. Free per request, commercial use included; republishing the archive as a whole or a substantial part of it, and extracting it systematically, are not allowed."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/flows/{ticker}.json":{"get":{"operationId":"getSecurityFlows","summary":"ETF flows, one security","description":"One security's flows: on date, how many funds added and trimmed it, the net change in shares, in dollars at the files' own prices and beyond the funds' own growth, the funds with the largest changes, with their weights only, and the lines left out as no trade; then one row per close of the last 20, its index entries and exits and its corporate actions. Composed when asked from the shard of the key's first character, /api/v1/flows/shards/{c}.json. A key no fund read daily held or moved in the last 20 trading days answers 404, reason not_held_by_daily_funds. Not under CC BY 4.0: the history terms apply.","externalDocs":{"url":"https://tickerinside.com/api/#stock-flows"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityFlows"},"example":{"ticker":"NVDA","name":"Nvidia","date":"2026-10-12","newest_file":"2026-10-16","funds_holding":156,"funds_counted":609,"latest":{"date":"2026-10-12","funds_adding":31,"funds_trimming":13,"funds_entered":0,"funds_exited":0,"single_fund":false,"net_shares":1306360,"net_shares_beyond_growth":-113612,"net_shares_pct":0.0911,"net_value_usd":293512213,"net_value_beyond_growth_usd":-25718871,"valued_pct":100.0,"withheld":null,"funds":{"columns":["fund","change","weight_before","weight_after","previous","date"],"rows":[["SPY","increased",8.2429,8.141,"2026-10-09","2026-10-12"],["SPYM","increased",8.2358,8.1345,"2026-10-09","2026-10-12"],["QQQ","decreased",8.2501,8.2015,"2026-10-10","2026-10-12"]]},"not_trusted":[]},"series":{"columns":["date","funds_adding","funds_trimming"],"rows":[["2026-09-28",5,4],["2026-09-29",26,18],["2026-09-30",31,18]]},"index_events":[],"corporate_actions":[],"method":"ti-flows/1","note":"Changes in shares held by the covered ETFs, read from consecutive issuer files of each fund read daily, each file placed at the market close it reflects. A change mixes the creations and redemptions of a fund's own shares with its rebalancing; beyond_growth leaves out the part in proportion to the fund's own growth. Corporate actions are no trades: the lines a merger converted, a spin-off distributed or a split, bonus issue or stock dividend multiplied are left out of the sums, and the security is named in corporate_actions and not ranked. Values are at the files' own prices per share, never an outside price. Share counts are published as sums over funds, never fund by fund: a sum is published only when three or more funds make it and no one fund more than 80% of it, else it is null with its reason in withheld.","summary":"https://tickerinside.com/api/v1/flows.json","feed":"https://tickerinside.com/feeds/stock/nvda.xml","cite_as":"TickerInside, Nvidia (NVDA), ETF flows of the closes of 2026-09-28 to 2026-10-12 from the issuers' files, https://tickerinside.com/api/v1/flows/nvda.json","cite_html":"<a href=\"https://tickerinside.com/api/v1/flows/nvda.json\">TickerInside</a> (https://tickerinside.com/api/v1/flows/nvda.json)","docs":"https://tickerinside.com/api/#stock-flows","license":"TickerInside history terms","terms":"https://tickerinside.com/legal/#history","attribution":"Credit TickerInside with a link to the page the figure comes from (cite_as gives it) wherever the medium allows a link, and by name where it does not. How you mark the link is up to you. Free per request, commercial use included; republishing the archive as a whole or a substantial part of it, and extracting it systematically, are not allowed."}}}},"301":{"description":"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)."},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"404":{"description":"reason not_held_by_daily_funds: no fund read daily from its issuer's files held the key or moved it in the last 20 trading days; summary names the night's summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotCovered"}}}},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}},"parameters":[{"name":"ticker","in":"path","required":true,"description":"The security's key in lower case, for example nvda or 7203.jp.","schema":{"type":"string"},"example":"nvda"}]}},"/manifest.json":{"get":{"operationId":"getManifest","summary":"The manifest of a build","description":"Written last by every build: when it ran, the version of the API's shape and of the calculations, each source with its version, date and age in days, and one sha256 for each family of files. The sha256 of every file under /api/v1/ is in /api/v1/sha256sums.txt.gz, in the format of sha256sum. Give built_at and calculation.version beside a figure to cite the exact state it comes from. The list holds every file under /api/v1/ but the manifest and the list. A family's sha256 is the digest of its lines of the list, so it is the same on two nights whose files of that family did not change.","externalDocs":{"url":"https://tickerinside.com/api/#manifest"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manifest"},"example":{"manifest_version":1,"built_at":"2026-10-17T01:56:48Z","build_date":"2026-10-17","schema":{"api":"v1","digest":"5a654299b364d145e57d393e1722a0260067288c1f6ed5e8c55506263c31e2d0","openapi":"https://tickerinside.com/api/openapi.json"},"calculation":{"version":"660f38eea457de64","methods":[{"id":"ti-ownership/1","since":"2026-09-28"},{"id":"ti-ownership-index/1","since":"2026-10-09"},{"id":"ti-overlap/1","since":"2026-10-09"}],"readers":{"key_scheme":2,"sec_nport_parse":6,"sec_nport_derive":7,"expense_ratio_read":4,"sponsor_file_read":1,"prospectus_read":2,"fund_shape":3,"sec_shape":2,"issuer_file_read":5,"price_read":1,"returns_and_risk":2,"computed_answers":3}},"sources":[{"id":"prices","name":"End-of-day prices","version":null,"date":"2026-10-16","age_days":1,"oldest":null,"oldest_age_days":null,"median_age_days":null,"funds":null},{"id":"issuer","name":"Issuers' own holdings files","version":null,"date":"2026-10-16","age_days":1,"oldest":"2026-10-01","oldest_age_days":16,"median_age_days":2,"funds":626},{"id":"sec_nport","name":"SEC Form N-PORT filings, stock ETFs","version":"2026q3","date":"2026-08-31","age_days":47,"oldest":"2026-01-31","oldest_age_days":259,"median_age_days":109,"funds":2049}],"files":{"count":13633,"bytes":502688159,"list":"https://tickerinside.com/api/v1/sha256sums.txt.gz","list_sha256":"9c33ed58dcbcdc5775cec05ab97cfd877fa407e935f992ba3e73009e99968408","format":"sha256sum: one line per file, its sha256 in hex, two spaces, and its path from the site's root. Mirror the files under those paths, then run gunzip -c sha256sums.txt.gz | sha256sum -c."},"families":{"changelog.json":{"files":1,"bytes":49089,"sha256":"841e6808385e14684c2190bdbc9e1fba9dac44dca5559dd268e6000d568d826b"},"compare/":{"files":15,"bytes":80399,"sha256":"4cbb8a8e7dad3a90a0d3a70aba08dda36f3adfd87566a18518ccfcbccccff60d"},"corrections.json":{"files":1,"bytes":10730,"sha256":"24a7d7f4c110c105bc205eb413803645d7dbf0e9876a69890bc9ad16ebd81c63"},"deprecations.json":{"files":1,"bytes":9058,"sha256":"779e76fe9c7ecc45b3d638f2d6876b8ff40cc7ff06193dcebc089bc15a3fd12d"},"diversify/":{"files":964,"bytes":6189578,"sha256":"4263d6cfbace847212fce773822b9f29b8346abe1b7b7120537bf24a7eabc950"},"etf-flows.csv":{"files":1,"bytes":73512,"sha256":"d1866ef707b0f5711ea90b1c12bfdd4f2aa5cec2aaceb5f13583fa4a41d0ec2a"},"etf-flows.json":{"files":1,"bytes":13801,"sha256":"8ceca3a29b1fff6a91e08c8c4e6dcae68190b7616670fe83f52e0741c6cde3c0"},"etf-flows/":{"files":1,"bytes":294079,"sha256":"b14c178fa454480dd10ef7f63a0540fe4913c9f45e6666021af8ee604719430a"},"etf/":{"files":3150,"bytes":48140898,"sha256":"9e44264f0e55839b393bd14157d3a8035388e2f8fbbe1bd9965fcff96b97b78b"},"flows.csv":{"files":1,"bytes":1743527,"sha256":"aa0b4ae9095d6335fa60a54805fb013907339ed5cd00642f055caf7219977246"},"flows.json":{"files":1,"bytes":49464,"sha256":"4ecfa5d8271bbe16cdfa8c52731f48d9a8be05f3aecb6c512868911be6c48399"},"flows/":{"files":27,"bytes":8377603,"sha256":"78122055a7a060c33d6aa42710caac68560576572bf0afcef3fa9be20b30a452"},"fund/":{"files":2675,"bytes":20239445,"sha256":"027f7bd7dcd5c41f4b0dbc668c01ce2630bbe0786dd74c05b980b10cb01d28a6"},"funds-columns.json":{"files":1,"bytes":540585,"sha256":"c52d5f4dc2bd1c15d7c9f8e04295a8f4d8b33ba1c52ea794ac76bb614a3e5a52"},"funds.csv":{"files":1,"bytes":901895,"sha256":"0f73147364c1ace782519ee86a08b0e7ea2d2ddcb31b9a2523c403cc1e36db66"},"funds.json":{"files":1,"bytes":1564566,"sha256":"e0f4511f0273489d1eecaeb1e9fb435e0a657b1b1be47f7c8dc0083a1328366b"},"history.json":{"files":1,"bytes":120282,"sha256":"1441178f7b308555e54756e3319d037215a7e5014e4a2c21715c2231068d17c6"},"history/":{"files":633,"bytes":10507133,"sha256":"f64f3209a69affda7960de33b6507b9c523c290dc60a11007c0c116e55a61c8f"},"holders.json":{"files":1,"bytes":3903206,"sha256":"823d9f02d2f609c21ccb2ac6afb61cb4b48ac42ed3a3f7a46d6b781350aa70bc"},"holders/":{"files":37,"bytes":13230940,"sha256":"191d1d9654e38b60b283fd87713b2f7827cb9251f90c83efe7473bb57ee5d708"},"identifiers.csv":{"files":1,"bytes":1061805,"sha256":"149a06a770e277861eea18a58c792cc7ed2f3586205c76a8bbda02cee35afa99"},"identifiers.json":{"files":1,"bytes":1292051,"sha256":"789e6f60831612fd533bc070f9b41fe7bfe5cdf29e5d693486fb7753e308518b"},"index.json":{"files":1,"bytes":46844,"sha256":"69d88e0347db7c0baa549f809acfffa8bcda74579e8cf22f289f644ab48b8c84"},"methods.json":{"files":1,"bytes":34747,"sha256":"3df3b05949149ba6ac83295724aa2da19529111ce834038b69a0e4ee0290773c"},"mf/":{"files":128,"bytes":56688835,"sha256":"45f2f988661e03ce8c562fae593ca46b8a8c6d38e636467568d5a2bf8d7ddc6d"},"mutual-funds.json":{"files":1,"bytes":1627321,"sha256":"e99ff5f82850809d149741c13c9a88ce65d0c145279933387c740f3bf3adcc4a"},"ownership-index.csv":{"files":1,"bytes":242321,"sha256":"586a36ddefe9edd767f13b41c45b78bd7094e8e0c4bac30dc66d28539fbb8fd7"},"ownership-index.json":{"files":1,"bytes":300702,"sha256":"8ff5fc3db7500efb4836f633e9e4967c4c4c142ddb813d7a020ccb4338fb84f0"},"ownership-index/":{"files":2,"bytes":185084,"sha256":"f4bd57bab0c946dbb313409a16570c66e501bba6bbb08bee8f974a2683d6f61c"},"ownership.json":{"files":1,"bytes":93492,"sha256":"55f05951413f2892d342a21d750008932e5119081647049ddb5abc02689f2c1a"},"private-companies.csv":{"files":1,"bytes":67686,"sha256":"4958548b8853e70584419674dafd03cc787eb8d52b5c8f7b0fbb8b48e3cb2a53"},"private-companies.json":{"files":1,"bytes":145717,"sha256":"374d036c3ada46b8ed04fd22c5801a605deb96f6983b80374f41034244d08b8e"},"private-companies/":{"files":416,"bytes":3115116,"sha256":"b83e6a93a39bbd875926fd739b9b82dda0b6f1350d54fbddd12a971fd6104485"},"quarterly.json":{"files":1,"bytes":107558,"sha256":"ec0dd30d158959181376f58e65add66ccf2abfe6a9180a3846d1c5a94c1e8b80"},"quarterly/":{"files":512,"bytes":238743500,"sha256":"9ef0b1eddac31c9d7c4c7c50149f02df17402399b841a45e8139004346cfec70"},"sec/":{"files":5043,"bytes":80043927,"sha256":"1e3fa324e41c959154c06df691010c750627e78dcde1edc56a18de8052da48d7"},"securities.csv":{"files":1,"bytes":710444,"sha256":"9004d59446682a7c6cf33dbf48de31ade5506b55f15d691d49bf45569da8debd"},"securities.json":{"files":1,"bytes":791508,"sha256":"2afe4af58a702d6ff17dbb4024bd7f0a4398f31dcf3a8d9e390f8a0c2e4947ed"},"status.json":{"files":1,"bytes":4192,"sha256":"ee311cc4e2602cda19433be591e7fbc88a96ef388028ec64d989120b727a26ee"},"target-date-funds.json":{"files":1,"bytes":68616,"sha256":"b3da8ba2d197a8d004c4312c78cc4bea8855effe977008a44916961bdec82409"},"universe.json":{"files":1,"bytes":452912,"sha256":"7050692f81553c65e005d78eed14df16f846ba4d619b083601e3cfc29c2ba27e"},"xray/":{"files":2,"bytes":823991,"sha256":"f689fd1a1d39e00f34025cd1d211d2971038edad2d28b99020cfc040a29d8343"}},"methods_url":"https://tickerinside.com/api/v1/methods.json","contract":"https://tickerinside.com/contract/","docs":"https://tickerinside.com/api/#versions","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/changelog.json":{"get":{"operationId":"getChangelog","summary":"Every dated change","description":"Every entry of /changes/, newest first, each with an id that does not change.","externalDocs":{"url":"https://tickerinside.com/api/#changelog"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Changelog"},"example":{"count":41,"newest":"2026-10-16","entries":[{"id":"2026-10-16-private-companies-the-holdings-the-funds-filed-and-version-1-left-out","date":"2026-10-16","title":"Private companies: the holdings the funds filed and VERSION 1 left out","body":"The private companies in US funds, at https://tickerinside.com/private-companies/, now count the holdings funds file without the private placement mark or under another asset category, once two funds hold the company as a marked private placement, and the closed-end and interval funds that file without a series. On the 2026q3 data set, OpenAI is held by 83 funds instead of 69, ARK Innovation ETF (ARKK) among them, and Anthropic by 120 instead of 110. A fund holding a vehicle that names the company, as Destiny Tech100 (DXYZ) holds Anthropic through Magnitude ANC III, LLC, is listed apart on the company's page and in its file, under through_vehicles, and never counted among its holders. The history since 2019 is read again with the same rule.","url":"https://tickerinside.com/changes/"},{"id":"2026-10-16-the-privacy-policy-names-two-more-pages-and-four-more-answer-engines","date":"2026-10-16","title":"The privacy policy names two more pages and four more answer engines","body":"The ETF flows page at https://tickerinside.com/etf-flows/ and the pages under https://tickerinside.com/private-companies/ now write the same usage record as the fund pages, and only in the same cases: an assistant fetching one for a person, a visitor arriving from an answer engine, or a program asking for it as Markdown. Visitors arriving from gemini.google.com, search.brave.com, duckduckgo.com and chat.mistral.ai are counted with the engine's domain, as those from chatgpt.com and bing.com were. Daily totals made from the records, such as how many requests and callers asked for each fund or stock on a day, carry no caller's code and are kept beyond the records' three months. https://tickerinside.com/privacy/ says it.","url":"https://tickerinside.com/changes/"},{"id":"2026-10-15-vanguard-s-funds-are-served-from-their-sec-filings","date":"2026-10-15","title":"Vanguard's funds are served from their SEC filings","body":"TickerInside no longer reads Vanguard's website. The 67 Vanguard ETFs read from it, VOO, VTI, VXUS and VGT among them, are now served from their newest SEC Form N-PORT filing, as every fund read from SEC filings is: the SEC's data set of the second quarter of 2026 holds their portfolios of 28 February to 30 April 2026, and the nightly read of EDGAR serves a newer filing as it reaches each fund. Their pages, and the written comparisons that name one of them, stay at the same addresses, built from that filing and dated by it. Their holdings history no longer includes the files read from Vanguard's website, and their quarterly history since 2019 stays under /api/v1/quarterly/. The issuers read from their own files are iShares, SPDR, Invesco and Global X.","url":"https://tickerinside.com/changes/"}],"contract":"https://tickerinside.com/contract/","docs":"https://tickerinside.com/api/#versions","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/deprecations.json":{"get":{"operationId":"getDeprecations","summary":"What is kept for compatibility","description":"Each field, key, answer, address and MCP tool name kept answering for compatibility, with what replaces it. The fund addresses and the tool names are read from the code that answers them. Nothing listed here is removed inside v1.","externalDocs":{"url":"https://tickerinside.com/api/#deprecations"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deprecations"},"example":{"count":21,"rule":"Nothing listed here is removed inside v1: each entry keeps answering as answers says, and removal is null. A removal would come with a new version path, announced here and in changelog.json.","aliases":{"glov":"gswo","rpsa":"rspa","netz":"pwrd","fluk":"flgb","iscb":"msml"},"entries":[{"id":"field-sec-left-out","kind":"field","since":"2026-09-28","what":"left_out","where":"/api/v1/sec/{ticker}.json","replaced_by":["same_code_abroad","earlier_key_reads_as"],"answers":"An empty list for a stock with a page, and null without one.","note":"It named the issuer-layer funds whose row under the ticker was most likely a company listed abroad under the same code. Since lines abroad carry their market (7203.JP), such a row has a key of its own.","removal":null},{"id":"key-without-market","kind":"key","since":"2026-09-28","what":"A key of a line listed abroad without its market, such as 7203","where":"/api/v1/sec/{ticker}.json and the holders files","replaced_by":["The keys it reads as now: reads_as in the 404 under /sec/, and the aliases of /api/v1/holders/{c}.json"],"answers":"A 404 under /sec/ with reason earlier_key and reads_as.","note":"Each line abroad is keyed by its local code and its market: 7203.JP, Toyota in Tokyo, and 7203.SA, Elm in Riyadh.","removal":null},{"id":"answer-fund-in-another-layer","kind":"answer","since":"2026-10-04","what":"404 with reason in_another_layer under /api/v1/fund/{ticker}.json","where":"/api/v1/fund/{ticker}.json","replaced_by":["The answer /fund/ composes from the fund's file under /etf/, with holdings_kind and listed_pct"],"answers":"Only to the Python client before 0.3.0 and the MCP package up to 1.7.1, by the version in their User-Agent.","note":"Every other client gets the composed answer.","removal":null}],"contract":"https://tickerinside.com/contract/","docs":"https://tickerinside.com/api/#versions","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/corrections.json":{"get":{"operationId":"getCorrections","summary":"The corrections registry","description":"Each figure that was published wrong and then corrected, newest first: the day the correction reached the files, the families of files it touched, the tickers, and what the files said before and say since. The same entries are on /contract/.","externalDocs":{"url":"https://tickerinside.com/api/#corrections"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Corrections"},"example":{"count":13,"newest":"2026-10-16","kinds":{"reading":"How an issuer file or a filing was read","keys":"How securities are keyed","ticker":"A ticker reused or moved","prices":"Price data","flows":"ETF flows"},"entries":[{"id":"2026-10-16-private-companies-left-out-filed-holdings","date":"2026-10-16","kind":"reading","title":"Private company holdings the funds filed were left out","scope":["private-companies"],"tickers":["ARKK","ARKF","ARKW","DXYZ"],"tickers_complete":false,"before":"A holding counted only when the fund marked it a restricted security or a private placement, filed it as common or preferred stock, gave its series and its value in dollars. ARK Innovation ETF, ARK Next Generation Internet ETF and ARK Blockchain and Fintech Innovation ETF file their OpenAI shares without the mark, BlackRock Private Investments Fund files Anthropic under OTHER, ARK Venture Fund and Destiny Tech100 file without a series, and a row in pounds or euros was dropped although the filing gives its value in dollars: OpenAI was held by 69 funds instead of 83 on the 2026q3 data set, Anthropic by 110 instead of 120.","after":"Once two funds hold a company as a marked private placement, a level 3 preferred share of it counts without the mark, and so does any level 3 share of a company whose names the site joins by hand, such as OpenAI and Anthropic, under OTHER too. A fund without a series is its registrant. Every value is the filing's dollars. A fund holding a vehicle that names the company is listed apart, never counted. A report for the first or second month of a fiscal quarter, which is not public, is not read.","changelog":null},{"id":"2026-10-08-flows-merger-ranked-as-selling","date":"2026-10-08","kind":"flows","title":"A merger was ranked as ETF selling","scope":["flows"],"tickers":["BLFS","RGEN"],"tickers_complete":true,"before":"The ETF flows of the first night ranked BLFS among the largest net reductions of the day: the funds' BLFS lines left their files when BLFS merged into RGEN, which read as sales.","after":"A corporate action is published as one, dated at the first close where any of its lines were flagged, and its securities leave the rankings of that close.","changelog":null},{"id":"2026-10-04-spcx-ticker-moved-to-spck","date":"2026-10-04","kind":"ticker","title":"A fund was served under a ticker that now names a company","scope":["fund","sec","holders"],"tickers":["SPCX","SPCK"],"tickers_complete":true,"before":"The SPAC and New Issue ETF trades as SPCK, and Nasdaq Trader's directory of 2 October 2026 gives SPCX to Space Exploration Technologies' Class A common stock. The SEC's ticker file still gave the fund's series SPCX, so /api/v1/fund/spcx.json served the fund's filing under the company's ticker.","after":"The fund is served as SPCK, from the same filing, and SPCX's one file is the company's stock file under /api/v1/sec/. A fund whose every ticker now names a company of another name is refused.","changelog":null}],"contract":"https://tickerinside.com/contract/","report":"A figure that looks wrong: write to the contact address on /support/ with the page or file, the figure and the source it disagrees with.","docs":"https://tickerinside.com/api/#versions","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/status.json":{"get":{"operationId":"getStatus","summary":"The nightly report","description":"What the last build did: when it ran, the date of each layer of the data, and the funds still served from an older file. It also gives the pages it dated as modified, and the versions of the API and of the MCP server. The build writes it with the data, so it is exactly as current as the files it describes.","externalDocs":{"url":"https://tickerinside.com/api/#status-json"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"},"example":{"schema":1,"built_at":"2026-10-17T01:56:48Z","run":{"fetch_holdings":{"funds_attempted":662,"funds_updated":622,"funds_newer_file":89,"kept_previous":[{"ticker":"ILCB","issuer":"iShares","since":"2026-10-05","holdings_as_of":"2026-10-01"},{"ticker":"ISCB","issuer":"iShares","since":"2026-10-05","holdings_as_of":"2026-10-01"},{"ticker":"QCLR","issuer":"Global X","since":"2026-10-10","holdings_as_of":"2026-10-08"}],"failed":[],"failed_without_file":40},"fund_figures":{"run_date":"2026-10-17","funds":624,"deadline_hit":false,"warnings":1}},"data":{"prices":{"through":"2026-10-16","securities_priced":5325},"issuer_files":{"funds":626,"newest":"2026-10-16","oldest":"2026-10-01","by_date":[{"date":"2026-10-16","funds":89},{"date":"2026-10-15","funds":533},{"date":"2026-10-08","funds":2}]},"sec_nport":{"funds":2049,"dataset":"2026q3","report_dates":{"oldest":"2026-01-31","newest":"2026-08-31"}},"universe":{"etfs":5733,"covered":5423,"pct":94.6,"by_layer":{"issuer_files":624,"sec_nport":2009,"sec_nport_derivatives":1368,"sec_nport_bonds":921,"sec_nport_multi_asset":237,"trust_filings":130,"sponsor_files":134},"prospectus":307,"with_file":5730,"with_objective":307,"not_covered":{"no_prospectus_found":3},"etns":53,"other_products":1,"outside_universe":95,"file_date":"2026-10-16","available":true,"source":"Nasdaq Trader symbol directory (nasdaqtraded.txt)","sentence":"5,423 of the 5,733 US-listed ETFs in Nasdaq Trader's symbol directory of 2026-10-16 have holdings here (94.6%), and 307 more have a file from their prospectus, with the objective it states and no holdings.","all_us_etfs":true,"headline":"All US ETFs","claim":"All US ETFs: 5,730 of the 5,733 in Nasdaq Trader's symbol directory of 2026-10-16 have a file, 5,423 with holdings and 307 with the objective their prospectus states; the 3 listed most recently get theirs on the nights after.","assets":{"net_assets_b":11532.2,"with_holdings_b":11492.9,"pct":99.7,"funds_sized":5573,"funds_unsized":160,"unsized_with_holdings":101,"basis":"Net assets of each ETF in US dollars, from the fund's own filing or file where it gives one and from market data otherwise; a fund the market data puts at 0.0 billion (under 50 million dollars) counts at that figure; only the totals are published.","sentence":"Holdings files cover 99.7% of the net assets of US-listed ETFs ($11,493 billion of $11,532 billion), measured over the 5,573 ETFs whose net assets are known; 160 have no known size and are in neither figure."}},"archive":{"funds":633,"snapshots":17555,"first":"2026-09-01","last":"2026-10-16","since":"2026-09-03"},"ownership":{"method":"ti-ownership/1","stocks":3345,"as_of":"2026-10-16","held_back":false}},"pages":{"published":1216,"redated":1025,"redated_paths":["/api/files/","/changes/","/compare/dgro-vs-schd/"]},"versions":{"api":"v1","mcp_package":{"name":"tickerinside-mcp","version":"1.14.0","url":"https://www.npmjs.com/package/tickerinside-mcp"},"mcp_remote":{"url":"https://tickerinside.com/mcp","version":"1.14.0"}},"live":"https://tickerinside.com/api/v1/uptime.json","docs":"https://tickerinside.com/api/#status","license":"CC BY 4.0","attribution":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}}}},"304":{"description":"Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes."},"503":{"description":"The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unavailable"}}}}}}},"/uptime.json":{"get":{"operationId":"getUptime","summary":"Live checks","description":"Whether the site answers now, and how it has answered. Every five minutes the Worker requests a fund page, the API index and an MCP handshake through the public address, and reads the nightly report. This file gives each check's state, its share of passed checks over 24 hours, 7, 30 and 90 days, 90 days of daily figures, the incidents and the deployments. It is computed when asked and kept one minute at the edge. The checks run on Cloudflare, like the site. An outage of Cloudflare itself stops them too, so it shows as slots with no data, which are never counted as up.","externalDocs":{"url":"https://tickerinside.com/api/#uptime-json"},"responses":{"200":{"description":"The file. The example is a real answer, shortened: long lists and maps keep their first entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Uptime"},"example":{"schema":1,"generated_at":"2026-09-26T12:26:30.000Z","method":"Every five minutes the Worker requests a fund page, the API index and an MCP initialize through the public address, and reads status.json to see whether the nightly build ran. A slot with no check, for example during a Cloudflare incident, counts as no data, never as up, and is left out of the percentages.","deployed":{"version_id":"3f1d9c0e-6a2b-4e71-8c5d-7b0a9e4f2c36","tag":null},"components":[{"id":"page","name":"Fund pages","check":"GET /etf/voo/","state":"up","since":null,"last_check":"2026-09-26T12:25:00.000Z","last_ms":51,"uptime_pct":{"24h":100,"7d":100,"30d":100},"no_data_pct_90d":0.228,"open_incident":null,"ms_24h":{"p50":68,"p95":95}},{"id":"api","name":"JSON API","check":"GET /api/v1/index.json","state":"up","since":"2026-09-26T08:35Z","last_check":"2026-09-26T12:25:00.000Z","last_ms":60,"uptime_pct":{"24h":98.958,"7d":99.314,"30d":99.314},"no_data_pct_90d":0.228,"open_incident":null,"ms_24h":{"p50":68,"p95":95}},{"id":"mcp","name":"MCP server","check":"POST /mcp initialize","state":"up","since":null,"last_check":"2026-09-26T12:25:00.000Z","last_ms":98,"uptime_pct":{"24h":100,"7d":100,"30d":100},"no_data_pct_90d":0.228,"open_incident":null,"ms_24h":{"p50":98,"p95":126},"server_version":"1.3.0"}],"today":{"date":"2026-09-26","page":{"checks":150,"failed":0,"no_data":0,"up_pct":100,"p50_ms":69,"p95_ms":96},"api":{"checks":150,"failed":3,"no_data":0,"up_pct":98,"p50_ms":68,"p95_ms":95},"mcp":{"checks":150,"failed":0,"no_data":0,"up_pct":100,"p50_ms":98,"p95_ms":126},"update":{"checks":150,"failed":0,"no_data":0,"up_pct":100}},"days":[{"date":"2026-09-25","page":{"checks":287,"failed":0,"no_data":1,"up_pct":100,"p50_ms":68,"p95_ms":95},"api":{"checks":287,"failed":0,"no_data":1,"up_pct":100,"p50_ms":68,"p95_ms":96},"mcp":{"checks":287,"failed":0,"no_data":1,"up_pct":100,"p50_ms":98,"p95_ms":126},"update":{"checks":287,"failed":0,"no_data":1,"up_pct":100}}],"incidents":[{"id":"2026-09-26T08:20Z-api","component":"api","kind":"down","started":"2026-09-26T08:20:00.000Z","ended":"2026-09-26T08:35:00.000Z","minutes":15,"cause":"cloudflare_other"}],"status":"https://tickerinside.com/api/v1/status.json","docs":"https://tickerinside.com/api/#status","license":"CC BY 4.0"}}}}}}}},"components":{"schemas":{"Index":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date across the whole site."},"coverage":{"type":"object","properties":{"funds":{"type":["integer","null"]},"securities_held":{"type":["integer","null"]},"what":{"type":["string","null"]},"sec_nport":{"type":["integer","null"]},"sec_nport_periods":{"type":"object","properties":{"oldest":{"type":["string","null"]},"newest":{"type":["string","null"]}},"additionalProperties":true},"sec_nport_age":{"type":"object","properties":{"low_months":{"type":["number","null"]},"high_months":{"type":["number","null"]},"text":{"type":["string","null"]}},"additionalProperties":true},"sec_nport_bonds":{"type":["number","null"]},"sec_nport_multi_asset":{"type":["number","null"]},"sec_nport_derivatives":{"type":["number","null"]},"trust_filings":{"type":["number","null"]},"sponsor_files":{"type":["number","null"]},"prospectus":{"type":["number","null"]},"funds_total":{"type":["integer","null"]},"universe":{"type":"object","properties":{"etfs":{"type":["number","null"]},"covered":{"type":["number","null"]},"pct":{"type":["number","null"]},"by_layer":{"type":"object","properties":{"issuer_files":{"type":["number","null"]},"sec_nport":{"type":["number","null"]},"sec_nport_derivatives":{"type":["number","null"]},"sec_nport_bonds":{"type":["number","null"]},"sec_nport_multi_asset":{"type":["number","null"]},"trust_filings":{"type":["number","null"]},"sponsor_files":{"type":["number","null"]}},"additionalProperties":true},"prospectus":{"type":["number","null"]},"with_file":{"type":["number","null"]},"with_objective":{"type":["number","null"]},"not_covered":{"type":"object","properties":{"no_prospectus_found":{"type":["number","null"]},"no_filing_yet":{"type":["number","null"]},"not_in_sec_list":{"type":["number","null"]},"other_fund":{"type":["number","null"]},"stale_filing":{"type":["number","null"]}},"additionalProperties":true},"etns":{"type":["number","null"]},"other_products":{"type":["number","null"]},"outside_universe":{"type":["number","null"]},"file_date":{"type":["string","null"]},"available":{"type":["boolean","null"]},"source":{"type":["string","null"]},"sentence":{"type":["string","null"]},"all_us_etfs":{"type":["boolean","null"]},"headline":{"type":["string","null"]},"claim":{"type":["string","null"]},"assets":{"type":"object","properties":{"net_assets_b":{"type":["number","null"]},"with_holdings_b":{"type":["number","null"]},"pct":{"type":["number","null"]},"funds_sized":{"type":["number","null"]},"funds_unsized":{"type":["number","null"]},"unsized_with_holdings":{"type":["number","null"]},"basis":{"type":["string","null"]},"sentence":{"type":["string","null"]}},"additionalProperties":true}},"additionalProperties":true},"stocks_with_file":{"type":["integer","null"]},"stocks_with_weekly_series":{"type":["integer","null"]},"pages":{"type":"object","properties":{"funds":{"type":["integer","null"]},"stocks":{"type":["integer","null"]}},"additionalProperties":true},"issuers":{"type":["array","null"],"items":{"type":["null","string"]}}},"additionalProperties":true,"description":"The coverage counts. funds: the issuer-layer funds. securities_held: the distinct securities they hold. what: the universe in words. sec_nport: the SEC-layer funds, with the oldest and newest quarter end their filings describe in sec_nport_periods, and how old their holdings are on the day of the build in sec_nport_age (the 10th to the 90th percentile in whole months, low_months to high_months, and in words, text); sec_nport_bonds, sec_nport_multi_asset, sec_nport_derivatives, trust_filings, sponsor_files and prospectus, the other layers. Then the figures every page prints: funds_total, every layer, the US ETFs covered; universe, the coverage measured against the US-listed ETFs (see universe.json); stocks_with_file, the stocks with a file under /sec/, and stocks_with_weekly_series, those whose file carries the weekly series, at least 110 of the 156 weekly returns; pages, the funds and stocks with a page; issuers, the issuers whose files are read, largest first."},"endpoints":{"type":"object","properties":{"funds":{"type":["string","null"]},"fund":{"type":["string","null"]},"etf":{"type":["string","null"]},"security":{"type":["string","null"]},"holders":{"type":["string","null"]},"holders_shard":{"type":["string","null"]},"securities":{"type":["string","null"]},"identifiers":{"type":["string","null"]},"universe":{"type":["string","null"]},"compare":{"type":["string","null"]},"overlap":{"type":["string","null"]},"lookthrough":{"type":["string","null"]},"batch":{"type":["string","null"]},"screen":{"type":["string","null"]},"diversify":{"type":["string","null"]},"ownership":{"type":["string","null"]},"methods":{"type":["string","null"]},"history":{"type":["string","null"]},"fund_history":{"type":["string","null"]},"status":{"type":["string","null"]},"uptime":{"type":["string","null"]},"manifest":{"type":["string","null"]},"changelog":{"type":["string","null"]},"deprecations":{"type":["string","null"]},"corrections":{"type":["string","null"]},"openapi":{"type":["string","null"]},"docs_markdown":{"type":["string","null"]}},"additionalProperties":true,"description":"The endpoints as URL templates, so a client can find them without reading the reference. fund answers for every fund; etf is the file of a fund listed under tickers_derivative, tickers_trust, tickers_bond, tickers_multi_asset, tickers_sponsor or tickers_prospectus. holders_shard is the template of the holders shards, {c} being the key's first character in lower case, a to z, or 0 for any other. It also gives the OpenAPI description (openapi), the reference in Markdown (docs_markdown), the nightly report (status) and the live checks (uptime)."},"tickers":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every issuer-layer fund, as a sorted list: the funds read from their issuers' own files. This is the universe the census of pairs and the file ages count over; a stock page counts these funds and the funds of tickers_sec."},"tickers_sec":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every SEC-layer fund, as a sorted list: the other US stock ETFs, served from their latest SEC Form N-PORT filing. Each has a fund file like the funds above, dated to the quarter end its filing describes, and a page only in a published cohort."},"tickers_derivative":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every derivative-based fund, sorted. Its file is under /etf/."},"tickers_trust":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every trust and commodity pool that files no Form N-PORT, sorted. Its file is under /etf/."},"tickers_bond":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every fixed income fund, sorted. Its file is under /etf/."},"tickers_multi_asset":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every multi-asset fund, sorted. Its file is under /etf/."},"tickers_sponsor":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every sponsor-file fund, sorted."},"tickers_prospectus":{"type":["array","null"],"items":{"type":["null","string"]},"description":"Every prospectus-file fund, sorted."},"written_comparisons":{"type":["array","null"],"items":{"type":"object","properties":{"pair":{"type":["array","null"],"items":{"type":["null","string"]}},"url":{"type":["string","null"]}},"additionalProperties":true},"description":"The written comparisons: the pairs with a page written by hand, each with the URL of its JSON. A pair's file exists only in the order listed here. Any two tickers above can still be compared from their two fund files."},"without_file":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"The directory's tickers with no file, by the reason a fund address's 404 gives."},"docs":{"type":["string","null"],"description":"The reference for these endpoints."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."},"terms":{"type":["string","null"],"description":"The legal notice: who publishes, the licence of the current snapshots served here, and the separate terms of the historical archive."}},"additionalProperties":true,"required":["as_of","coverage","endpoints","tickers","tickers_sec","tickers_derivative","tickers_trust","tickers_bond","tickers_multi_asset","tickers_sponsor","tickers_prospectus","written_comparisons","docs","license","attribution","terms"]},"Fund":{"type":"object","properties":{"ticker":{"type":["string","null"],"description":"The fund's ticker, upper case."},"name":{"type":["string","null"],"description":"The fund's name."},"page_url":{"type":["string","null"],"description":"The fund's page on the site, or null when it has none yet. Link it when you quote a figure."},"cite_as":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address."},"identifiers":{"type":"object","additionalProperties":true,"required":["asset_type","exchange","composite_figi","share_class_figi","cik","series_id","class_id"],"properties":{"asset_type":{"type":"string","enum":["etf","etn","stock"],"description":"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":{"type":["string","null"],"enum":["Cboe BYX","Cboe BZX","Cboe EDGA","Cboe EDGX","IEX","NYSE","NYSE American","NYSE Arca","NYSE Texas","Nasdaq","Nasdaq BX","TXSE",null],"description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"The FIGI of the share class, the same on every market it trades in. Null with composite_figi."},"cik":{"type":["string","null"],"pattern":"^[0-9]{10}$","description":"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":{"type":["string","null"],"pattern":"^S[0-9]{9}$","description":"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":{"type":["string","null"],"pattern":"^C[0-9]{9}$","description":"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."}},"description":"FIGI and SEC ids: /api/v1/identifiers.json."},"source_layer":{"type":["string","null"],"description":"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.","enum":["issuer","sec_nport","sec_nport_derivatives","sec_nport_bonds","sec_nport_multi_asset","trust_filings","sponsor_files","prospectus"]},"category":{"type":"object","properties":{"id":{"type":["string","null"]},"label":{"type":["string","null"]},"group":{"type":["string","null"]},"group_label":{"type":["string","null"]},"asset_class":{"type":["string","null"]},"rule":{"type":["string","null"]},"basis":{"type":["string","null"]},"as_of":{"type":["string","null"]},"facets":{"type":"object","properties":{"region":{"type":["string","null"]},"country":{"type":["string","null"]},"size":{"type":["string","null"]},"style":{"type":["string","null"]},"top_sectors":{"type":["array","null"],"items":{"type":["null","string"]}}},"additionalProperties":true},"measured":{"type":"object","properties":{"us_share":{"type":["number","null"]},"emerging_share":{"type":["number","null"]},"size_place":{"type":["number","null"]},"growth_share":{"type":["number","null"]},"growth_share_market":{"type":["number","null"]},"top_sector_share":{"type":["number","null"]},"country_cover":{"type":["number","null"]},"sector_cover":{"type":["number","null"]},"stocks":{"type":["number","null"]}},"additionalProperties":true},"method":{"type":["string","null"]}},"additionalProperties":true,"description":"TickerInside's category (id, label, group, rule, measures): https://tickerinside.com/etf/category/"},"as_of":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"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."},"expense_ratio":{"type":["number","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"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.","enum":["sec_filing","sec_filing_text","market_data",null]},"expense_ratio_as_of":{"type":["string","null"],"description":"The day that filing reached the SEC, or null."},"expense_ratio_filing_url":{"type":["string","null"],"description":"That filing on EDGAR, or null."},"yield":{"type":["number","null"],"description":"Trailing twelve month distribution yield, as a percentage."},"aum_b":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"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.","enum":["market_data","market_data_kept",null]},"aum_date":{"type":["string","null"],"description":"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":{"description":"For a Vanguard fund, the net assets of its ETF share class alone, in billions of US dollars, as Vanguard states them. Such a fund's ETF is one class of a fund that also has mutual fund classes. Every value held in /api/v1/sec/{ticker}.json is computed from it for such a fund. Null for any other fund."},"etf_class_net_assets_as_of":{"description":"The date Vanguard gives for etf_class_net_assets_b. Null when it is."},"positions":{"type":["integer","null"],"description":"How many positions the holdings map lists; filing_lines or file_lines count every line of a fund of another layer."},"breakdown":{"type":["object","null"],"additionalProperties":true,"required":["sectors_pct","no_sector_pct","sector_coverage_pct","sectors_stated","other_funds_pct","mega_cap_tech_pct","top10_us_companies_pct","countries_pct","no_country_pct","answer","method"],"properties":{"sectors_pct":{"type":"object","additionalProperties":{"type":"number"}},"no_sector_pct":{"type":"number"},"sector_coverage_pct":{"type":["number","null"]},"sectors_stated":{"type":"boolean"},"other_funds_pct":{"type":"number"},"mega_cap_tech_pct":{"type":"number"},"top10_us_companies_pct":{"type":"number"},"countries_pct":{"type":"object","additionalProperties":{"type":"number"}},"no_country_pct":{"type":"number"},"answer":{"type":"string"},"method":{"type":"string"}},"description":"In percent of the fund, to four decimals: sectors_pct, no_sector_pct, sector_coverage_pct, sectors_stated (true from 50%), other_funds_pct, mega_cap_tech_pct (Apple, Microsoft, Nvidia, Alphabet, Amazon, Meta Platforms, Broadcom and Tesla), top10_us_companies_pct, countries_pct, no_country_pct (lines of no known country), answer, method. Null for another layer."},"vol":{"type":["number","null"],"description":"Annualised standard deviation of weekly total returns over three years, as a percentage."},"beta":{"type":["number","null"],"description":"Sensitivity to the S&P 500, from three years of weekly returns. 1.00 means it has moved with the index."},"mdd3":{"type":["number","null"],"description":"Largest peak to trough decline over three years, measured on weekly closes. Negative."},"r1":{"type":["number","null"],"description":"Cumulative total return over one year, as a percentage. Not annualised."},"r3":{"type":["number","null"],"description":"Cumulative total return over three years, as a percentage. Not annualised."},"r5":{"type":["number","null"],"description":"Cumulative total return over five years, as a percentage. Not annualised."},"last_close":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"The date of that close."},"day_change_pct":{"type":["number","null"],"description":"The move from the previous close to the last, as a percentage."},"high_52w":{"type":["number","null"],"description":"The highest raw close over the last 252 trading days."},"low_52w":{"type":["number","null"],"description":"The lowest raw close over the last 252 trading days."},"currency":{"type":["string","null"],"description":"The trading currency of the price fields."},"holdings":{"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"The positions, as a map of key to percentage weight. For the issuer layer, the positions as the issuer publishes them. For an SEC-layer fund, every position the filing lets us key to a ticker; the rest is counted in unmapped_pct. A key is the ticker of a US line (a share class keeps its dot, BRK.B), or a local code and its market for a line listed abroad (7203.JP). Preferred shares filed under their issuer's common ticker are keyed as that ticker and .PFD (JPM.PFD), apart from the common stock. A key of digits and a letter is a code the issuer's file gives in place of a ticker, usually for a line whose ticker changed or was delisted. The overlap between two stock funds is computed from this field. For a fund of another layer, tickers, then other lines in lower case: a bond as issuer, coupon and maturity, else its name; never an identifier or a contract."},"weekly":{"type":["array","null"],"items":{"type":["null","number"]},"description":"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":{"type":["string","null"],"description":"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."},"flows":{"type":"object","properties":{"date":{"type":["string","null"]},"flow_usd":{},"flow_pct_of_assets":{},"previous_close":{"type":["string","null"]},"status":{"type":["string","null"]},"last_closes":{"type":"object","properties":{"from":{"type":["string","null"]},"to":{"type":["string","null"]},"closes":{"type":["number","null"]},"measured":{"type":["number","null"]},"net_usd":{"type":["number","null"]}},"additionalProperties":true},"series":{"type":["array","null"],"items":{"type":"array","items":{"type":["null","number","string"]}}},"text":{"type":["string","null"]},"page_url":{"type":["string","null"]},"method_url":{"type":["string","null"]},"license":{"type":["string","null"]},"terms":{"type":["string","null"]}},"additionalProperties":true,"description":"For a fund read daily from its issuer's files, its net creations and redemptions in dollars, measured from its own holdings files (/etf-flows/): the close (date), flow_usd and flow_pct_of_assets, null with status not_measured when the two measures of it disagree, the close compared with (previous_close), the last closes' net (last_closes), each recent close's flow (series, [close, dollars or null]) and a sentence (text), with the page, the method and the terms. Absent for any other fund."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"Where the method behind these figures is written down."},"report_date":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"The day the filing reached the SEC, usually about 60 days after report_date."},"filing_url":{"type":["string","null"],"description":"The filing itself on SEC EDGAR, to check any figure against the source."},"net_assets":{"type":["integer","null"],"description":"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":{"type":["boolean","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["array","null"],"description":"Tickers in holdings that are a foreign company's local code, where the US list gives the same ticker to another company. Such a position is the foreign company, so the fund is not listed among the US company's holders in /api/v1/sec/. Lines listed abroad now carry their market (ALV.DE is Allianz, ALV is Autoliv), so this list is normally empty."},"holdings_kind":{"type":["string","null"],"description":"What the map of a fund of another layer holds: bond, multi-asset, stock, derivative (stocks held outright, never contracts), commodity (a trust's asset) or prospectus (none yet).","enum":["stock","bond","derivative","commodity","multi-asset","prospectus"]},"listed_pct":{"type":["number","null"],"description":"The share of net assets the map shows, in percent. Not listed is not the same as not held."},"etf_file":{"type":["string","null"],"description":"The /etf/ file this answer is built from, whose fields follow."}},"additionalProperties":true,"required":["ticker","name","page_url","cite_as","cite_html","identifiers","source_layer","category","as_of","holdings_as_of","expense_ratio","expense_ratio_gross","expense_ratio_source","expense_ratio_as_of","expense_ratio_filing_url","yield","aum_b","aum_source","aum_date","etf_class_net_assets_b","etf_class_net_assets_as_of","positions","breakdown","vol","beta","mdd3","r1","r3","r5","last_close","last_close_date","day_change_pct","high_52w","low_52w","currency","holdings","weekly","weeks_end","license","attribution","source"]},"LayerFund":{"type":"object","properties":{"ticker":{"type":["string","null"],"description":"The fund's ticker, upper case."},"name":{"type":["string","null"],"description":"The fund's name."},"page_url":{"type":["string","null"],"description":"The fund's page on the site, or null when it has none yet. Link it when you quote a figure."},"cite_as":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address."},"identifiers":{"type":"object","additionalProperties":true,"required":["asset_type","exchange","composite_figi","share_class_figi","cik","series_id","class_id"],"properties":{"asset_type":{"type":"string","enum":["etf","etn","stock"],"description":"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":{"type":["string","null"],"enum":["Cboe BYX","Cboe BZX","Cboe EDGA","Cboe EDGX","IEX","NYSE","NYSE American","NYSE Arca","NYSE Texas","Nasdaq","Nasdaq BX","TXSE",null],"description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"The FIGI of the share class, the same on every market it trades in. Null with composite_figi."},"cik":{"type":["string","null"],"pattern":"^[0-9]{10}$","description":"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":{"type":["string","null"],"pattern":"^S[0-9]{9}$","description":"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":{"type":["string","null"],"pattern":"^C[0-9]{9}$","description":"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."}},"description":"FIGI and SEC ids: /api/v1/identifiers.json."},"source_layer":{"type":["string","null"],"description":"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.","enum":["sec_nport_derivatives","sec_nport_bonds","sec_nport_multi_asset","trust_filings","sponsor_files","prospectus"]},"category":{"type":"object","properties":{"id":{"type":["string","null"]},"label":{"type":["string","null"]},"group":{"type":["string","null"]},"group_label":{"type":["string","null"]},"asset_class":{"type":["string","null"]},"rule":{"type":["string","null"]},"basis":{"type":["string","null"]},"as_of":{"type":["string","null"]},"facets":{"type":"object","properties":{"leverage":{"type":["number","null"]},"underlying":{"type":["string","null"]}},"additionalProperties":true},"measured":{"type":"object","properties":{"net_exposure_pct":{"type":["number","null"]}},"additionalProperties":true},"method":{"type":["string","null"]}},"additionalProperties":true,"description":"TickerInside's category (id, label, group, rule, measures): https://tickerinside.com/etf/category/"},"as_of":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"The day the filing reached the SEC, usually about 60 days after report_date."},"filing_url":{"type":["string","null"],"description":"The filing itself on SEC EDGAR, to check any figure against the source."},"net_assets":{"type":["integer","null"],"description":"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":{"type":["boolean","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["array","null"],"description":"Tickers in holdings that are a foreign company's local code, where the US list gives the same ticker to another company. Such a position is the foreign company, so the fund is not listed among the US company's holders in /api/v1/sec/. Lines listed abroad now carry their market (ALV.DE is Allianz, ALV is Autoliv), so this list is normally empty."},"expense_ratio":{"type":["number","null"],"description":"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":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"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.","enum":["sec_filing","sec_filing_text","market_data",null]},"expense_ratio_as_of":{"type":["string","null"],"description":"The day that filing reached the SEC, or null."},"expense_ratio_filing_url":{"type":["string","null"],"description":"That filing on EDGAR, or null."},"yield":{"type":["number","null"],"description":"Trailing twelve month distribution yield, as a percentage."},"aum_b":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"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.","enum":["market_data","market_data_kept",null]},"aum_date":{"type":["string","null"],"description":"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":{"description":"For a Vanguard fund, the net assets of its ETF share class alone, in billions of US dollars, as Vanguard states them. Such a fund's ETF is one class of a fund that also has mutual fund classes. Every value held in /api/v1/sec/{ticker}.json is computed from it for such a fund. Null for any other fund."},"etf_class_net_assets_as_of":{"description":"The date Vanguard gives for etf_class_net_assets_b. Null when it is."},"derivative_positions":{"type":["integer","null"],"description":"The derivative positions the filing lists, before the legs roll them up."},"vol":{"type":["number","null"],"description":"Annualised standard deviation of weekly total returns over three years, as a percentage."},"beta":{"type":["number","null"],"description":"Sensitivity to the S&P 500, from three years of weekly returns. 1.00 means it has moved with the index."},"mdd3":{"type":["number","null"],"description":"Largest peak to trough decline over three years, measured on weekly closes. Negative."},"r1":{"type":["number","null"],"description":"Cumulative total return over one year, as a percentage. Not annualised."},"r3":{"type":["number","null"],"description":"Cumulative total return over three years, as a percentage. Not annualised."},"r5":{"type":["number","null"],"description":"Cumulative total return over five years, as a percentage. Not annualised."},"last_close":{"type":["number","null"],"description":"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":{"type":["string","null"],"description":"The date of that close."},"day_change_pct":{"type":["number","null"],"description":"The move from the previous close to the last, as a percentage."},"high_52w":{"type":["number","null"],"description":"The highest raw close over the last 252 trading days."},"low_52w":{"type":["number","null"],"description":"The lowest raw close over the last 252 trading days."},"currency":{"type":["string","null"],"description":"The trading currency of the price fields."},"held_outright":{"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"What the fund holds outright: a map of ticker to percent of net assets, never its contracts (see derivatives)."},"summary":{"type":["string","null"],"description":"One sentence to quote: what the fund held, and for a trust the filing that says so."},"composition":{"type":["array","null"],"items":{"type":"object","properties":{"kind":{"type":["string","null"]},"label":{"type":["string","null"]},"pct":{"type":["number","null"]}},"additionalProperties":true},"description":"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."},"derivatives":{"type":["array","null"],"items":{"type":"object","properties":{"instrument":{"type":["string","null"]},"description":{"type":["string","null"]},"underlying":{"type":["string","null"]},"underlying_ticker":{},"underlying_kind":{"type":["string","null"]},"direction":{"type":["string","null"]},"notional_pct":{"type":["number","null"]},"value_pct":{"type":["number","null"]},"positions":{"type":["number","null"]},"option_type":{},"option_side":{},"expires_first":{"type":["string","null"]},"expires_last":{"type":["string","null"]}},"additionalProperties":true},"description":"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."},"underlyings":{"type":["array","null"],"items":{"type":"object","properties":{"underlying":{"type":["string","null"]},"underlying_ticker":{},"underlying_kind":{"type":["string","null"]},"long_pct":{"type":["number","null"]},"short_pct":{"type":["number","null"]},"options":{"type":"object","properties":{},"additionalProperties":true},"instruments":{"type":["array","null"],"items":{"type":["null","string"]}},"complete":{"type":["boolean","null"]},"net_pct":{"type":["number","null"]}},"additionalProperties":true},"description":"The legs rolled up by underlying: long_pct and short_pct of swaps and futures, options by kind and side, instruments, net_pct, complete."},"exposure":{"type":"object","properties":{"stocks_pct":{"type":["number","null"]},"swaps_futures_long_pct":{"type":["number","null"]},"swaps_futures_short_pct":{"type":["number","null"]},"options_notional_pct":{"type":["number","null"]},"complete":{"type":["boolean","null"]},"long_exposure_pct":{"type":["number","null"]}},"additionalProperties":true,"description":"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."},"exposure_notes":{"type":["array","null"],"description":"Caveats about the sizes, in words."},"weekly":{"type":["array","null"],"items":{"type":["null","number"]},"description":"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":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"Where the method behind these figures is written down."},"structure":{"type":["string","null"],"description":"The kind of trust or pool."},"source_form":{"type":["string","null"],"description":"The SEC form the description was checked against."},"target":{"description":"The daily multiple a geared pool seeks (2x, -2x); null otherwise."},"filing_lines":{"type":["integer","null"],"description":"The lines the filing has, for a fixed income or multi-asset fund: a count, not holdings."},"fixed_income":{"type":"object","properties":{"average_coupon_pct":{"type":["number","null"]},"average_maturity_years":{"type":["number","null"]},"duration_years":{"type":["number","null"]},"debt_pct":{"type":["number","null"]},"by_maturity":{"type":["array","null"],"items":{"type":"object","properties":{"bucket":{"type":["string","null"]},"pct":{"type":["number","null"]}},"additionalProperties":true}},"by_country":{"type":["array","null"],"items":{"type":"object","properties":{"country":{"type":["string","null"]},"name":{"type":["string","null"]},"pct":{"type":["number","null"]}},"additionalProperties":true}},"issuers_total":{"type":["number","null"]},"issuers_shown_pct":{"type":["number","null"]},"issuers":{"type":["array","null"],"items":{"type":"object","properties":{"issuer":{"type":["string","null"]},"key":{"type":["string","null"]},"pct":{"type":["number","null"]},"lines":{"type":["number","null"]}},"additionalProperties":true}}},"additionalProperties":true,"description":"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."},"lines":{"type":["array","null"],"items":{"type":"object","properties":{"issuer":{"type":["string","null"]},"kind":{"type":["string","null"]},"coupon_pct":{},"maturity":{},"pct":{"type":["number","null"]},"count":{"type":["number","null"]}},"additionalProperties":true},"description":"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."},"notes":{"type":["array","null"],"items":{"type":["null","string"]},"description":"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":{"type":["string","null"],"description":"The sponsor whose site was read; in a prospectus file, its adviser."},"source_url":{"type":["string","null"],"description":"The address read."},"file_date":{"type":["string","null"],"description":"The date of the sponsor's file."},"date_from":{"type":["string","null"],"description":"file, page or read."},"read_on":{"type":["string","null"],"description":"The day it was read."},"served_from_earlier_file":{"type":["boolean","null"],"description":"True when an earlier night's file is kept."},"file_lines":{"type":["integer","null"],"description":"Rows in the sponsor's file."},"lines_total":{"type":["integer","null"],"description":"Lines not keyed and not a contract."},"form":{"type":["string","null"],"description":"497K, 497, 485BPOS or 485APOS."},"registrant":{"type":["string","null"],"description":"The filing trust, or null."},"objective":{"type":["string","null"],"description":"The objective, quoted (at most 400 characters)."},"objective_is_quoted":{"type":["boolean","null"],"description":"Always true."},"objective_cut":{"type":["boolean","null"],"description":"True when cut, ending in three dots."},"stated_target":{"description":"The daily multiple and reference the prospectus states, or null."},"index":{"type":["string","null"],"description":"The index it tracks, or null."},"expense_ratio_pct":{"type":["number","null"],"description":"Expenses in percent, after a waiver; null if not read."},"inception_date":{"description":"The start date it states, or null."},"holdings_note":{"type":["string","null"],"description":"Says its first holdings filing replaces this file."}},"additionalProperties":true,"required":["ticker","name","page_url","cite_as","cite_html","identifiers","source_layer","category","as_of","holdings_as_of","report_date","filed","filing_url","net_assets","expense_ratio","expense_ratio_gross","expense_ratio_source","expense_ratio_as_of","expense_ratio_filing_url","aum_b","aum_source","aum_date","vol","beta","mdd3","r1","r3","r5","last_close","last_close_date","day_change_pct","high_52w","low_52w","currency","summary","weekly","weeks_end","license","attribution","source"]},"Security":{"type":"object","properties":{"ticker":{"type":["string","null"],"description":"The stock's ticker, upper case."},"name":{"type":["string","null"],"description":"The company's name."},"page_url":{"type":["string","null"],"description":"The stock's page on the site, or null when it has none. Link this when quoting the figures."},"cite_as":{"type":["string","null"],"description":"A citation line for a quoted figure: company, sources and date, a URL to check it, licence."},"cite_html":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address."},"sector":{"type":["string","null"],"description":"The company's sector where the data classifies it, or \"US Listed\" when it does not, which is the case for most stocks."},"industry":{"type":["string","null"],"description":"The finest level of that classification under the sector, such as Semiconductors or Regional Banks; null when sector is \"US Listed\"."},"identifiers":{"type":"object","additionalProperties":true,"required":["asset_type","exchange","composite_figi","share_class_figi","cik","series_id","class_id"],"properties":{"asset_type":{"type":"string","enum":["etf","etn","stock"],"description":"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":{"type":["string","null"],"enum":["Cboe BYX","Cboe BZX","Cboe EDGA","Cboe EDGX","IEX","NYSE","NYSE American","NYSE Arca","NYSE Texas","Nasdaq","Nasdaq BX","TXSE",null],"description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"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":{"type":["string","null"],"pattern":"^BBG[0-9BCDFGHJKLMNPQRSTVWXYZ]{8}[0-9]$","description":"The FIGI of the share class, the same on every market it trades in. Null with composite_figi."},"cik":{"type":["string","null"],"pattern":"^[0-9]{10}$","description":"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":{"type":["string","null"],"pattern":"^S[0-9]{9}$","description":"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":{"type":["string","null"],"pattern":"^C[0-9]{9}$","description":"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."}},"description":"FIGI and SEC ids: /api/v1/identifiers.json."},"as_of":{"type":["string","null"],"description":"The price date: the date of the price data behind every figure here."},"page":{"type":["boolean","null"],"description":"True when the stock has a written page at /stock/{ticker}/. Every stock here has this file whether or not it has a page."},"cap_b":{"type":["number","null"],"description":"Market capitalisation, in billions of US dollars."},"pe":{"type":["number","null"],"description":"Trailing price to earnings ratio."},"yield":{"type":["number","null"],"description":"Trailing twelve month dividend yield, as a percentage."},"vol":{"type":["number","null"],"description":"Annualised standard deviation of weekly total returns over three years, as a percentage."},"beta":{"type":["number","null"],"description":"Sensitivity to the S&P 500, from three years of weekly returns."},"mdd3":{"type":["number","null"],"description":"Largest peak to trough decline over three years, measured on weekly closes. Negative."},"r1":{"type":["number","null"],"description":"Cumulative total return over one year, as a percentage. Not annualised."},"r3":{"type":["number","null"],"description":"Cumulative total return over three years, as a percentage. Not annualised."},"r5":{"type":["number","null"],"description":"Cumulative total return over five years, as a percentage. Not annualised."},"last_close":{"type":["number","null"],"description":"The last closing price, raw, in the trading currency. Returns use dividend-adjusted closes; this is the close as traded."},"last_close_date":{"type":["string","null"],"description":"The date of that close."},"day_change_pct":{"type":["number","null"],"description":"The move from the previous close to the last, as a percentage."},"high_52w":{"type":["number","null"],"description":"The highest raw close over the last 252 trading days, or since the listing for a stock listed less than a year ago."},"low_52w":{"type":["number","null"],"description":"The lowest raw close over the last 252 trading days, or since the listing for a stock listed less than a year ago."},"currency":{"type":["string","null"],"description":"The trading currency of the price fields."},"calendar":{"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"Total return by calendar year, as a percentage, the current year to date."},"held_by":{"type":["integer","null"],"description":"How many issuer-layer funds hold it, the rows of holders. The stock's page counts these less left_out, with the SEC-layer funds of held_by_sec_nport, as holders_all lists them."},"heaviest":{"type":["array","null"],"prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]},"description":"The issuer-layer fund that gives it the largest weight, as [fund ticker, weight percent]. Null when none of them holds it."},"held_by_sec_nport":{"type":["integer","null"],"description":"How many SEC-layer funds hold it, the rows of holders_sec_nport. The stock's page counts them with the issuer-layer funds and lists them in a table of their own, each linked to its filing."},"holders":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"},{"title":"date","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"Every issuer-layer fund that holds it, heaviest first, as [fund ticker, weight percent, date of that fund's holdings file]. The same rows as the holders index, in the stock's own file."},"holders_sec_nport":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"},{"title":"date","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The SEC-layer funds that hold it, heaviest first, as [fund ticker, weight percent, the quarter end the filing describes]. They are months older than holders, so they are kept apart. A fund whose row under this ticker is a foreign company's local code is not listed. A filing names a security by its ISIN, which does not say where the fund bought it. So shares that trade in New York and abroad on one ISIN (AstraZeneca, TotalEnergies, Ferrari) are listed here for the funds whose stocks are mostly on US ISINs, and under the line abroad (AZN.GB) for the others. A preferred share is keyed by its issuer's common ticker, as the filings key it, so a preferred stock fund can appear here. For a stock whose weekly is empty, a row can be dated before its first close in the price data. Such a row can be another security that had the ticker, or the company's shares abroad before it listed in New York, and etf_ownership does not count it (before_first_close)."},"synthetic_exposure":{"type":["array","null"],"items":{"type":"object","properties":{"fund":{"type":["string","null"]},"exposure":{"type":["string","null"]},"long_pct":{"type":["number","null"]},"short_pct":{"type":["number","null"]},"options":{"type":"object","properties":{"purchased_puts_pct":{"type":["number","null"]},"written_puts_pct":{"type":["number","null"]},"written_calls_pct":{"type":["number","null"]},"purchased_calls_pct":{"type":["number","null"]}},"additionalProperties":true},"instruments":{"type":["array","null"],"items":{"type":["null","string"]}},"complete":{"type":["boolean","null"]},"report_date":{"type":["string","null"]}},"additionalProperties":true},"description":"The derivative-based funds whose swaps, futures or options reference the stock, largest first: fund, exposure (long, short, long and short, options, not stated), long_pct, short_pct, options, instruments, complete, report_date. Notional exposure, not shares held: in no holder list, rank or etf_ownership."},"left_out":{"type":["array","null"],"description":"An empty list for a stock with a page, and null without one; kept for compatibility. Before lines listed abroad were keyed with their market (7203.JP), it named the issuer-layer funds whose row under the ticker was most likely a company listed abroad under the same code. Today a row stays under a US ticker when its issuer's file places it in New York, by its exchange, its currency or its identifiers, with the US list for a line nothing else places. The Toronto line of the same shares as a New York line also stays under the US ticker (RY). A row in dollars that nothing places abroad counts as a US line, as a few depositary receipts traded in London do (SBID, the GDR of State Bank of India).","items":{"type":["string","null"]}},"same_code_abroad":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"key","type":"string"},{"title":"name","type":["string","null"]}],"items":{"type":["null","string"]}},"description":"The lines listed outside the United States under the same local code, as [key, company name], most widely held first. Each is another security, and often another company: SAN.ES is Banco Santander in Madrid and SAN.FR Sanofi in Paris, beside SAN, the Santander ADR. Their issuer-layer holders are under those keys in the holders index. Their SEC-layer holders are in holders_sec_nport of the shard of their first character (/api/v1/holders/a.json for AZN.GB). An empty list when there is none."},"earlier_key_reads_as":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The keys this ticker reads as now, this ticker among them, when it was also the key of other lines before lines listed abroad were keyed with their market. CCO, Clear Channel Outdoor, was also Cameco's Toronto code, so it reads as CCO and CCJ; SAN reads as SAN, SAN.ES and SAN.FR. The same list as the aliases of the holders index. Null when the ticker was only ever this line."},"etf_ownership":{"type":"object","properties":{"pct_lower_bound":{"type":["number","null"],"description":"At least this percent of the shares outstanding is held by the covered US ETFs counted, rounded down to two decimals. It is of the company, every class counted, when basis is company, and of this ticker's class alone when basis is class. It is a lower bound: funds not covered, and covered funds whose count could not be used, are not in it. One exception: the count of shares outstanding is used when it is at most 2% below a current independent count, so the figure can be up to about 2% of itself too high. Null when no figure is published; refused says why."},"basis":{"type":["string","null"],"description":"What the percent is of. company: all the company's shares outstanding, every class rolled up. class: this ticker's class alone, which is not the company's figure. It is company when shares_outstanding covers every class, rolled up (Alphabet's three classes; Berkshire's class A counted as 1,500 class B shares). It is also company when that count is the one count the company's cover gives and the company has one class of stock. It is class when the roll-up over the cover's classes does not check out against an independent count while this class's count does. It is also class when the one count the SEC gives is short of an independent company count and cannot be shown to be the company's. That happens when the filing names another class of stock (Mobileye's class B, Plains GP's class B shares), or when the count is a frames row. Null when no figure is published.","enum":["company","class",null]},"company":{"type":["string","null"],"description":"The company the figure is about, as cite_as names it. It is the stock's name without what names the listing rather than the company. That is its class (Alphabet Inc., not Alphabet Inc. (Class A)), a depositary receipt, a registry share or a closed-end fund (Ares Capital Corporation, not Ares Capital Corporation - Closed End Fund). It keeps a leading \"The\" when the company's name has one (The Walt Disney Company). On a company basis the figure covers every class; on a class basis cite_as names the class by its ticker (the outstanding shares of the PAGP class). Null when no figure is published."},"shares_held":{"type":["integer","null"],"description":"The shares the counted funds hold, in shares of this ticker's class, of every listed class on a company basis. Issuer files enter it only as a sum over at least two of them, never a single issuer file's count. SEC filings are public one by one, so a figure can rest on a single filing."},"shares_held_by_layer":{"type":["object","null"],"required":["issuer_files","sec_nport"],"properties":{"issuer_files":{"type":"integer"},"sec_nport":{"type":"integer"}},"additionalProperties":{"type":"integer"},"description":"shares_held split between the issuers' own files (issuer_files) and SEC Form N-PORT filings (sec_nport)."},"shares_outstanding":{"type":["integer","null"],"description":"The company's shares outstanding, in shares of this ticker's class, as the cover of a periodic report states them in the SEC's XBRL data: a 10-K, 10-Q, 20-F or 40-F, amendments and transition reports included. It is the most recent count read; its date is shares_outstanding_as_of and its filing shares_outstanding_filing. On a class basis, it is the class's own count."},"shares_outstanding_as_of":{"type":["string","null"],"description":"The date the cover counts the shares on. It is not the date of the holdings, which holdings_dates gives."},"shares_outstanding_filing":{"type":["string","null"],"description":"The filing on SEC EDGAR the count comes from, to check it against the source."},"funds_holding":{"type":["object","null"],"required":["issuer_files","sec_nport"],"properties":{"issuer_files":{"type":"integer"},"sec_nport":{"type":"integer"}},"additionalProperties":{"type":"integer"},"description":"How many covered funds list the stock, any listed class on a company basis, by layer: issuer_files and sec_nport. A fund holding two classes is one fund."},"funds_counted":{"type":["object","null"],"required":["issuer_files","sec_nport"],"properties":{"issuer_files":{"type":"integer"},"sec_nport":{"type":"integer"}},"additionalProperties":{"type":"integer"},"description":"How many of them are counted in shares_held, by layer. The others are in not_counted."},"funds_prorated":{"type":["integer","null"],"description":"How many of the counted funds are Vanguard ETFs. A Vanguard file lists the whole fund, every share class together, so each is counted for its ETF class only. Its shares are multiplied by the ETF class's net assets over the whole fund's, as Vanguard prints them, each taken at the end of its rounding that keeps the figure a lower bound."},"not_counted":{"type":["object","null"],"additionalProperties":{"type":"integer"},"description":"The funds listing the stock that are not counted, by reason; each reason is explained under not_counted in /api/v1/methods.json. no_share_count: the file gives no share count. through_fund: held through another covered fund. preferred_fund: a preferred stock fund. preferred_row: a row the file names as a preferred or depositary share. price_mismatch: a value per share that is not the stock's price. value_mismatch: a file whose counts or values do not match its weights times the fund's stated net assets. no_value_check: a file without market values, and no net assets to check it against. no_class_size: a Vanguard file without its class sizes. whole_series: a filing covering mutual fund classes. before_split: a row dated before a split of the stock. before_first_close: a row dated before the stock's first close in the price data. single_issuer_file: the only issuer file counted. A fund holding two classes of the company is one fund here, and it is not listed when either of its rows is counted; rows_not_counted has the rows."},"rows_not_counted":{"type":["object","null"],"additionalProperties":{"type":"integer"},"description":"The rows not counted, one per fund and class, by the same reasons. It holds the row of a fund counted through another class that is itself left out, such as a preferred depositary share filed under the common's ticker. On a class basis, only this ticker's rows."},"holdings_dates":{"type":["object","null"],"required":["oldest","newest"],"additionalProperties":true,"properties":{"oldest":{"type":"string"},"newest":{"type":"string"}},"description":"The oldest and newest holdings dates of the counted funds. A filing describes a quarter end months back, so the two are often far apart."},"holdings_dates_by_layer":{"type":["object","null"],"additionalProperties":{"type":["object","null"],"required":["oldest","newest"],"additionalProperties":true,"properties":{"oldest":{"type":"string"},"newest":{"type":"string"}}},"required":["issuer_files","sec_nport"],"properties":{"issuer_files":{"type":["object","null"],"required":["oldest","newest"],"additionalProperties":true,"properties":{"oldest":{"type":"string"},"newest":{"type":"string"}}},"sec_nport":{"type":["object","null"],"required":["oldest","newest"],"additionalProperties":true,"properties":{"oldest":{"type":"string"},"newest":{"type":"string"}}}},"description":"The same for each layer, issuer_files and sec_nport; null for a layer with no fund counted."},"classes":{"type":["array","null"],"items":{"type":"object","additionalProperties":true,"required":["class","tickers","shares_outstanding","as_of","shares_held","pct_lower_bound"],"properties":{"class":{"type":["string","null"]},"tickers":{"type":"array","items":{"type":"string"}},"shares_outstanding":{"type":"integer"},"as_of":{"type":"string"},"weight":{"type":"number","description":"What one share of this class counts for, in shares of the ticker's class, when that is not one share (Berkshire's class A, 1,500 class B shares). Absent otherwise."},"shares_held":{"type":["integer","null"]},"pct_lower_bound":{"type":["number","null"]}}},"description":"For a company with several classes of stock, one entry per class: class, tickers (empty for an unlisted class), shares_outstanding and as_of. weight is set where one share counts for more than one share of this ticker's class. shares_held and pct_lower_bound are set where the class's own count checks out against its ticker's and the class figure is at least 0.01%, and are null otherwise. Null for a company with one class."},"refused":{"type":["string","null"],"description":"Why no figure is published, as a code: no_sec_count, class_unknown, count_too_old, count_date_invalid, no_independent_count, split_between_dates, count_below_independent, count_mismatch, no_fund_counted, under_0_01_pct, above_100 or held_back. Null when a figure is published."},"refused_reason":{"type":["string","null"],"description":"The same reason in words."},"held_back":{"type":["object","null"],"additionalProperties":true,"required":["reason","failures","examples","figures","last_figures","last_as_of"],"properties":{"reason":{"type":"string","description":"above_100, fewer_figures or error."},"failures":{"type":"integer","description":"How many stocks came to over 100% tonight."},"examples":{"type":"array","items":{"type":"string"},"description":"Up to five of them."},"figures":{"type":"integer","description":"How many figures tonight's ledger has."},"last_figures":{"type":["integer","null"],"description":"How many the ledger served has."},"last_as_of":{"type":["string","null"],"description":"The as_of of the ledger served."}},"description":"Null on a normal night. When tonight's ledger failed its checks and was held back, the same object as held_back in /api/v1/ownership.json, and the figure here, if any, is from the last ledger that passed, with its own dates."},"method":{"type":"string","description":"The method and its version, ti-ownership/1. A change to what it computes from inputs it already accepted is a new version."},"method_url":{"type":"string","description":"Where the method is written down, with its test vectors."},"cite_as":{"type":["string","null"],"description":"A citation line for the figure: company, the figure, the method, the holdings dates and the date of the count, a URL to check it, licence. Null when no figure is published."},"cite_html":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address. Null when no figure is published."}},"additionalProperties":true,"required":["pct_lower_bound","basis","company","shares_held","shares_held_by_layer","shares_outstanding","shares_outstanding_as_of","shares_outstanding_filing","funds_holding","funds_counted","funds_prorated","not_counted","rows_not_counted","holdings_dates","holdings_dates_by_layer","classes","refused","refused_reason","held_back","method","method_url","cite_as","cite_html"],"description":"The stock's line of the ETF ownership ledger: the share of the company's shares outstanding that the covered US ETFs hold, at least, with its parts and dates, or why no figure is published. Its fields are described below; the method, with its test vectors, is /api/v1/methods.json."},"etf_holders_since_2019":{"type":["object","null"],"required":["answer","counted","quarters","method"],"properties":{"answer":{"type":"string"},"counted":{"type":"string"},"quarters":{"type":"array","items":{"type":"object","required":["quarter","etfs","largest_weight_etf","largest_weight_pct"],"properties":{"quarter":{"type":"string","description":"The calendar quarter, as 2019Q4."},"etfs":{"type":"integer"},"largest_weight_etf":{"type":"string"},"largest_weight_pct":{"type":"number"}}}},"method":{"type":"string"}},"description":"How many of today's US stock ETFs held it in their SEC reports, each quarter: answer to quote, quarters oldest first. Null when fewer than two quarters held it."},"holders_all":{"type":"array","items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"},{"title":"date","type":["string","null"]},{"title":"layer","type":"string"},{"title":"rank","type":"integer"},{"title":"positions","type":"integer"},{"title":"value","type":["number","null"]}],"items":{"type":["null","number","string"]}},"description":"Every covered fund holding the stock, both layers in one list, heaviest first, an issuer file first on a tie. Each row is [fund ticker, weight percent, date of its holdings, layer, rank of the stock in the fund, the fund's positions, value held in millions of US dollars]. The layer is issuer for an issuer's own file, or sec_nport for an SEC Form N-PORT filing, dated to the quarter end it describes. The rank is 1 plus the number of the fund's positions that weigh more. The value held is the weight times the fund's net assets as published. Those are the ETF share class's for a Vanguard fund (etf_class_net_assets_b), aum_b for another issuer-layer fund, and net_assets for an SEC-layer fund. A value keeps the significant figures of the less precise of the weight and the net assets, three at most. VOO's value is 81000 on net assets Vanguard prints as $1.0 trillion, two figures; a fund with aum_b of 41.8 gives three. The value is null when the fund has no net assets, or has them to fewer than two figures, or when its filing covers mutual fund classes too. Fewer than two figures means aum_b under 1.0, which the market data gives to $0.1 billion, so 0.1 is anything from 0.05 to 0.15. rank_summary counts these funds in funds_without_value. The rows are the funds of holders, less left_out, and of holders_sec_nport; no fund is in both layers. A short position, a negative weight in a long and short fund, is listed with its negative weight and value. It is not a holding: rank_summary counts it in short_positions, and by_issuer, top_by_value, membership and answer leave it out."},"rank_summary":{"type":"object","additionalProperties":true,"properties":{"funds":{"type":"integer","description":"How many covered funds hold the stock: the rows of holders_all less short_positions."},"top_holding_in":{"type":"integer","description":"How many of them have it as their largest holding, a tie included."},"top10_in":{"type":"integer","description":"How many have it among their ten largest holdings."},"funds_without_value":{"type":"integer","description":"How many of them have no value held: no net assets, net assets known to fewer than two figures, or a filing that covers mutual fund classes too."},"short_positions":{"type":"integer","description":"How many funds hold the stock short, a negative weight in holders_all: listed there, never counted as holders."},"by_layer":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true,"properties":{"funds":{"type":"integer","description":"How many covered funds hold the stock: the rows of holders_all less short_positions."},"top_holding_in":{"type":"integer","description":"How many of them have it as their largest holding, a tie included."},"top10_in":{"type":"integer","description":"How many have it among their ten largest holdings."}},"required":["funds","top_holding_in","top10_in"]},"properties":{"issuer":{"type":"object","additionalProperties":true,"properties":{"funds":{"type":"integer","description":"How many covered funds hold the stock: the rows of holders_all less short_positions."},"top_holding_in":{"type":"integer","description":"How many of them have it as their largest holding, a tie included."},"top10_in":{"type":"integer","description":"How many have it among their ten largest holdings."}},"required":["funds","top_holding_in","top10_in"]},"sec_nport":{"type":"object","additionalProperties":true,"properties":{"funds":{"type":"integer","description":"How many covered funds hold the stock: the rows of holders_all less short_positions."},"top_holding_in":{"type":"integer","description":"How many of them have it as their largest holding, a tie included."},"top10_in":{"type":"integer","description":"How many have it among their ten largest holdings."}},"required":["funds","top_holding_in","top10_in"]}},"description":"The same three counts for each layer, issuer and sec_nport."}},"required":["funds","top_holding_in","top10_in","funds_without_value","short_positions","by_layer"],"description":"How many of the holders have the stock as their largest holding (top_holding_in) and among their ten largest (top10_in), of how many (funds), in all and by layer. It also counts the holders with no value held (funds_without_value) and the funds short the stock (short_positions), which are not counted as holders."},"top_by_value":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":"string","description":"The fund's ticker."},"value_usd_m":{"type":"number","description":"The value of the stock the fund holds, in millions of US dollars: weight times net_assets_b, to the significant figures of the less precise of the two, three at most."},"weight":{"type":"number","description":"The stock's weight in the fund, in percent."},"holdings_as_of":{"type":["string","null"],"description":"The date of the fund's holdings."},"layer":{"type":"string","description":"issuer or sec_nport.","enum":["issuer","sec_nport"]},"net_assets_b":{"type":"number","description":"The net assets the value is computed from, in billions of US dollars."},"net_assets_basis":{"type":"string","description":"What they are: etf_class, a Vanguard ETF share class alone; fund, aum_b from the market data; filing, the net assets the fund's SEC filing states.","enum":["etf_class","fund","filing"]},"net_assets_as_of":{"type":["string","null"],"description":"Their date: the day aum_b was read, or the filing's quarter end. Null when not known."}},"required":["fund","value_usd_m","weight","holdings_as_of","layer","net_assets_b","net_assets_basis","net_assets_as_of"]},"description":"The ten holders with the most dollars in the stock, most first, each with the net assets its value is computed from and their date. Only funds with a value are ranked, so a fund whose net assets are known to fewer than two figures is not."},"membership":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":"string","description":"The fund's ticker."},"kind":{"type":"string","description":"broad for VOO, SPY, IVV, QQQ, VTI and SCHD, sector for a sector or industry fund.","enum":["broad","sector"]},"category":{"type":["string","null"],"description":"The fund's category label, or null."},"held":{"type":"boolean","description":"Whether the fund holds the stock."},"weight":{"type":["number","null"],"description":"Its weight in percent, or null."},"rank_in_fund":{"type":["integer","null"],"description":"Its rank in the fund, 1 for the largest holding, or null."},"positions":{"type":"integer","description":"How many positions the fund holds."},"holdings_as_of":{"type":["string","null"],"description":"The date of the fund's holdings."},"layer":{"type":"string","description":"issuer or sec_nport.","enum":["issuer","sec_nport"]}},"required":["fund","kind","category","held","weight","rank_in_fund","positions","holdings_as_of","layer"]},"description":"Whether the stock is in VOO, SPY, IVV, QQQ, VTI and SCHD, and in the three largest sector or industry funds holding it. Each comes with its weight, the stock's rank in it, its positions and the date of its holdings. The sector funds are ranked by the net assets a value is computed from. A fund is a sector fund when its TickerInside category is in the sector group (/etf/category/), else when its name names a sector or an industry. A fund no layer covers is left out."},"by_issuer":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"issuer":{"type":"string","description":"The issuer, as the issuer files name it (iShares, SPDR, Invesco, Global X) or as a fund's name or filer gives it."},"funds":{"type":"integer","description":"How many of its covered funds hold the stock."},"value_usd_m":{"type":["number","null"],"description":"The value they hold, in millions of US dollars, over the funds with a value, to the precision of the least precise of them; null when none has one."},"funds_without_value":{"type":"integer","description":"How many of them have no value, for want of published net assets known to two figures or more."},"heaviest":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]},"description":"The fund that gives the stock its largest weight, as [fund, weight percent]."},"largest":{"type":["array","null"],"prefixItems":[{"title":"fund","type":"string"},{"title":"value","type":"number"}],"items":{"type":["number","string"]},"description":"The fund holding the most dollars of it, as [fund, millions of US dollars], or null."}},"required":["issuer","funds","value_usd_m","funds_without_value","heaviest","largest"]},"description":"The six issuers whose covered funds hold the most dollars of the stock, most first. For each: how many of its funds hold it, the dollars in millions over the funds with a value, how many have none, the heaviest weight as [fund, weight percent] and the largest holding as [fund, millions of US dollars]. An issuer file names its issuer. An SEC-layer fund takes the issuer its name and the trust that filed it give, and one with none is left out."},"fee_per_1000":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":"string","description":"The fund's ticker."},"fee_usd_per_1000":{"type":"number","description":"US dollars a year of the fund's expense ratio for each $1,000 of the stock held through it."},"expense_ratio":{"type":"number","description":"The fund's expense ratio, in percent a year."},"weight":{"type":"number","description":"The stock's weight in the fund, in percent."},"holdings_as_of":{"type":["string","null"],"description":"The date of the fund's holdings."},"layer":{"type":"string","description":"issuer or sec_nport.","enum":["issuer","sec_nport"]}},"required":["fund","fee_usd_per_1000","expense_ratio","weight","holdings_as_of","layer"]},"description":"The five cheapest ways to hold the stock through a covered fund: what the fund's expense ratio costs a year for each $1,000 of the stock held through it. It is 1000 times the expense ratio over the weight, both in percent. Only funds whose expense ratio is in the data are listed."},"name_collision":{"type":["object","null"],"additionalProperties":true,"properties":{"name":{"type":"string","description":"The company's name as compared: its trade name less the words a filed name ends in (SoFi, not SoFi Technologies)."},"count":{"type":"integer","description":"How many covered funds' names contain it."},"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":"string"},"name":{"type":["string","null"]},"holds":{"type":"boolean"},"weight":{"type":["number","null"]},"holdings_as_of":{"type":["string","null"]},"layer":{"type":"string"}},"required":["fund","name","holds","weight","holdings_as_of","layer"]},"description":"Up to ten of them, holders first: fund, name, holds, weight (null when it does not hold the stock), holdings_as_of and layer."}},"required":["name","count","funds"],"description":"The covered funds whose name contains the company's name as whole words (JPMorgan Realty Income ETF for Realty Income), which a reader can take for the company or for its own fund. It gives the name compared, how many funds, and up to ten of them, holders first, each with whether it holds the stock. Null when there is none, or when the name is one word found in the funds of three issuers or more: a word of fund names more than a company's."},"answer":{"type":"string","description":"One sentence to quote, built from the fields above and etf_ownership, every figure with its date. It says how many covered funds hold the stock, by layer, and how many have it as their largest holding. It says where it weighs most (under 0.01% for a weight that rounds to nothing) and where the most dollars are, with about as many figures as the value has (under $0.1 million below that). It ends with the ownership figure when there is one: every class counted when it counts several, also when no fund holds this class. It opens on the name the stock's page uses, or for a stock without a page on the company's name as etf_ownership.company gives it, with the class when the figure counts several. It calls the funds the ownership figure counts \"N of them\" when they are among the holders it has just counted and the figure counts one class."},"least_correlated":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"correlation","type":"number"},{"title":"name","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The eight stocks least correlated with this one over the last 104 of the same weekly returns, as [ticker, correlation, name]. The candidates are stocks held by ten or more covered funds, so every neighbour is reachable through ETFs. A measurement of co-movement, not a recommendation."},"most_correlated":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"correlation","type":"number"},{"title":"name","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The eight most correlated, same shape and same candidate set."},"weekly":{"type":["array","null"],"items":{"type":["null","number"]},"description":"156 weekly total returns as decimals, oldest first, ending at as_of: the same weeks as the fund files, so a stock and a fund correlate with the same arithmetic as two funds. A week is null when its return cannot be computed, because the stock's prices begin later or a weekly close is missing. At least 110 of the 156 are numbers. It is an empty list for a stock with fewer that has a file by the rule of this endpoint: its vol, beta, mdd3, r3 and r5 are then null and its correlated stocks empty lists."},"weeks_end":{"type":["string","null"],"description":"The last date covered by the weekly series."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"Where the method behind these figures is written down."}},"additionalProperties":true,"required":["ticker","name","page_url","cite_as","cite_html","sector","industry","identifiers","as_of","page","cap_b","pe","yield","vol","beta","mdd3","r1","r3","r5","last_close","last_close_date","day_change_pct","high_52w","low_52w","currency","calendar","held_by","heaviest","held_by_sec_nport","holders","holders_sec_nport","synthetic_exposure","left_out","same_code_abroad","earlier_key_reads_as","etf_ownership","etf_holders_since_2019","holders_all","rank_summary","top_by_value","membership","by_issuer","fee_per_1000","name_collision","answer","least_correlated","most_correlated","weekly","weeks_end","license","attribution","source"]},"Ownership":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The newest holdings date among the issuer files the ledger was counted from. Here as_of is a holdings date, not the price date."},"method":{"type":"string","description":"The method and its version, ti-ownership/1."},"method_url":{"type":"string","description":"Where the method is written down, with its test vectors."},"count":{"type":"integer","description":"How many stocks have a figure, the length of stocks."},"note":{"type":"string","description":"How to read the entries."},"stocks":{"type":"array","items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"percent","type":"number"},{"title":"funds","type":"integer"},{"title":"basis","type":"string"}],"items":{"type":["number","string"]}},"description":"One entry per stock with a figure, most held first, as [ticker, at least this percent held by the covered US ETFs, how many funds were counted, basis]. basis is as in the stock file. company: the percent is of the company's shares outstanding, every class counted. class: it is of the ticker's class alone, which is not the company's figure (Clearway's class C, while its classes A, B and D are left out). Two tickers of one company on a company basis carry the same figure."},"refused":{"type":"object","additionalProperties":{"type":"integer"},"description":"How many stocks with a file have no figure, by reason."},"refused_reasons":{"type":"object","additionalProperties":{"type":"string"},"description":"Those reasons in words."},"top10_share":{"type":["object","null"],"additionalProperties":true,"required":["pct","companies","funds","funds_without_net_assets","net_assets_dates"],"properties":{"pct":{"type":["number","null"],"description":"The share, in percent, rounded to one decimal. A share of the money, not a bound, so it is rounded to nearest."},"companies":{"type":"array","items":{"type":"string"},"description":"The ten companies, one ticker each: the largest by the market data's capitalisation among the US companies any covered fund holds. A US company is a stock the price data places in a sector, or one whose company files 10-K and 10-Q reports with the SEC. A company with no stock file here is ranked like the others, and its weight in each fund counts in pct. A stock has a file with at least 110 of the 156 weekly returns, or with fewer when a fund read from an issuer file or a stock ETF from SEC filings holds it in a file dated since it listed, the price data has its closes since its listing, or a year of them, the last at most five sessions old, and Nasdaq Trader's directory lists it under its name."},"funds":{"type":"integer","description":"How many funds it is measured over."},"funds_without_net_assets":{"type":"integer","description":"How many US stock funds were left out because their files state no net assets."},"net_assets_dates":{"type":["object","null"],"required":["oldest","newest"],"additionalProperties":true,"properties":{"oldest":{"type":"string"},"newest":{"type":"string"}},"description":"The oldest and newest date of the net assets used: issuer figures are current, SEC filings months old."}},"description":"The share of the money in the covered US stock ETFs that sits in the ten largest US companies by market value. It gives pct, the companies, and funds, how many funds it is measured over: those whose net assets are at least 80% in US-listed stocks. It also gives how many such funds were left out for want of stated net assets, and the oldest and newest date of the net assets used. Each fund counts by its own net assets, a Vanguard fund by its ETF class's alone. The ten are ranked among every US company a covered fund holds, whether or not it has a stock file here. The weight of a company without a file counts as US stock like any other."},"most_widely_held":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"company","type":["string","null"]},{"title":"funds","type":"integer"},{"title":"percent","type":["number","null"]},{"title":"basis","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The 25 companies held by the most covered funds, both layers, one line per company. Each line is [ticker, company name, how many covered funds hold any of its listed classes, the ticker's pct_lower_bound or null, its basis or null]. A fund holding two classes of the company (GOOGL and GOOG) is one fund. The ticker is the company's class held by the most funds. Its pct_lower_bound is that stock file's figure, of the company or of the ticker's class alone as basis says (Visa's is its class A's). A fund whose row under a ticker is another security is not counted: a preferred stock fund, a row named as a preferred share, or a filing whose row is listed under abroad. A line listed abroad has a key of its own (7203.JP beside TM) and is never counted for a US company."},"held_back":{"type":["object","null"],"additionalProperties":true,"required":["reason","failures","examples","figures","last_figures","last_as_of"],"properties":{"reason":{"type":"string","description":"above_100, fewer_figures or error."},"failures":{"type":"integer","description":"How many stocks came to over 100% tonight."},"examples":{"type":"array","items":{"type":"string"},"description":"Up to five of them."},"figures":{"type":"integer","description":"How many figures tonight's ledger has."},"last_figures":{"type":["integer","null"],"description":"How many the ledger served has."},"last_as_of":{"type":["string","null"],"description":"The as_of of the ledger served."}},"description":"Null on a normal night. When tonight's ledger is held back, the figures served are those of the last ledger that passed, each with its own dates, and this says why. reason is above_100 when more than five stocks come to over 100% with no split to explain them; failures says how many, and examples which. It is fewer_figures when tonight's ledger has more than 20% fewer figures than the last one that passed (figures, last_figures), a night that lost an input. It is error when the ledger could not be computed tonight; top10_share is then null and most_widely_held empty. A fewer_figures hold lasts at most seven days of holdings dates (last_as_of is the date of the ledger served); after that the lower count is published. The ledger served keeps only the stocks that have a file tonight."},"docs":{"type":"string","description":"Where this file is documented."},"license":{"type":"string","description":"The licence the data is published under."},"attribution":{"type":"string","description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["as_of","method","method_url","count","note","stocks","refused","refused_reasons","top10_share","most_widely_held","held_back","docs","license","attribution"]},"Methods":{"type":"object","properties":{"note":{"type":["string","null"],"description":"How methods are named and versioned."},"methods":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The name and version a published figure gives in its method field."},"name":{"type":["string","null"],"description":"The method in words."},"version":{"type":["number","null"],"description":"The version number. Fields are added; a change to what the method computes from inputs it already accepted is a new id, and a rule for an input it did not accept before is listed under changes."},"since":{"type":["string","null"],"description":"The first day figures were published under this version."},"changes":{"type":["array","null"],"items":{"type":"object","properties":{"since":{"type":["string","null"]},"rule":{"type":["string","null"]},"what":{"type":["string","null"]}},"additionalProperties":true},"description":"The rules added to this version for an input it did not accept before, each with since, the first day it was published, rule, its code under not_counted, and what, the change in words. Every earlier test vector keeps its output."},"measures":{"type":["string","null"],"description":"What the figure is, in one sentence."},"formula":{"type":["string","null"],"description":"The figure as a formula."},"definitions":{"type":"object","properties":{"shares_held":{"type":["string","null"]},"shares_outstanding":{"type":["string","null"]},"lower_bound":{"type":["string","null"]}},"additionalProperties":true,"description":"What each term of the formula is."},"rules":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The rules of the method, in words."},"not_counted":{"type":"object","properties":{"no_share_count":{"type":["string","null"]},"through_fund":{"type":["string","null"]},"preferred_fund":{"type":["string","null"]},"preferred_row":{"type":["string","null"]},"price_mismatch":{"type":["string","null"]},"value_mismatch":{"type":["string","null"]},"no_value_check":{"type":["string","null"]},"no_class_size":{"type":["string","null"]},"whole_series":{"type":["string","null"]},"before_split":{"type":["string","null"]},"before_first_close":{"type":["string","null"]},"single_issuer_file":{"type":["string","null"]}},"additionalProperties":true,"description":"Each reason an input is left out, as a code and in words."},"refusals":{"type":"object","properties":{"no_sec_count":{"type":["string","null"]},"class_unknown":{"type":["string","null"]},"count_too_old":{"type":["string","null"]},"count_date_invalid":{"type":["string","null"]},"no_independent_count":{"type":["string","null"]},"split_between_dates":{"type":["string","null"]},"count_below_independent":{"type":["string","null"]},"count_mismatch":{"type":["string","null"]},"no_fund_counted":{"type":["string","null"]},"under_0_01_pct":{"type":["string","null"]},"above_100":{"type":["string","null"]},"held_back":{"type":["string","null"]}},"additionalProperties":true,"description":"Each reason no figure is given, as a code and in words."},"vector_format":{"type":["string","null"],"description":"The shape of a test vector's input and output."},"vectors":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":["string","null"]},"input":{"type":"object","properties":{"ticker":{"type":["string","null"]},"shares_outstanding":{"type":"object","properties":{"as_of":{"type":["string","null"]},"classes":{"type":["array","null"],"items":{"type":"object","properties":{"class":{},"tickers":{"type":["array","null"],"items":{"type":["null","string"]}},"shares":{"type":["number","null"]}},"additionalProperties":true}}},"additionalProperties":true},"independent":{"type":["object","null"],"additionalProperties":{"type":"object","properties":{"class":{"type":["number","null"]},"company":{"type":["number","null"]}},"additionalProperties":true}},"funds":{"type":["array","null"],"items":{"type":"object","properties":{"fund":{"type":["string","null"]},"layer":{"type":["string","null"]},"as_of":{"type":["string","null"]},"shares":{"type":["object","null"],"additionalProperties":{"type":["number","null"]}}},"additionalProperties":true}}},"additionalProperties":true},"output":{"type":"object","properties":{"pct_lower_bound":{"type":["number","null"]},"basis":{"type":["string","null"]},"shares_held":{"type":["number","null"]},"shares_outstanding":{"type":["number","null"]},"funds_counted":{"type":"object","properties":{"issuer_files":{"type":["number","null"]},"sec_nport":{"type":["number","null"]}},"additionalProperties":true},"not_counted":{"type":"object","properties":{},"additionalProperties":true}},"additionalProperties":true}},"additionalProperties":true},"description":"Inputs with the output the method gives for them, to check an implementation against."}},"additionalProperties":true,"required":["id","name","version","since","changes","measures","formula","definitions","rules","not_counted","refusals","vector_format","vectors"]},"description":"One entry per method; its fields are described below."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["note","methods","docs","license","attribution"]},"Compare":{"type":"object","properties":{"pair":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The two tickers, in the order of the file's address and of index.json written_comparisons: this file is /compare/{a}-vs-{b}.json with a first. The other order answers 301 to this file."},"as_of":{"type":["string","null"],"description":"The price date."},"holdings_as_of":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"The date of each fund's holdings file, keyed by ticker. The two are often weeks apart."},"overlap":{"type":"object","properties":{"by_weight":{"type":["number","null"],"description":"The sum, over every ticker both funds hold, of the smaller of its two weights. Symmetric: the headline figure. Tickers are compared as keys, so GOOG and GOOGL count as two."},"share_of_a":{"type":["number","null"],"description":"The part of the first fund's weight that sits in tickers the second also holds, in percent of the first fund's listed total weight, which can differ a little from 100. Not symmetric."},"share_of_b":{"type":["number","null"],"description":"The same measure from the second fund's side. When share_of_a is far above share_of_b, the first fund is mostly contained in the second."},"n_shared":{"type":["integer","null"],"description":"How many tickers appear in both funds. The Python client calls it companies_in_both."},"n_a":{"type":["integer","null"],"description":"How many positions the first fund holds, as positions in its fund file."},"n_b":{"type":["integer","null"],"description":"How many positions the second fund holds."},"top":{"type":["array","null"],"items":{"type":"object","properties":{"ticker":{"type":["string","null"]},"wa":{"type":["number","null"]},"wb":{"type":["number","null"]},"min":{"type":["number","null"]},"pa":{"type":["number","null"]},"pb":{"type":["number","null"]},"name":{"type":["string","null"]}},"additionalProperties":true},"description":"The largest shared positions: ticker, name, wa and wb, the weight in each fund rounded to two decimals, and min, the smaller of the two. pa and pb are the same weights scaled so that the largest in the list is 100, for drawing bars."},"only_a":{"type":["array","null"],"items":{"type":"object","properties":{"ticker":{"type":["string","null"]},"w":{"type":["number","null"]},"name":{"type":["string","null"]}},"additionalProperties":true},"description":"The largest positions of the first fund that the second does not hold: ticker, name and w, the weight."},"only_b":{"type":["array","null"],"items":{"type":"object","properties":{"ticker":{"type":["string","null"]},"w":{"type":["number","null"]},"name":{"type":["string","null"]}},"additionalProperties":true},"description":"The largest positions of the second fund that the first does not hold, in the same shape."},"method":{"type":["string","null"],"description":"ti-overlap/1, in methods.json."},"method_url":{"type":["string","null"],"description":"Its address."}},"additionalProperties":true,"description":"Holdings overlap, measured three ways; its fields are described below."},"correlation":{"type":["object","null"],"properties":{"c1y":{"type":["number","null"],"description":"Correlation of weekly total returns over one year, 52 weeks."},"c3y":{"type":["number","null"],"description":"Correlation over three years, 156 weeks: the figure the comparison pages quote."},"c5y":{"type":["number","null"],"description":"Correlation over five years, 260 weeks."},"cov":{"type":["number","null"],"description":"Annualised covariance of the weekly returns over three years, in percent squared. Divided by the two funds' vol, it gives c3y back, which is how a reader can check it."},"weeks":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The 52 weekly dates of the one-year spark series in funds. They are not the weeks of c3y or c5y."}},"additionalProperties":true,"description":"Correlation of weekly total returns, and the annualised covariance; its fields are described below."},"funds":{"type":"object","additionalProperties":{"type":"object","properties":{"ticker":{"type":["string","null"],"description":"The fund's ticker."},"name":{"type":["string","null"],"description":"The fund's name."},"kind":{"type":["string","null"],"description":"etf."},"group":{"type":["string","null"],"description":"The fund's sector or category in the market data, or null."},"vol":{"type":["number","null"],"description":"Annualised standard deviation of weekly total returns over three years, as a percentage."},"beta":{"type":["number","null"],"description":"Sensitivity to the S&P 500, from three years of weekly returns."},"r1":{"type":["number","null"],"description":"Cumulative total return over one year, as a percentage."},"r3":{"type":["number","null"],"description":"Cumulative total return over three years, as a percentage."},"r5":{"type":["number","null"],"description":"Cumulative total return over five years, as a percentage."},"mdd3":{"type":["number","null"],"description":"Largest peak to trough decline over three years, on weekly closes, as a percentage. Negative."},"cal":{"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"Total return by calendar year, as a percentage, keyed by year; the current year to date."},"er":{"type":["number","null"],"description":"The expense ratio, in percent of assets a year, or null."},"yield":{"description":"Trailing twelve month distribution yield, as a percentage, or null."},"aum_b":{"description":"Assets under management, in billions of US dollars, or null."},"family":{"type":["string","null"],"description":"The fund family in the market data, or null."},"cat":{"type":["string","null"],"description":"The fund's category, TickerInside's own, or null."},"nh":{"type":["integer","null"],"description":"How many positions have a weight above zero. It can be lower than positions in the fund file and n_a or n_b, which count every line."},"spark":{"type":["array","null"],"items":{"type":["null","number"]},"description":"The last 52 weekly closes, indexed to 100 at the first: the one-year line the page draws."},"px":{"type":"object","properties":{"last":{"type":["number","null"]},"date":{"type":["string","null"]},"d1":{"type":["number","null"]},"hi52":{"type":["number","null"]},"lo52":{"type":["number","null"]},"ccy":{"type":["string","null"]}},"additionalProperties":true,"description":"The latest raw close: last, the price; date, its date; d1, the move from the previous close in percent; hi52 and lo52, the highest and lowest close over 252 trading days; ccy, the trading currency."}},"additionalProperties":true},"description":"A summary of each fund, keyed by ticker, as the comparison page shows it; its fields are described below. The full file of each fund, with its holdings, is /api/v1/fund/{ticker}.json."},"page_url":{"type":["string","null"],"description":"The written comparison's page, to link when you quote a figure."},"cite_as":{"type":["string","null"],"description":"A citation line for a quoted figure: the pair, both holdings file dates, the page, and the licence."},"cite_html":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address."},"source":{"type":["string","null"],"description":"The written comparison's page, which this data belongs to."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to the page cite_as names where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["pair","as_of","holdings_as_of","overlap","correlation","funds","page_url","cite_as","cite_html","source","license","attribution"]},"Funds":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date."},"count":{"type":["integer","null"],"description":"How many issuer-layer funds there are, the length of funds. Each has a /fund/ file."},"with_a_page":{"type":["integer","null"],"description":"How many funds have a page, in every list of this file."},"note":{"type":["string","null"],"description":"How to read the entries."},"funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["integer","null"]},"issuer":{"type":["string","null"]},"aum_b":{"type":["number","null"]},"page":{"type":["boolean","null"]},"url":{"type":["string","null"]},"api":{"type":["string","null"]}},"additionalProperties":true},"description":"One entry per issuer-layer fund: t the ticker, n the name, c the category's name (Large Blend for US Large Blend, as before 9 October 2026), cat_id its id, er the expense ratio, p the number of positions. issuer is the fund's issuer, named as in index.json coverage.issuers, and aum_b its assets in billions of US dollars, as in its fund file; either can be null. page says whether it has a page, url is that page or null, and api is its file."},"sec_count":{"type":["integer","null"],"description":"How many SEC-layer funds there are, the length of sec_funds."},"sec_note":{"type":["string","null"],"description":"How to read sec_funds."},"sec_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["integer","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{"type":["string","null"]},"aum_b":{"type":["number","null"]},"net_assets":{"type":["number","null"]},"page":{"type":["boolean","null"]},"url":{"type":["string","null"]}},"additionalProperties":true},"description":"One entry per SEC-layer fund: t, n, c, cat_id, er, p, issuer, aum_b and api as above, then report_date, the quarter end the filing describes, and net_assets, in US dollars on that date. er is null where the cost is not in the data, never zero, and aum_b is null unless the market data gives the fund's size; the filing's figure is net_assets. issuer is read from the fund's name and checked against the trust that filed it, or null when neither says. page and url as in funds."},"sponsor_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{"type":["string","null"]},"aum_b":{},"net_assets":{"type":["number","null"]}},"additionalProperties":true},"description":"One entry per sponsor-file fund, as sec_funds."},"prospectus_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"filed":{"type":["string","null"]},"form":{"type":["string","null"]},"issuer":{"type":["string","null"]},"aum_b":{}},"additionalProperties":true},"description":"One entry per prospectus-file fund, as sec_funds, with filed and form."},"bond_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{},"aum_b":{},"net_assets":{"type":["number","null"]}},"additionalProperties":true},"description":"One entry per fixed income fund, as sec_funds; p counts its filing's lines."},"multi_asset_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{"type":["string","null"]},"aum_b":{},"net_assets":{"type":["number","null"]}},"additionalProperties":true},"description":"One entry per multi-asset fund, as sec_funds."},"derivative_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{},"aum_b":{},"net_assets":{"type":["number","null"]}},"additionalProperties":true},"description":"One entry per derivative-based fund, as sec_funds; report_date is the quarter end its filing describes. The files of this and the next three lists are under /etf/, at each entry's api. In them, page and url are given only for a fund that has a page."},"trust_funds":{"type":["array","null"],"items":{"type":"object","properties":{"t":{"type":["string","null"]},"n":{"type":["string","null"]},"c":{"type":["string","null"]},"cat_id":{"type":["string","null"]},"er":{"type":["number","null"]},"p":{"type":["number","null"]},"api":{"type":["string","null"]},"report_date":{"type":["string","null"]},"issuer":{"type":["string","null"]},"aum_b":{"type":["number","null"]},"net_assets":{}},"additionalProperties":true},"description":"One entry per trust or commodity pool, as sec_funds; report_date is the period its filing describes, null for a fund too new to have filed a report."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["as_of","count","with_a_page","note","funds","sec_count","sec_note","sec_funds","sponsor_funds","prospectus_funds","bond_funds","multi_asset_funds","derivative_funds","trust_funds","license","attribution"]},"Universe":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date across the whole site."},"available":{"type":["boolean","null"],"description":"False, with an empty funds list, when the list of US-listed ETFs could not be read for this build."},"source":{"type":["string","null"],"description":"Nasdaq Trader's symbol directory."},"file_date":{"type":["string","null"],"description":"The day of the directory file."},"sentence":{"type":["string","null"],"description":"The measured coverage in one sentence to quote."},"coverage":{"type":"object","properties":{"etfs":{"type":["number","null"],"description":"How many funds the list has, less the notes and other lines in etns and other_products."},"covered":{"type":["number","null"],"description":"How many of them have a holdings file here (not a prospectus file)."},"pct":{"type":["number","null"],"description":"covered over etfs, in percent, to one decimal."},"by_layer":{"type":"object","properties":{"issuer_files":{"type":["number","null"]},"sec_nport":{"type":["number","null"]},"sec_nport_derivatives":{"type":["number","null"]},"sec_nport_bonds":{"type":["number","null"]},"sec_nport_multi_asset":{"type":["number","null"]},"trust_filings":{"type":["number","null"]},"sponsor_files":{"type":["number","null"]}},"additionalProperties":true,"description":"covered by layer: issuer_files, sec_nport, sec_nport_derivatives, sec_nport_bonds, sec_nport_multi_asset, trust_filings, sponsor_files."},"prospectus":{"type":["number","null"],"description":"How many more have a prospectus file."},"with_file":{"type":["number","null"],"description":"covered plus prospectus."},"with_objective":{"type":["number","null"],"description":"How many files quote the fund's objective."},"not_covered":{"type":"object","properties":{"no_prospectus_found":{"type":["number","null"]},"no_filing_yet":{"type":["number","null"]},"not_in_sec_list":{"type":["number","null"]},"other_fund":{"type":["number","null"]},"stale_filing":{"type":["number","null"]}},"additionalProperties":true,"description":"The funds with no file, by reason code; the reasons object says what each means."},"etns":{"type":["number","null"],"description":"Lines that are exchange-traded notes, debts of their banks and not funds."},"other_products":{"type":["number","null"],"description":"Other lines that are not funds (a trust certificate)."},"outside_universe":{"type":["number","null"],"description":"Fund files for tickers the list no longer has."},"file_date":{"type":["string","null"],"description":"The day of the directory file."},"available":{"type":["boolean","null"],"description":"True when the list was read."},"source":{"type":["string","null"],"description":"Where the list comes from."},"sentence":{"type":["string","null"],"description":"The measured coverage in one sentence to quote."},"all_us_etfs":{"type":["boolean","null"],"description":"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":{"type":["string","null"],"description":"The words the claim opens with, while all_us_etfs is true, else null. Quote them with the counts of claim, never alone."},"claim":{"type":["string","null"],"description":"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":{"type":"object","properties":{"net_assets_b":{"type":["number","null"]},"with_holdings_b":{"type":["number","null"]},"pct":{"type":["number","null"]},"funds_sized":{"type":["number","null"]},"funds_unsized":{"type":["number","null"]},"unsized_with_holdings":{"type":["number","null"]},"basis":{"type":["string","null"]},"sentence":{"type":["string","null"]}},"additionalProperties":true,"description":"Coverage of assets from holdings files only: net_assets_b, with_holdings_b, pct, funds_sized, funds_unsized, unsized_with_holdings, basis, sentence."}},"additionalProperties":true,"description":"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."},"layers":{"type":"object","properties":{"issuer_files":{"type":["string","null"]},"sec_nport":{"type":["string","null"]},"sec_nport_derivatives":{"type":["string","null"]},"sec_nport_bonds":{"type":["string","null"]},"sec_nport_multi_asset":{"type":["string","null"]},"trust_filings":{"type":["string","null"]},"sponsor_files":{"type":["string","null"]},"prospectus":{"type":["string","null"]}},"additionalProperties":true,"description":"What each layer of fund files is."},"reasons":{"type":"object","properties":{"etn":{"type":["string","null"]},"other_product":{"type":["string","null"]},"no_filing_yet":{"type":["string","null"]},"not_in_sec_list":{"type":["string","null"]},"other_fund":{"type":["string","null"]},"stale_filing":{"type":["string","null"]},"no_prospectus_found":{"type":["string","null"]}},"additionalProperties":true,"description":"Why a fund has no fund file, by code."},"funds":{"type":["array","null"],"items":{"type":"array","items":{"type":["null","string"]}},"description":"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."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["as_of","available","source","file_date","sentence","coverage","layers","reasons","funds","license","attribution"]},"Holders":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date."},"holdings_as_of":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"The date of each issuer-layer fund's holdings file, keyed by ticker."},"funds":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"Ticker to fund name for the issuer-layer funds, and for a few other funds the price data names, and for other funds the price data names. Use index.json tickers, not this map, as the list of covered funds."},"securities":{"type":["integer","null"],"description":"How many distinct securities the issuer-layer funds hold between them, the length of holders."},"names":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"Ticker to company name for every security the data can name: from the price data for the stocks with a history, from the issuer files for the rest."},"note":{"type":["string","null"],"description":"How to read the holders map."},"holders":{"type":["object","null"],"additionalProperties":{"type":"array","items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]}}},"description":"The index itself: for each security, the issuer-layer funds that hold it, as [fund ticker, weight percent], heaviest first. A security is one listed line. A US line is keyed by its ticker, and a dot and one letter mark a US share class (BRK.B). Any other line is keyed by its local code and its market, a dot and a two letter country code (7203.JP, SAN.FR). The Toronto line of a Canadian company that also trades in New York is the same shares, under the US ticker (RY). Preferred shares a file writes under their issuer's common ticker are under that ticker and .PFD, three letters and never a market (JPM.PFD). That key holds every series of JPMorgan's preferred stock a fund holds, and in a preferred stock fund any other income security filed under the ticker, such as a business development company's listed notes. It is a US line of its own, so a preferred stock fund is never listed among the holders of the common stock."},"aliases":{"type":["object","null"],"additionalProperties":{"type":["array","null"],"items":{"type":["null","string"]}},"description":"The keys written before lines listed abroad were keyed with their market, when a local code alone was the key. Each maps to the keys it reads as now, the US line first and then the heaviest: 7203 reads as 7203.JP (Toyota) and 7203.SA (Elm), A005930 as 005930.KR. A key that became several was several companies or lines under one code. The shard of each old key's first character lists them all. This file leaves out a key that reads only as itself with its market after it (NESN as NESN.CH)."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."},"source":{"type":["string","null"],"description":"Where the method behind these figures is written down."}},"additionalProperties":true,"required":["as_of","holdings_as_of","funds","securities","names","note","holders","aliases","license","attribution","source"]},"HoldersShard":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date."},"holdings_as_of":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"The date of each issuer-layer fund's holdings file, keyed by ticker, for every issuer-layer fund."},"funds":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"Ticker to fund name for the issuer-layer funds. The names of SEC-layer funds are in /api/v1/funds.json, under sec_funds."},"facts":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true,"properties":{"n":{"type":["string","null"]},"r1":{"type":["number","null"]},"r3":{"type":["number","null"]},"vol":{"type":["number","null"]},"mdd3":{"type":["number","null"]},"cap_b":{"type":["number","null"]},"pe":{"type":["number","null"]},"yield":{"type":["number","null"]},"page":{"type":"boolean"}}},"description":"For each key of this shard the data can describe: n, the name, and where known r1, r3, vol, mdd3, cap_b, pe and yield, in the units of a stock file. page is true when the stock has a page."},"holders":{"type":["object","null"],"additionalProperties":{"type":"array","items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]}}},"description":"The part of holders.json for the keys of this shard: each key to the issuer-layer funds that hold it, as [fund ticker, weight percent], heaviest first. Each row's date is in holdings_as_of."},"holders_sec_nport":{"type":["object","null"],"additionalProperties":{"type":"array","items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]}}},"description":"Each key of this shard that has no stock file, such as a line listed abroad, to the SEC-layer funds that hold it, as [fund ticker, weight percent], heaviest first. Each row's date is in sec_nport_as_of. A key with a stock file has its SEC-layer holders in that file."},"sec_nport_as_of":{"type":["object","null"],"additionalProperties":{"type":["string","null"]},"description":"Each SEC-layer fund listed in holders_sec_nport, to the quarter end its filing describes."},"aliases":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"The old keys whose first character is this shard's, each with the keys it reads as now: 7203 reads as 7203.JP and 7203.SA. Unlike holders.json, it also lists a key that reads only as itself with its market (NESN as NESN.CH). Absent from a shard with no old key."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["as_of","holdings_as_of","funds","facts","holders","holders_sec_nport","sec_nport_as_of","license","attribution"]},"Securities":{"type":"object","properties":{"as_of":{"type":["string","null"],"description":"The price date."},"count":{"type":["integer","null"],"description":"How many securities are listed, the length of securities."},"note":{"type":["string","null"],"description":"How to read the entries."},"securities":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"funds","type":"integer"},{"title":"weight","type":"number"},{"title":"name","type":"string"},{"title":"page","type":"integer"},{"title":"file","type":"integer"}],"items":{"type":["number","string"]}},"description":"One entry per security held by the issuer-layer funds, the most widely held first. Each is [ticker, how many of those funds hold it, its largest weight in any of them, company name, 1 when it has a page at /stock/{ticker}/, 1 when /api/v1/sec/{ticker}.json is a stock file, not a holders_only answer]."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["as_of","count","note","securities","license","attribution"]},"Identifiers":{"type":"object","properties":{"read_on":{"type":["string","null"],"description":"The day the sources were last read. Each source's own date is in sources."},"count":{"type":["integer","null"],"description":"How many securities are listed, the length of securities."},"note":{"type":["string","null"],"description":"How to read the rows."},"fields":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The names of the columns of each row, in their order: ticker, name, then the fields of the identifiers object a fund or stock file carries."},"counts":{"type":"object","properties":{"securities":{"type":["integer","null"]},"etf":{"type":["integer","null"]},"etn":{"type":["integer","null"]},"stock":{"type":["integer","null"]},"exchange":{"type":["integer","null"]},"composite_figi":{"type":["integer","null"]},"share_class_figi":{"type":["integer","null"]},"cik":{"type":["integer","null"]},"series_id":{"type":["integer","null"]},"class_id":{"type":["integer","null"]}},"additionalProperties":true,"description":"How many rows there are, by asset_type, and how many have each field."},"sources":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":["string","null"]},"url":{"type":["string","null"]},"fields":{"type":["array","null"],"items":{"type":["null","string"]}},"read_on":{"type":["string","null"]},"terms":{"type":["string","null"]}},"additionalProperties":true},"description":"Where each column comes from: name, url, the fields it gives, read_on (for the directory, the date of its file) and, for OpenFIGI, its terms."},"securities":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"name","type":["string","null"]},{"title":"asset_type","type":"string"},{"title":"exchange","type":["string","null"]},{"title":"composite_figi","type":["string","null"]},{"title":"share_class_figi","type":["string","null"]},{"title":"cik","type":["string","null"]},{"title":"series_id","type":["string","null"]},{"title":"class_id","type":["string","null"]}],"items":{"type":["null","string"]}},"description":"One row per fund and stock with a file here, in ticker order, in the columns of fields: [ticker, name, asset_type, exchange, composite_figi, share_class_figi, cik, series_id, class_id]. A fund's file is /api/v1/fund/{ticker}.json, a stock's /api/v1/sec/{ticker}.json."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["read_on","count","note","fields","counts","sources","securities","license","attribution"]},"DiversifyList":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"The list's name."},"list_date":{"type":"string","description":"The day the list was chosen. A change of the list is a new date."},"about":{"type":"string","description":"The list in one sentence."},"left_out_on_purpose":{"type":"array","items":{"type":"string"},"description":"What the list leaves out on purpose, in words."},"weeks_end":{"type":["string","null"],"description":"The last week of the weekly returns in w, the date of the prices."},"rule":{"type":"string","description":"The rule of the ranking, in words, as every answer prints it."},"top":{"type":"integer","description":"How many groups an answer opens on."},"min_weeks":{"type":"integer","description":"The fewest weekly returns a correlation is computed on."},"groups":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["id","label","tickers"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"one":{"type":"string"},"tickers":{"type":"array","items":{"type":"string"}}}},"description":"The groups in the order of the list: id, label, one (an ETF of the group, in a sentence) and tickers."},"unit":{"type":"string","description":"How w is written."},"left_out_tonight":{"type":"array","items":{"type":"string"},"description":"The ETFs of the list with no weekly returns in tonight's files, left out of every ranking until they have them."},"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"t":{"type":"string","description":"Its ticker."},"g":{"type":"string","description":"Its group, by id."},"vol":{"type":["number","null"],"description":"Its annualised weekly volatility over 156 weeks, in percent, as its fund file gives it."},"n":{"type":["string","null"],"description":"Its name."},"page":{"type":["string","null"],"description":"Its page on the site. Null without one."},"size":{"type":"integer","description":"What its file counts for against the limits of an answer: a file under /fund/ its length, its compact file under /diversify/funds/ half of that file's, a file under /etf/ a third."},"lines":{"type":"integer","description":"How many holdings the overlap reads of it; 0 for an ETF that holds no shares."},"l":{"type":"string","description":"Its source layer, as source_layer in its fund file: issuer, sec_nport, sec_nport_bonds, trust_filings and the others."},"h":{"type":["string","null"],"description":"The date of its holdings."},"bd":{"type":"object","additionalProperties":true,"properties":{"sectors_pct":{"type":"object","additionalProperties":{"type":["number","null"]}},"no_sector_pct":{"type":["number","null"]},"sector_coverage_pct":{"type":["number","null"]},"sectors_stated":{"type":["boolean","null"]},"other_funds_pct":{"type":["number","null"]},"mega_cap_tech_pct":{"type":["number","null"]},"countries_pct":{"type":"object","additionalProperties":{"type":["number","null"]}}},"description":"For an ETF that holds shares, its breakdown, the one its fund file gives: sectors_pct, no_sector_pct, sector_coverage_pct, sectors_stated, other_funds_pct, mega_cap_tech_pct and countries_pct."},"comp":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"label":{"type":"string"},"pct":{"type":["number","null"]}}},"description":"For an ETF that holds no shares, what it holds by kind, up to three, each with label and pct of its net assets."},"w":{"type":"array","items":{"type":["integer","null"]},"description":"Its weekly returns as whole numbers of 0.0001 (divide by 10,000: 47 is 0.47%), oldest first, ending at weeks_end; null for a week without a return."}},"required":["t","g","size","lines","l","w"]},"description":"Each ETF of the list with weekly returns tonight, in the order of the list."},"license":{"type":"string","description":"CC BY 4.0."},"reference_weight":{"type":"integer","description":"What /api/v1/diversify/reference.json counts for against the limits of an answer, in the units of size."}},"required":["name","list_date","weeks_end","rule","groups","funds","license"]},"DiversifyWeekly":{"type":"object","additionalProperties":true,"properties":{"t":{"type":"string","description":"Its ticker."},"n":{"type":["string","null"],"description":"Its name."},"page":{"type":["string","null"],"description":"Its page on the site. Null without one."},"size":{"type":"integer","description":"What its file counts for against the limits of an answer: a file under /fund/ its length, its compact file under /diversify/funds/ half of that file's, a file under /etf/ a third."},"lines":{"type":"integer","description":"How many holdings the overlap reads of it; 0 for an ETF that holds no shares."},"l":{"type":"string","description":"Its source layer, as source_layer in its fund file: issuer, sec_nport, sec_nport_bonds, trust_filings and the others."},"h":{"type":["string","null"],"description":"The date of its holdings."},"bd":{"type":"object","additionalProperties":true,"properties":{"sectors_pct":{"type":"object","additionalProperties":{"type":["number","null"]}},"no_sector_pct":{"type":["number","null"]},"sector_coverage_pct":{"type":["number","null"]},"sectors_stated":{"type":["boolean","null"]},"other_funds_pct":{"type":["number","null"]},"mega_cap_tech_pct":{"type":["number","null"]},"countries_pct":{"type":"object","additionalProperties":{"type":["number","null"]}}},"description":"For an ETF that holds shares, its breakdown, the one its fund file gives: sectors_pct, no_sector_pct, sector_coverage_pct, sectors_stated, other_funds_pct, mega_cap_tech_pct and countries_pct."},"comp":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"label":{"type":"string"},"pct":{"type":["number","null"]}}},"description":"For an ETF that holds no shares, what it holds by kind, up to three, each with label and pct of its net assets."},"w":{"type":"array","items":{"type":["integer","null"]},"description":"Its weekly returns as whole numbers of 0.0001 (divide by 10,000: 47 is 0.47%), oldest first, ending at end; null for a week without a return."},"end":{"type":["string","null"],"description":"The last week of w, the date of the prices."},"solo":{"type":"object","additionalProperties":true,"required":["list_date","lowest","rows"],"properties":{"list_date":{"type":"string"},"lowest":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array"}}},"description":"Its own ranking against the list as a one-ETF portfolio, when the list ranks it: list_date, lowest (the 3 of the answer, in order) and rows, every ETF of the list not held as [ticker, weekly correlation, on down weeks, weeks, down weeks], the correlations in hundredths (divide by 100), lowest first before rounding."}},"required":["t","end","size","lines","l","w"]},"Status":{"type":"object","properties":{"schema":{"type":["integer","null"],"description":"The version of this file's shape: 1. Fields are added and never removed or retyped."},"built_at":{"type":["string","null"],"description":"When the build that wrote this file started, in UTC. The nightly build starts at 22:00 UTC each weekday and is due by 02:00 UTC. The site can also be rebuilt during the day, from the data already fetched."},"run":{"type":"object","additionalProperties":true,"properties":{"fund_figures":{"type":"object","additionalProperties":true,"properties":{"run_date":{"type":["string","null"],"description":"The UTC day the capture ran."},"funds":{"type":["integer","null"],"description":"How many funds it captured."},"deadline_hit":{"type":"boolean","description":"True when it ran out of time before every answer was in."},"warnings":{"type":["integer","null"],"description":"How many warnings it raised, 0 on a normal night. What they say is not published."}}},"fetch_holdings":{"type":"object","additionalProperties":true,"properties":{"funds_attempted":{"type":["integer","null"],"description":"How many issuer files the fetch tried to read."},"funds_updated":{"type":["integer","null"],"description":"How many of them were read and accepted, so the fund now carries the file read that night, whether or not its date moved. A Vanguard file is dated at the month end and keeps its date for weeks."},"funds_newer_file":{"type":["integer","null"],"description":"How many of those carry a file dated later than the one held before."},"kept_previous":{"type":"array","description":"The funds still served from an earlier file, because the new one was refused or missing, or because the issuer no longer lists the fund. Each gives ticker, issuer, since (the first night the fetch found the fund served this way) and holdings_as_of (the date of the file served). The two dates differ: a fund kept since last night can be served from a month end file.","items":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string"},"issuer":{"type":["string","null"]},"since":{"type":["string","null"]},"holdings_as_of":{"type":["string","null"]}}}},"failed":{"type":"array","description":"The funds with a file here whose two attempts both failed that night: ticker, issuer and reason_class. reason_class is http_error (the file could not be downloaded), refused (by the site), empty_file (no holdings came back), rejected_by_gate (its weights did not add up to a whole fund, or its date was too old), parse_error (it could not be read) or other. Each is still served from its earlier file, so it is also in kept_previous.","items":{"type":"object","required":["ticker","reason_class"],"properties":{"ticker":{"type":"string"},"issuer":{"type":["string","null"]},"reason_class":{"enum":["http_error","empty_file","rejected_by_gate","parse_error","refused","other"]}}}},"failed_without_file":{"type":"integer","description":"How many other funds failed that night that have no file here, such as fixed income funds, whose issuer files the fetch tries and does not serve: a fixed income fund is read from its SEC filing. They are counted rather than listed, and with funds_updated and failed they add up to funds_attempted."}}}},"description":"What the nightly steps reported, when their reports are in the build. run.fetch_holdings, the holdings fetch, publishes only counts, tickers, issuers, dates and a kind of failure. run.fund_figures, the capture of what the issuers state about their funds, which is kept and not served, publishes four totals and nothing else."},"data":{"type":"object","properties":{"prices":{"type":"object","properties":{"through":{"type":["string","null"]},"securities_priced":{"type":["integer","null"]}},"additionalProperties":true,"description":"through, the last close in the price data, which every return and risk figure uses; securities_priced, how many funds and stocks have a weekly series."},"issuer_files":{"type":"object","properties":{"funds":{"type":["integer","null"]},"newest":{"type":["string","null"]},"oldest":{"type":["string","null"]},"by_date":{"type":["array","null"],"items":{"type":"object","properties":{"date":{"type":["string","null"]},"funds":{"type":["integer","null"]}},"additionalProperties":true}}},"additionalProperties":true,"description":"funds, how many funds are read from their issuers' files; newest and oldest file dates; by_date, how many funds carry each of the eight most recent dates."},"sec_nport":{"type":"object","properties":{"funds":{"type":["integer","null"]},"dataset":{"type":["string","null"]},"report_dates":{"type":"object","properties":{"oldest":{"type":["string","null"]},"newest":{"type":["string","null"]}},"additionalProperties":true}},"additionalProperties":true,"description":"funds, how many other US stock ETFs are served from SEC filings; dataset, the SEC quarterly data set the layer was last read from (a fund with a newer filing on EDGAR is served from that filing); report_dates, the oldest and newest quarter end the filings describe."},"universe":{"type":"object","properties":{"etfs":{"type":["number","null"]},"covered":{"type":["number","null"]},"pct":{"type":["number","null"]},"by_layer":{"type":"object","properties":{"issuer_files":{"type":["number","null"]},"sec_nport":{"type":["number","null"]},"sec_nport_derivatives":{"type":["number","null"]},"sec_nport_bonds":{"type":["number","null"]},"sec_nport_multi_asset":{"type":["number","null"]},"trust_filings":{"type":["number","null"]},"sponsor_files":{"type":["number","null"]}},"additionalProperties":true},"prospectus":{"type":["number","null"]},"with_file":{"type":["number","null"]},"with_objective":{"type":["number","null"]},"not_covered":{"type":"object","properties":{"no_prospectus_found":{"type":["number","null"]},"no_filing_yet":{"type":["number","null"]},"not_in_sec_list":{"type":["number","null"]},"other_fund":{"type":["number","null"]},"stale_filing":{"type":["number","null"]}},"additionalProperties":true},"etns":{"type":["number","null"]},"other_products":{"type":["number","null"]},"outside_universe":{"type":["number","null"]},"file_date":{"type":["string","null"]},"available":{"type":["boolean","null"]},"source":{"type":["string","null"]},"sentence":{"type":["string","null"]},"all_us_etfs":{"type":["boolean","null"]},"headline":{"type":["string","null"]},"claim":{"type":["string","null"]},"assets":{"type":"object","properties":{"net_assets_b":{"type":["number","null"]},"with_holdings_b":{"type":["number","null"]},"pct":{"type":["number","null"]},"funds_sized":{"type":["number","null"]},"funds_unsized":{"type":["number","null"]},"unsized_with_holdings":{"type":["number","null"]},"basis":{"type":["string","null"]},"sentence":{"type":["string","null"]}},"additionalProperties":true}},"additionalProperties":true,"description":"The coverage measured against the US-listed ETFs, the block of index.json coverage.universe."},"archive":{"type":"object","properties":{"funds":{"type":["integer","null"]},"snapshots":{"type":["integer","null"]},"first":{"type":["string","null"]},"last":{"type":["string","null"]},"since":{"type":["string","null"]}},"additionalProperties":true,"description":"What the archive of issuer files holds: funds; snapshots, one per fund and file date; first and last, the oldest and newest file dates; and since, the day the archive began, which is not the oldest file date. What changed in each fund from one file to the next is served under /api/v1/history/, under the history terms."},"ownership":{"type":"object","properties":{"method":{"type":["string","null"]},"stocks":{"type":["integer","null"]},"as_of":{"type":["string","null"]},"held_back":{"type":["boolean","null"]}},"additionalProperties":true,"description":"The ETF ownership ledger: method; stocks, how many stocks have a figure; as_of, the newest holdings date it counted; held_back. held_back is true on a night whose ledger failed its checks, when the figures served are those of the last ledger that passed. Null when the build had no ledger."}},"additionalProperties":true,"description":"The date of each layer of the data: prices, the issuers' files and the SEC filings, and of the ownership ledger computed from them."},"pages":{"type":"object","properties":{"published":{"type":["integer","null"],"description":"How many pages the site publishes."},"redated":{"type":["integer","null"],"description":"How many of them this build dated as modified. Most nights it is a small number: a page is dated only when a reader would notice the change."},"redated_paths":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The first 50 of those pages, sorted."}},"additionalProperties":true,"description":"How many pages the site publishes, and which of them this build dated as modified in the sitemaps."},"versions":{"type":"object","properties":{"api":{"type":["string","null"],"description":"The API version, which is also the path prefix: v1."},"mcp_package":{"type":"object","properties":{"name":{"type":["string","null"]},"version":{"type":["string","null"]},"url":{"type":["string","null"]}},"additionalProperties":true,"description":"The npm package tickerinside-mcp: name, version and its page."},"mcp_remote":{"type":"object","properties":{"url":{"type":["string","null"]},"version":{"type":["string","null"]}},"additionalProperties":true,"description":"The remote MCP server: its URL and the version it announces."}},"additionalProperties":true,"description":"The API version, and the version of the MCP server as an npm package and at its URL."},"live":{"type":["string","null"],"description":"The live checks of the site, made every five minutes: the file documented next."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["schema","built_at","run","data","pages","versions","live","docs","license","attribution"]},"Uptime":{"type":"object","properties":{"schema":{"type":["integer","null"],"description":"The version of this file's shape: 1."},"generated_at":{"type":["string","null"],"description":"When this answer was computed. The file is kept a minute at the edge."},"method":{"type":["string","null"],"description":"How the checks are made, in one paragraph."},"deployed":{"type":"object","properties":{"version_id":{"type":["string","null"]},"tag":{}},"additionalProperties":true,"description":"The version of the site serving now, or null before the first check saw it."},"components":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"page, api, mcp or update."},"name":{"type":["string","null"],"description":"The check in words."},"check":{"type":["string","null"],"description":"The request made."},"state":{"type":["string","null"],"description":"up or down for page, api and mcp; on time or late for the update; no data when no check has run for 15 minutes; unknown when the record could not be read."},"since":{"description":"When the current state began, within the last day, or null when it has held all day."},"last_check":{"type":["string","null"],"description":"When the last check ran, in UTC."},"last_ms":{"type":["number","null"],"description":"How long its answer took, in milliseconds, measured from the Cloudflare location that ran the check."},"uptime_pct":{"type":"object","properties":{"24h":{"type":["number","null"]},"7d":{"type":["number","null"]},"30d":{"type":["number","null"]},"90d":{"type":["number","null"]}},"additionalProperties":true,"description":"The share of checks that passed over the last 24 hours, 7, 30 and 90 days. Slots with no check are left out."},"no_data_pct_90d":{"type":["number","null"],"description":"The share of five-minute slots with no check over the period on record, up to 90 days."},"open_incident":{"description":"The id of the open incident on this check, or null."},"ms_24h":{"type":"object","properties":{"p50":{"type":["number","null"]},"p95":{"type":["number","null"]}},"additionalProperties":true,"description":"The median and 95th percentile answer time over the last 24 hours, in milliseconds."},"server_version":{"type":["string","null"],"description":"For the MCP server, the version its handshake announced."},"last_build":{"type":["string","null"],"description":"For the update, the built_at of the last build seen."},"prices_through":{"type":["string","null"],"description":"For the update, the price date of that build."},"next_expected_by":{"type":["string","null"],"description":"For the update, the deadline of the next nightly build: 02:00 UTC the morning after a weekday."}},"additionalProperties":true},"description":"One entry per check, with the fields of a component."},"today":{"type":"object","properties":{"date":{"type":["string","null"]},"page":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"api":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"mcp":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"update":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]}},"additionalProperties":true}},"additionalProperties":true,"description":"Today's figures so far, per check, in the shape of an entry of days."},"days":{"type":["array","null"],"items":{"type":"object","properties":{"date":{"type":["string","null"]},"page":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"api":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"mcp":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]},"p50_ms":{"type":["number","null"]},"p95_ms":{"type":["number","null"]}},"additionalProperties":true},"update":{"type":"object","properties":{"checks":{"type":["number","null"]},"failed":{"type":["number","null"]},"no_data":{"type":["number","null"]},"up_pct":{"type":["number","null"]}},"additionalProperties":true}},"additionalProperties":true},"description":"Up to 90 days of daily figures, newest first: for each check, checks made, failed, no_data (slots with no check), up_pct and, except for the update, p50_ms and p95_ms. For the update, failed counts the checks that found it late."},"incidents":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"]},"component":{"type":["string","null"]},"kind":{"type":["string","null"]},"started":{"type":["string","null"]},"ended":{"type":["string","null"]},"minutes":{"type":["number","null"]},"cause":{"type":["string","null"]}},"additionalProperties":true},"description":"Open incidents first, then those closed in the last 90 days: id, component, kind (down or late), started, ended, minutes and cause. An incident opens after two failed checks in a row and closes after two good ones."},"status":{"type":["string","null"],"description":"The nightly report, as served at /api/v1/status.json."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the data is published under."}},"additionalProperties":true,"required":["schema","generated_at","method","deployed","components","today","days","incidents","status","docs","license"]},"NotCovered":{"type":"object","additionalProperties":true,"required":["error","ticker","message","docs"],"properties":{"error":{"type":"string","const":"not_covered","description":"Always not_covered, whatever the reason: read reason and the next address."},"reason":{"type":"string","enum":["has_security_file","in_another_layer","is_a_fund","no_written_comparison","not_a_shard","not_held_by_daily_funds","not_held","earlier_key","no_such_endpoint","not_in_directory","no_file","funds_not_covered","not_in_sec_history","etn","other_product","no_filing_yet","not_in_sec_list","other_fund","stale_filing","no_prospectus_found","not_in_archive","holdings_at_date_not_enabled","invalid_date","before_history","before_first_report"],"description":"Every code is explained on /contract/#reasons. not_in_directory: a fund address with no file, for a ticker not in the directory of US-listed funds; a ticker of the directory with no file gets the code universe.json gives it (etn, no_filing_yet and the others), and no_file when the directory was not read. not_held: under /sec/, no covered fund holds the key; earlier_key: an old key, with reads_as. no_such_endpoint: no endpoint at the address. funds_not_covered: several funds of /overlap or /lookthrough, with reasons. in_another_layer: sent only to the TickerInside clients released before /fund/ answered for a fund of the other layers too (see holdings_kind); etf gives the fund's file. has_security_file: a ticker asked for as a fund has a stock file (see security). is_a_fund: a ticker asked for as a stock is a covered fund (see fund, and holders for the funds that hold it). no_written_comparison: no comparison file for this pair in either order (see fund_files and written_comparisons). not_a_shard: an address under /api/v1/holders/ that is not a shard (see holders). Under /api/v1/history/: not_in_archive: the fund has no history file (see history). holdings_at_date_not_enabled: holdings at a date come from the fund's quarterly SEC reports and this fund files none (see changes). before_first_report: the date is before the fund's first quarterly SEC report (see first_report). invalid_date: the date is not a calendar date, or is after today. before_history: the date is before the fund's first file (see first), answered only once holdings at a date are served. Under /api/v1/flows/: reason not_held_by_daily_funds: no fund read daily from its issuer's files held the key or moved it in the last 20 trading days; summary names the night's summary."},"ticker":{"type":["string","null"],"description":"What was asked for, upper case; null when the address names no single ticker, such as a pair under /compare/."},"message":{"type":"string","description":"What happened and where to look next, in words."},"docs":{"type":"string","description":"The reference."},"security":{"type":"string","description":"With has_security_file: the stock file of the ticker, or its holders-only answer."},"reads_as":{"type":"array","items":{"type":"string"},"description":"Under /sec/, for an old key written before lines listed abroad carried their market (7203): the keys it reads as now, from the aliases of holders. Absent otherwise."},"fund":{"type":"string","description":"With is_a_fund: the fund file of the ticker."},"etf":{"type":"string","description":"With in_another_layer: the file of the fund, /api/v1/etf/{ticker}.json."},"holders":{"type":"string","description":"The shard of the key's first character: /api/v1/holders/{c}.json, c a to z, or 0 for any other character (7203.JP is in 0.json). It lists the covered funds that hold the key, from issuer files and from SEC filings, with or without a stock file."},"pair":{"type":["array","null"],"items":{"type":"string"},"description":"With no_written_comparison: the two tickers asked for, upper case, or null when the address names no pair."},"written_comparisons":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"pair":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}}},"description":"With no_written_comparison: the pairs that have a comparison file, as index.json lists them."},"fund_files":{"type":"array","items":{"type":"string"},"description":"With no_written_comparison: the fund files of the tickers asked for that are covered funds, to compute the overlap from."},"covered":{"type":"string","description":"What is covered: /api/v1/securities.json after a /sec/ address with no reason, /api/v1/index.json otherwise."},"not_covered":{"type":"array","items":{"type":"string"},"description":"Under /overlap, /lookthrough and /diversify: the tickers asked for that are not covered."},"reasons":{"type":"object","additionalProperties":{"type":"string"},"description":"Under /overlap, /lookthrough and /diversify: the reason code of each ticker of not_covered."},"covered_issuers":{"type":"array","items":{"type":"string"},"description":"Under /overlap and /lookthrough: the issuers whose own files are read; the other covered funds are read from SEC filings."},"history":{"type":"string","description":"With not_in_archive: the list of the funds that have a history."},"changes":{"type":"string","description":"With holdings_at_date_not_enabled: the fund's changes file, served today."},"first":{"type":["string","null"],"description":"With before_history: the date of the fund's oldest file. before_history is answered only once holdings at a date are served."},"date":{"type":"string","description":"With invalid_date, holdings_at_date_not_enabled, before_history or before_first_report: the date asked for."},"first_report":{"type":"string","description":"With before_first_report: the date of the fund's first quarterly SEC report here."},"quarterly":{"type":"string","description":"The fund's quarterly SEC reports since 2019, /api/v1/quarterly/{ticker}.json."},"summary":{"type":"string","description":"With not_held_by_daily_funds: the night's flows, /api/v1/flows.json."}}},"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."}}},"HistoryIndex":{"type":"object","additionalProperties":true,"properties":{"as_of":{"type":["string","null"],"description":"The newest file date any fund's history reaches. Here as_of is a holdings file date, not the price date."},"since":{"type":["string","null"],"description":"The oldest file date any fund's history starts from. It is not the day the archive began, which is since in status.json, under data.archive."},"count":{"type":["integer"],"description":"How many funds have a history file, the length of funds."},"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"t":{"type":["string"],"description":"The fund's ticker."},"first":{"type":["string"],"description":"The date of the oldest file of the fund in the archive."},"last":{"type":["string"],"description":"The date of the newest."},"file_dates":{"type":["integer"],"description":"How many file dates the archive holds for the fund."},"cadence":{"type":["string","null"],"enum":["daily","monthly","irregular",null],"description":"daily when the median gap between two files is at most four days, monthly when it is 25 to 35 days, irregular otherwise; null with a single file."},"traded_pp_from":{"type":["string","null"],"description":"The date of the first step whose two files both carry share counts, from which traded_pp is measured; null when there is none yet."},"ended":{"type":["string","null"],"description":"Last issuer file's date once no longer read, else null."},"url":{"type":["string"],"description":"The fund's history file."}},"required":["t","first","last","file_dates","cadence","traded_pp_from","ended","url"]},"description":"One entry per fund with a history, ended or not; its fields are described below."},"holdings_at":{"type":["string","null"],"description":"The address of a fund's holdings at a date, with {ticker} and {date} to fill, once it is served; null until then. Today any valid date answers 404 not_covered, with reason holdings_at_date_not_enabled and the address of the fund's changes file."},"note":{"type":["string"],"description":"How to read the files."},"docs":{"type":["string"],"description":"Where the files are documented."},"license":{"type":["string"],"description":"The terms the history is published under: TickerInside's history terms, not CC BY 4.0."},"terms":{"type":["string"],"description":"The terms in full, on the legal notice."},"attribution":{"type":["string"],"description":"How to credit it, a link to the file where the medium allows one and the name where it does not, then what the history terms allow."}},"required":["as_of","since","count","funds","holdings_at","note","docs","license","terms","attribution"]},"FundHistory":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The fund's ticker."},"name":{"type":["string","null"],"description":"The fund's name."},"source_layer":{"type":"string","const":"issuer","description":"Always issuer: the history is read from the issuers' own files. The other funds known from SEC filings have none."},"key_scheme":{"type":["integer"],"description":"The keys the holdings are given in: 2, the scheme of today's files, where a line listed abroad carries its market (7203.JP). Older files are read in these keys."},"first":{"type":["string"],"description":"The date of the oldest file of the fund in the archive."},"last":{"type":["string"],"description":"The date of the newest."},"file_dates":{"type":["integer"],"description":"How many file dates the archive holds for the fund."},"cadence":{"type":["string","null"],"enum":["daily","monthly","irregular",null],"description":"daily, monthly or irregular, from the gaps between the file dates; null with a single file."},"snapshots":{"type":"object","additionalProperties":true,"properties":{"columns":{"type":"array","items":{"type":"string"},"description":"The names of the columns of each row. holdings_as_of: the file date. positions: the lines in the file. top10_weight: the weight of its ten largest lines, in percent; null for the files of a fund of funds before its file kept the funds it holds apart from its own lines. key_scheme: the keys the file was written in, 1 or 2. Scheme 1 is for files read before the switch to keys with a market, late in September 2026. The switch date varies by fund (SPY's first scheme 2 file is dated 2026-09-25), and the first scheme 2 step is restated. unplaced: for a file of scheme 1, the old keys that cannot be read as one line today because they stood for two companies in that file (SAN for Santander and Sanofi); null for a file of scheme 2."},"rows":{"type":"array","items":{"type":"array","items":{"type":["string","number","array","null"]}},"description":"The rows, oldest first."}},"required":["columns","rows"],"description":"One row per file date, oldest first, with the columns named in columns."},"moved_threshold_pp":{"type":["number"],"description":"How far a weight has to move, in percentage points, for its line to be listed under moved: 0.05."},"traded_min_pairs":{"type":["integer"],"description":"How many steps with share counts on both sides a fund needs before traded_pp is published: 20."},"traded_pairs":{"type":["integer"],"description":"How many of the fund's steps have share counts on both sides."},"traded_pp_from":{"type":["string","null"],"description":"The date of the first of those steps; null when there is none."},"traded_pp_reason":{"type":["string","null"],"description":"Why traded_pp is null in every step: fewer_than_20_pairs_with_share_counts. Null once it is published."},"changes":{"type":"array","items":{"$ref":"#/components/schemas/HistoryChange"},"description":"One entry per step from a file to the next, oldest first; its fields are described below."},"overlap_history":{"type":"object","additionalProperties":true,"properties":{"with_top_funds_by_overlap":{"type":["integer"],"description":"How many funds are followed: the funds whose overlap by weight with this one is highest on the latest files, up to ten."},"series":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","prefixItems":[{"title":"date","type":"string"},{"title":"overlap","type":"number"}],"items":{"type":["number","string"]}}},"description":"For each followed fund, most overlapping first, [date, overlap by weight in percent] on every file date of either fund from the first date both have a file. Each fund is taken at its latest file on or before the date. It is the overlap by weight the comparisons print, computed here from the archived files. A file of the old key scheme is read in today's keys, so a point can differ from what a comparison printed on the day. A series can step where either fund's history is restated."}},"required":["with_top_funds_by_overlap","series"],"description":"How the fund's overlap by weight with its ten closest funds moved; its fields are described below."},"holdings_at":{"type":["string","null"],"description":"The address of the fund's holdings at any date, with {date} to fill, once it is served; null until then."},"fund":{"type":["string","null"],"description":"The fund's current file, with its holdings today, cost, returns and risk."},"ended":{"type":["object","null"],"additionalProperties":true,"required":["last_file","source_layer","note"],"properties":{"last_file":{"type":["string"]},"source_layer":{"type":["string","null"]},"note":{"type":["string"]}},"description":"Null while read; once not, last_file, source_layer and note."},"cite_as":{"type":["string"],"description":"A citation line: the fund, the dates of its oldest and newest files, and this file's address."},"cite_html":{"type":["string"],"description":"The credit as HTML: a link to this file, then its address."},"docs":{"type":["string"],"description":"Where the file is documented."},"license":{"type":["string"],"description":"The terms the history is published under: TickerInside's history terms, not CC BY 4.0."},"terms":{"type":["string"],"description":"The terms in full, on the legal notice."},"attribution":{"type":["string"],"description":"How to credit it, a link to the file where the medium allows one and the name where it does not, then what the history terms allow."}},"required":["ticker","name","source_layer","key_scheme","first","last","file_dates","cadence","snapshots","moved_threshold_pp","traded_min_pairs","traded_pairs","traded_pp_from","traded_pp_reason","changes","overlap_history","holdings_at","fund","ended","cite_as","cite_html","docs","license","terms","attribution"]},"HistoryChange":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The date of the file the step leads to."},"previous":{"type":["string"],"description":"The date of the file it is compared with: the fund's file before it in the archive, days or a month earlier."},"entered":{"type":"array","items":{"type":"array","prefixItems":[{"title":"key","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]}},"description":"The lines in this file that were not in the previous one, as [key, weight percent], heaviest first. Absent from a restated step, which does not say what entered or exited that day; the snapshots give only its count of positions. Read it with a default, such as step.get(\"entered\", []). A key of digits and a letter is a code the issuer's file gives in place of a ticker. When a ticker exits and such a code enters at about the same weight, and the reverse follows, it is the same security re-keyed, not a trade."},"exited":{"type":"array","items":{"type":"array","prefixItems":[{"title":"key","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]}},"description":"The lines in the previous file that are not in this one, as [key, weight percent in the previous file], heaviest first. Absent from a restated step."},"moved":{"type":"array","items":{"type":"array","prefixItems":[{"title":"key","type":"string"},{"title":"before","type":"number"},{"title":"after","type":"number"}],"items":{"type":["number","string"]}},"description":"The lines in both files whose weight moved by moved_threshold_pp or more, as [key, weight before, weight after], largest move first. Absent from a restated step."},"moved_below_threshold":{"type":["integer"],"description":"How many other lines in both files moved by less. Absent from a restated step."},"names_turnover_pp":{"type":["number","null"],"description":"Half the weight that entered plus the weight that exited, in percentage points: what the change of names carried. Null on a restated step."},"weights_moved_pp":{"type":["number","null"],"description":"Half the sum of the absolute changes of weight over every line of either file, in percentage points. It includes price drift, which moves every weight a little each day, so it is not turnover. Null on a restated step."},"traded_pp":{"type":["number","null"],"description":"What the share counts say was traded, in percentage points of assets, when both files carry them and the fund has traded_min_pairs such steps; null otherwise. A line held in both counts its weight times the change of its quantity beyond the fund's own growth, a line that entered or exited its weight, and the sum is halved."},"splits_seen":{"type":"array","items":{"type":"string"},"description":"The lines whose quantity moved by a split ratio while their weight did not, left out of traded_pp. Present when there is one."},"reverted":{"type":"array","items":{"type":"string"},"description":"The entered lines the fund held two files earlier, most often a line the issuer's file left out for a day. That exit and this entry are a glitch in the file, not trades, and so is a key of digits and a letter that stood in for the line in the file between. Present when there is one."},"restated":{"type":["boolean"],"description":"true on a step that is a change of the keys or of the reading of the files, not a trade; absent otherwise. A restated step has no entered, exited, moved or moved_below_threshold, so read them with a default. It is set on the step to a file of the current key scheme, where the parser also reads lines the old one dropped. It is set on the first file of a fund of funds that lists the funds it holds apart from their look-through, and on two files whose weights add up to totals 50 points or more apart. It is also set on the first file that keys apart the preferred shares a file writes under their issuer's common ticker (JPM.PFD rather than JPM), and on a date listed after a fix of the reading."},"reason":{"type":["string"],"description":"Why the step is restated. key_scheme_2: the first file in keys with a market. own_lines_separated: a fund of funds whose earlier files listed the funds it holds beside their look-through, about 200% in all. weight_total_changed: the two totals are 50 points or more apart. weights_from_market_values: weights from market values, or the reverse. preferred_keyed_apart: the preferred shares the file writes under their issuer's common ticker are keyed as that ticker and .PFD, at the weight the common ticker carried. Otherwise, the reason given with a listed date."},"rekeyed":{"type":"array","items":{"type":"array","prefixItems":[{"title":"old_key","type":"string"},{"title":"keys","type":"array","items":{"type":"string"}}],"items":{"type":["array","string"]}},"description":"On a restated step, the old keys that read as other keys today, as [old key, [new keys]]. It covers a spelling brought together (A005930 is 005930.KR), a Toronto code under its New York ticker, and a key that stood for several lines, with the lines the new file holds. It also covers a common ticker whose preferred shares took a key of their own (JPM as [JPM.PFD], or [WFC, WFC.PFD] where the fund holds both)."},"market_added":{"type":["integer"],"description":"On a restated step, how many old keys only took their market (7203 became 7203.JP). Each is in the aliases of the holders shard of its first character."},"coverage_added_pp":{"type":["number","null"],"description":"On a restated step, the weight the new file covers beyond the previous one, in percentage points: lines the old reading dropped, or, below zero, weight the old reading counted twice."}},"required":["date","previous","names_turnover_pp","weights_moved_pp","traded_pp"]},"OverlapPair":{"type":"object","additionalProperties":true,"properties":{"kind":{"type":"string","const":"pair","description":"pair for two funds, matrix for three or more: which of the two shapes the answer has."},"page_url":{"type":["string","null"],"description":"The web page whose HTML, as the server sends it, prints the answer's figure, so that it reads without JavaScript: for a pair, its written comparison when there is one, else its \"Does it diversify me?\" answer within that answer's limits; for three funds or more, the x-ray the site wrote of the same funds; for a look-through, the x-ray the site wrote of the portfolio at the same weights (listed under pages in /og/answers.json), or for one fund, its page. Null where no page prints the figure yet: any other overlap of three funds or more or look-through of two funds or more, a pair past those limits, a pair of bond funds."},"share_url":{"type":"string","description":"The address whose HTML reproduces the whole answer on the site: for a pair, its \"Does it diversify me?\" answer within that answer's limits; for three funds or more and for a portfolio, the x-ray the site wrote of the same funds (listed under pages in /og/answers.json), each weight in percent to 0.01 point and never an amount, in the order of the funds the site wrote it in. Absent where no page prints the answer."},"pair":{"type":"array","items":{"type":"string"},"description":"The two funds, upper case, in the order asked."},"prices_as_of":{"type":["string","null"],"description":"The price date of the figures read from weekly returns. Null when no fund has prices."},"holdings_as_of":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's holdings date, by ticker: the date of its issuer file, or the quarter end its SEC filing describes."},"holdings_source":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's source, by ticker: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet."},"overlap":{"type":"object","additionalProperties":true,"required":["by_weight","share_of_a","share_of_b","companies_in_both","largest_shared"],"properties":{"by_weight":{"type":["number","null"]},"share_of_a":{"type":["number","null"]},"share_of_b":{"type":["number","null"]},"companies_in_both":{"type":["integer","null"]},"positions_a":{"type":["integer","null"]},"positions_b":{"type":["integer","null"]},"largest_shared":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"in_a":{"type":["number","null"]},"in_b":{"type":["number","null"]},"counted":{"type":["number","null"]}}}},"same_ticker_two_companies":{"type":"array","items":{"type":"string"}},"same_ticker_note":{"type":"string"}},"description":"For two funds holding shares, in percent: by_weight, the sum over the companies both hold of the smaller of their two weights; share_of_a and share_of_b, the part of each fund in companies the other holds too; companies_in_both, the holdings both have, counted by ticker (GOOGL and GOOG count as two), positions_a and positions_b; and largest_shared, the 15 largest shared holdings with each weight and the smaller one counted. A ticker the two hold for two different companies is left out of every figure and listed in same_ticker_two_companies, with same_ticker_note."},"overlap_kind":{"type":"string","enum":["issuer"],"description":"issuer when the figures are an overlap by issuer, of fixed income funds. Absent otherwise."},"issuer_overlap":{"type":"object","additionalProperties":true,"required":["by_weight","issuers_in_both"],"properties":{"by_weight":{"type":["number","null"]},"share_of_a":{"type":["number","null"]},"share_of_b":{"type":["number","null"]},"issuers_in_both":{"type":["integer","null"]},"issuers_compared":{"type":"object","additionalProperties":true},"weight_compared_pct":{"type":"object","additionalProperties":true},"top_shared_issuers":{"type":"array","items":{"type":"object"}},"largest_only_in_a":{"type":"array","items":{"type":"object"}},"largest_only_in_b":{"type":"array","items":{"type":"object"}}},"description":"For two fixed income funds: the overlap by issuer, the smaller weight of each issuer both hold summed (by_weight), the share of each, issuers_in_both, the issuers compared and the largest shared and unshared ones. Never mixed with the overlap by shares."},"correlation_3y":{"type":["number","null"],"description":"The correlation of the two funds' weekly returns over up to three years, on the weeks both have. Null under 52 such weeks."},"covariance_annualised_pct2":{"type":["number","null"],"description":"The annualised covariance of the same returns, in percent squared. Null with correlation_3y."},"weeks_used":{"type":["integer","null"],"description":"How many weeks the two figures above read. Null when they are."},"funds":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true,"properties":{"name":{"type":["string","null"]},"expense_ratio_pct":{"type":["number","null"]},"return_3y_pct":{"type":["number","null"]},"volatility_pct":{"type":["number","null"]},"worst_fall_3y_pct":{"type":["number","null"]},"beta_vs_sp500":{"type":["number","null"]},"beta_vs_sp500_1y":{"type":["number","null"]},"positions":{"type":["integer","null"]}}},"description":"Each fund by ticker: name, expense_ratio_pct, return_3y_pct, volatility_pct, worst_fall_3y_pct, beta_vs_sp500 (three years, from its file), beta_vs_sp500_1y (the last 52 weeks against SPY's) and positions; a fixed income fund's average coupon, maturity and duration. Null where the data has no figure."},"how_to_quote":{"type":"string","description":"How to quote the figures: which measure, with the holdings dates."},"covered":{"type":"boolean","description":"true when the funds are covered but the answer has no figures (see comparable or computed)."},"comparable":{"type":"boolean","description":"false when a fund of the two holds no shares that can be overlapped (see not_comparable). Absent when the figures are given."},"not_comparable":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","why"],"properties":{"ticker":{"type":"string"},"why":{"type":"string"},"fund_file":{"type":"string"}}},"description":"The funds set aside, each with why and the address of its file (fund_file): a leveraged, inverse or other derivative-based fund, a trust or pool, a multi-asset, sponsor-file or prospectus-only fund, or a bond fund beside a stock fund."},"renamed":{"type":"object","additionalProperties":{"type":"string"},"description":"Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none."},"source":{"type":"object","additionalProperties":true,"required":["provider","links","license","cite_as"],"properties":{"provider":{"type":"string"},"license":{"type":"string"},"cite_as":{"type":"string"},"benchmark_url":{"type":"string"},"links":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","page_url","api_url","holdings_source"],"properties":{"ticker":{"type":"string"},"page_url":{"type":["string","null"]},"api_url":{"type":"string"},"holdings_source":{"type":"string"},"filing_url":{"type":"string"},"sponsor_page":{"type":"string"}}}}},"description":"The files the answer is computed from: each fund's page_url, null without a page, api_url, holdings_source and, for a fund from a filing, filing_url; benchmark_url, SPY's file, when a one-year beta is computed; license; and cite_as, the line to print under a figure."},"note":{"type":"string","description":"Measurement, not investment advice."},"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":["kind","pair","holdings_as_of","holdings_source","source","note","license","attribution","docs"]},"OverlapMatrix":{"type":"object","additionalProperties":true,"properties":{"kind":{"type":"string","const":"matrix","description":"pair for two funds, matrix for three or more: which of the two shapes the answer has."},"page_url":{"type":["string","null"],"description":"The web page whose HTML, as the server sends it, prints the answer's figure, so that it reads without JavaScript: for a pair, its written comparison when there is one, else its \"Does it diversify me?\" answer within that answer's limits; for three funds or more, the x-ray the site wrote of the same funds; for a look-through, the x-ray the site wrote of the portfolio at the same weights (listed under pages in /og/answers.json), or for one fund, its page. Null where no page prints the figure yet: any other overlap of three funds or more or look-through of two funds or more, a pair past those limits, a pair of bond funds."},"share_url":{"type":"string","description":"The address whose HTML reproduces the whole answer on the site: for a pair, its \"Does it diversify me?\" answer within that answer's limits; for three funds or more and for a portfolio, the x-ray the site wrote of the same funds (listed under pages in /og/answers.json), each weight in percent to 0.01 point and never an amount, in the order of the funds the site wrote it in. Absent where no page prints the answer."},"covered":{"type":"boolean","description":"true when the funds are covered but the answer has no figures (see comparable or computed)."},"computed":{"type":"boolean","description":"false when fewer than two of the funds hold shares that can be overlapped (see reason)."},"reason":{"type":"string","description":"Why nothing is computed, when computed is false."},"overlap_kind":{"type":"string","enum":["issuer"],"description":"issuer when the figures are an overlap by issuer, of fixed income funds. Absent otherwise."},"prices_as_of":{"type":["string","null"],"description":"The price date of the figures read from weekly returns. Null when no fund has prices."},"holdings_as_of":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's holdings date, by ticker: the date of its issuer file, or the quarter end its SEC filing describes."},"holdings_source":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's source, by ticker: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet."},"skipped":{"type":"object","additionalProperties":true,"required":["not_covered"],"properties":{"covered":{"type":"boolean"},"not_covered":{"type":"array","items":{"type":"string"}},"covered_issuers":{"type":"array","items":{"type":"string"}},"also_covered":{"type":"string"},"hint":{"type":"string"}},"description":"The tickers not covered, under not_covered, with what is covered (covered_issuers, also_covered and hint). Absent when every ticker is covered."},"not_comparable":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","why"],"properties":{"ticker":{"type":"string"},"why":{"type":"string"},"fund_file":{"type":"string"}}},"description":"The funds set aside, each with why and the address of its file (fund_file): a leveraged, inverse or other derivative-based fund, a trust or pool, a multi-asset, sponsor-file or prospectus-only fund, or a bond fund beside a stock fund."},"pairs":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["pair","by_weight"],"properties":{"pair":{"type":"array","items":{"type":"string"}},"by_weight":{"type":["number","null"]},"share_of_first":{"type":["number","null"]},"share_of_second":{"type":["number","null"]},"companies_in_both":{"type":["integer","null"]},"issuers_in_both":{"type":["integer","null"]},"same_ticker_two_companies":{"type":"array","items":{"type":"string"}}}},"description":"Every pair of the funds holding shares, the largest overlap by weight first: pair, by_weight, share_of_first, share_of_second and companies_in_both, as overlap gives them for two funds, and same_ticker_two_companies when a ticker stands for two companies."},"same_ticker_note":{"type":"string","description":"What same_ticker_two_companies means, when a pair has it."},"issuer_overlap_pairs":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["pair","by_weight"],"properties":{"pair":{"type":"array","items":{"type":"string"}},"by_weight":{"type":["number","null"]},"share_of_first":{"type":["number","null"]},"share_of_second":{"type":["number","null"]},"companies_in_both":{"type":["integer","null"]},"issuers_in_both":{"type":["integer","null"]},"same_ticker_two_companies":{"type":"array","items":{"type":"string"}}}},"description":"Every pair of the fixed income funds by issuer overlap, largest first: pair, by_weight, share_of_first, share_of_second, issuers_in_both. Never mixed with pairs."},"issuer_overlap_note":{"type":"string","description":"How to read issuer_overlap_pairs, when there are some."},"how_to_quote":{"type":"string","description":"How to quote the figures: which measure, with the holdings dates."},"renamed":{"type":"object","additionalProperties":{"type":"string"},"description":"Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none."},"source":{"type":"object","additionalProperties":true,"required":["provider","links","license","cite_as"],"properties":{"provider":{"type":"string"},"license":{"type":"string"},"cite_as":{"type":"string"},"benchmark_url":{"type":"string"},"links":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","page_url","api_url","holdings_source"],"properties":{"ticker":{"type":"string"},"page_url":{"type":["string","null"]},"api_url":{"type":"string"},"holdings_source":{"type":"string"},"filing_url":{"type":"string"},"sponsor_page":{"type":"string"}}}}},"description":"The files the answer is computed from: each fund's page_url, null without a page, api_url, holdings_source and, for a fund from a filing, filing_url; benchmark_url, SPY's file, when a one-year beta is computed; license; and cite_as, the line to print under a figure."},"note":{"type":"string","description":"Measurement, not investment advice."},"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":["kind","note","license","attribution","docs"]},"Lookthrough":{"type":"object","additionalProperties":true,"properties":{"page_url":{"type":["string","null"],"description":"The web page whose HTML, as the server sends it, prints the answer's figure, so that it reads without JavaScript: for a pair, its written comparison when there is one, else its \"Does it diversify me?\" answer within that answer's limits; for three funds or more, the x-ray the site wrote of the same funds; for a look-through, the x-ray the site wrote of the portfolio at the same weights (listed under pages in /og/answers.json), or for one fund, its page. Null where no page prints the figure yet: any other overlap of three funds or more or look-through of two funds or more, a pair past those limits, a pair of bond funds."},"share_url":{"type":"string","description":"The address whose HTML reproduces the whole answer on the site: for a pair, its \"Does it diversify me?\" answer within that answer's limits; for three funds or more and for a portfolio, the x-ray the site wrote of the same funds (listed under pages in /og/answers.json), each weight in percent to 0.01 point and never an amount, in the order of the funds the site wrote it in. Absent where no page prints the answer."},"priced":{"type":"boolean","description":"true when the portfolio gives each fund a weight or an amount; false when every fund counts equally."},"portfolio_value":{"type":["number","null"],"description":"The sum of the weights or amounts of the funds looked through: the funds under not_looked_through and skipped are left out of it, as they are left out of the percentages. Null when none is given."},"currency":{"type":["string","null"],"description":"The currency given, upper case, echoed and never converted; unstated when amounts are given without one. Null when none is given."},"prices_as_of":{"type":["string","null"],"description":"The price date of the figures read from weekly returns. Null when no fund has prices."},"funds":{"type":["integer","null"],"description":"How many funds are looked through."},"distinct_companies":{"type":["integer","null"],"description":"How many distinct holdings they hold between them, counted by ticker: two share classes of one company (GOOGL and GOOG) count as two."},"top_10_weight_pct":{"type":["number","null"],"description":"The weight of the ten largest companies, in percent of what is looked through, summed unrounded and rounded once."},"looked_through_pct":{"type":["number","null"],"description":"The part of the portfolio its covered funds make up that the funds looked through are, in percent, by amount or in equal parts: weight_pct and top_10_weight_pct are of that part, and not_looked_through names the rest."},"holdings_as_of":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's holdings date, by ticker: the date of its issuer file, or the quarter end its SEC filing describes."},"holdings_source":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Each fund's source, by ticker: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet."},"companies":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string","description":"The company's key, as the funds' holdings write it."},"weight_pct":{"type":["number","null"],"description":"Its weight, in percent of what is looked through."},"weight_pct_2dp":{"type":["number","null"],"description":"Its weight to two decimals, rounded once from the unrounded sum, as the x-ray page prints it."},"through":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":"string"},"weight_pct":{"type":["number","null"]}}},"description":"Each fund it comes through, the largest first, with its part in percent of what is looked through."},"value":{"type":["number","null"],"description":"Its value, in the unit of the weights or amounts given. Null when none is given."},"listed_abroad":{"type":"boolean","description":"true for a foreign company's line whose local code is a US ticker too. Absent otherwise."}},"required":["ticker","weight_pct","through"]},"description":"The companies underneath, largest first, top of them (25 when top is left out)."},"same_ticker_two_companies":{"type":"object","additionalProperties":true,"description":"The tickers listed twice: once for the US company of that ticker, once, marked listed_abroad, for the foreign company whose local code it is in another fund, with a note. Absent when there is none."},"skipped":{"type":"object","additionalProperties":true,"required":["not_covered"],"properties":{"covered":{"type":"boolean"},"not_covered":{"type":"array","items":{"type":"string"}},"covered_issuers":{"type":"array","items":{"type":"string"}},"also_covered":{"type":"string"},"hint":{"type":"string"}},"description":"The tickers not covered, under not_covered, with what is covered (covered_issuers, also_covered and hint). Absent when every ticker is covered."},"not_looked_through":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","why"],"properties":{"ticker":{"type":"string"},"why":{"type":"string"},"fund_file":{"type":"string"}}},"description":"The funds left out of the percentages and the value, each with why and fund_file."},"covered":{"type":"boolean","description":"true when the funds are covered but the answer has no figures (see comparable or computed)."},"computed":{"type":"boolean","description":"false when none of the funds holds shares that can be looked through (see reason)."},"reason":{"type":"string","description":"Why nothing is computed, when computed is false."},"renamed":{"type":"object","additionalProperties":{"type":"string"},"description":"Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none."},"source":{"type":"object","additionalProperties":true,"required":["provider","links","license","cite_as"],"properties":{"provider":{"type":"string"},"license":{"type":"string"},"cite_as":{"type":"string"},"benchmark_url":{"type":"string"},"links":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","page_url","api_url","holdings_source"],"properties":{"ticker":{"type":"string"},"page_url":{"type":["string","null"]},"api_url":{"type":"string"},"holdings_source":{"type":"string"},"filing_url":{"type":"string"},"sponsor_page":{"type":"string"}}}}},"description":"The files the answer is computed from: each fund's page_url, null without a page, api_url, holdings_source and, for a fund from a filing, filing_url; benchmark_url, SPY's file, when a one-year beta is computed; license; and cite_as, the line to print under a figure."},"note":{"type":"string","description":"Measurement, not investment advice."},"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":["note","license","attribution","docs"]},"Batch":{"type":"object","additionalProperties":true,"properties":{"asked":{"type":"array","items":{"type":"string"},"description":"The tickers asked for, upper case, each once, in the order asked."},"found":{"type":"integer","description":"How many of them are in funds."},"not_covered":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["error","ticker","message"],"properties":{"error":{"type":"string","const":"not_covered"},"ticker":{"type":"string"},"reason":{"type":"string","enum":["has_security_file","no_file"]},"message":{"type":"string"},"security":{"type":"string"},"fund":{"type":"string"},"covered":{"type":"string"}}},"description":"The tickers with no fund file, each with error not_covered, ticker and message: reason has_security_file and security for one with a stock file, else reason no_file and fund, its own address, which gives the specific reason, and covered."},"not_included":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["ticker","fund","reason"],"properties":{"ticker":{"type":"string"},"fund":{"type":"string"},"reason":{"type":"string","enum":["over_budget"]}}},"description":"Funds of the other layers past what one call composes, each with ticker, fund, its own address, and reason over_budget. Absent when there is none."},"not_included_note":{"type":"string","description":"Why not_included is there."},"renamed":{"type":"object","additionalProperties":{"type":"string"},"description":"Each ticker of a fund renamed, with the ticker of the file served under it. Absent when there is none."},"funds":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Fund"},"description":"Each fund found, by ticker as asked: what /api/v1/fund/{ticker}.json answers, a fund file of the stock layers byte for byte, or the answer composed for a fund of another layer."},"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 each fund file's cite_as names where the medium allows one, the name where it does not."},"docs":{"type":"string","description":"The reference of this endpoint."}},"required":["asked","found","not_covered","funds","license","attribution","docs"]},"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"]},"Diversify":{"type":"object","additionalProperties":true,"properties":{"kind":{"type":"string","const":"diversify","description":"Always diversify."},"mode":{"type":"string","const":"compare","description":"compare, the check of the funds of try against the funds of have. With have alone the answer is Find, mode find, another shape (DiversifyFind)."},"question":{"type":"string","description":"The question answered, in words: the funds to try and the portfolio of the funds held, with their weights."},"answer":{"type":"string","description":"The answer in one sentence, to quote as it is: of the funds to try, the one with the lowest overlap and the one with the lowest weekly correlation, with the figures and their period, or for one fund to try its two figures; the line /diversify/ prints under the question."},"answers":{"type":"array","items":{"type":"string"},"description":"One sentence per fund to try, in the order of candidates, to quote as it is: its overlap with the portfolio, the correlation of weekly returns with the portfolio's over the weeks both have and on the weeks the portfolio fell, and the holdings dates, or why a figure is not measured."},"have":{"type":"object","additionalProperties":true,"required":["funds","weights","sentence"],"properties":{"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"weight_pct":{"type":["number","null"]},"name":{"type":["string","null"]},"holdings_as_of":{"type":["string","null"]},"holdings_source":{"type":"string"},"holds_shares":{"type":"boolean"},"weekly_returns":{"type":["integer","null"]}}}},"weights":{"type":"string","enum":["given","equal"]},"looked_through_pct":{"type":["number","null"]},"holds_no_shares":{"type":"array","items":{"type":"string"}},"returns_from":{"type":"array","items":{"type":"string"}},"no_price_history":{"type":"array","items":{"type":"string"}},"no_breakdown":{"type":"array","items":{"type":"string"}},"mega_cap_tech_pct":{"type":["number","null"]},"sectors":{"type":["object","null"],"additionalProperties":true,"properties":{"known_pct":{"type":["number","null"]},"coverage_pct":{"type":["number","null"]},"stated":{"type":"boolean"},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"sector":{"type":"string"},"pct":{"type":["number","null"]}}}}}},"countries":{"type":["object","null"],"additionalProperties":true,"properties":{"us_pct":{"type":["number","null"]},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"country":{"type":"string"},"pct":{"type":["number","null"]}}}},"other_pct":{"type":["number","null"]}}},"sentence":{"type":"string"}},"description":"The portfolio of the funds held: each fund (funds) with its weight_pct, name, holdings_as_of, holdings_source, holds_shares and weekly_returns, the number of weekly returns its file has; weights, given or equal; looked_through_pct, the part of the portfolio in funds that hold shares; holds_no_shares; returns_from, the funds its weekly returns are computed from, and no_price_history; no_breakdown, the funds holding shares whose file gives no breakdown; mega_cap_tech_pct, sectors and countries as each candidate has them, its funds' at their weights, in percent of the whole portfolio; and its sentence."},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string","description":"The fund to try."},"name":{"type":["string","null"],"description":"Its name."},"holdings_as_of":{"type":["string","null"],"description":"The date of its holdings: its issuer file, or the quarter end its filing describes."},"holdings_source":{"type":"string","description":"Its source: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet."},"fund_file":{"type":"string","description":"The address of its fund file."},"page_url":{"type":["string","null"],"description":"Its page. Null without one."},"overlap":{"type":["object","null"],"additionalProperties":true,"properties":{"by_weight_pct":{"type":["number","null"]},"share_of_candidate_pct":{"type":["number","null"]},"companies_in_both":{"type":["integer","null"]},"largest_shared":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"in_candidate_pct":{"type":["number","null"]},"in_have_pct":{"type":["number","null"]},"counted_pct":{"type":["number","null"]}}}}},"description":"In percent: by_weight_pct, the sum over the companies it and the portfolio both hold of the smaller of its weight and the portfolio's, the portfolio looked through its funds at their weights; share_of_candidate_pct, the part of the fund in those companies; companies_in_both, the holdings both have, counted by ticker; and largest_shared, up to five, each with in_candidate_pct, in_have_pct and counted_pct. Null for a fund that holds no shares, or when no fund held does (see not_measured)."},"correlation":{"type":["object","null"],"additionalProperties":true,"properties":{"weekly":{"type":["number","null"]},"weeks":{"type":["integer","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"down_weeks":{"type":["number","null"]},"down_weeks_count":{"type":["integer","null"]},"with":{"type":"array","items":{"type":"string"}}},"description":"Of weekly returns, the fund's against the portfolio's: weekly, over weeks weeks from from to to, each the last close of its week (weeks run Saturday to Friday: a week closes on its Friday, or on the Thursday when the exchange is shut that Friday, and the last week on the data's last close); down_weeks, the same on the down_weeks_count weeks the portfolio fell, null under 20 of them; and with, the funds held whose returns the portfolio's are computed from. Null without 52 weeks in common (see not_measured)."},"volatility_pct":{"type":["number","null"],"description":"Its annualised weekly volatility over the weeks of its correlation, in percent; absent when the correlation is not measured."},"with_10_pct":{"type":"object","additionalProperties":true,"properties":{"volatility_pct":{"type":["number","null"]},"instead_of_pct":{"type":["number","null"]},"weeks":{"type":["integer","null"]},"to":{"type":["string","null"]}},"description":"The portfolio's annualised weekly volatility with 10% in this ETF and 90% in the ETFs held at their weights, rebalanced weekly (volatility_pct), against the portfolio alone (instead_of_pct), over the weeks of its correlation; absent when the correlation is not measured."},"mega_cap_tech_pct":{"type":["number","null"],"description":"The part of the fund in the companies definitions.mega_cap_tech lists, in percent to one decimal, from its fund file's breakdown. Null for a fund that holds no shares or has no breakdown."},"sectors":{"type":["object","null"],"additionalProperties":true,"properties":{"known_pct":{"type":["number","null"]},"coverage_pct":{"type":["number","null"]},"stated":{"type":"boolean"},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"sector":{"type":"string"},"pct":{"type":["number","null"]}}}}},"description":"From its fund file's breakdown: known_pct, the part of the fund whose sector is found; coverage_pct, that part of its stock weight; stated, whether coverage_pct reaches definitions.sectors_stated_from_pct; and weights, when stated, each sector with its id (sector), name and pct of the fund, largest first. Null as mega_cap_tech_pct is."},"countries":{"type":["object","null"],"additionalProperties":true,"properties":{"us_pct":{"type":["number","null"]},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"country":{"type":"string"},"pct":{"type":["number","null"]}}}},"other_pct":{"type":["number","null"]}},"description":"From its fund file's breakdown, in percent of the fund: us_pct, the United States; weights, up to six countries, largest first, each with its ISO code (country), name and pct; and other_pct, the rest. Null as mega_cap_tech_pct is."},"not_measured":{"type":"object","additionalProperties":{"type":"string"},"description":"Why a figure is null, by figure: overlap, correlation, down_weeks or profile. Absent when every figure is given."},"rank":{"type":"integer","description":"Its place in the order of ranking, from 1."},"sentence":{"type":"string","description":"Its sentence, as answers gives it."}},"required":["ticker","holdings_source","fund_file","overlap","correlation","rank","sentence"]},"description":"Each fund to try, ranked (see ranking)."},"ranking":{"type":"string","description":"The rule of the order of candidates, in words."},"prices_as_of":{"type":["string","null"],"description":"The last week of the weekly returns, the date of the prices."},"definitions":{"type":"object","additionalProperties":true,"description":"How each figure is computed, in the words /diversify/ prints: overlap, share_of_candidate (the part of the candidate in companies the portfolio holds), correlation, down_weeks, sectors and countries; the companies counted as mega-cap tech (mega_cap_tech: rule and companies, each with its name and tickers), the fixed list every fund file's breakdown counts; and sectors_stated_from_pct."},"skipped":{"type":"object","additionalProperties":true,"properties":{"not_covered":{"type":"array","items":{"type":"string"}}},"description":"The tickers not covered, under not_covered, left out of the answer. Absent when every ticker is covered."},"renamed":{"type":"object","additionalProperties":{"type":"string"},"description":"Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none."},"share_url":{"type":"string","description":"The page of this answer, /diversify/ with the same query, which renders it for a person or an assistant that fetches it."},"api_url":{"type":"string","description":"This answer's own address."},"source":{"type":"object","additionalProperties":true,"required":["provider","links","license","cite_as"],"properties":{"provider":{"type":"string"},"license":{"type":"string"},"cite_as":{"type":"string"},"reference_url":{"type":"string"},"links":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"page_url":{"type":["string","null"]},"api_url":{"type":"string"},"holdings_source":{"type":"string"}}}}},"description":"The files the answer is computed from: each fund's page_url, null without a page, api_url and holdings_source; reference_url, the file of mega-cap tech and the names of the sectors and countries; license; and cite_as."},"note":{"type":"string","description":"Measurement, not investment advice."},"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":["kind","question","answer","answers","have","candidates","ranking","definitions","share_url","source","note","license","attribution","docs"]},"DiversifyFind":{"type":"object","additionalProperties":true,"properties":{"kind":{"type":"string","const":"diversify","description":"Always diversify."},"mode":{"type":"string","const":"find","description":"Always find: have alone, no try."},"question":{"type":"string","description":"The question answered, in words: which ETF in each group of the list had the lowest weekly correlation with the portfolio of the funds held, with their weights; when a fund held has no price history here, with the funds of returns_from, at their weights among them, which every figure of weekly returns names."},"answer":{"type":"string","description":"The answer in one sentence, to quote as it is: the ETF of lowest weekly correlation in each of the 3 groups where it is lowest, each with its group and figure, and the weeks with their last date; the line /diversify/ prints under the question."},"answers":{"type":"array","items":{"type":"string"},"description":"One sentence per ETF of lowest, to quote as it is: its weekly correlation with the portfolio over the weeks and on the weeks the portfolio fell, its place in its group, and its overlap by weight with the holdings dates when measured."},"have":{"type":"object","additionalProperties":true,"required":["funds","weights","returns_from"],"properties":{"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"weight_pct":{"type":["number","null"]},"name":{"type":["string","null"]},"holdings_as_of":{"type":["string","null"]},"holdings_source":{"type":"string"},"holds_shares":{"type":"boolean"},"weekly_returns":{"type":["integer","null"]}}}},"weights":{"type":"string","enum":["given","equal"]},"looked_through_pct":{"type":["number","null"]},"holds_no_shares":{"type":"array","items":{"type":"string"}},"returns_from":{"type":"array","items":{"type":"string"}},"no_price_history":{"type":"array","items":{"type":"string"}},"no_breakdown":{"type":"array","items":{"type":"string"}},"mega_cap_tech_pct":{"type":["number","null"]},"sectors":{"type":["object","null"],"additionalProperties":true,"properties":{"known_pct":{"type":["number","null"]},"coverage_pct":{"type":["number","null"]},"stated":{"type":"boolean"},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"sector":{"type":"string"},"pct":{"type":["number","null"]}}}}}},"countries":{"type":["object","null"],"additionalProperties":true,"properties":{"us_pct":{"type":["number","null"]},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"country":{"type":"string"},"pct":{"type":["number","null"]}}}},"other_pct":{"type":["number","null"]}}},"sentence":{"type":"string"},"volatility_pct":{"type":["number","null"]},"weeks":{"type":["integer","null"]},"to":{"type":["string","null"]}},"description":"The portfolio of the funds held: each fund (funds) with its weight_pct, name, weekly_returns, holdings_as_of, holdings_source, holds_shares and page_url; weights, given or equal; returns_from, the funds its weekly returns are computed from, and no_price_history; volatility_pct over its weeks, weeks and to, of the weekly returns of the funds of returns_from; looked_through_pct; and mega_cap_tech_pct, sectors and countries, its funds' breakdowns at their weights, each fund's from its own file whether it has a price history here or not, the same figures as the check of the same portfolio; null when one of its funds holding shares has none, or when a fund's file is more than the answer reads beside the ranking, which its note names."},"list":{"type":"object","additionalProperties":true,"required":["list_date","ranked","groups","url"],"properties":{"name":{"type":"string"},"list_date":{"type":"string"},"about":{"type":"string"},"left_out_on_purpose":{"type":"array","items":{"type":"string"}},"count":{"type":"integer"},"ranked":{"type":"integer"},"groups":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"label":{"type":"string"},"tickers":{"type":"array","items":{"type":"string"}}}}},"held_and_left_out":{"type":"array","items":{"type":"string"}},"no_weekly_returns_tonight":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"description":"The list ranked: its name, list_date (the day it was chosen; a change of the list is a new date), about (the list in one sentence), left_out_on_purpose (what the list leaves out, in words), count, ranked (tonight, leaving out the funds held and any without weekly returns tonight), groups (id, label and tickers, in the order of the list), held_and_left_out, no_weekly_returns_tonight, and url, the list as a file."},"rule":{"type":"string","description":"The rule of the ranking, in words, as the page prints it."},"lowest":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"rank":{"type":"integer","description":"Its place among the 3, lowest first, from 1."},"ticker":{"type":"string","description":"The ETF of the list."},"name":{"type":["string","null"],"description":"Its name."},"group":{"type":"string","description":"Its group in the list, by id."},"group_label":{"type":"string","description":"Its group, in words."},"page_url":{"type":["string","null"],"description":"Its page. Null without one."},"fund_file":{"type":"string","description":"The address of its fund file."},"holdings_as_of":{"type":["string","null"],"description":"The date of its holdings."},"holdings_source":{"type":"string","description":"Its source: issuer file, SEC Form N-PORT or trust's own SEC filing."},"correlation":{"type":["object","null"],"additionalProperties":true,"properties":{"weekly":{"type":["number","null"]},"weeks":{"type":["integer","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"down_weeks":{"type":["number","null"]},"down_weeks_count":{"type":["integer","null"]},"with":{"type":"array","items":{"type":"string"}}},"description":"Of weekly returns, the ETF's against the portfolio's, as a candidate's in the check: weekly, weeks, from, to, down_weeks, down_weeks_count and with."},"volatility_pct":{"type":["number","null"],"description":"Its annualised weekly volatility over the same weeks, in percent."},"with_10_pct":{"type":"object","additionalProperties":true,"properties":{"volatility_pct":{"type":["number","null"]},"instead_of_pct":{"type":["number","null"]},"weeks":{"type":["integer","null"]},"to":{"type":["string","null"]}},"description":"The portfolio's annualised weekly volatility with 10% in this ETF and 90% in its funds at their weights, rebalanced weekly (volatility_pct), against the portfolio alone (instead_of_pct), over weeks to to."},"overlap":{"type":["object","null"],"additionalProperties":true,"properties":{"by_weight_pct":{"type":["number","null"]},"share_of_candidate_pct":{"type":["number","null"]},"companies_in_both":{"type":["integer","null"]},"largest_shared":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":"string"},"in_candidate_pct":{"type":["number","null"]},"in_have_pct":{"type":["number","null"]},"counted_pct":{"type":["number","null"]}}}}},"description":"Its overlap by weight with the portfolio looked through, as a candidate's in the check, when measured; null otherwise, and for an ETF that holds no shares."},"mega_cap_tech_pct":{"type":["number","null"],"description":"Its part in mega-cap tech, from its fund file's breakdown; null for an ETF that holds no shares."},"sectors":{"type":["object","null"],"additionalProperties":true,"properties":{"known_pct":{"type":["number","null"]},"coverage_pct":{"type":["number","null"]},"stated":{"type":"boolean"},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"sector":{"type":"string"},"pct":{"type":["number","null"]}}}}},"description":"Its sectors, from its fund file's breakdown, as a candidate's in the check."},"countries":{"type":["object","null"],"additionalProperties":true,"properties":{"us_pct":{"type":["number","null"]},"weights":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"country":{"type":"string"},"pct":{"type":["number","null"]}}}},"other_pct":{"type":["number","null"]}},"description":"Its countries, from its fund file's breakdown, as a candidate's in the check."},"holds":{"type":"string","description":"For an ETF that holds no shares, what it holds in two words."},"composition":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"label":{"type":"string"},"pct":{"type":["number","null"]}}},"description":"For an ETF that holds no shares, what it holds by kind, up to three, each with label and pct."},"sentence":{"type":"string","description":"Its sentence, as answers gives it."}},"required":["rank","ticker","group","correlation","volatility_pct","with_10_pct","overlap","sentence"]},"description":"The ETF of lowest weekly correlation in each of the 3 groups where it is lowest, lowest first: a sort of the list's measurements by its published rule."},"lowest_by_group":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"rank":{"type":"integer"},"ticker":{"type":"string"},"name":{"type":["string","null"]},"group":{"type":"string"},"group_label":{"type":"string"},"page_url":{"type":["string","null"]},"weekly":{"type":["number","null"]},"down_weeks":{"type":["number","null"]},"weeks":{"type":["integer","null"]}}},"description":"The ETF of lowest weekly correlation in every group, lowest first: group, group_label, ticker, weekly and weeks."},"ranked":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"rank":{"type":"integer"},"ticker":{"type":"string"},"name":{"type":["string","null"]},"group":{"type":"string"},"group_label":{"type":"string"},"page_url":{"type":["string","null"]},"weekly":{"type":["number","null"]},"down_weeks":{"type":["number","null"]},"weeks":{"type":["integer","null"]}}},"description":"Every ETF of the list ranked, lowest weekly correlation first before rounding, an exact tie in the order of the list: rank, ticker, name, group, group_label, page_url, weekly, down_weeks and weeks."},"overlap":{"type":"string","enum":["measured","not_measured"],"description":"measured when the overlap of the 3 with the portfolio ran, the files of both sides within the limits of Find; not_measured otherwise, and overlap is null in lowest."},"overlap_answered_by":{"type":"object","additionalProperties":true,"required":["tickers","page","diversify"],"properties":{"tickers":{"type":"array","items":{"type":"string"}},"page":{"type":"string"},"diversify":{"type":"string"}},"description":"When overlap is not_measured, the check that answers it in one call: tickers, the ETFs of lowest that hold shares; page, the check's page; and diversify, its JSON answer, each with the overlap by weight of those ETFs with the portfolio. Absent when no check of them fits the limits of one call."},"ties":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"An ETF of lowest whose weekly correlation prints the same as others of its group: ticker, with, printed. The order is before rounding. Absent without one."},"prices_as_of":{"type":["string","null"],"description":"The last week of the weekly returns, the date of the prices."},"definitions":{"type":"object","additionalProperties":true,"description":"How each figure is computed, in the words /diversify/ prints: correlation, down_weeks, volatility, with_10_pct, overlap, mega_cap_tech, sectors and countries."},"share_url":{"type":"string","description":"The page of this answer, /diversify/?have=, which renders it for a person or an assistant that fetches it."},"api_url":{"type":"string","description":"This answer's own address."},"source":{"type":"object","additionalProperties":true,"required":["provider","links","license","cite_as"],"properties":{"provider":{"type":"string"},"license":{"type":"string"},"cite_as":{"type":"string"},"list_url":{"type":"string"},"links":{"type":"array","items":{"type":"object","additionalProperties":true}}},"description":"The files the answer is computed from: each fund's page_url and api_url; list_url, the list; license; and cite_as."},"note":{"type":"string","description":"Measurement, not investment advice."},"license":{"type":"string","description":"CC BY 4.0."},"attribution":{"type":"string","description":"How to credit the data."},"docs":{"type":"string","description":"This endpoint's reference."}},"required":["kind","mode","question","answer","answers","have","list","rule","lowest","lowest_by_group","ranked","overlap","definitions","share_url","source","note","license","attribution","docs"]},"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"]},"FlowsSummary":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string","null"],"description":"The market close of the figures: the newest close that nine in ten of the funds counted have a file of. Each file is placed at the close it reflects (Invesco dates a Friday's file on the Saturday), and each fund's change runs from its previous file to its file of this close."},"newest_file":{"type":["string","null"],"description":"The newest close a file read reflects. A close is published once every fund still publishing has a file of it or of a later close, so date can be older."},"first_date":{"type":["string","null"],"description":"The first close with a counted change: the first files carrying share counts in today's keys."},"method":{"type":["string"],"description":"The method of the figures, ti-flows/1."},"coverage":{"type":"object","additionalProperties":true,"properties":{"funds_read_daily":{"type":["integer"],"description":"The funds read from their issuers' files every business day."},"funds_counted":{"type":["integer"],"description":"How many of them have a step to date that is counted."},"issuers":{"type":"array","items":{"type":"string"},"description":"The issuers of the funds counted."},"net_assets_usd":{"type":["integer","null"],"description":"The counted funds' net assets, as their issuers' files state them."},"share_of_stock_etf_assets_pct":{"type":["number","null"],"description":"The counted funds' share of the assets of the covered US stock ETFs, measured as the universe's share of assets is; null when not measured."},"not_counted":{"type":"object","additionalProperties":{"type":"integer"},"description":"How many funds of the archive are not counted, by reason, not_daily for a fund whose issuer publishes monthly."}},"required":["funds_read_daily","funds_counted","issuers","net_assets_usd","share_of_stock_etf_assets_pct","not_counted"],"description":"Which funds are counted; its fields are described below."},"added_by_value":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten securities with the largest net additions in dollars on date, the securities in not_ranked left out; a row is described below."},"reduced_by_value":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten with the largest net reductions in dollars."},"added_by_shares_pct":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten largest net additions in percent of the shares the funds held before."},"reduced_by_shares_pct":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten largest net reductions in percent."},"added_beyond_growth_by_value":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten largest net additions beyond the funds' own growth, in dollars: rebalancing and index changes rather than the creations of the funds' shares."},"reduced_beyond_growth_by_value":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key: a US ticker, or a local code and market for a line listed abroad (7203.JP)."},"name":{"type":["string","null"],"description":"Its name, where known."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."}},"required":["ticker","name","funds_adding","funds_trimming","funds_entered","funds_exited","net_shares","net_shares_pct","net_shares_beyond_growth","net_value_usd","net_value_beyond_growth_usd","withheld"]},"description":"The ten largest net reductions beyond the funds' own growth."},"index_events":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The close."},"ticker":{"type":["string"],"description":"The security."},"change":{"type":"string","enum":["entered","exited"],"description":"entered or exited."},"funds":{"type":"array","items":{"type":"string"},"description":"The funds of the group it entered or exited on that close."},"same_index_as":{"type":["string"],"description":"The group's largest fund. Two funds track the same index when they overlap by 98% or more by weight on their latest files."},"group_funds":{"type":["integer"],"description":"How many funds the group has."},"text":{"type":["string"],"description":"The event in words, to quote."}},"required":["date","ticker","change","funds","same_index_as","group_funds","text"]},"description":"Securities that entered or exited two or more funds tracking the same index on the same close, in the last 20 trading days, newest first; described below."},"corporate_actions":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The first close the funds show it on; funds that book it later show it a close or two after."},"kind":{"type":"string","enum":["converted","distribution","acquired_or_delisted","split","uniform_change"],"description":"converted (a merger paid in shares: from exited while to rose, or entered, by the same ratio in funds of three or more indexes), distribution (a spin-off: to entered at the same ratio of from in funds of three or more indexes), acquired_or_delisted (from left the funds of two or more issuers with nothing replacing it, and half its holders left it or its price per share stood still), split (three quarters or more of the funds holding from changed their counts by one ratio within three closes, while its price per share in the files moved by the inverse ratio: a split, a reverse split, a bonus issue or a stock dividend) or uniform_change (the same ratio with no price move to match: named and not ranked, its lines kept in the sums)."},"from":{"type":["string"],"description":"The security converted, the parent of a distribution, the security taken over or delisted, or the security split or changed."},"to":{"type":["string","null"],"description":"The security received: from itself for a split; null for acquired_or_delisted and uniform_change."},"ratio":{"type":["number","null"],"description":"Shares of to per share of from, as the funds' counts show it (1.2 for a 6-for-5 bonus issue, 0.5 for a 1-for-2 reverse split); null for acquired_or_delisted."},"text":{"type":["string"],"description":"The action in words, to quote."}},"required":["date","kind","from","to","ratio","text"]},"description":"Mergers, spin-offs, takeovers, splits and uniform changes the files show in the last 20 trading days, newest first: no trades, so the lines a merger, a spin-off or a split moved are left out of the sums. Described below."},"not_ranked":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security."},"reason":{"type":"string","enum":["fund_shares","converted","distribution","acquired_or_delisted","split","uniform_change"],"description":"converted, acquired_or_delisted, distribution, split, uniform_change or fund_shares."}},"required":["ticker","reason"]},"description":"The securities moved on date that the six lists leave out, each with its reason: converted (both securities of a merger paid in shares), acquired_or_delisted, distribution, split or uniform_change (within three closes of a corporate action, or on a close where a line of theirs is left out for one), or fund_shares (the shares of a fund the site covers, held by another fund)."},"funds_most_changed":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":["string"],"description":"The fund's ticker."},"name":{"type":["string","null"],"description":"Its name."},"previous":{"type":["string"],"description":"The date its issuer gives the file its step is compared with."},"date":{"type":["string"],"description":"The date its issuer gives its file, which can be a day after the close it reflects."},"entered":{"type":["integer"],"description":"Lines that entered."},"exited":{"type":["integer"],"description":"Lines that exited."},"increased":{"type":["integer"],"description":"Lines whose share count rose."},"decreased":{"type":["integer"],"description":"Lines whose share count fell."},"growth_pct":{"type":["number"],"description":"The fund's own growth across the step, in percent: the median change of its share counts, mostly creations and redemptions of its shares."},"not_trusted":{"type":["integer"],"description":"Lines left out of every sum, as no trade (see not_trusted in one security's flows)."}},"required":["fund","name","previous","date","entered","exited","increased","decreased","growth_pct","not_trusted"]},"description":"The ten funds whose step to date entered or exited the most lines; described below."},"days":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The close."},"funds":{"type":["integer"],"description":"How many funds have a counted step to it."},"complete":{"type":["boolean"],"description":"true when nine in ten of the funds counted on date do."},"securities_changed":{"type":["integer"],"description":"How many securities a fund moved on it."},"added_by_value":{"type":"array","items":{"type":"array","items":{"type":["string","integer"]}},"description":"Its five largest net additions, as [ticker, dollars, shares]."},"reduced_by_value":{"type":"array","items":{"type":"array","items":{"type":["string","integer"]}},"description":"Its five largest net reductions."}},"required":["date","funds","complete","securities_changed","added_by_value","reduced_by_value"]},"description":"Each close of the last 20, newest first: how many funds have a step to it, whether nine in ten do (complete), how many securities moved, and its five largest net additions and reductions as [ticker, dollars, shares], the securities not ranked left out."},"not_counted":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"fund":{"type":["string"],"description":"The fund's ticker."},"reason":{"type":"string","enum":["fund_of_funds","whole_fund_counts","not_daily","no_share_counts","no_longer_read","no_file_for_date","restated","no_previous_file","unreadable_file"],"description":"Why it is not counted on date."},"last_file":{"type":["string"],"description":"The date of its newest file."},"restated_reason":{"type":["string"],"description":"With restated: engine's reason for the step, such as key_scheme_2."}},"required":["fund","reason","last_file"]},"description":"The funds read daily that are not counted on date, each with its reason and its last file: fund_of_funds, whole_fund_counts (a file that counts every share class of a fund with mutual fund classes), no_share_counts, no_file_for_date, restated (a change of keys), no_previous_file or unreadable_file."},"file_gaps":{"type":["integer"],"description":"How many lines the window leaves out because an issuer's file dropped them for a day and they came back with the same count."},"security":{"type":["string"],"description":"The address of one security's flows, with {ticker} to fill."},"csv":{"type":["string"],"description":"Every security moved on date, one row each, largest net value first."},"feed":{"type":["string"],"description":"This summary as an RSS feed, one item per complete close."},"feed_fund":{"type":["string"],"description":"One fund's holdings changes as an RSS feed, from its history, with {ticker} to fill."},"feed_stock":{"type":["string"],"description":"One security's flows as an RSS feed, with {ticker} to fill."},"note":{"type":["string"],"description":"How to read the figures."},"cite_as":{"type":["string"],"description":"A citation line: the close and this file's address."},"cite_html":{"type":["string"],"description":"The credit as HTML: a link to this file, then its address."},"docs":{"type":["string"],"description":"Where the file is documented."},"license":{"type":["string"],"description":"The terms the flows are published under: TickerInside's history terms, not CC BY 4.0, as they are computed from the archive."},"terms":{"type":["string"],"description":"The terms in full, on the legal notice."},"attribution":{"type":["string"],"description":"How to credit it, then what the history terms allow."}},"required":["date","newest_file","first_date","method","coverage","added_by_value","reduced_by_value","added_by_shares_pct","reduced_by_shares_pct","added_beyond_growth_by_value","reduced_beyond_growth_by_value","index_events","corporate_actions","not_ranked","funds_most_changed","days","not_counted","file_gaps","security","csv","feed","feed_fund","feed_stock","note","cite_as","cite_html","docs","license","terms","attribution"]},"SecurityFlows":{"type":"object","additionalProperties":true,"properties":{"ticker":{"type":["string"],"description":"The security's key, as the holdings key it."},"name":{"type":["string","null"],"description":"Its name, where known."},"date":{"type":["string","null"],"description":"The close of latest, as in /api/v1/flows.json."},"newest_file":{"type":["string","null"],"description":"The newest close a file read reflects."},"funds_holding":{"type":["integer"],"description":"How many of the funds counted hold it in their newest file."},"funds_counted":{"type":["integer"],"description":"How many funds are counted on date."},"latest":{"type":["object","null"],"additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The close."},"funds_adding":{"type":["integer"],"description":"How many funds hold more shares of it than in their previous file."},"funds_trimming":{"type":["integer"],"description":"How many hold fewer."},"funds_entered":{"type":["integer"],"description":"How many of those adding did not hold it before."},"funds_exited":{"type":["integer"],"description":"How many of those trimming hold none now."},"single_fund":{"type":["boolean"],"description":"true when one fund alone moved it: every sum is then null."},"net_shares":{"type":["integer","null"],"description":"The change in shares held, summed over the funds. Null when fewer than three funds moved it or one fund makes more than 80% of it, as withheld says: a fund's share count is never published."},"net_shares_beyond_growth":{"type":["integer","null"],"description":"The same change less the part in proportion to each fund's own growth across its step (b minus k times a, k the fund's median ratio of share counts)."},"net_shares_pct":{"type":["number","null"],"description":"net_shares in percent of the shares the funds held before; null when fewer than three funds held it before or after, or one fund held more than 80% of it."},"net_value_usd":{"type":["integer","null"],"description":"net_shares valued at each file's own price per share: market value over shares, or weight times the fund's stated net assets over shares. Never an outside price."},"net_value_beyond_growth_usd":{"type":["integer","null"],"description":"net_shares_beyond_growth valued the same way."},"valued_pct":{"type":["number","null"],"description":"The share of the change in shares that a file valued."},"withheld":{"type":["object","null"],"additionalProperties":{"type":"string","enum":["fewer_than_3_funds","one_fund_dominant","gives_back_a_fund_count","not_all_valued"]},"description":"Why each null sum is null, as {field: reason}, or null: fewer_than_3_funds, one_fund_dominant (one fund makes more than 80% of the sum, or of the difference two published sums give, such as net_shares less net_shares_beyond_growth), gives_back_a_fund_count (the sums as printed, taken as one or two funds' own or compared with the figures published before for the same close, would give back a fund's share count) or not_all_valued."},"funds":{"type":"object","additionalProperties":true,"required":["columns","rows"],"properties":{"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array"}}},"description":"The funds with the largest changes, largest by value first, at most eight, with the columns named in columns: fund, change (entered, exited, increased or decreased), weight_before and weight_after (percent of the fund, as its holdings files print them), previous and date (its two files, as its issuer dates them). No fund's share count is published, nor any figure of its own a count could be worked out from."},"not_trusted":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"The funds whose line is left out of every sum, as [fund, reason]: price_per_share_jump (a split or a count in other units, by the file's own values), count_weight_mismatch (a count that moved against the weight), split_seen_in_other_files, price_unlike_other_funds (a price per share half again or more away from the other funds' line of the same key: another instrument under it), file_gap, rekeyed (a change of ticker), converted (a merger paid in shares), distribution (a spin-off) or split (a split, a bonus issue or a stock dividend found across the funds)."}},"required":["date","funds_adding","funds_trimming","funds_entered","funds_exited","single_fund","net_shares","net_shares_beyond_growth","net_shares_pct","net_value_usd","net_value_beyond_growth_usd","valued_pct","withheld","funds","not_trusted"],"description":"Its flows on date; null when no fund moved it then. Described below."},"series":{"type":"object","additionalProperties":true,"required":["columns","rows"],"properties":{"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array"}}},"description":"One row per close of the last 20 it moved on, oldest first, with the columns named in columns: date, funds_adding, funds_trimming, funds_entered, funds_exited, net_shares, net_shares_beyond_growth, net_value_usd, and withheld, why the first null of the three sums is null (as in latest). No close newer than date is published."},"index_events":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The close."},"change":{"type":"string","enum":["entered","exited"],"description":"entered or exited."},"funds":{"type":"array","items":{"type":"string"},"description":"The funds of the group it entered or exited on that close."},"same_index_as":{"type":["string"],"description":"The group's largest fund. Two funds track the same index when they overlap by 98% or more by weight on their latest files."},"group_funds":{"type":["integer"],"description":"How many funds the group has."},"text":{"type":["string"],"description":"The event in words, to quote."}},"required":["date","change","funds","same_index_as","group_funds","text"]},"description":"Its entries and exits in funds tracking the same index, in the last 20 trading days, as in /api/v1/flows.json."},"corporate_actions":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":["string"],"description":"The first close the funds show it on; funds that book it later show it a close or two after."},"kind":{"type":"string","enum":["converted","distribution","acquired_or_delisted","split","uniform_change"],"description":"converted (a merger paid in shares: from exited while to rose, or entered, by the same ratio in funds of three or more indexes), distribution (a spin-off: to entered at the same ratio of from in funds of three or more indexes), acquired_or_delisted (from left the funds of two or more issuers with nothing replacing it, and half its holders left it or its price per share stood still), split (three quarters or more of the funds holding from changed their counts by one ratio within three closes, while its price per share in the files moved by the inverse ratio: a split, a reverse split, a bonus issue or a stock dividend) or uniform_change (the same ratio with no price move to match: named and not ranked, its lines kept in the sums)."},"from":{"type":["string"],"description":"The security converted, the parent of a distribution, the security taken over or delisted, or the security split or changed."},"to":{"type":["string","null"],"description":"The security received: from itself for a split; null for acquired_or_delisted and uniform_change."},"ratio":{"type":["number","null"],"description":"Shares of to per share of from, as the funds' counts show it (1.2 for a 6-for-5 bonus issue, 0.5 for a 1-for-2 reverse split); null for acquired_or_delisted."},"text":{"type":["string"],"description":"The action in words, to quote."}},"required":["date","kind","from","to","ratio","text"]},"description":"The mergers, spin-offs, takeovers, splits and uniform changes it is part of in the last 20 trading days, as in /api/v1/flows.json; the lines a merger, a spin-off or a split moved are left out of its sums."},"method":{"type":["string"],"description":"The method of the figures, ti-flows/1."},"note":{"type":["string"],"description":"How to read the figures."},"summary":{"type":["string"],"description":"The night's summary."},"feed":{"type":["string"],"description":"This security's flows as an RSS feed."},"cite_as":{"type":["string"],"description":"A citation line: the security, the closes of the window and this answer's address."},"cite_html":{"type":["string"],"description":"The credit as HTML: a link to this answer, then its address."},"docs":{"type":["string"],"description":"Where the answer is documented."},"license":{"type":["string"],"description":"The history terms, not CC BY 4.0."},"terms":{"type":["string"],"description":"The terms in full, on the legal notice."},"attribution":{"type":["string"],"description":"How to credit it, then what the history terms allow."}},"required":["ticker","name","date","newest_file","funds_holding","funds_counted","latest","series","index_events","corporate_actions","method","note","summary","feed","cite_as","cite_html","docs","license","terms","attribution"]},"OwnershipIndex":{"type":"object","additionalProperties":true,"properties":{"name":{"type":["string"],"description":"The index's name."},"as_of":{"type":["string","null"],"description":"The date of the ownership ledger the index reads: its newest holdings date."},"method":{"type":["string"],"description":"The method of the index, ti-ownership-index/1, in /api/v1/methods.json."},"ledger_method":{"type":["string"],"description":"The method of the figures it reads, ti-ownership/1."},"method_url":{"type":["string"],"description":"Where both methods are written down, with their test vectors."},"methodology":{"type":["string"],"description":"The methodology page: formulas, sources, dates, limits and a worked example."},"holdings_dates":{"type":["object","null"],"additionalProperties":true,"properties":{"oldest":{"type":["string"]},"newest":{"type":["string"]}},"description":"The oldest and newest holdings dates counted across the stocks."},"shares_outstanding_dates":{"type":["object","null"],"additionalProperties":true,"properties":{"oldest":{"type":["string"]},"newest":{"type":["string"]}},"description":"The oldest and newest dates of the SEC's counts of shares outstanding used."},"caps_as_of":{"type":["string","null"],"description":"The price date of the market caps that weight the lines; they enter no stock's figure."},"count":{"type":["integer"],"description":"How many stocks have a figure, the rows of stocks."},"columns":{"type":"array","items":{"type":"string"},"description":"The names of the places of each row of stocks."},"stocks":{"type":"array","items":{"type":"array","items":{"type":["string","number","integer","boolean","null"]}},"description":"One row per stock with a figure, most held first, as columns names them."},"market":{"type":["object","null"],"additionalProperties":true,"properties":{"companies":{"type":["integer"],"description":"Companies in the line, one per company on a company basis."},"cap_weighted_pct":{"type":["number","null"],"description":"Sum of each company's figure times its market cap over the sum of their caps, rounded down: the share of their combined market value held by the covered US ETFs, at least."},"mean_pct":{"type":["number","null"],"description":"The mean of the companies' figures, rounded down."},"median_pct":{"type":["number","null"],"description":"The median company's figure."},"p25_pct":{"type":["number","null"],"description":"The first quartile, by nearest rank."},"p75_pct":{"type":["number","null"],"description":"The third quartile, by nearest rank."},"companies_without_cap":{"type":["integer"],"description":"Companies without a market cap, in the mean and quartiles and left out of cap_weighted_pct."},"cap_b":{"type":["number","null"],"description":"The companies' combined market cap, in billions of dollars."}},"required":["companies","cap_weighted_pct","mean_pct","median_pct","p25_pct","p75_pct","companies_without_cap","cap_b"],"description":"The line over every company: described below."},"sectors":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"sector":{"type":["string"],"description":"The sector, as the price data names it."},"companies":{"type":["integer"],"description":"Companies in the line, one per company on a company basis."},"cap_weighted_pct":{"type":["number","null"],"description":"Sum of each company's figure times its market cap over the sum of their caps, rounded down: the share of their combined market value held by the covered US ETFs, at least."},"mean_pct":{"type":["number","null"],"description":"The mean of the companies' figures, rounded down."},"median_pct":{"type":["number","null"],"description":"The median company's figure."},"p25_pct":{"type":["number","null"],"description":"The first quartile, by nearest rank."},"p75_pct":{"type":["number","null"],"description":"The third quartile, by nearest rank."},"companies_without_cap":{"type":["integer"],"description":"Companies without a market cap, in the mean and quartiles and left out of cap_weighted_pct."},"cap_b":{"type":["number","null"],"description":"The companies' combined market cap, in billions of dollars."}},"required":["sector","companies","cap_weighted_pct","mean_pct","median_pct","p25_pct","p75_pct","companies_without_cap","cap_b"]},"description":"The line of each sector with at least 5 companies, by name: the same fields and sector."},"class_basis_left_out":{"type":["integer"],"description":"How many figures of one class alone are in stocks and left out of the lines."},"concentration_min_funds":{"type":["integer"],"description":"The fewest funds counted for a top3_share_pct."},"concentration_not_published":{"type":"object","additionalProperties":{"type":"integer"},"description":"How many stocks have a null top3_share_pct, by reason (refusals of ti-ownership-index/1 in methods.json)."},"held_back":{"type":["object","null"],"additionalProperties":true,"description":"Set when tonight's ledger was held back by its checks: the index then reads the last ledger that passed."},"failed":{"type":["boolean"],"description":"True when the index could not be computed tonight: no rows and no lines, the history as it was."},"history":{"type":["string"],"description":"The daily history, with the changes over 5 and 20 market days (history terms)."},"csv":{"type":["string"],"description":"The rows of stocks as CSV, the same columns."},"note":{"type":["string"],"description":"How to read the file."},"cite_as":{"type":["string","null"],"description":"A citation line: the index, its date, the market line and this file's address."},"cite_html":{"type":["string"],"description":"The credit as HTML: a link to this file, then its address."},"docs":{"type":["string"],"description":"Where the file is documented."},"license":{"type":["string"],"description":"CC BY 4.0."},"attribution":{"type":["string"],"description":"Credit TickerInside with a link to this file, or to the page that shows the figure, wherever the medium allows a link, and by name where it does not. How you mark the link is up to you."}},"required":["name","as_of","method","ledger_method","method_url","methodology","holdings_dates","shares_outstanding_dates","caps_as_of","count","columns","stocks","market","sectors","class_basis_left_out","concentration_min_funds","concentration_not_published","held_back","failed","history","csv","note","cite_as","cite_html","docs","license","attribution"]},"OwnershipIndexHistory":{"type":"object","additionalProperties":true,"properties":{"name":{"type":["string"],"description":"The history's name."},"method":{"type":["string"],"description":"The method of the index, ti-ownership-index/1."},"flows_method":{"type":["string"],"description":"The method of the flows the changes are read from, ti-flows/1."},"methodology":{"type":["string"],"description":"The methodology page."},"first_close":{"type":["string","null"],"description":"The first close of the history."},"last_close":{"type":["string","null"],"description":"The close of the changes in stocks: the flows' latest close."},"windows":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true,"properties":{"from":{"type":["string","null"]},"to":{"type":["string","null"]},"covered":{"type":["boolean"]}}},"description":"For 1d, 5d and 20d: from, the close the change starts after, to, the close it ends on, and covered, whether every close between is a complete close of the flows."},"series_columns":{"type":"array","items":{"type":"string"},"description":"The names of the places of each row of market and sectors."},"market":{"type":"array","items":{"type":"array","items":{"type":["string","number","integer","boolean","null"]}},"description":"The market line, one row per close, oldest first."},"sectors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":["string","number","integer","boolean","null"]}}},"description":"Each sector's line, one row per close, by sector."},"stocks_columns":{"type":"array","items":{"type":"string"},"description":"The names of the places of each row of stocks."},"stocks":{"type":"array","items":{"type":"array","items":{"type":["string","number","integer","boolean","null"]}},"description":"Each stock's changes over 1, 5 and 20 market days ending on last_close, in percentage points of its shares outstanding, and the reason each null one is null; a null reason with a null change means the window is not covered."},"not_measured":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"integer"}},"description":"For each window, how many stocks have no change, by reason."},"null_reasons":{"type":"object","additionalProperties":{"type":"string"},"description":"Each reason a change is null, in words."},"index":{"type":["string"],"description":"The index file."},"csv":{"type":["string"],"description":"market and sectors as CSV rows, with the line's name in line."},"note":{"type":["string"],"description":"How to read the file."},"cite_as":{"type":["string","null"],"description":"A citation line: the closes and this file's address."},"cite_html":{"type":["string"],"description":"The credit as HTML: a link to this file, then its address."},"docs":{"type":["string"],"description":"Where the file is documented."},"license":{"type":["string"],"description":"The history terms, not CC BY 4.0."},"terms":{"type":["string"],"description":"The terms in full, on the legal notice."},"attribution":{"type":["string"],"description":"How to credit it, then what the history terms allow."}},"required":["name","method","flows_method","methodology","first_close","last_close","windows","series_columns","market","sectors","stocks_columns","stocks","not_measured","null_reasons","index","csv","note","cite_as","cite_html","docs","license","terms","attribution"]},"Manifest":{"type":"object","properties":{"manifest_version":{"type":["number","null"],"description":"The version of this file's own shape: 1. A field added keeps it."},"built_at":{"type":["string","null"],"description":"When the build that wrote every file listed here ran, in UTC. Give it beside a figure to cite the exact state it comes from."},"build_date":{"type":["string","null"],"description":"The day of built_at."},"schema":{"type":"object","properties":{"api":{"type":["string","null"],"description":"The version in the path: v1. Inside it, fields are added, never removed or retyped."},"digest":{"type":["string","null"],"description":"The sha256 of the tables the API reference and the OpenAPI description are written from: the names of the fields and codes and the types they fix, without their words. It is read from the code, never from a night's files, so the night's data never moves it; a field, a code or a type added to those tables does."},"openapi":{"type":["string","null"],"description":"The OpenAPI description."}},"additionalProperties":true,"required":["api","digest","openapi"],"description":"The version of the API's shape; its fields are described below."},"calculation":{"type":"object","properties":{"version":{"type":["string","null"],"description":"The first 16 hexadecimal characters of the sha256 of the method ids and the versions under readers: it moves when any of them does, and on no other night."},"methods":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"]},"since":{"type":["string","null"]}},"additionalProperties":true},"description":"Each method of methods.json, as id and since, the first day figures were published under it."},"readers":{"type":"object","additionalProperties":{"type":["integer","null"]},"description":"The version of each reader and computation named here, by name: it rises when what it makes of the same input changes, and for issuer_file_read, price_read, returns_and_risk and computed_answers with any change to their code. key_scheme is how securities are keyed (2: a line abroad carries its market). Code not named here moves no version: a figure it corrects is recorded in corrections.json."}},"additionalProperties":true,"required":["version","methods","readers"],"description":"The version of the calculations; its fields are described below."},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The source: prices, a layer of fund files by its source_layer (issuer, sec_nport and the others), or directory, Nasdaq Trader's symbol directory."},"name":{"type":["string","null"],"description":"The source in words."},"version":{"type":["string","null"],"description":"The source's own version where it has one: the SEC's quarterly data set read (2026q2) for sec_nport, the file's date for the directory; null otherwise."},"date":{"type":["string","null"],"description":"The date of the data: the last close for prices, the newest holdings date of the layer's fund files, the directory's file date."},"age_days":{"type":["integer","null"],"description":"Days from date to the day of the build."},"oldest":{"type":["string","null"],"description":"The oldest holdings date of the layer's fund files; null for prices and the directory."},"oldest_age_days":{"type":["integer","null"],"description":"Days from oldest to the day of the build."},"median_age_days":{"type":["integer","null"],"description":"The median, over the layer's fund files, of the days from their holdings date to the day of the build."},"funds":{"type":["integer","null"],"description":"How many fund files of the layer; null for prices and the directory."}},"additionalProperties":true,"required":["id","name","version","date","age_days","oldest","oldest_age_days","median_age_days","funds"]},"description":"Each source of the data with its version, date and age in days on the day of the build; their fields are described below."},"files":{"type":"object","properties":{"count":{"type":["number","null"],"description":"How many files are listed: every file under /api/v1/ but this one and the list."},"bytes":{"type":["number","null"],"description":"Their size, added up."},"list":{"type":["string","null"],"description":"The list, gzipped: /api/v1/sha256sums.txt.gz."},"list_sha256":{"type":["string","null"],"description":"The sha256 of the list once unzipped."},"format":{"type":["string","null"],"description":"How the list is written, and the command that checks a copy against it."}},"additionalProperties":true,"required":["count","bytes","list","list_sha256","format"],"description":"The list of every file with its sha256; its fields are described below."},"families":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true,"required":["files","bytes","sha256"],"properties":{"files":{"type":"integer"},"bytes":{"type":"integer"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"description":"One entry per family of files, keyed by a directory followed by a slash (fund/) or by the name of a file at the top (index.json): files, the number of files, bytes, their size, and sha256, the digest of the family's lines of the list, in their order, each ending with a newline."},"methods_url":{"type":["string","null"],"description":"The methods of the computed figures, /api/v1/methods.json."},"contract":{"type":["string","null"],"description":"The data contract this file belongs to: /contract/."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the file is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["manifest_version","built_at","build_date","schema","calculation","sources","files","families","methods_url","contract","docs","license","attribution"]},"Changelog":{"type":"object","properties":{"count":{"type":["number","null"],"description":"How many entries."},"newest":{"type":["string","null"],"description":"The date of the newest entry."},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The entry's id: its date and title in lower case words joined by hyphens. It does not change."},"date":{"type":["string","null"],"description":"The day the change reached the site."},"title":{"type":["string","null"],"description":"What changed, in one line."},"body":{"type":["string","null"],"description":"What changed and what a program reading the files should do, in words."},"url":{"type":["string","null"],"description":"The page that prints the entries: /changes/."}},"additionalProperties":true,"required":["id","date","title","body","url"]},"description":"Every dated change, newest first; their fields are described below."},"contract":{"type":["string","null"],"description":"The data contract this file belongs to: /contract/."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the file is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["count","newest","entries","contract","docs","license","attribution"]},"Deprecations":{"type":"object","properties":{"count":{"type":["number","null"],"description":"How many entries."},"rule":{"type":["string","null"],"description":"What deprecated means here, in one sentence."},"aliases":{"type":"object","additionalProperties":{"type":"string"},"description":"Each fund address the Worker answers with a 301 to the fund's file under its new ticker: {old ticker: new ticker}, lower case, as src/index.js lists them."},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The entry's id. It does not change."},"kind":{"type":["string","null"],"description":"field, a field of a file; key, a way of keying a security; answer, an answer of an address; address, an address that leads to another; mcp_tool, a tool name of the MCP server."},"since":{"type":["string","null"],"description":"The day it was replaced."},"what":{"type":["string","null"],"description":"What is deprecated."},"where":{"type":["string","null"],"description":"The file, address or server where it answers."},"replaced_by":{"type":["array","null"],"items":{"type":["null","string"]},"description":"What to read or call instead."},"answers":{"type":["string","null"],"description":"How it answers today."},"note":{"type":["string","null"],"description":"Why, in words."},"removal":{"type":"null","description":"Always null: nothing is removed inside v1."}},"additionalProperties":true,"required":["id","kind","since","what","where","replaced_by","answers","note","removal"]},"description":"What still answers but has a replacement; their fields are described below."},"contract":{"type":["string","null"],"description":"The data contract this file belongs to: /contract/."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the file is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["count","rule","aliases","entries","contract","docs","license","attribution"]},"Corrections":{"type":"object","properties":{"count":{"type":["number","null"],"description":"How many corrections."},"newest":{"type":["string","null"],"description":"The date of the newest."},"kinds":{"type":"object","additionalProperties":{"type":"string"},"description":"Each kind of correction, by code, in words."},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The correction's id. It does not change."},"date":{"type":["string","null"],"description":"The day the correction reached the files."},"kind":{"type":["string","null"],"description":"Its kind, a code of kinds."},"title":{"type":["string","null"],"description":"What was wrong, in one line."},"scope":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The families of files it touched, as the manifest names them without the slash: fund, etf, sec, holders, compare, history, flows, ownership."},"tickers":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The funds and securities whose figures were wrong, wherever the files list them: every one when tickers_complete is true, examples otherwise."},"tickers_complete":{"type":["boolean","null"],"description":"Whether tickers lists every fund and security whose figures were wrong."},"before":{"type":["string","null"],"description":"What the files said, with the figures."},"after":{"type":["string","null"],"description":"What they say since, with the figures."},"changelog":{"type":["string","null"],"description":"The id of the changelog.json entry that announced it, or null."}},"additionalProperties":true,"required":["id","date","kind","title","scope","tickers","tickers_complete","before","after","changelog"]},"description":"Every correction, newest first; their fields are described below."},"contract":{"type":["string","null"],"description":"The data contract this file belongs to: /contract/."},"report":{"type":["string","null"],"description":"How to report a figure that looks wrong."},"docs":{"type":["string","null"],"description":"Where this file is documented."},"license":{"type":["string","null"],"description":"The licence the file is published under."},"attribution":{"type":["string","null"],"description":"How to credit the data: a link to this file where the medium allows one, the name where it does not."}},"additionalProperties":true,"required":["count","newest","kinds","entries","contract","report","docs","license","attribution"]},"SecurityHoldersOnly":{"type":"object","additionalProperties":true,"description":"The answer for a security covered funds hold that has no stock file: a stock the price data does not list or has too few weekly returns for, or a line listed abroad (7203.JP). It is composed from the holders shard of its first character: its holders in both layers, each dated by its issuer file or SEC filing, the price and return fields null, and none of the fields the shard cannot give (synthetic_exposure, etf_ownership, holders_all, rank_summary, top_by_value, membership, by_issuer, fee_per_1000, name_collision, answer).","required":["coverage","note","ticker","name","page_url","cite_as","cite_html","sector","industry","as_of","page","cap_b","pe","yield","vol","beta","mdd3","r1","r3","r5","last_close","last_close_date","day_change_pct","high_52w","low_52w","currency","calendar","held_by","heaviest","held_by_sec_nport","holders","holders_sec_nport","left_out","same_code_abroad","earlier_key_reads_as","least_correlated","most_correlated","weekly","weeks_end","license","attribution","source"],"properties":{"coverage":{"type":"string","const":"holders_only","description":"Always holders_only: read it before any other field."},"note":{"type":"string","description":"Why the answer lists holders only, in one sentence."},"ticker":{"type":["string","null"],"description":"The stock's ticker, upper case."},"name":{"type":["string","null"],"description":"The company's name."},"page_url":{"type":["string","null"],"description":"The stock's page on the site, or null when it has none. Link this when quoting the figures."},"cite_as":{"type":["string","null"],"description":"A citation line for a quoted figure: company, sources and date, a URL to check it, licence."},"cite_html":{"type":["string","null"],"description":"The credit as HTML: a link to the page cite_as names, then its address."},"sector":{"type":["string","null"],"description":"The company's sector where the data classifies it, or \"US Listed\" when it does not, which is the case for most stocks."},"industry":{"type":["string","null"],"description":"The finest level of that classification under the sector, such as Semiconductors or Regional Banks; null when sector is \"US Listed\"."},"as_of":{"type":["string","null"],"description":"The price date: the date of the price data behind every figure here."},"page":{"type":["boolean","null"],"description":"True when the stock has a written page at /stock/{ticker}/. Every stock here has this file whether or not it has a page."},"cap_b":{"type":["number","null"],"description":"Market capitalisation, in billions of US dollars."},"pe":{"type":["number","null"],"description":"Trailing price to earnings ratio."},"yield":{"type":["number","null"],"description":"Trailing twelve month dividend yield, as a percentage."},"vol":{"type":["number","null"],"description":"Annualised standard deviation of weekly total returns over three years, as a percentage."},"beta":{"type":["number","null"],"description":"Sensitivity to the S&P 500, from three years of weekly returns."},"mdd3":{"type":["number","null"],"description":"Largest peak to trough decline over three years, measured on weekly closes. Negative."},"r1":{"type":["number","null"],"description":"Cumulative total return over one year, as a percentage. Not annualised."},"r3":{"type":["number","null"],"description":"Cumulative total return over three years, as a percentage. Not annualised."},"r5":{"type":["number","null"],"description":"Cumulative total return over five years, as a percentage. Not annualised."},"last_close":{"type":["number","null"],"description":"The last closing price, raw, in the trading currency. Returns use dividend-adjusted closes; this is the close as traded."},"last_close_date":{"type":["string","null"],"description":"The date of that close."},"day_change_pct":{"type":["number","null"],"description":"The move from the previous close to the last, as a percentage."},"high_52w":{"type":["number","null"],"description":"The highest raw close over the last 252 trading days, or since the listing for a stock listed less than a year ago."},"low_52w":{"type":["number","null"],"description":"The lowest raw close over the last 252 trading days, or since the listing for a stock listed less than a year ago."},"currency":{"type":["string","null"],"description":"The trading currency of the price fields."},"calendar":{"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"Total return by calendar year, as a percentage, the current year to date."},"held_by":{"type":["integer","null"],"description":"How many issuer-layer funds hold it, the rows of holders. The stock's page counts these less left_out, with the SEC-layer funds of held_by_sec_nport, as holders_all lists them."},"heaviest":{"type":["array","null"],"prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"}],"items":{"type":["number","string"]},"description":"The issuer-layer fund that gives it the largest weight, as [fund ticker, weight percent]. Null when none of them holds it."},"held_by_sec_nport":{"type":["integer","null"],"description":"How many SEC-layer funds hold it, the rows of holders_sec_nport. The stock's page counts them with the issuer-layer funds and lists them in a table of their own, each linked to its filing."},"holders":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"},{"title":"date","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"Every issuer-layer fund that holds it, heaviest first, as [fund ticker, weight percent, date of that fund's holdings file]. The same rows as the holders index, in the stock's own file."},"holders_sec_nport":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"fund","type":"string"},{"title":"weight","type":"number"},{"title":"date","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The SEC-layer funds that hold it, heaviest first, as [fund ticker, weight percent, the quarter end the filing describes]. They are months older than holders, so they are kept apart. A fund whose row under this ticker is a foreign company's local code is not listed. A filing names a security by its ISIN, which does not say where the fund bought it. So shares that trade in New York and abroad on one ISIN (AstraZeneca, TotalEnergies, Ferrari) are listed here for the funds whose stocks are mostly on US ISINs, and under the line abroad (AZN.GB) for the others. A preferred share is keyed by its issuer's common ticker, as the filings key it, so a preferred stock fund can appear here. For a stock whose weekly is empty, a row can be dated before its first close in the price data. Such a row can be another security that had the ticker, or the company's shares abroad before it listed in New York, and etf_ownership does not count it (before_first_close)."},"left_out":{"type":["array","null"],"description":"An empty list for a stock with a page, and null without one; kept for compatibility. Before lines listed abroad were keyed with their market (7203.JP), it named the issuer-layer funds whose row under the ticker was most likely a company listed abroad under the same code. Today a row stays under a US ticker when its issuer's file places it in New York, by its exchange, its currency or its identifiers, with the US list for a line nothing else places. The Toronto line of the same shares as a New York line also stays under the US ticker (RY). A row in dollars that nothing places abroad counts as a US line, as a few depositary receipts traded in London do (SBID, the GDR of State Bank of India).","items":{"type":["string","null"]}},"same_code_abroad":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"key","type":"string"},{"title":"name","type":["string","null"]}],"items":{"type":["null","string"]}},"description":"The lines listed outside the United States under the same local code, as [key, company name], most widely held first. Each is another security, and often another company: SAN.ES is Banco Santander in Madrid and SAN.FR Sanofi in Paris, beside SAN, the Santander ADR. Their issuer-layer holders are under those keys in the holders index. Their SEC-layer holders are in holders_sec_nport of the shard of their first character (/api/v1/holders/a.json for AZN.GB). An empty list when there is none."},"earlier_key_reads_as":{"type":["array","null"],"items":{"type":["null","string"]},"description":"The keys this ticker reads as now, this ticker among them, when it was also the key of other lines before lines listed abroad were keyed with their market. CCO, Clear Channel Outdoor, was also Cameco's Toronto code, so it reads as CCO and CCJ; SAN reads as SAN, SAN.ES and SAN.FR. The same list as the aliases of the holders index. Null when the ticker was only ever this line."},"least_correlated":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"correlation","type":"number"},{"title":"name","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The eight stocks least correlated with this one over the last 104 of the same weekly returns, as [ticker, correlation, name]. The candidates are stocks held by ten or more covered funds, so every neighbour is reachable through ETFs. A measurement of co-movement, not a recommendation."},"most_correlated":{"type":["array","null"],"items":{"type":"array","prefixItems":[{"title":"ticker","type":"string"},{"title":"correlation","type":"number"},{"title":"name","type":["string","null"]}],"items":{"type":["null","number","string"]}},"description":"The eight most correlated, same shape and same candidate set."},"weekly":{"type":["array","null"],"items":{"type":["null","number"]},"description":"156 weekly total returns as decimals, oldest first, ending at as_of: the same weeks as the fund files, so a stock and a fund correlate with the same arithmetic as two funds. A week is null when its return cannot be computed, because the stock's prices begin later or a weekly close is missing. At least 110 of the 156 are numbers. It is an empty list for a stock with fewer that has a file by the rule of this endpoint: its vol, beta, mdd3, r3 and r5 are then null and its correlated stocks empty lists."},"weeks_end":{"type":["string","null"],"description":"The last date covered by the weekly series."},"license":{"type":["string","null"],"description":"The licence the data is published under."},"attribution":{"type":["string","null"],"description":"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":{"type":["string","null"],"description":"Where the method behind these figures is written down."}}}}}}
