{"id":454,"date":"2019-09-29T08:58:30","date_gmt":"2019-09-29T07:58:30","guid":{"rendered":"https:\/\/eodhd.com\/blog\/?p=454"},"modified":"2026-08-19T13:00:27","modified_gmt":"2026-08-19T11:00:27","slug":"sp-500-historical-constituents-data","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data","title":{"rendered":"S&amp;P 500 Historical Constituents Data"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>S&amp;P 500<\/strong> (ticker GSPC.INDX, also quoted as $SPX) tracks 500 of the largest companies listed on US exchanges and is the most-watched equity benchmark in the world. But the index you see today is not the index of five, ten or twenty years ago \u2014 constituents are added and removed continually. If you backtest a strategy against <em>today&#8217;s<\/em> members, the companies that were dropped along the way simply vanish from your dataset. That is <strong>survivorship bias<\/strong>, and it quietly inflates almost every naive historical study of the index.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EODHD&#8217;s <strong>S&amp;P 500 historical constituents data<\/strong> fixes this. We track every membership change, so you can reconstruct the index as it stood on any date from April 2012 onward and run clean, survivorship-bias-free research \u2014 all from a single <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds#h-index-constituents\">Fundamental Data API<\/a> call, no extra add-on required.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What you get<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Query the index ticker in the INDX exchange \u2014 for the S&amp;P 500 that is GSPC.INDX \u2014 and the response returns up to three sections:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Components<\/strong> \u2014 the current constituents, each with sector, industry and index weight.<\/li>\n\n\n\n<li><strong>HistoricalTickerComponents<\/strong> \u2014 the full membership log: every ticker that has been in the index, with the dates it joined and left.<\/li>\n\n\n\n<li><strong>HistoricalComponents<\/strong> \u2014 point-in-time snapshots of the exact index membership on each historical change date (added with the historical=1 parameter).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Current constituents<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Add the filter parameter to request a single section. The Components section returns the 503 current members with their live index weights:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/eodhd.com\/api\/fundamentals\/GSPC.INDX?api_token={YOUR_API_TOKEN}&amp;fmt=json&amp;filter=Components<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n  \"0\": {\n    \"Code\": \"NVDA\",\n    \"Exchange\": \"US\",\n    \"Name\": \"NVIDIA Corporation\",\n    \"Sector\": \"Technology\",\n    \"Industry\": \"Semiconductors\",\n    \"Weight\": 0.0793\n  },\n  \"1\": {\n    \"Code\": \"AAPL\",\n    \"Exchange\": \"US\",\n    \"Name\": \"Apple Inc.\",\n    \"Sector\": \"Technology\",\n    \"Industry\": \"Consumer Electronics\",\n    \"Weight\": 0.0674\n  }\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Full membership history<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The HistoricalTickerComponents section is the heart of the dataset \u2014 every ticker that has been in the index since our change history begins in April 2012, with the date it joined, the date it left, and whether it has since been delisted. Join dates for long-standing members reach much further back \u2014 the oldest goes to 1957 \u2014 but companies that left before 2012 are not in the dataset. Over 800 tickers are tracked for the S&amp;P 500 alone.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/eodhd.com\/api\/fundamentals\/GSPC.INDX?api_token={YOUR_API_TOKEN}&amp;fmt=json&amp;filter=HistoricalTickerComponents<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n  \"0\": {\n    \"Code\": \"A\",\n    \"Name\": \"Agilent Technologies Inc\",\n    \"StartDate\": \"2000-06-05\",\n    \"EndDate\": null,\n    \"IsActiveNow\": 1,\n    \"IsDelisted\": 0\n  },\n  \"1\": {\n    \"Code\": \"AAL\",\n    \"Name\": \"American Airlines Group\",\n    \"StartDate\": \"2015-03-23\",\n    \"EndDate\": \"2024-09-23\",\n    \"IsActiveNow\": 0,\n    \"IsDelisted\": 0\n  },\n  \"2\": {\n    \"Code\": \"LEH\",\n    \"Name\": \"Lehman Brothers Holdings Inc\",\n    \"StartDate\": null,\n    \"EndDate\": \"2008-09-16\",\n    \"IsActiveNow\": 0,\n    \"IsDelisted\": 1\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Each entry carries these fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Code<\/strong> and <strong>Name<\/strong> \u2014 the ticker symbol and company name.<\/li>\n\n\n\n<li><strong>StartDate<\/strong> \u2014 the date the ticker joined the index.<\/li>\n\n\n\n<li><strong>EndDate<\/strong> \u2014 the date it was removed, or null if it is still a member.<\/li>\n\n\n\n<li><strong>IsActiveNow<\/strong> \u2014 1 if it is a current member, 0 otherwise.<\/li>\n\n\n\n<li><strong>IsDelisted<\/strong> \u2014 1 if the security has since been delisted, 0 otherwise.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Lehman Brothers row above is exactly the kind of record survivorship-biased datasets throw away. It is also the single record we hold from 2008 \u2014 the rest of the change history starts in April 2012, so the crisis years themselves are not covered.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Point-in-time snapshots<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Need the full membership as it stood on a given day rather than a join\/leave log? Add historical=1 with a from and to date range and the response includes a HistoricalComponents section \u2014 a snapshot of the index members on each date within the range on which the membership changed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/eodhd.com\/api\/fundamentals\/GSPC.INDX?historical=1&amp;from=2015-01-01&amp;to=2015-12-31&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n  \"2015-06-30\": {\n    \"0\": {\n      \"Date\": \"2015-06-30\",\n      \"Code\": \"AIZ\",\n      \"Exchange\": \"US\",\n      \"Name\": \"Assurant, Inc.\",\n      \"Sector\": \"Financial Services\",\n      \"Industry\": \"Insurance - Property &amp; Casualty\"\n    },\n    \"1\": {\n      \"Date\": \"2015-06-30\",\n      \"Code\": \"MNST\",\n      \"Exchange\": \"US\",\n      \"Name\": \"Monster Beverage Corp\",\n      \"Sector\": \"Consumer Defensive\",\n      \"Industry\": \"Beverages - Non-Alcoholic\"\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Coverage and history depth<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For the S&amp;P 500 our continuous record of membership changes begins on <strong>4 April 2012<\/strong>, so point-in-time reconstruction from that date onward is free of survivorship bias. One earlier record exists \u2014 Lehman Brothers, removed on 16 September 2008 \u2014 but it stands alone: there are no other departures logged between 2008 and 2012, so that period cannot be reconstructed. In total more than 800 tickers are tracked, against 503 members today.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same membership history is also available for the wider S&amp;P family \u2014 S&amp;P MidCap 400 (MID.INDX), S&amp;P SmallCap 600 (SML.INDX) and S&amp;P 100 (OEX.INDX) \u2014 while current constituents are provided for all major indices worldwide.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Those indices start on the same footing: the S&amp;P MidCap 400 and SmallCap 600 records begin in April 2012 as well, the S&amp;P 100 in January 2013. Point-in-time snapshots are offered for the S&amp;P 500 only.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One caveat worth planning around.<\/strong> Snapshots are returned for dates as far back as 1991, and a request for an early year succeeds without any warning \u2014 but those snapshots are thin, because a company that left the index before our change history begins can never appear in one. A snapshot from 1991 lists 280 names, one from 2008 lists 436, and the count only reaches 495 in late 2015 \u2014 against roughly 500 real members throughout. Treat anything before 2012 as indicative, and expect the 2012-2015 range to run a handful of names short.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Need historical index weights? The Indices API on Marketplace<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Fundamental Data API tells you <em>who<\/em> was in the index and <em>when<\/em>. If you also need <em>how much<\/em> each name weighed on every date, our premium <a href=\"https:\/\/eodhd.com\/marketplace\/unicornbay\/spglobal\">Indices Historical Constituents Data API<\/a> on the EODHD Marketplace delivers daily weighted snapshots \u2014 up to 12 years of history across the S&amp;P 500, 400, 100 and 600, the Dow Jones and 20 key industry indices \u2014 ideal for accurate index replication, factor research and attribution.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Get started<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">S&amp;P 500 historical constituents are included with any plan that has the Fundamental Data API. Grab your <a href=\"https:\/\/eodhd.com\/register\">free API key<\/a>, then head to the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds#h-index-constituents\">Fundamentals API documentation<\/a> for the full field reference and more examples.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>The S&amp;P 500 (ticker GSPC.INDX, also quoted as $SPX) tracks 500 of the largest companies listed on US exchanges and is the most-watched equity benchmark in the world. But the index you see today is not the index of five, ten or twenty years ago \u2014 constituents are added and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":462,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[66,64,65,67],"class_list":["post-454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","tag-gspc","tag-historical-constituents","tag-sp500","tag-stock-indices","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.5 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>S&amp;P 500 Historical Constituents Data | EODHD APIs Blog<\/title>\n<meta name=\"description\" content=\"S&amp;P 500 historical constituents via the EODHD Fundamentals API: 800+ tickers, join\/leave dates and point-in-time snapshots for survivorship-bias-free backtests.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"S&amp;P 500 Historical Constituents Data\" \/>\n<meta property=\"og:description\" content=\"The S&amp;P 500 (ticker GSPC.INDX, also quoted as $SPX) tracks 500 of the largest companies listed on US exchanges and is the most-watched equity\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\" \/>\n<meta property=\"og:site_name\" content=\"Financial Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-29T07:58:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-19T11:00:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"437\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"EOD Historical Data\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:site\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"EOD Historical Data\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\"},\"author\":{\"name\":\"EOD Historical Data\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/8d61b703d9ac7e99c00979e9eca98b4d\"},\"headline\":\"S&amp;P 500 Historical Constituents Data\",\"datePublished\":\"2019-09-29T07:58:30+00:00\",\"dateModified\":\"2026-08-19T11:00:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\"},\"wordCount\":808,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg\",\"keywords\":[\"gspc\",\"historical constituents\",\"sp500\",\"stock indices\"],\"articleSection\":[\"Announcement\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\",\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\",\"name\":\"S&amp;P 500 Historical Constituents Data | EODHD APIs Blog\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg\",\"datePublished\":\"2019-09-29T07:58:30+00:00\",\"dateModified\":\"2026-08-19T11:00:27+00:00\",\"description\":\"S&P 500 historical constituents via the EODHD Fundamentals API: 800+ tickers, join\/leave dates and point-in-time snapshots for survivorship-bias-free backtests.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage\",\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg\",\"width\":800,\"height\":437},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"S&amp;P 500 Historical Constituents Data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/\",\"name\":\"Financial APIs Blog | EODHD\",\"description\":\"Financial Data APIs. Fundamental, End of Day (EOD), Real-Time\/Live.\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#organization\"},\"alternateName\":\"EODHD Financial Data APIs Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-apis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eodhistoricaldata\",\"https:\/\/x.com\/EOD_data\",\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\",\"https:\/\/eod-historical-data.medium.com\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/8d61b703d9ac7e99c00979e9eca98b4d\",\"name\":\"EOD Historical Data\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"caption\":\"EOD Historical Data\"},\"sameAs\":[\"https:\/\/eodhistoricaldata.com\"],\"url\":\"https:\/\/eodhd.com\/financial-apis-blog\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"S&amp;P 500 Historical Constituents Data | EODHD APIs Blog","description":"S&P 500 historical constituents via the EODHD Fundamentals API: 800+ tickers, join\/leave dates and point-in-time snapshots for survivorship-bias-free backtests.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data","og_locale":"en_US","og_type":"article","og_title":"S&amp;P 500 Historical Constituents Data","og_description":"The S&amp;P 500 (ticker GSPC.INDX, also quoted as $SPX) tracks 500 of the largest companies listed on US exchanges and is the most-watched equity","og_url":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data","og_site_name":"Financial Blog","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2019-09-29T07:58:30+00:00","article_modified_time":"2026-08-19T11:00:27+00:00","og_image":[{"width":800,"height":437,"url":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","type":"image\/jpeg"}],"author":"EOD Historical Data","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"EOD Historical Data","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data"},"author":{"name":"EOD Historical Data","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/8d61b703d9ac7e99c00979e9eca98b4d"},"headline":"S&amp;P 500 Historical Constituents Data","datePublished":"2019-09-29T07:58:30+00:00","dateModified":"2026-08-19T11:00:27+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data"},"wordCount":808,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/#organization"},"image":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","keywords":["gspc","historical constituents","sp500","stock indices"],"articleSection":["Announcement"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data","url":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data","name":"S&amp;P 500 Historical Constituents Data | EODHD APIs Blog","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage"},"image":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","datePublished":"2019-09-29T07:58:30+00:00","dateModified":"2026-08-19T11:00:27+00:00","description":"S&P 500 historical constituents via the EODHD Fundamentals API: 800+ tickers, join\/leave dates and point-in-time snapshots for survivorship-bias-free backtests.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#primaryimage","url":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","contentUrl":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","width":800,"height":437},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis-blog\/sp-500-historical-constituents-data#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis-blog\/"},{"@type":"ListItem","position":2,"name":"S&amp;P 500 Historical Constituents Data"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#website","url":"https:\/\/eodhd.com\/financial-apis-blog\/","name":"Financial APIs Blog | EODHD","description":"Financial Data APIs. Fundamental, End of Day (EOD), Real-Time\/Live.","publisher":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/#organization"},"alternateName":"EODHD Financial Data APIs Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-apis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-apis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eodhistoricaldata","https:\/\/x.com\/EOD_data","https:\/\/www.reddit.com\/r\/EODHistoricalData\/","https:\/\/eod-historical-data.medium.com\/"]},{"@type":"Person","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/8d61b703d9ac7e99c00979e9eca98b4d","name":"EOD Historical Data","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","caption":"EOD Historical Data"},"sameAs":["https:\/\/eodhistoricaldata.com"],"url":"https:\/\/eodhd.com\/financial-apis-blog\/author\/admin"}]}},"jetpack_featured_media_url":"https:\/\/eodhd.com\/financial-apis-blog\/wp-content\/uploads\/2019\/09\/giammarco-boscaro-zeH-ljawHtg-unsplash.jpg","jetpack_shortlink":"https:\/\/wp.me\/p9Nz7H-7k","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/posts\/454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/comments?post=454"}],"version-history":[{"count":4,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/posts\/454\/revisions"}],"predecessor-version":[{"id":2650,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/posts\/454\/revisions\/2650"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/media\/462"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/media?parent=454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/categories?post=454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis-blog\/wp-json\/wp\/v2\/tags?post=454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}