Migrating from v1 — Parameter Changes

Endpoint-by-endpoint: which v1 request parameters were renamed, removed, made required, or kept their name while changing meaning.

This page is for one job: you have a working v1 client, and you want to know what to change. It
covers request parameters only — response fields are described by each endpoint's own
reference page, and the shared response shape by The Response Envelope.

Read the two sections below in order. Changes that apply everywhere catches most of the work;
the per-endpoint tables cover the rest.

🚧

Read this first

Two changes will not raise an error, will return data, and will be wrong.

as_is became split_adjusted, and the boolean is inverted. as_is=true is
split_adjusted=false. Renaming the parameter without flipping the value silently swaps
adjusted and unadjusted share counts.

The bulk index parameter kept its name but changed its accepted values. It now takes
ORTEX index identifiers — US100, US500, UK100, US1000 — not the longer v1 index names.

Market Intelligence content: theme renamed content_theme (2026-10-21)

The Market Intelligence content feed's theme filter is now content_theme, on bulk/market_intelligence/content/, the per-stock market_intelligence/content/ route and their enterprise versions. Its values are unchanged (the feed's own themes, such as overall or short_interest), and each row still reports its theme in the theme field.

theme is no longer accepted on these routes. Sent there, it has no effect and is listed in the response's ignored block with a note naming content_theme. theme remains the Alt Data catalog's filter for business theme names (for example semiconductors).

Split handling on 2026-10-21

  • /stock/{namespace}/{identifier}/short/availability/: shortAvailabilityShares is now split-adjusted, like every other share count and like the bulk endpoint. Dates before a split are restated onto today's share basis; shortAvailabilityPct is unchanged.

Fundamentals values corrected on 2026-10-21

Two fundamentals values were wrong and now match the summary category:

CategoryFieldBeforeNow
valuationevToRevenue, evToEbitda, evToEbitLtm, evToSalesLtmcomputed from net debt, not enterprise valuecomputed from enterprise value (CIQ period-last TEV), the same figure as enterpriseValue on summary
incomedilutedEpsnormalized diluted EPSreported diluted EPS, the same figure as dilutedEps on summary
incomenormalizedDilutedEps—new: the normalized diluted EPS dilutedEps used to carry

For example, AAPL FY2025: valuation evToRevenue was -0.048 and is now 10.78; income dilutedEps was 5.53 and is now 7.46.

Bulk row MICs on 2026-10-21

The mic on bulk and feed rows (closing prices, historic volatility, consensus estimates, average volume, fails to deliver, Reg SHO threshold list, stock scores, options put/call ratios) is now the published MIC, the same value the stock endpoints' instrument.mic carries. Before, some of these rows carried the venue's segment MIC instead, so about 1 listing in 13 showed a different mic on a bulk row than on its stock endpoint (for example XNGS on a bulk row, XNAS on the stock endpoint). operatingMic, ISIN and FIGI are unchanged. Average-volume rows stored before this date keep the identity they were written with.

Universe constituents and Alt Data signals on 2026-10-20

  • Universe constituents take exchange_symbol. The add and remove bodies (POST /api/v11/universes/{name}/constituents/ and .../remove/) identify a listing by exchange_symbol + ticker, the name the stock path, the request echo and the instrument block use, or by ortex_tid. exchange is still accepted as a deprecated alias; if you send both, they must agree, otherwise the request is 400 invalidConstituents. Echoes (alreadyPresent, removed, notFound) use the key you sent.
  • Alt Data signal rows carry entityRef. On .../altdata/signals/, each row now names the entity it is about, as the observations rows do, so a listing with several entities in one series (a utility's reactor units, a retailer's states) returns rows you can tell apart. The rows themselves are unchanged.

Date parameters renamed on 2026-10-20

No v1.1 endpoint takes as_of_date or ticker_as_of_date any more. An endpoint that returns the snapshot on or before one date takes date, and a ticker in the path resolves to the listing that held it on the endpoint's own date (from_date on a date window, date on a single-date endpoint), so a renamed or reused ticker names the company it named then.

EndpointBeforeNow
/stock/{namespace}/{identifier}/options/chain/, …/options/details/, …/options/expiries/, …/options/pcr/as_of_date (the snapshot), ticker_as_of_date (which listing a ticker meant)date: the snapshot on or before it, and the date the ticker resolves at
/stock/{namespace}/{identifier}/options/pcr_ts/ticker_as_of_dateremoved; the ticker resolves at from_date
/stock/{namespace}/{identifier}/insiders/holdings/, /bulk/insiders/holdings/as_of_datedate

The old names are not accepted. If you send one, the response is served for the default date and lists the parameter under ignored, with a note naming its replacement. Check ignored after migrating.

Field names changed on 2026-10-20

The fundamentals endpoints (summary, income, balance, ratios, cash and valuation, on both the stock and enterprise routes) served some keys that were not valid identifiers, taken from display labels such as EV/Revenue and SG&A. They are renamed: & reads "And", / reads "To", and LTM is one word. Every other fundamentals key is unchanged.

Old keyNew key
ev/revenueevToRevenue
ev/grossProfitevToGrossProfit
ev/ebitdaevToEbitda
price/earningspriceToEarnings
sg&asgAndA
r&drAndD
d&adAndA
netPp&enetPpAndE
sg&aMarginsgAndAMargin
debt/equitydebtToEquity
debt/capitaldebtToCapital
debt/assetdebtToAsset
ebit/interestExpenseebitToInterestExpense
ebitda/interestExpenseebitdaToInterestExpense
debt/ebitdadebtToEbitda
netDebt/ebitdanetDebtToEbitda
ev/salesLTMevToSalesLtm
ev/ebitLTMevToEbitLtm
price/salesLTMpriceToSalesLtm
price/earningsLTMpriceToEarningsLtm
price/bookValuepriceToBookValue
price/tangibleBookValuepriceToTangibleBookValue

options/details no longer keys its row by expiry date and strike price. The row holds expiries, a list of {"expiry", "strikes"}; each strike is {"strike", "call", "put"} (for the two ratio parameters, the ratio sits on the strike instead of call/put). Expiries and strikes are in ascending order; the values are unchanged.

{"expiries": [{"expiry": "2026-08-29", "strikes": [{"strike": 300.0, "call": {"oi": 579.0}, "put": {"oi": 1918.0}}]}]}

MICs in the stock path on 2026-10-17

The namespace of a stock path now also accepts an exchange's segment or published MIC, as well as its operating MIC. /api/v11/stock/XNGS/{ticker}/… and /api/v11/stock/XLON/{ticker}/… resolve the same listing, with the same instrument block, as the exchange-symbol form. The MIC a response reports as instrument.mic (and instrument.operatingMic) pastes straight back into the path. A namespace shaped like a MIC that no exchange carries is 404 instrumentNotFound. Nothing else changes. See Identifying an instrument.

Stock path segments renamed on 2026-10-17

The two stock path segments are now documented as {namespace}/{identifier}, not {exchange_symbol}/{ticker}: /api/v11/stock/{namespace}/{identifier}/{domain}/{endpoint}/. The first segment was never only an exchange symbol (it also takes a MIC, a country code or an identifier scheme such as isin), and after a scheme the second is not a ticker. The rules are now on one page, Identifying an instrument, and each endpoint's path-parameter description is a line and a link to it.

What you need to do. The URLs are unchanged: every request you send today returns the same data. Two things in the response changed:

  • The envelope's request block echoes the two segments as namespace and identifier, on every stock path. It used to echo exchange_symbol and ticker, or, on an identifier path, the scheme as the key ({"isin": "US00165C1045"}, now {"namespace": "isin", "identifier": "US00165C1045"}). The instrument block and the row fields keep exchange_symbol and ticker, because there they really are an exchange symbol and a ticker.
  • An error about either segment names it in details[].field as namespace or identifier (previously exchange, exchange_symbol, ticker or the scheme keyword). The error codes are unchanged.

Paths changed on 2026-10-16

Every v1.1 path now follows one pattern, [enterprise/]<shape>/<domain>/<endpoint>/:

  • shape is what one response is about: stock/{exchange}/{ticker} (one instrument), bulk
    (many instruments: an index, universe or region, or a feed over a window), market (no
    instrument) or reference (a list that is true now, with no date);
  • domain is the category the endpoint is listed under in this reference (short, options,
    reference, dividends, events, altdata, insiders, activist, …);
  • endpoint is always present.

The enterprise path is always the retail path with enterprise/ in front. So one listing's cost to
borrow is /api/v11/stock/NYSE/AMC/short/ctb/, an index's is /api/v11/bulk/short/ctb/?index=US500,
and a region's on an enterprise key is /api/v11/enterprise/bulk/short/ctb/?region=US.

What you need to do. Nothing breaks today for a path that had callers: the old enterprise region
and feed paths (/api/v11/enterprise/short/ctb/ and the rest) and the old retail paths keep
answering, with the same response and the same billing. They are no longer listed in this
reference; move to the new path when you next touch the client. The 22 enterprise
per-instrument and catalog paths that nobody called were removed outright, marked removed below. Query parameters
and responses are unchanged, with one exception: no feed takes a ticker (or, on Market Intelligence, an exchange) query parameter any more. One instrument's rows are the feed's per-stock route, /api/v11/stock/{exchange}/{ticker}/<domain>/<endpoint>/: activist/filings/, insiders/transactions/, insiders/global_transactions/, insiders/holdings/, events/government_trades/, market_intelligence/content/ and (enterprise) market_intelligence/stock_reports/. A ticker sent to a feed is reported in the response's ignored block and does not filter.

