When we first released S&P 500 historical constituents, you sent us plenty of questions — the original output was awkward to work with. So we reworked it into a much simpler, flat format, and that format has been the standard ever since. Today the S&P 500 membership log tracks more than 800 tickers and updates daily.

The data lives in the HistoricalTickerComponents section of the Fundamental Data API. Each entry gives you:

  • Code and Name — the ticker symbol and company name.
  • StartDate and EndDate — the dates the ticker joined and left the index (EndDate is null while it is still a member).
  • IsActiveNow — 1 if the ticker is a current member of the S&P 500, 0 otherwise.
  • IsDelisted — 1 if the security has since been delisted, 0 otherwise.

A quick example — one current member, one former member and one delisted name:

https://eodhd.com/api/fundamentals/GSPC.INDX?api_token={YOUR_API_TOKEN}&fmt=json&filter=HistoricalTickerComponents
{
  "0": {
    "Code": "A",
    "Name": "Agilent Technologies Inc",
    "StartDate": "2000-06-05",
    "EndDate": null,
    "IsActiveNow": 1,
    "IsDelisted": 0
  },
  "1": {
    "Code": "AAL",
    "Name": "American Airlines Group",
    "StartDate": "2015-03-23",
    "EndDate": "2024-09-23",
    "IsActiveNow": 0,
    "IsDelisted": 0
  },
  "2": {
    "Code": "LEH",
    "Name": "Lehman Brothers Holdings Inc",
    "StartDate": null,
    "EndDate": "2008-09-16",
    "IsActiveNow": 0,
    "IsDelisted": 1
  }
}

That flat log is the who-and-when of the index. For point-in-time snapshots, the full field reference and coverage across the wider S&P family (400, 600 and 100), see our complete S&P 500 historical constituents guide and the Fundamentals API documentation. And if you also need historical index weights, the premium Indices Historical Constituents Data API on the EODHD Marketplace adds daily weighted snapshots.