ETF implied demand

API TraderAPI QuantAPI Developer

Flow-implied passive demand: the buying or selling of a stock that ETF creations and redemptions implied on each date. When an ETF creates units it buys its basket and when it redeems it sells it, so each fund's daily flow (NAV times the change in units, in USD) times the stock's weight in that fund, summed over every ETF holding the stock, is the passive demand for it that day, in USD, in shares, and as a share of average daily volume and of shares outstanding.

One row per date with ETF flows into or out of the stock, over a date window.

Available Data Points:

  • Date: The trading date of the ETF flows (YYYY-MM-DD).
  • Implied Net USD: Net passive buying (positive) or selling (negative) of the stock implied by the date's ETF flows, USD.
  • Implied Buy USD: The positive contributions: funds whose creations bought the stock, USD.
  • Implied Sell USD: The negative contributions: funds whose redemptions sold the stock, USD. Never positive.
  • Implied Net Shares: The net demand in shares, at the date's price.
  • Pct ADV: Implied net shares as a percentage of the one-month average daily volume summed over the stock's listings.
  • Pct Shares Outstanding: Implied net shares as a percentage of the shares outstanding on the date.
  • Price USD: The close of the stock's most liquid listing on the date (or the latest in the week before), in USD.
  • ADV Shares: One-month average daily volume summed over the stock's live listings, shares.
  • Shares Outstanding: Shares outstanding on the date, as they stood then.
  • Fund Count: ETFs whose flow reached the stock.
  • Share Based Fund Count: Of those, funds whose basket states shares but no weights.
  • Stale Fund Count: Of those, funds whose holdings file was more than a week old.
  • Max Holdings Age Days: Age of the oldest holdings file behind the row, days.
  • Avg Holdings Age Days: Age of the holdings files behind the row, weighted by each fund's flow, days.

Point in time

A flow on a date is applied with the holdings file each fund had published before that date - its basket at the previous close - never a file dated on or after it. A fund's quarterly SEC N-PORT basket counts only from sixty days after its quarter end, when it is published. A file is used for at most 35 days (100 for monthly Vanguard US files, 155 for N-PORT); a fund with no file inside that bound contributes nothing. avgHoldingsAgeDays, maxHoldingsAgeDays and staleFundCount say how old the files behind each row were.

What is excluded

Leveraged, inverse and synthetic (swap-based) funds are left out: their exposure is a swap whose hedge, not the fund's own basket, does the trading. ETNs and ETCs hold no stocks. Cash, futures and bond lines are never attributed to a stock, but stay in each fund's weights, so the cash part of a creation is not reattributed to the stocks. Holdings that ORTEX could not match to a listing are not attributed.

Units and coverage

Demand is per security: funds that file one stock under different venues add up. Shares are converted at the USD close of the stock's most liquid listing; pctAdv divides by the one-month average daily volume summed over the stock's listings in ORTEX (off-exchange and unlisted venues are not in it). Share figures are left null where they would exceed 10% of the shares outstanding in a day: that is a wrong price, not demand. Funds whose basket states share counts but no weights (the mainland China exchange baskets) contribute the change in units times their share count, counted in shareBasedFundCount. Coverage follows the ORTEX holdings store: daily issuer files since October 2026, and before that about one file per fund per month plus the quarterly N-PORT baskets of US funds.

Try it out! You can test the API with the trial key TEST. Simply include it in your request headers; either here, or add the header "Ortex-Api-Key": "TEST" to your http request.

Trial key restrictions: Trial keys may be limited to a specific date range and set of regions. Requests outside the allowed regions or entirely outside the allowed date range are rejected; a date window that partially overlaps the allowed range is trimmed to it, reported in meta.restriction.

Get full access! Get a key at app.ortex.com/apis

Path Params
string
required

Where to find the instrument: a venue (exchange symbol, MIC or ISO-2 country) or an identifier scheme (tid, sid, cid, isin, figi). See Identifying an instrument.

string
required

The ticker on that venue, or the value in that scheme. An ISIN, sid, cid or share-class FIGI answers for the main listing only; reference/listings lists the others. See Identifying an instrument.

Query Params
date
required

Inclusive start of the returned date window. Format: YYYY-MM-DD.

Also selects the instrument: the ticker resolves to the listing that held it on the exchange in the URL path on this date. To retrieve a delisted or renamed company, use its former exchange and ticker with a from_date from when it was listed. An identifier path (/stock/isin|figi|sid|cid/<value>/…) resolves at this date too. The instrument block in the response names the company the data belongs to.

date

Inclusive end of the returned date window (defaults to today). Format: YYYY-MM-DD.

integer

Page number within the paginated result set. Must be >= 1. Defaults to 1.

integer

Number of rows per page. The default and the maximum allowed depend on the API tier; a value above the tier maximum is rejected with 400 invalidPageSize.

string
enum
Defaults to json

Response format. "json" (default) or "csv".

Allowed:
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/csv
*/*