Every path that changed
Old pathNew pathThe old path
/api/v11/activist_filings/filer_history//api/v11/bulk/activist/filer_history/still answers
/api/v11/activist_filings/filings//api/v11/bulk/activist/filings/still answers
/api/v11/events/earnings//api/v11/bulk/events/earnings/still answers
/api/v11/events/government_trades//api/v11/bulk/events/government_trades/still answers
/api/v11/insider_transactions/global_transactions//api/v11/bulk/insiders/global_transactions/still answers
/api/v11/insider_transactions/holdings//api/v11/bulk/insiders/holdings/still answers
/api/v11/insider_transactions/insider_history//api/v11/bulk/insiders/insider_history/still answers
/api/v11/insider_transactions/transactions//api/v11/bulk/insiders/transactions/still answers
/api/v11/market_intelligence/content//api/v11/bulk/market_intelligence/content/still answers
/api/v11/bulk/pcr_ts//api/v11/bulk/options/pcr_ts/still answers
/api/v11/bulk/closing_prices//api/v11/bulk/reference/closing_prices/still answers
/api/v11/bulk/free_float//api/v11/bulk/reference/free_float/still answers
/api/v11/bulk/market_cap//api/v11/bulk/reference/market_cap/still answers
/api/v11/bulk/stock_scores//api/v11/bulk/scores/stock_scores/still answers
/api/v11/bulk/availability//api/v11/bulk/short/availability/still answers
/api/v11/bulk/ctb//api/v11/bulk/short/ctb/still answers
/api/v11/bulk/dtc//api/v11/bulk/short/dtc/still answers
/api/v11/bulk/esma_positions//api/v11/bulk/short/esma_positions/still answers
/api/v11/bulk/ftd//api/v11/bulk/short/ftd/still answers
/api/v11/bulk/official_short_interest//api/v11/bulk/short/official_short_interest/still answers
/api/v11/bulk/short_interest//api/v11/bulk/short/short_interest/still answers
/api/v11/bulk/short_score//api/v11/bulk/short/short_score/still answers
/api/v11/bulk/threshold_list//api/v11/bulk/short/threshold_list/still answers
/api/v11/bulk/historic_volatility//api/v11/bulk/volatility/historic/still answers
/api/v11/bulk/average_volume//api/v11/bulk/volume/average/still answers
/api/v11/enterprise/activist_filings//api/v11/enterprise/bulk/activist/filings/still answers
/api/v11/enterprise/altdata/air_traffic//api/v11/enterprise/bulk/altdata/air_traffic/still answers
/api/v11/enterprise/altdata/air_traffic/published//api/v11/enterprise/bulk/altdata/air_traffic_published/still answers
/api/v11/enterprise/altdata/bank_fundamentals//api/v11/enterprise/bulk/altdata/bank_fundamentals/still answers
/api/v11/enterprise/altdata/bank_fundamentals/published//api/v11/enterprise/bulk/altdata/bank_fundamentals_published/still answers
/api/v11/enterprise/altdata/captive_finance//api/v11/enterprise/bulk/altdata/captive_finance/still answers
/api/v11/enterprise/altdata/captive_finance/published//api/v11/enterprise/bulk/altdata/captive_finance_published/still answers
/api/v11/enterprise/altdata/clinical_trials//api/v11/enterprise/bulk/altdata/clinical_trials/still answers
/api/v11/enterprise/altdata/clinical_trials/published//api/v11/enterprise/bulk/altdata/clinical_trials_published/still answers
/api/v11/enterprise/altdata/consumer_complaints//api/v11/enterprise/bulk/altdata/consumer_complaints/still answers
/api/v11/enterprise/altdata/consumer_complaints/published//api/v11/enterprise/bulk/altdata/consumer_complaints_published/still answers
/api/v11/enterprise/altdata/consumer_credit//api/v11/enterprise/bulk/altdata/consumer_credit/still answers
/api/v11/enterprise/altdata/consumer_credit/published//api/v11/enterprise/bulk/altdata/consumer_credit_published/still answers
/api/v11/enterprise/altdata/drug_prices//api/v11/enterprise/bulk/altdata/drug_prices/still answers
/api/v11/enterprise/altdata/drug_prices/published//api/v11/enterprise/bulk/altdata/drug_prices_published/still answers
/api/v11/enterprise/altdata/electricity_retail_share//api/v11/enterprise/bulk/altdata/electricity_retail_share/still answers
/api/v11/enterprise/altdata/electricity_retail_share/published//api/v11/enterprise/bulk/altdata/electricity_retail_share_published/still answers
/api/v11/enterprise/altdata/fda_regulatory_events//api/v11/enterprise/bulk/altdata/fda_regulatory_events/still answers
/api/v11/enterprise/altdata/fda_regulatory_events/published//api/v11/enterprise/bulk/altdata/fda_regulatory_events_published/still answers
/api/v11/enterprise/altdata/federal_awards//api/v11/enterprise/bulk/altdata/federal_awards/still answers
/api/v11/enterprise/altdata/federal_awards/published//api/v11/enterprise/bulk/altdata/federal_awards_published/still answers
/api/v11/enterprise/altdata/futures_broker_financials//api/v11/enterprise/bulk/altdata/futures_broker_financials/still answers
/api/v11/enterprise/altdata/futures_broker_financials/published//api/v11/enterprise/bulk/altdata/futures_broker_financials_published/still answers
/api/v11/enterprise/altdata/gaming_revenue//api/v11/enterprise/bulk/altdata/gaming_revenue/still answers
/api/v11/enterprise/altdata/gaming_revenue/published//api/v11/enterprise/bulk/altdata/gaming_revenue_published/still answers
/api/v11/enterprise/altdata/insider_clusters//api/v11/enterprise/bulk/altdata/insider_clusters/still answers
/api/v11/enterprise/altdata/insider_clusters/published//api/v11/enterprise/bulk/altdata/insider_clusters_published/still answers
/api/v11/enterprise/altdata/insurance_premiums//api/v11/enterprise/bulk/altdata/insurance_premiums/still answers
/api/v11/enterprise/altdata/insurance_premiums/published//api/v11/enterprise/bulk/altdata/insurance_premiums_published/still answers
/api/v11/enterprise/altdata/layoff_notices//api/v11/enterprise/bulk/altdata/layoff_notices/still answers
/api/v11/enterprise/altdata/layoff_notices/published//api/v11/enterprise/bulk/altdata/layoff_notices_published/still answers
/api/v11/enterprise/altdata/medical_devices//api/v11/enterprise/bulk/altdata/medical_devices/still answers
/api/v11/enterprise/altdata/medical_devices/published//api/v11/enterprise/bulk/altdata/medical_devices_published/still answers
/api/v11/enterprise/altdata/mine_production//api/v11/enterprise/bulk/altdata/mine_production/still answers
/api/v11/enterprise/altdata/mine_production/published//api/v11/enterprise/bulk/altdata/mine_production_published/still answers
/api/v11/enterprise/altdata/monthly_revenue//api/v11/enterprise/bulk/altdata/monthly_revenue/still answers
/api/v11/enterprise/altdata/monthly_revenue/published//api/v11/enterprise/bulk/altdata/monthly_revenue_published/still answers
/api/v11/enterprise/altdata/mortgage_originations//api/v11/enterprise/bulk/altdata/mortgage_originations/still answers
/api/v11/enterprise/altdata/mortgage_originations/published//api/v11/enterprise/bulk/altdata/mortgage_originations_published/still answers
/api/v11/enterprise/altdata/nuclear_output//api/v11/enterprise/bulk/altdata/nuclear_output/still answers
/api/v11/enterprise/altdata/nuclear_output/published//api/v11/enterprise/bulk/altdata/nuclear_output_published/still answers
/api/v11/enterprise/altdata/oil_gas_production//api/v11/enterprise/bulk/altdata/oil_gas_production/still answers
/api/v11/enterprise/altdata/oil_gas_production/published//api/v11/enterprise/bulk/altdata/oil_gas_production_published/still answers
/api/v11/enterprise/altdata/power_generation//api/v11/enterprise/bulk/altdata/power_generation/still answers
/api/v11/enterprise/altdata/power_generation/published//api/v11/enterprise/bulk/altdata/power_generation_published/still answers
/api/v11/enterprise/altdata/prescription_volumes//api/v11/enterprise/bulk/altdata/prescription_volumes/still answers
/api/v11/enterprise/altdata/prescription_volumes/published//api/v11/enterprise/bulk/altdata/prescription_volumes_published/still answers
/api/v11/enterprise/altdata/private_offerings//api/v11/enterprise/bulk/altdata/private_offerings/still answers
/api/v11/enterprise/altdata/private_offerings/published//api/v11/enterprise/bulk/altdata/private_offerings_published/still answers
/api/v11/enterprise/altdata/securities_broker_financials//api/v11/enterprise/bulk/altdata/securities_broker_financials/still answers
/api/v11/enterprise/altdata/securities_broker_financials/published//api/v11/enterprise/bulk/altdata/securities_broker_financials_published/still answers
/api/v11/enterprise/altdata/share_buybacks//api/v11/enterprise/bulk/altdata/share_buybacks/still answers
/api/v11/enterprise/altdata/share_buybacks/published//api/v11/enterprise/bulk/altdata/share_buybacks_published/still answers
/api/v11/enterprise/altdata/telecom_subscribers//api/v11/enterprise/bulk/altdata/telecom_subscribers/still answers
/api/v11/enterprise/altdata/telecom_subscribers/published//api/v11/enterprise/bulk/altdata/telecom_subscribers_published/still answers
/api/v11/enterprise/altdata/transit_ridership//api/v11/enterprise/bulk/altdata/transit_ridership/still answers
/api/v11/enterprise/altdata/transit_ridership/published//api/v11/enterprise/bulk/altdata/transit_ridership_published/still answers
/api/v11/enterprise/altdata/vehicle_registrations//api/v11/enterprise/bulk/altdata/vehicle_registrations/still answers
/api/v11/enterprise/altdata/vehicle_registrations/published//api/v11/enterprise/bulk/altdata/vehicle_registrations_published/still answers
/api/v11/enterprise/altdata/vehicle_safety//api/v11/enterprise/bulk/altdata/vehicle_safety/still answers
/api/v11/enterprise/altdata/vehicle_safety/published//api/v11/enterprise/bulk/altdata/vehicle_safety_published/still answers
/api/v11/enterprise/buybacks//api/v11/enterprise/bulk/buybacks/executions/still answers
/api/v11/enterprise/corporate_actions//api/v11/enterprise/bulk/corporate_actions/events/still answers
/api/v11/enterprise/dividends/declarations//api/v11/enterprise/bulk/dividends/declarations/still answers
/api/v11/enterprise/dividends/forecast_vintage//api/v11/enterprise/bulk/dividends/forecast_vintage/still answers
/api/v11/enterprise/dividends/forecasts//api/v11/enterprise/bulk/dividends/forecasts/still answers
/api/v11/enterprise/dividends//api/v11/enterprise/bulk/dividends/history/still answers
/api/v11/enterprise/estimates/consensus//api/v11/enterprise/bulk/estimates/consensus/still answers
/api/v11/enterprise/etf/daily//api/v11/enterprise/bulk/etf/daily/still answers
/api/v11/enterprise/etf/flows//api/v11/enterprise/bulk/etf/flows/still answers
/api/v11/enterprise/events/earnings//api/v11/enterprise/bulk/events/earnings/still answers
/api/v11/enterprise/events/government_trades//api/v11/enterprise/bulk/events/government_trades/still answers
/api/v11/enterprise/index_rebalance/detail//api/v11/enterprise/bulk/index_rebalance/detail/still answers
/api/v11/enterprise/index_rebalance/overview//api/v11/enterprise/bulk/index_rebalance/overview/still answers
/api/v11/enterprise/market_intelligence/content//api/v11/enterprise/bulk/market_intelligence/content/still answers
/api/v11/enterprise/stock_reports//api/v11/enterprise/bulk/market_intelligence/stock_reports/still answers
/api/v11/enterprise/options/pcr_ts//api/v11/enterprise/bulk/options/pcr_ts/still answers
/api/v11/enterprise/closing_prices//api/v11/enterprise/bulk/reference/closing_prices/still answers
/api/v11/enterprise/free_float//api/v11/enterprise/bulk/reference/free_float/still answers
/api/v11/enterprise/market_cap//api/v11/enterprise/bulk/reference/market_cap/still answers
/api/v11/enterprise/stock_scores//api/v11/enterprise/bulk/scores/stock_scores/still answers
/api/v11/enterprise/short/availability//api/v11/enterprise/bulk/short/availability/still answers
/api/v11/enterprise/short/ctb//api/v11/enterprise/bulk/short/ctb/still answers
/api/v11/enterprise/short/esma_positions//api/v11/enterprise/bulk/short/esma_positions/still answers
/api/v11/enterprise/short/ftd//api/v11/enterprise/bulk/short/ftd/still answers
/api/v11/enterprise/short/official_short_interest//api/v11/enterprise/bulk/short/official_short_interest/still answers
/api/v11/enterprise/short/short_interest//api/v11/enterprise/bulk/short/short_interest/still answers
/api/v11/enterprise/short/short_interest_full//api/v11/enterprise/bulk/short/short_interest_full/still answers
/api/v11/enterprise/short/short_interest_intraday//api/v11/enterprise/bulk/short/short_interest_intraday/still answers
/api/v11/enterprise/short/short_score//api/v11/enterprise/bulk/short/short_score/still answers
/api/v11/enterprise/short/threshold_list//api/v11/enterprise/bulk/short/threshold_list/still answers
/api/v11/enterprise/short/utilization_delta//api/v11/enterprise/bulk/short/utilization_delta/still answers
/api/v11/enterprise/historic_volatility//api/v11/enterprise/bulk/volatility/historic/still answers
/api/v11/enterprise/average_volume//api/v11/enterprise/bulk/volume/average/still answers
/api/v11/enterprise/market/macro_events//api/v11/enterprise/market/events/macro_events/removed
/api/v11/enterprise/reference/altdata//api/v11/enterprise/reference/altdata/catalog/removed
/api/v11/enterprise/dividends/scorecard//api/v11/enterprise/reference/dividends/scorecard/removed
/api/v11/enterprise/etf/funds//api/v11/enterprise/reference/etf/funds/removed
/api/v11/enterprise/reference/exchanges//api/v11/enterprise/reference/exchanges/list/removed
/api/v11/enterprise/index_rebalance/index_list//api/v11/enterprise/reference/index_rebalance/indices/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/buybacks//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/buybacks/executions/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/corporate_actions//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/corporate_actions/events/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/dividends/forecast/history//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/dividends/forecast_history/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/dividends//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/dividends/history/removed
/api/v11/enterprise/etf/{exchange_symbol}/{ticker}/history//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/etf/history/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/earnings//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/events/earnings/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/government_trades//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/events/government_trades/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/pcr_ts//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/options/pcr_ts/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/closing_prices//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/reference/closing_prices/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/free_float//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/reference/free_float/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/isin_history//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/reference/isin_history/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/market_cap//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/reference/market_cap/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/ticker_history//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/reference/ticker_history/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/stock_scores//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/scores/stock_scores/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/historic_volatility//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/volatility/historic/removed
/api/v11/enterprise/stock/{exchange_symbol}/{ticker}/average_volume//api/v11/enterprise/stock/{exchange_symbol}/{ticker}/volume/average/removed
/api/v11/market/macro_events//api/v11/market/events/macro_events/still answers
/api/v11/reference/altdata//api/v11/reference/altdata/catalog/still answers
/api/v11/dividends/scorecard//api/v11/reference/dividends/scorecard/still answers
/api/v11/reference/exchanges//api/v11/reference/exchanges/list/still answers
/api/v11/insider_transactions/coverage//api/v11/reference/insiders/coverage/still answers
/api/v11/reference/themes//api/v11/reference/themes/catalog/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/buybacks//api/v11/stock/{exchange_symbol}/{ticker}/buybacks/executions/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/corporate_actions//api/v11/stock/{exchange_symbol}/{ticker}/corporate_actions/events/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/dividends/forecast/history//api/v11/stock/{exchange_symbol}/{ticker}/dividends/forecast_history/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/dividends//api/v11/stock/{exchange_symbol}/{ticker}/dividends/history/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/earnings//api/v11/stock/{exchange_symbol}/{ticker}/events/earnings/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/government_trades//api/v11/stock/{exchange_symbol}/{ticker}/events/government_trades/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/chain//api/v11/stock/{exchange_symbol}/{ticker}/options/chain/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/details//api/v11/stock/{exchange_symbol}/{ticker}/options/details/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/expiries//api/v11/stock/{exchange_symbol}/{ticker}/options/expiries/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/moneyness_ts//api/v11/stock/{exchange_symbol}/{ticker}/options/moneyness_ts/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/pcr//api/v11/stock/{exchange_symbol}/{ticker}/options/pcr/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/pcr_ts//api/v11/stock/{exchange_symbol}/{ticker}/options/pcr_ts/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/peers//api/v11/stock/{exchange_symbol}/{ticker}/peers/ranked/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/closing_prices//api/v11/stock/{exchange_symbol}/{ticker}/reference/closing_prices/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/free_float//api/v11/stock/{exchange_symbol}/{ticker}/reference/free_float/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/isin_history//api/v11/stock/{exchange_symbol}/{ticker}/reference/isin_history/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/market_cap//api/v11/stock/{exchange_symbol}/{ticker}/reference/market_cap/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/ticker_history//api/v11/stock/{exchange_symbol}/{ticker}/reference/ticker_history/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/stock_scores//api/v11/stock/{exchange_symbol}/{ticker}/scores/stock_scores/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/availability//api/v11/stock/{exchange_symbol}/{ticker}/short/availability/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/ctb//api/v11/stock/{exchange_symbol}/{ticker}/short/ctb/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/dtc//api/v11/stock/{exchange_symbol}/{ticker}/short/dtc/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/esma_positions//api/v11/stock/{exchange_symbol}/{ticker}/short/esma_positions/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/ftd//api/v11/stock/{exchange_symbol}/{ticker}/short/ftd/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/official_short_interest//api/v11/stock/{exchange_symbol}/{ticker}/short/official_short_interest/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/short_interest//api/v11/stock/{exchange_symbol}/{ticker}/short/short_interest/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/short_interest_intraday//api/v11/stock/{exchange_symbol}/{ticker}/short/short_interest_intraday/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/short_interest_live//api/v11/stock/{exchange_symbol}/{ticker}/short/short_interest_live/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/short_score//api/v11/stock/{exchange_symbol}/{ticker}/short/short_score/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/threshold_list//api/v11/stock/{exchange_symbol}/{ticker}/short/threshold_list/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/themes//api/v11/stock/{exchange_symbol}/{ticker}/themes/company/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/historic_volatility//api/v11/stock/{exchange_symbol}/{ticker}/volatility/historic/still answers
/api/v11/stock/{exchange_symbol}/{ticker}/average_volume//api/v11/stock/{exchange_symbol}/{ticker}/volume/average/still answers

