Returns the dated changes to the members of an index (the S&P 500, the NASDAQ 100 or the Dow Jones Industrial Average): the company added, the company removed, the kind of change (an addition, a removal or a replacement of one by the other) and its reason, such as an acquisition or a change in market capitalization.

These are the changes get_index_constituents(date=...) undoes to reconstruct the members on a past date. They also show the turnover of an index and the companies that left it, which today’s members leave out (survivorship bias).

Also known as: index additions and deletions, index rebalancing history, S&P 500 changes.

Index Constituent Changes in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_index_constituent_changes as shown below.

from financetoolkit import Discovery

discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")

changes = discovery.get_index_constituent_changes(
    "Dow Jones", start_date="2020-01-01", end_date="2026-10-31"
)

changes[["Added Ticker", "Removed Ticker", "Change Type"]]

Or, after setting up the Finance Toolkit MCP, ask:

Which companies joined and left the Dow Jones Industrial Average from 2020 to October 2026?

Which returns:

Date Added Ticker Removed Ticker Change Type
2020-08-31 nan PFE Removal
2020-08-31 AMGN nan Addition
2020-08-31 nan XOM Removal
2020-08-31 HON nan Addition
2020-08-31 nan RTX Removal
2020-08-31 CRM nan Addition
2024-02-26 AMZN WBA Replacement
2024-11-08 SHW DOW Replacement
2024-11-08 NVDA INTC Replacement
2026-06-29 GOOGL VZ Replacement

Parameters

get_index_constituent_changes accepts the following parameters.

ParameterTypeDescriptionExample
indexstr“S&P 500”, “NASDAQ 100” or “Dow Jones”. Defaults to “S&P 500”."S&P 500"
start_datestr | NoneThe first date (YYYY-MM-DD) to include. Defaults to None, the first change recorded."2021-01-01"
end_datestr | NoneThe last date (YYYY-MM-DD) to include. Defaults to None, the latest change."2025-12-31"
Share