Where a reference page's address was derived from its path, the page has a new address too:

Old pageNew page
activist_filings_filer_history_retrievebulk_activist_filer_history_retrieve
activist_filings_filings_retrievebulk_activist_filings_retrieve
bulk_ftd_retrievebulk_short_ftd_retrieve
bulk_threshold_list_retrievebulk_short_threshold_list_retrieve
dividends_scorecard_retrievereference_dividends_scorecard_retrieve
insider_transactions_coverage_retrievereference_insiders_coverage_retrieve
insider_transactions_global_transactions_retrievebulk_insiders_global_transactions_retrieve
insider_transactions_holdings_retrievebulk_insiders_holdings_retrieve
insider_transactions_insider_history_retrievebulk_insiders_insider_history_retrieve
insider_transactions_transactions_retrievebulk_insiders_transactions_retrieve
market_intelligence_content_retrievebulk_market_intelligence_content_retrieve
reference_altdata_retrievereference_altdata_catalog_retrieve
reference_exchanges_retrievereference_exchanges_list_retrieve
reference_themes_retrievereference_themes_catalog_retrieve
stock_average_volume_retrievestock_volume_average_retrieve
stock_buybacks_retrievestock_buybacks_executions_retrieve
stock_chain_retrievestock_options_chain_retrieve
stock_closing_prices_retrievestock_reference_closing_prices_retrieve
stock_corporate_actions_retrievestock_corporate_actions_events_retrieve
stock_details_retrievestock_options_details_retrieve
stock_dividends_retrievestock_dividends_history_retrieve
stock_dtc_retrievestock_short_dtc_retrieve
stock_expiries_retrievestock_options_expiries_retrieve
stock_free_float_retrievestock_reference_free_float_retrieve
stock_ftd_retrievestock_short_ftd_retrieve
stock_historic_volatility_retrievestock_volatility_historic_retrieve
stock_isin_history_retrievestock_reference_isin_history_retrieve
stock_market_cap_retrievestock_reference_market_cap_retrieve
stock_moneyness_ts_retrievestock_options_moneyness_ts_retrieve
stock_pcr_retrievestock_options_pcr_retrieve
stock_pcr_ts_retrievestock_options_pcr_ts_retrieve
stock_peers_retrievestock_peers_ranked_retrieve
stock_short_interest_intraday_retrievestock_short_short_interest_intraday_retrieve
stock_short_interest_live_retrievestock_short_short_interest_live_retrieve
stock_stock_scores_retrievestock_scores_stock_scores_retrieve
stock_themes_retrievestock_themes_company_retrieve
stock_threshold_list_retrievestock_short_threshold_list_retrieve
stock_ticker_history_retrievestock_reference_ticker_history_retrieve

Changes that apply everywhere

Trailing slashes are optional. Every v1.1 endpoint answers with or without one, so
…/availability and …/availability/ are the same URL. A v1 path that differs from its v1.1
equivalent only by a final slash needs no change. The endpoint reference pages show the
slashed form; both work.

v1v1.1What to do
ticker_as_of_dateremoved, except on the options snapshot endpointsv1.1 decides which listing a reused ticker means from your from_date (falling back to to_date): the response is about the listing that held the ticker on that date, and its instrument block says which one. If that is not the listing you meant, move from_date, or name the stock by an ORTEX id, ISIN or FIGI (see the row below), which never goes stale. Sending ticker_as_of_date elsewhere is not an error — it is reported in the envelope's ignored block — but it has no effect. The options snapshot endpoints still accept it as in v1; an unparseable value there is now 400 invalidDateRange (v1 silently used today).
portfolio_nameuniverseStraight rename on the bulk endpoints. Same values.
indexindexSame name, different values. Now an ORTEX index identifier (US100, US500, UK100, US1000).
as_issplit_adjustedRename and inversion. as_is=true → split_adjusted=false. Default is split_adjusted=true (adjusted to today's terms).
from_datefrom_date (required)Optional in v1, where it defaulted to one month back. Required on every v1.1 stock timeseries endpoint — send it explicitly.
volumeremovedThe volume columns are part of the standard response; there is no longer a parameter to request them.
formatformatWas required on some v1 endpoints (short_data). Always optional in v1.1 — defaults to JSON. See the Accept header alternative on any endpoint page.
(stock paths: {exchange}/{ticker} only){exchange}/{ticker} (the exchange as a symbol, operating MIC, segment or published MIC, or country) or tid/{ortexTid}, sid/{ortexSid}, cid/{ortexCid}, isin/{ISIN}, figi/{FIGI}New in v1.1, every stock endpoint (retail and enterprise). Nothing to change. The full rules are on Identifying an instrument. You may now name a stock by ORTEX id, ISIN or FIGI in place of exchange + ticker, e.g. /api/v11/stock/isin/US00165C1045/short/short_interest/. Identifiers resolve as at from_date (else to_date). sid, cid and isin go to the primary listing; a share-class FIGI goes to its security's primary listing; tid and an exchange-level FIGI go to exactly that listing, and tid reaches a delisted listing too. On endpoints without a date window, sid, cid and isin resolve only to active listings. An ISIN whose holders all ended before the anchor date returns 404. A malformed identifier returns 400 invalidIdentifier; an unknown one 404 instrumentNotFound. Composite FIGIs are not accepted.
(v1 date shorthands)YYYY-MM-DD onlyv1's from_date=<number of days> and to_date=latest forms are gone on every endpoint: any date that is not YYYY-MM-DD is 400 invalidDateRange with issue: invalidFormat.
(unrecognised)(reported)v1 ignored unknown parameters silently. v1.1 lists every parameter it did not use in the response envelope's ignored block, saying whether it was a typo or a real parameter this endpoint does not accept.

ORTEX ids are the cross-dataset join key. Every v1.1 row about a listing, a security or a company
carries the public ORTEX ids for its level: ortexTid (listing), ortexSid (security) and
ortexCid (company). The level is what one returned row is about: a row about a listing carries all
three, a row about a security ortexSid + ortexCid, and a row about a company (stock scores,
earnings announcements, company-level Alt Data) ortexCid only; ids finer than the row's level are
left out, not sent as null. Bulk and feed responses carry them on every row. Single-instrument
responses carry them once, in the envelope's instrument block, which now also reports isin, figi,
mic and operatingMic so you can confirm what was resolved. The keys are always camelCase, even where
you send the same id as a snake_case query parameter. Use ortexSid to join any two datasets on the
same security, even across listings. These ids never equal an internal database id or a vendor (S&P
Capital IQ) id — do not map one onto the other. Most v1 endpoints returned no ORTEX ids at all.

Two response-code changes are worth knowing before you port error handling — both are covered in
full on Response & Error Codes:

  • An unrecognised filter value (e.g. an unknown country) was 404 in v1. It is 400 in v1.1.
    404 now means only that an identifier in the path names nothing.
  • An identifier that resolves but has no data was sometimes 404 in v1. It is always 200
    in v1.1, with an empty data array and a meta.emptyReason explaining why.
📘

Field names (2026-10-14)

The four core short measures — short interest, cost to borrow, availability and short score —
now use one set of response field names on every v1.1 surface (stock, bulk and enterprise):
siShares, siPctFreeFloat, siValueUsd; costToBorrowAll, costToBorrowNew;
shortAvailabilityPct, shortAvailabilityShares; shortScore. Three retail endpoints changed
to get there: /stock/…/short/short_interest/ (shortInterestShares → siShares,
shortInterestPcFreeFloat → siPctFreeFloat, shortInterestUsd → siValueUsd),
/stock/…/short/short_score/ (score → shortScore) and /bulk/short/short_interest/
(shortInterestValueUsd → siValueUsd). Cost to borrow and availability were already
consistent. The rows below repeat this per endpoint. Row identity (instrument on stock
responses, the per-row id block on bulk responses) is unchanged.

📘

Identifier fields on retail bulk rows (2026-10-20)

Every retail bulk row (/api/v11/bulk/…) now carries the same identifier fields as an enterprise row,
after the fields it already had: operatingMic, mic, isin, figi, shareClassFigi, mainTid,
tidCurrency and exchangeCountry. Their values come from the same sources as the enterprise rows and
the single-stock instrument block, so a bulk row joins either one on any identifier. Nothing is
renamed or removed: exchangeSymbol and companyName keep their names (the enterprise rows call
them exchange and company), and ticker, ortexTid, ortexSid and ortexCid are unchanged.

📘

Official short interest and split adjustment (2026-10-22)

Official short-interest fields carry an official prefix on every v1.1 surface (stock,
bulk and enterprise), so the exchange-reported figure can never be mistaken for ORTEX's
short-interest estimate: shortInterestShares → officialSiShares, avgDailyVolume →
officialAvgDailyVolume, daysToCover → officialDaysToCover.

Every share- or price-based short measure now takes split_adjusted (default true,
today's share terms; false = the values as they stood on each date). Added on the stock
short_interest, availability, esma_positions, official_short_interest,
short_interest_intraday and short_interest_live endpoints; on /bulk/short_interest/,
/bulk/availability/, /bulk/official_short_interest/ and /bulk/ftd/; and on the
enterprise official_short_interest, esma_positions, short_interest_intraday and ftd
endpoints. Ratios, percentages and USD values are the same either way.

Official short interest was served as reported; it is now split-adjusted by default.
For a listing that split after a report, pass split_adjusted=false to get the figure as
the exchange published it.

Stock endpoints

All of these move from /api/v1/stock/{exchange}/{ticker}/… to
/api/v11/stock/{exchange}/{ticker}/…, and all of them take from_date (now required),
to_date, format, page and page_size.

v1 endpointv1.1 endpointParameter changes beyond the global ones
…/short_interest…/short/short_interest/Response fields renamed (2026-10-14): shortInterestShares → siShares, shortInterestPcFreeFloat → siPctFreeFloat, shortInterestUsd → siValueUsd — the names the bulk and enterprise short-interest rows already use, so a stock series joins a bulk snapshot column for column. No parameter changes.
…/ctb/all and …/ctb/new…/short/ctb/Two endpoints became one. Both the all-loans and new-loans series are returned in every row; drop the second call.
…/dtc…/short/dtc/period unchanged.
…/availability…/short/availability/—
…/short_score…/short/short_score/Response field renamed (2026-10-14): score → shortScore, as on /bulk/short/short_score/ and the enterprise endpoints. No parameter changes.
…/free_float…/reference/free_float/Adds split_adjusted. from_date was already required.
…/market_cap…/reference/market_cap/—
…/stock_splits…/corporate_actions/events/Superseded by a broader endpoint. Adds a types filter — pass types=split for the old behaviour. Also covers dividends, deals, spin-offs, buybacks, index changes and lockup expiries.
…/closing_prices…/reference/closing_prices/from_date now required (v1 defaulted to the latest day); the 30-day cap is gone and results paginate (same per-row price). Adds split_adjusted (default true = v1's values; false = as traded). volume_from_all_exchanges keeps its name but accepts only true/false — anything else is 400 invalidVolumeFromAllExchanges (v1 read anything but false as true). ticker_as_of_date is removed: from_date (falling back to to_date) now decides which listing a reused ticker means. company/currency/volume_from move to the envelope instrument block, a per-row currency (null if the listing has none) and resolved.volume_from_all_exchanges.
…/shares_outstanding…/reference/free_float/Merged into free float — every free-float row carries sharesOutstanding.
…/stock_scores (GET and POST)…/scores/stock_scores/POST is gone: custom weights move from the JSON body to a weights query parameter — {"weights": {"quality": 50, "roa": 100}} becomes ?weights=quality:50,roa:100. Same rules as v1: same metric names (including short_interest_pc_ff), integers 0–100, at most 75 pairs, omitted components count as 0, omitted family keys keep their default, retired scores (quality_ml, momentum_ml, value_ml) rejected, at least one component above 0. Metric names are case-sensitive, as in v1. An invalid weights is 400 invalidWeights with details[].issue (empty, tooMany, retired, unrecognized, outOfRange, duplicate, noComponentWeight). v1 POST's 404 on no data is now an empty 200 with meta.emptyReason; v1 without from_date silently returned [], v1.1 requires it.
…/short_interest_intraday…/short/short_interest_intraday/Selection unchanged: every [startAt, endAt) interval overlapping the UTC date window is returned whole.
…/short_interest_live…/short/short_interest_live/No date parameters. No live record is now an empty 200 with meta.emptyReason, not 404. The row no longer repeats ticker/exchangeSymbol/companyName (see instrument). CSV now available.
/api/v1/stock/official_short_interest…/short/official_short_interest/The listing moves into the path: ticker + country_code become /stock/{exchange}/{ticker}/ (a country code is still accepted as the exchange segment, e.g. /stock/US/AAPL/; an unrecognized segment is 400 invalidExchangeSymbol). settlement_from_date → from_date (required), settlement_to_date → to_date: an omitted to_date now means today (v1 used settlement_from_date, i.e. one settlement day); both bound the settlement date. shortsInterest → shortInterestShares (as reported, not split-adjusted); per-row ticker/companyName/country removed (identity is in instrument). A listing in a market with no official short interest is an empty 200 with meta.emptyReason; an unknown ticker is 404 instrumentNotFound.
…/european_short_interest_filings/open_positions_at and …/positions_in_range and …/total_open_positions…/short/esma_positions/Three endpoints became one. Returns every position open at any point in [from_date, to_date]; the window may span at most one year (400 invalidDateRange, as v1 positions_in_range). open_positions_at?date=D → from_date=D&to_date=D: now also includes positions that started on D, and returns one row per holder (a holder whose position changed on D appears once, with the new position). positions_in_range?from_date=A&to_date=B → the same parameters, but positions held open through the whole window are returned too — filter on positionStartDate/positionEndDate for changes only. total_open_positions → from_date=today&to_date=today, then sum shortInterestShares, sharesValue, shortInterestPcFreeFloat (the charge is now per row, not a flat summary fee). date is no longer accepted. New publishedDate (null for UK). UK listings (FCA aggregate) use an exclusive end date, so a partition ending on D is not open on D. sharesValue no longer changes across a later stock split, and shortInterestShares is split-adjusted to today's terms; a listing without a share count returns null valuation (v1: 0).
…/peer/list…/peers/ranked/Path renamed (peer/list → peers/). No date window: a snapshot as of the latest close. weight renamed num_peers, now limited to 1–1000; an out-of-range value is 400 invalidNumPeers, and weight=0 (which v1 read as 100) is rejected. A v1 weight sent to v1.1 is reported in ignored and does nothing. model is unchanged (lower-case, case-sensitive); a bad value is 400 invalidModel. country is unchanged, but an uncovered code is now 400 invalidCountry (was 404), and resolved.country shows the canonical upper-case code. Too little price history is an empty 200 with meta.emptyReason. The TEST key still gets the top 2 peers. New per-row ortexTid / ortexSid / ortexCid for the peer. Default peer set: without source, v1.1 returns business peers (each company's closest listed business peers) where the company has them and v1's gics set otherwise; resolved.source and each row's peerSource say which. Pass source=gics to keep exactly v1's set.
(none)…/reference/listings/New in v1.1. No v1 equivalent. Every active listing (with a ticker) of the security behind the stock path, primary first: ortexTid, ortexSid, ortexCid, exchangeSymbol, ticker, mic, operatingMic, exchangeName, country, currency, figi, isPrimary. No date window. Use it to reach a secondary listing from an ISIN: an identifier path answers for the main listing only, and each row's ortexTid or exchangeSymbol + ticker pastes back into the stock path. Priced like …/reference/isin_history/.
(none)…/dividends/history/New in v1.1. No v1 equivalent.
(none)…/dividends/forecast/New in v1.1. No v1 equivalent. The listing's next dividend events as ORTEX forecasts them: no date window; num_events 1 to 8, default 4 (400 invalidNumEvents otherwise).
(none)…/dividends/forecast_history/New in v1.1. No v1 equivalent. Past forecasts frozen at horizon (first, d90, d30, d7, d1; default d30; 400 invalidHorizon otherwise), each beside the declared outcome; from_date required, the window is on the forecast ex-date.
(none)/api/v11/reference/dividends/scorecard/New in v1.1. No v1 equivalent. The dividend forecast scorecard by region, frequency and horizon; no parameters beyond paging and format.
(none)…/buybacks/executions/New in v1.1. No v1 equivalent. Returns executed repurchases — what the company filed as bought, per fiscal quarter, with the authorization still outstanding. Not to be confused with the buyback events in …/corporate_actions/, which are announced programmes: an authorization is a statement of intent and is often never fully executed, so the two legitimately disagree. US figures are quarterly; there is no daily US buyback disclosure.
(none)…/short/ftd/New in v1.1. SEC fails to deliver, US listings only (any other listing is 400 instrumentNotCovered). One row per settlement date with ftdShares, price, ftdValueUsd, ftdPctFreeFloat and the imputed publishedDate (settlement dates from the 1st to the 15th: that month's last day; from the 16th: the 15th of the next month). Inside the SEC filing range (2004 to the latest published file) a day with no reported fails is 0; outside it nothing is returned. from_date required; split_adjusted supported (default true). Free of charge.
(none)…/short/threshold_list/New in v1.1. Reg SHO threshold-list status, US listings only (any other listing is 400 instrumentNotCovered). One row per date a threshold list was published (no rows for weekends, holidays or days with no list): onThresholdList, consecutiveDaysOnList (list dates in a row up to that day, counted from before your window; 0 when off) and publishedDate (the list date: lists are published that evening). from_date required. Free of charge.
(none)…/volume/average/New in v1.1. No v1 equivalent. For each date in the window, the shares traded that day and the trailing average daily volume over the last 5 and 10 trading sessions (volume, avgVolume5d, avgVolume10d), as-traded share counts, read from the same stored measure as the enterprise region snapshot. A window is null until the listing has traded enough sessions to fill it. from_date required; no split_adjusted (the measure is always as-traded). Priced like short interest.
(none)…/estimates/consensus/New in v1.1. No v1 equivalent. Analyst consensus EPS, revenue and EBITDA for each forward forecast period, as it stood on each weekday of the window (no rows for weekends): one row per (date, period), every row stating its period on both the fiscal and the calendar basis. A weekday with no revision repeats the previous one's consensus. The window may span at most 366 days (400 invalidDateRange beyond it). Optional period_type (annual, quarterly, calendar_year; case-insensitive; omit for all three, an unknown value is 400 invalidPeriod); resolved.period_type reports the canonical value. from_date required. Priced like short interest.

Bulk endpoints

📘

Bulk identity block (2026-10-20)

Retail bulk responses now carry the documented scope block, the selection you sent plus the snapshot date, e.g. {"index": "US500", "date": "2026-10-19"} or {"universe": "my_watchlist", "date": "2026-10-19"}, as enterprise bulk carries {"region": "US", "date": …}. It replaces the top-level universe: {kind, name} block. The same date is sent in the Ortex-Data-Date header on JSON and CSV responses. scope.date is null only where you omit date and the endpoint serves its latest available data.

v1 endpointv1.1 endpointParameter changes beyond the global ones
/api/v1/index/short_interest/api/v11/bulk/short/short_interest/portfolio_name → universe; new index values. Response field renamed (2026-10-14): shortInterestValueUsd → siValueUsd; siShares and siPctFreeFloat keep their names. shortScore is no longer on this row — it has its own endpoint, /api/v11/bulk/short/short_score/.
/api/v1/index/short_ctb/api/v11/bulk/short/ctb/As above.
/api/v1/index/short_dtc/api/v11/bulk/short/dtc/As above.
/api/v1/index/short_availability/api/v11/bulk/short/availability/As above.
(none)/api/v11/bulk/short/short_score/New in v1.1.
(none)/api/v11/bulk/short/ftd/New in v1.1. SEC fails to deliver for an index or universe on one date: the latest settlement date published on or before date (default today), so there is no look-ahead. US constituents only; an index or universe with none is 400 invalidSelection. Rows are as reported, with the imputed publishedDate (settlement dates from the 1st to the 15th: that month's last day; from the 16th: the 15th of the next month). Free of charge.
(none)/api/v11/bulk/short/threshold_list/New in v1.1. Reg SHO threshold-list status for an index or universe: the latest list dated on or before date (default today). US constituents only; an index or universe with none is 400 invalidSelection. Free of charge.
(none)/api/v11/bulk/short/official_short_interest/New in v1.1. The official short-interest figure in force on date (default today) for every constituent of an index or universe, across every reporting market at once. Markets report on different schedules (twice a month in the US and Canada, weekly in Hong Kong, daily in Australia), so each market resolves to its own latest report published on or before date; a constituent in a market with no official figure, or missing from its market's latest report, has no row. Rows carry the bulk identity block, date (the snapshot date) and the report's own settlementDate, publishedDate, shortInterestShares, avgDailyVolume, daysToCover. Priced like the other bulk short endpoints.
(none)/api/v11/bulk/short/esma_positions/New in v1.1. Every publicly disclosed short position open on date (default today) in the constituents of an index or universe, one row per holder per listing, the UK FCA aggregate included; a disclosure is never shown before it was published. Rows carry the bulk identity block and the disclosure (holder, positionStartDate, positionEndDate, publishedDate, shortInterestPc) but not the per-position valuation, which the stock endpoint serves. Priced like the other bulk short endpoints.
(none)/api/v11/bulk/reference/free_float/New in v1.1. Shares outstanding, free float and free float percentage for every constituent of an index or universe on one date (default: the latest available). Split-adjusted counts, as on the other bulk endpoints. The same daily source as the enterprise region snapshot, so a bulk row equals the enterprise row for the same listing and date; the per-stock series reads the change-point chain and can differ slightly on a day. Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/reference/market_cap/New in v1.1. Market capitalization (local currency and USD) for every constituent of an index or universe on one date (default: the latest available); each row's currency is the quote currency. Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/reference/closing_prices/New in v1.1. Open, high, low, close and volume for every constituent of an index or universe on one date (default today): each stock's last session on or before the date, looking back up to a week, and the row's date says which. Split-adjusted; volume is each listing's own (no volume_from_all_exchanges on the bulk form). Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/scores/stock_scores/New in v1.1. The five ORTEX Stock Scores for every constituent of an index or universe from the computation in effect on date (default today); one row per listing, carrying its company's scores. Takes the same weights override as the per-stock endpoint. Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/volatility/historic/New in v1.1. The six historic-volatility windows for every constituent of an index or universe as of the latest stored reading on or before date (default today). Takes the same adjust_for_split / adjust_for_dividend price-basis selectors as the per-stock series. Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/options/pcr_ts/New in v1.1. Daily put/call ratio (by open interest and by volume) for every optionable US-listed constituent of an index or universe: each stock's latest reading on or before date (default today), looking back at most ten days. US listings only; an index or universe with none is 400 invalidSelection. Priced like the short-interest bulk endpoints.
(none)/api/v11/bulk/volume/average/New in v1.1. The day's volume and trailing 5- and 10-session averages for every constituent of an index or universe on one date (default today; a weekend or holiday resolves back to the last stored session). Rows carry the bulk identity block. Priced like bulk short interest.
(none)/api/v11/bulk/estimates/consensus/New in v1.1. Analyst consensus for every constituent of an index or universe as it stood on one date (default today; resolves back to the latest daily snapshot): one row per (constituent, forward period), with the bulk identity block and both period bases. Optional period_type as on the per-stock endpoint. Priced like bulk short interest.
/api/v1/generics/exchanges/api/v11/reference/exchanges/list/country unchanged, but an unrecognised code is now 400, not 404. Adds format — the list is available as CSV. Filtering to a country other than the US no longer returns the synthetic US / N/A all-US row.

Options endpoints

All of these move from /api/v1/stock/{exchange}/{ticker}/options/… to
/api/v11/stock/{exchange}/{ticker}/options/…. Unlike the rest of the stock endpoints, not all of
them take a date window
— see the table for which ones do.

ticker_as_of_date still works on these endpoints (see the global table above) —
carried over from v1 unchanged.

v1 endpointv1.1 endpointParameter changes beyond the global ones
…/options/expiries…/options/expiries/from_date now required, to_date unchanged — same global change as the other stock endpoints. They bound the expiry window, not the option-data snapshot. as_of_date unchanged: picks the option-contract snapshot the expiry list is read from (defaults to the latest available). v1 silently capped the requested window to 100 days; v1.1 does not cap it. A from_date/to_date span wider than 100 days now returns every expiry in the full span instead of being quietly truncated.
…/options/chain…/options/chain/No date window at all — from_date / to_date are not accepted; sending them is reported in the ignored block rather than doing anything. expiry (required) and as_of_date unchanged.
…/options/sentiment/pcr…/options/pcr/No date window at all, same as chain. days_fwd and as_of_date unchanged.
…/options/pcr/ts…/options/pcr_ts/from_date now required, to_date unchanged — the global change. No as_of_date on this endpoint, in v1 or v1.1: the date range already picks the days returned.
…/options/details/{parameter_name}…/options/details/parameter_name moves from the URL path to a required query parameter. …/options/details/oi becomes …/details/?parameter_name=oi. Same 16 accepted values (oi, volume, last_price, last_size, ask_price, ask_size, bid_price, bid_size, implied_vol, delta, gamma, theta, vega, rho, put_call_oi_ratio, put_call_volume_ratio) — an unrecognized or missing value is now 400 invalidParameterName rather than a 404 on a route nothing matches. Snapshot date (2026-10-21): as_of_date and days_back are replaced by date. Pass date=YYYY-MM-DD for the latest snapshot on or before that day; v1's days_back=N becomes date = today minus N days, worked out on your side. Omitted, today's latest snapshot is served. Neither old name is accepted: a request that sends one lists it under ignored. No date window otherwise.
…/options/moneyness/ts…/options/moneyness_ts/from_date now required (v1 defaulted to 30 days before to_date), to_date unchanged. v1's 5,500-day maximum span is gone. ticker_as_of_date is removed (unlike the other options endpoints): from_date (falling back to to_date) decides which listing a reused ticker means. Rows unchanged.

Fundamentals endpoints

All six move from /api/v1/stock/{exchange}/{ticker}/fundamentals/{category} to
/api/v11/stock/{exchange}/{ticker}/fundamentals/{category}/. None of them take a date window —
period still names one exact reporting period (a fiscal year as YYYY or a fiscal quarter as
YYYYQx), exactly as it did in v1, so every v1 period value keeps working unchanged. v1.1 is
slightly more forgiving about it: the quarter marker may be lower case, so 2024q3 is accepted
where v1 required 2024Q3.

New in v1.1: ask for the latest reported figures without knowing the period. period also
accepts two case-insensitive selectors — LASTY for the most recent fiscal year and LASTQ for
the most recent fiscal quarter — each resolving to reported figures, never estimates
(estimatedValues: false). This replaces the v1 pattern of guessing a period, checking
estimatedValues, and retrying with an earlier one. request.period echoes the selector you
sent and resolved.period reports the period it resolved to, so a saved request stays
reproducible while the response still tells you which period answered it. A company with no
reported figures at all comes back as an empty 200 with meta.emptyReason, not an error.

v1 endpointv1.1 endpointWhat to do
…/fundamentals/summary…/fundamentals/summary/period required in both, and every v1 value still valid (LASTY/LASTQ are additions). The response no longer repeats company/period/category — the company is in the envelope's instrument block, and the period appears in request (as you sent it) and resolved (as served). The figures move to a fundamentals field instead of data.
…/fundamentals/income…/fundamentals/income/Same change as summary.
…/fundamentals/balance…/fundamentals/balance/Same change as summary.
…/fundamentals/ratios…/fundamentals/ratios/Same change as summary.
…/fundamentals/cash…/fundamentals/cash/Same change as summary.
…/fundamentals/valuation…/fundamentals/valuation/Same change as summary.

An unresolvable ticker is now 404 instrumentNotFound (v1 returned an ad hoc "No company found
for ticker and exchange provided" message). A missing or malformed period (not YYYY,
YYYYQx, LASTY or LASTQ) is 400 invalidPeriod (v1 raised a generic parse error with no
error code). v1's
?refresh=/?conditional_refresh= (an internal cache-debugging knob, not a documented
parameter) is not carried over — no v1.1 endpoint has an equivalent.

Events endpoints

The earnings calendar, the macro-event calendar and US government trades. Each also has a per-stock
route where that makes sense.

v1 endpointv1.1 endpointParameter changes beyond the global ones
/api/v1/earnings/api/v11/bulk/events/earnings/ (retail)
/api/v11/enterprise/bulk/events/earnings/ (enterprise)
Retail: from_date / to_date unchanged and optional (a week back, then 30 days on; at most 31 days). Enterprise: a region feed — region (default US), from_date required, to_date defaults to today, at most 31 days; every row carries the full enterprise identity block of the company's listing, and a company with no active listing is left out. Coverage on both is the ORTEX US earnings universe (as v1). The undocumented ticker + exchange_symbol pair is gone — use the per-stock route. Rows add estimatedDate, eventTypeName and ortexCid (retail).
/api/v1/earnings?ticker=…&exchange_symbol=…/api/v11/stock/{exchange}/{ticker}/events/earnings/ (retail)
/api/v11/enterprise/stock/{exchange}/{ticker}/events/earnings/ (enterprise)
Moved to a per-stock route. from_date required, to_date defaults to today — pass a future to_date for scheduled announcements. Enterprise requires both. No 31-day cap.
/api/v1/macro_events/api/v11/market/events/macro_events/ (retail)
/api/v11/enterprise/market/events/macro_events/ (enterprise)
from_date now required; to_date defaults to today; the window is capped at 31 days. country is optional and takes one ISO-2 code the calendar covers — region words (g7, nordic) and comma lists are not accepted; any other code is 400 invalidCountry listing the covered ones (v1 returned an empty list). to_date is now inclusive, and releases dated on weekends are served (v1 dropped both). Dates and times are UTC.
/api/v1/us_government_trades/api/v11/bulk/events/government_trades/ (retail)
/api/v11/enterprise/bulk/events/government_trades/ (enterprise)
Filters are snake_case: transactionType → transaction_type, filerName → filer_name (now a substring match, was exact). party, chamber, branch, committees unchanged. ticker and exchange removed — use the per-stock route below. Retail from_date / to_date optional as in v1. Enterprise: region (default US), from_date required, full identity block per row, unidentifiable trades left out. The window filters on transaction_date as in v1 — filter on publishedAt to avoid look-ahead. Rows add publishedAt, isin, ortexTid, ortexSid, ortexCid. Out of credits is 402 creditsExhausted (v1 answered 403).
(none)/api/v11/stock/{exchange}/{ticker}/events/government_trades/ (retail)
/api/v11/enterprise/stock/{exchange}/{ticker}/events/government_trades/ (enterprise)
New in v1.1. Every disclosed trade in that listing's security. from_date required, to_date defaults to today; enterprise requires both.

Market Intelligence

Four v1 routes become one endpoint, available on both a retail and an enterprise key:

v1 endpointv1.1 endpointWhat to do
/api/v1/market_intelligence/content/api/v11/bulk/market_intelligence/content/ (retail)
/api/v11/enterprise/bulk/market_intelligence/content/ (enterprise)
Every filter carries over unchanged except ticker and exchange, which became the per-stock route below: content_type, pulse_type, severity, theme, topics, q, include.
/api/v1/market_intelligence/content/{id}the same endpoint, with ?id=The detail route is gone. Pass ?id= instead. The response is the standard envelope with one row in data, so your parsing is the same as for the list — and an unknown id is an empty result, not a 404.
/api/v1/stock/{ticker}/market_intelligence/api/v11/stock/{exchange}/{ticker}/market_intelligence/content/ (retail)
/api/v11/enterprise/stock/{exchange}/{ticker}/market_intelligence/content/ (enterprise)
The listing moves into the standard path: the exchange segment before the ticker (or a scheme such as isin/{ISIN}), as on every per-instrument endpoint. from_date is required (retail to_date defaults to today; enterprise requires both) and bounds the publication date. The rows are the same, matched against both the primary instrument and instruments mentioned in the body, and now paginated rather than capped at 50. content_type, pulse_type, severity, theme, topics, q and include apply as on the feed.
/api/v1/market_intelligence/rssunchanged for nowThe RSS feed is not moving to v1.1. It is XML rather than JSON, so it cannot carry the response envelope, and it authenticates with ?authid= because feed readers cannot send headers. It will move to a permanent, unversioned URL — announced before the v1 endpoints are withdrawn. Your existing feed subscription keeps working.

Two things worth knowing about the content feed specifically:

  • The default row is smaller than v1's. Both versions return {id, contentType, ticker, exchange, publishedAt, topics} by default and put headline, body, provenance, pulseType, theme and identifiers behind ?include=. That has not changed — but if you were relying on the v1 default and have never sent include, check that you are asking for the fields you read.
  • Rows now carry ortexTid, ortexSid, ortexCid and isin by default (v1 carried ortex_sid and isin). All four are null for cross-company content such as weekly digests; isin is the instrument's current ISIN. The v1 detail route returned every optional field; with ?id=, ask for them with ?include=headline,body,provenance,pulse_type,theme,identifiers.
  • severity filters on a field that is not returned. It is internal priority, published on no row in either version. v1.1 keeps the filter so nothing is lost, and echoes your value back in the envelope's request block so you can confirm what was applied.

Enterprise endpoints

v1 endpointv1.1 endpointParameter changes beyond the global ones
/api/v1/short_interest/short_data//api/v11/enterprise/bulk/short/short_interest/as_is → split_adjusted (inverted); format no longer required.
/api/v1/short_interest/ctb/all/ and /ctb/new//api/v11/enterprise/bulk/short/ctb/Two endpoints became one, as on the stock side.
/api/v1/short_interest/availability//api/v11/enterprise/bulk/short/availability/Adds split_adjusted.
/api/v1/short_interest/short_score//api/v11/enterprise/bulk/short/short_score/—
/api/v1/short_interest/utilization_delta//api/v11/enterprise/bulk/short/utilization_delta/Same dataset on the v1.1 envelope; rows carry ortexTid / ortexSid / ortexCid.
/api/v1/market_intelligence/stock_reports/, /{ticker}/ and /{ticker}/exists//api/v11/enterprise/bulk/market_intelligence/stock_reports/Three endpoints became two. The list is this feed; the detail route is /api/v11/enterprise/stock/{exchange}/{ticker}/market_intelligence/stock_reports/ (any listing of the company), which also answers the exists probe: no report means 200 with an empty data array, not 404. Rows carry ortexCid only (reports are keyed on the company); v1's top-level ortex_sid and isin are not returned — the primary listing's ISIN is in identifiers.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/short/…New in v1.1 — per-instrument timeseries on an enterprise key, for short interest, CTB, availability and short score. Both from_date and to_date are required.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/reference/free_float/ and …/reference/market_cap/New in v1.1. Both from_date and to_date required.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/reference/listings/New in v1.1. The retail listings endpoint on an enterprise key: every active listing of the security behind the stock path. No date window. A region-restricted key sees only the listings in its regions.
/api/v1/short_interest/daily/data/ and /daily/short_history//api/v11/enterprise/bulk/short/short_interest_full/New endpoint in v1.1: the standard short-interest snapshot plus shares on loan, utilization and the cost-to-borrow statistics. as_is → split_adjusted (inverted). security_float removed (v1.1 always uses the best-available free float, v1's default); testing and help removed. Columns renamed: estimatedSiShares → siShares, estimatedPcFreeFloat → siPctFreeFloat (bounds likewise), onLoanPcFreeFloat → sharesOnLoanPctFreeFloat; costToBorrowAverage/Max/Min/StDev, sharesOnLoan and utilizationPc keep their names. Rows gain the identity block (ortexTid/ortexSid/ortexCid, FIGI), siValueUsd, daysToCover, splitRatio, updatedAt. Lending figures are per security and repeat on every listing of it. Korean tickers lose the leading A. No X-Data-Complete header: an incomplete day returns no rows. A listing with lending data but no estimate that day is included with null si* columns. Decimal columns keep v1's six places.
/api/v1/short_interest/daily/estimates/, /daily/short_data/ and /daily/estimates_with_split//api/v11/enterprise/bulk/short/short_interest/as_is → split_adjusted (inverted); security_float, testing, help removed. Columns renamed as in the row above; splitRatio unchanged. cusip is no longer returned (licensed identifier). Korean tickers lose the leading A.
/api/v1/short_interest/daily/short_history/D9C5E8the custom v1.1 endpoint for that clientClient-specific. as_is → split_adjusted (inverted). estimatedSiShares → siShares, estimatedPcFreeFloat → siPctFreeFloat (bounds likewise), currencyIso3 → tidCurrency, countryIso2 → exchangeCountry.
/api/v1/short_interest/daily/short_data/D9C5E8 and /short_data/D9C5E8the custom v1.1 endpoint for that clientClient-specific. shortInterestValueUsd → siValueUsd; as_is → split_adjusted (inverted); other column names unchanged.
/api/v1/short_interest/daily/short_estimates/A3F7B2(not ported)Client-specific, no calls in 90 days; that client's v1.1 data is delivered as files. Every column it returned is available from /api/v11/enterprise/bulk/short/short_interest_full/: estimatedSiShares → siShares, estimatedPcFreeFloat → siPctFreeFloat (bounds likewise), onLoanPcFreeFloat → sharesOnLoanPctFreeFloat, currencyIso3 → tidCurrency, countryIso2 → exchangeCountry.
/api/v1/free_float/ and /api/v1/shares_outstanding//api/v11/enterprise/bulk/reference/free_float/Two endpoints became one: each row has sharesOutstanding, freeFloatShares, freeFloatPct (was freeFloatPctOfOutstanding; 4 dp). Share counts are as they stood on the date; no split_adjusted. A date with no published daily dataset (weekend or holiday) is an empty 200 with meta.emptyReason, not a roll-back. Rows gain exchange and the full id block (ortexTid/ortexSid/ortexCid, isin).
/api/v1/market_cap//api/v11/enterprise/bulk/reference/market_cap/Same region / date. Each listing reports its latest market cap on or before the date, however old (as v1). Empty 200 on a date with no published daily dataset. Rows gain exchange and the full id block. No split_adjusted.
(none)/api/v11/enterprise/bulk/reference/closing_prices/New in v1.1. region + date OHLCV snapshot: each listing's last close on or before date (up to 7 days back), the row dated to that close. Point-in-time universe: a past date includes listings delisted since (last recorded identifiers; isin null where no active ISIN remains). split_adjusted supported.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/reference/closing_prices/New in v1.1. Both from_date and to_date required; split_adjusted, volume_from_all_exchanges.
/api/v1/short_interest/short_data_intraday//api/v11/enterprise/bulk/short/short_interest_intraday/at must be a past ISO 8601 timestamp (no offset = UTC; omit for now) — malformed, impossible or future values are 400 invalidAt. cost_to_borrow is now a strict true/false — a bare ?cost_to_borrow no longer enables it (400 invalidCostToBorrow). market_cap, market_cap_min, market_cap_max unchanged, but invalid values (and min > max) are 400 invalidMarketCap. region is accepted but only US (the default); anything else, including ALL, is 400 invalidRegion. page_size at most 1000 (default 100), as v1. date is not accepted — use at. Rows are enriched from the daily close on the UTC date of at.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/short/short_interest_intraday/New in v1.1 — the per-instrument intraday interval series. Both from_date and to_date required.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/short/official_short_interest/ and /short/esma_positions/New in v1.1 — enterprise versions of the stock endpoints above; same rows, uncharged. Both from_date and to_date required.
(none)/api/v11/enterprise/bulk/short/official_short_interest/New in v1.1. region + date: each reporting market's latest official report published on or before date (a report is never shown before its publication date), one row per listing with the id block, settlementDate and publishedDate.
(none)/api/v11/enterprise/bulk/short/esma_positions/New in v1.1. region + date: every disclosed position open and already published on date, one row per holder per listing (the holder's latest position), with the id block and publishedDate. Listings are selected by their exchange's country. Carries the disclosure (holder, dates, % of issued capital), not the per-position value or shares, which the per-stock endpoints serve. The default region US has no such disclosures — pass a European region. UK rows come from the FCA aggregate (exclusive end date, no publication date).
(none)/api/v11/enterprise/bulk/short/ftd/New in v1.1. region + date: SEC fails to deliver for every US listing on the latest settlement date published on or before date, with the identity block and the imputed publishedDate (settlement dates from the 1st to the 15th: that month's last day; from the 16th: the 15th of the next month). region=US and region=ALL return the same rows; a region without the US is 400 invalidRegion. Point-in-time universe.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/short/ftd/New in v1.1 — the enterprise version of the stock …/ftd/ endpoint; same rows, uncharged. Both from_date and to_date required.
(none)/api/v11/enterprise/bulk/short/threshold_list/New in v1.1. region + date: Reg SHO threshold-list status for every US listing on the latest list dated on or before date, with the identity block. region=US and region=ALL return the same rows; a region without the US is 400 invalidRegion. Point-in-time universe.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/short/threshold_list/New in v1.1 — the enterprise version of the stock …/threshold_list/ endpoint; same rows, uncharged. Both from_date and to_date required.
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/scores/stock_scores/New in v1.1. Uncharged version of the stock endpoint; from_date and to_date both required; takes weights.
(none)/api/v11/enterprise/bulk/scores/stock_scores/New in v1.1. region + date: one row per company with an active listing in the region, from the score computation in effect on date. Each row's date is the computation date; scope.date echoes the requested date. Rows carry ortexCid only. Region membership is today's active listings. Scores are computed each weekday around 14:00 UTC. Takes weights.
/api/v1/index_rebalance/index_list/api/v11/enterprise/reference/index_rebalance/indices/No parameters. Rows are now objects (indexName, indexFamily, indexProvider, flagship) inside the envelope instead of a bare array of names. Use indexName values in indices below.
/api/v1/index_rebalance/overview/api/v11/enterprise/bulk/index_rebalance/overview/start_date → from_date (still required), end_date → to_date (still defaults to the earlier of today and from_date + 3 months; reported in resolved / defaultedFields). indices unchanged (comma-separated index names); an unknown name is 400 invalidSelection (v1 silently dropped it). An empty result is 200 with meta.emptyReason (v1: 404). trackingFactor removed (never populated); status added; rankDate added (the provider's ranking cut-off, the date whose closes decide the review; null when not known). Trial access is controlled by ViewGroups and key restrictions (no v1-style redaction).
/api/v1/index_rebalance/detail/api/v11/enterprise/bulk/index_rebalance/detail/as_of_date now optional, defaulting to today (the latest forecast); range 2022-01-01 to today unchanged. indices still required (missing is 400 invalidSelection); an unknown name is 404 indexNotFound. Response flattened: one row per security with the review fields repeated; impact.* as impactUsd/impactShares/impactAdv; additional_dates as preliminaryAnnouncementW1/W2/finalAnnouncement. Key renames: marketCapUSD → marketCapUsd, impactUSD → impactUsd, impactADV → impactAdv. Now paginated and available as CSV. New per row: ortexTid/ortexSid/ortexCid, calculatedAt (when the forecast row was produced) and rankDate (the review's ranking cut-off; null for corporate-action events and when not known). No v1-style trial row-sampling.
/api/v1/index_rebalance/help(removed)HTML help page; the endpoint reference pages replace it.
(none)/api/v11/enterprise/bulk/buybacks/executions/New in v1.1. Region-wide executed buybacks: region (default US), from_date required, to_date defaults to today; the window is on the fiscal-quarter period_date (filter on publishedAt for point-in-time), at most 366 days (longer is 400 invalidDateRange). Rows are the stock …/buybacks/ row plus the enterprise identity block. Figures not matched to a listing are not included; identity columns are the listing's current values.
(none)/api/v11/enterprise/bulk/dividends/history/New in v1.1. Region-wide dividend events: region, from_date required, to_date optional; the window is on ex_date, at most 366 days. Rows are the stock …/dividends/ row plus the identity block. Delisted listings included, with their current identity; dividends not matched to a listing are not included.
(none)/api/v11/enterprise/bulk/dividends/forecasts/New in v1.1. Region-wide current dividend forecasts: region (default US), from_date required, to_date defaults to today; the window is on the forecast ex-date, at most 366 days. Rows are the stock …/dividends/forecast/ row plus the identity block.
(none)/api/v11/enterprise/bulk/dividends/declarations/New in v1.1. Region-wide dividend declarations, one row per source document: region, from_date required, to_date defaults to today; the window is on announcedAt (UTC days), at most 366 days. Declarations not matched to a listing are not included.
(none)/api/v11/enterprise/bulk/dividends/forecast_vintage/New in v1.1. One complete forecast run for a region: region + date (default today) selects the newest finished run on or before date; each row's forecastAsOf names it. Vintages start with the ORTEX forecast service.
(none)/api/v11/enterprise/reference/dividends/scorecard/New in v1.1. The dividend forecast scorecard, uncharged. A region-limited key is rejected (403 restrictedRegion).
(none)/api/v11/enterprise/stock/{exchange}/{ticker}/dividends/forecast/ and …/dividends/forecast_history/New in v1.1. Enterprise per-stock versions of the retail forecast endpoints; the history requires both from_date and to_date.
…/stock_splits (region use)/api/v11/enterprise/bulk/corporate_actions/events/New in v1.1. Region-wide corporate-action feed: region, from_date required, to_date optional, types as on the stock endpoint (omit for every family; an omitted types appears as null in scope and resolved); at most 366 days. Company events (deals, spin-offs, buyback programmes, index changes, lock-up expiries) appear once per participating company, against its primary listing, only when that primary listing is in the region.
/v1/activist_filings (enterprise use)/api/v11/enterprise/bulk/activist/filings/New in v1.1. Region-restricted 13D/G feed: region, from_date required (optional on the retail feed), to_date optional, at most 366 days; filing_type, filer_kind as on retail, echoed in canonical spelling in scope / resolved; no ticker / filer_name filters. Filings not matched to a listing are not included.
…/options/pcr/ts (region use)/api/v11/enterprise/bulk/options/pcr_ts/New in v1.1. One date across a region, US-listed options only: region (default US; a region with no US listings is 400 invalidRegion), date (defaults to today). Each listing's own latest reading on or before date (10-day lookback); each row states its own date. from_date / to_date are 400 invalidDateRange.
(none)/api/v11/enterprise/bulk/altdata/{dataset}/ and /api/v11/enterprise/bulk/altdata/{dataset}_published/New in v1.1. Region-wide bulk Alt Data for 28 company-level datasets (every dataset with an enterprise per-instrument route). {dataset}/ is a snapshot: region (default US) + date (default today in UTC), returning each company's latest reading per series and entity published by the end of date (UTC) — date is the knowledge date, not the period; a reading older than its series' frequency bound (e.g. 400 days for monthly) is no longer carried forward. {dataset}/published/ returns every reading published in from_date (required) … to_date (default today), at most 366 days; a longer window is 400 invalidDateRange. A date-restricted key is held to its range on the publication date (a snapshot outside it is 403 restrictedDateRange; a window is clipped), so periodDate can precede the range. Optional filters market, series, source as on the per-instrument route. Rows carry company + ortexCid; the region follows the exchange of the listing each reading is filed against.
(none)/api/v11/enterprise/logos/token/New in v1.1. POST from your server with your enterprise key; returns a one-hour token your pages put on ORTEX logo and portrait image URLs (?t=). Optional ttl (60-3600 s). See Logos & Portraits.
/v1/activist_filings/api/v11/bulk/activist/filings/Same dataset, shipped on both versions together. Filters are snake_case on v1.1: filingType → filing_type, filerName → filer_name, filerKind → filer_kind; from_date, to_date unchanged. ticker is removed: one company's filings are /api/v11/stock/{exchange}/{ticker}/activist/filings/ (enterprise: /api/v11/enterprise/stock/{exchange}/{ticker}/activist/filings/). An unrecognized filter value is a 400 on v1.1 (v1 returns it empty).
/v1/activist_filings/filer/api/v11/bulk/activist/filer_history/Identity params unchanged (filer_cik / filer_name); an unknown filer is 404 filerNotFound on v1.1. Activist rows (feed and filer history) now carry ortexTid, ortexSid and ortexCid — null when the filing's subject was not resolved to a listing — and filing_type=Schedule 13D matches the 13D rows.
(none)/api/v11/stock/{exchange_symbol}/{ticker}/altdata/{dataset}/New in v1.1 — nothing to migrate. Eighteen per-dataset Alt Data endpoints (vehicle_registrations, clinical_trials, consumer_credit, bank_fundamentals, share_buybacks, medical_devices, nuclear_output, monthly_revenue, air_traffic, insurance_premiums, telecom_subscribers, prescription_volumes, fda_regulatory_events, oil_gas_production, mine_production, power_generation, mortgage_originations, futures_broker_financials). They serve the same data as the existing /altdata/observations/ endpoint, selected by dataset rather than by a single series slug. Filters: market, series, source (all optional, all combinable).
(none)/api/v11/market/altdata/{dataset}/New in v1.1 — nothing to migrate, and no v1 equivalent exists. Ten market-level Alt Data datasets (labor_market, inflation, economic_output, vehicle_registrations, healthcare_enrollment, freight_capacity, air_traffic, gaming_revenue, visitor_arrivals, treasury_cash). These describe a country rather than a company, so there is no ticker in the path and no identity block in the envelope — see The v1.1 response envelope. from_date is required.
(none)/api/v11/stock/{exchange_symbol}/{ticker}/altdata/drug_prices/ and …/altdata/gaming_revenue/New in v1.1 — nothing to migrate. Two more per-dataset Alt Data endpoints, on the same contract as the others (market, series, source filters, two clocks per row). drug_prices: CMS's weekly National Average Drug Acquisition Cost per manufacturer (labeler) — median generic price change week on week, counts of price increases and decreases, products priced. gaming_revenue: online sportsbook and online casino revenue by operator as four US state regulators publish it (NJ, PA, NY, MA; market is the state, US-NJ and so on; New York weekly, the rest monthly).
(none)/api/v11/market/altdata/drug_prices/ and /api/v11/market/altdata/degree_days/New in v1.1 — nothing to migrate, and no v1 equivalent exists. Two more market-level Alt Data datasets. drug_prices: ORTEX's weekly US generic drug price index from the same CMS survey (chained index level, week-on-week change, all-manufacturer median, increase and decrease counts, brand price change). degree_days: NOAA Climate Prediction Center's population-weighted heating and cooling degree days by state, census region and nation, weekly and monthly, with departures from normal and from a year earlier (entityRef is the state or region). from_date is required.
/api/v11/stock/{exchange_symbol}/{ticker}/altdata/observations/(unchanged)Still supported, but one behaviour changed: a series slug that is published by more than one source now returns 400 invalidSeries with issue: "ambiguous" instead of silently resolving to whichever source the database returned first. Add the new optional source parameter to disambiguate. Affects only slugs several publishers share (unemployment_rate, cpi_annual_rate, cpi_all_items) — all of which are market-level series that this per-instrument endpoint returned empty for anyway.

Not yet migrated

Every other endpoint in the v1 reference now has a v1.1 equivalent. Two do not yet — keep calling v1
for them:

  • /api/v1/market_intelligence/rss — see the Market Intelligence section above. It is not staying on
    v1 permanently either; it moves to an unversioned URL, announced separately.
  • /api/v1/insider_transactions and /api/v1/insider_transactions/insider — the v1.1 equivalents are
    not yet published.

This page is updated as each endpoint moves, so an endpoint listed here today may have a row in
the tables above by the time you next read it.