Skip to main content

Indexes: A Lightweight S&P 500, Nasdaq-100 & S&P 100 Scraper

indexes is a professional Python utility designed to scrape and retrieve financial index constituents, providing developers with a clean, programmatic interface to access real-time market data. It simplifies the process of extracting stock market components from the S&P 500, Nasdaq-100, and S&P 100 for financial analysis and algorithmic trading.

License PyPI version Python versions Financial Data Extraction

Why use Indexes?

For financial analysts and Python developers, keeping up-to-date lists of S&P 500, Nasdaq-100 and S&P 100 constituents can be tedious. indexes provides a simple, cached interface to fetch this data from reliable public sources (like Wikipedia), returning essential metadata such as Sector, Industry, CIK, and more.

Key Features

  • Efficient Scrapers: Get up-to-date S&P 500, Nasdaq-100 and S&P 100 constituents in seconds.
  • Flexible Data Formats: Retrieve results as a Python list or a dict keyed by symbol.
  • Granular Field Selection: Extract only what you need.
  • Smart Caching: Minimizes network requests by caching data within the same execution session.
  • Minimalist Design: Zero-config, lightweight, and easy to integrate into larger financial pipelines.

Installation

Install the package via pip:

pip install indexes

Requirements

  • Python >= 3.8
  • requests
  • beautifulsoup4

Quick Start & Usage

from indexes import get_sp500, get_nasdaq100, get_sp100

# Get a simple list of all S&P 500 ticker symbols
sp500_symbols = get_sp500()

# Get S&P 100 symbols
sp100_symbols = get_sp100()

# Get Nasdaq-100 details
nasdaq_details = get_nasdaq100(
    return_type='dict', 
    fields=['name', 'industry']
)

# Example: Accessing Apple Inc. metadata (present in both)
print(nasdaq_details['AAPL'])
# Output: {'name': 'Apple Inc.', 'industry': 'Technology'}

# Get a list of dictionaries with custom fields
data = get_sp500(return_type='list', fields=['name', 'sector', 'cik'])

API Documentation

get_sp500(return_type='list', fields=None)

The entry point for fetching the S&P 500 index components.

  • return_type (str): 'list' (default) or 'dict'.
  • fields (list, optional): Defaults to ['symbol'].
    • Supported fields: symbol, name, sector, sub_industry, date_added, cik, founded.

get_nasdaq100(return_type='list', fields=None)

The entry point for fetching the Nasdaq-100 index components.

  • return_type (str): 'list' (default) or 'dict'.
  • fields (list, optional): Defaults to ['symbol'].
    • Supported fields: symbol, name, industry, subsector.

get_sp100(return_type='list', fields=None)

The entry point for fetching the S&P 100 index components.

  • return_type (str): 'list' (default) or 'dict'.
  • fields (list, optional): Defaults to ['symbol'].
    • Supported fields: symbol, name, sector.

Development and Contributions

We welcome contributions from the community! Whether it's adding new indexes, new features or improving the scraper's robustness, feel free to submit a Pull Request.

Local Setup

  1. Clone the repository:
    git clone https://github.com/fzunigam/indexes.git
    cd indexes
    
  2. Install in editable mode:
    pip install -e .
    

Running Tests

Ensure stability by running the test suite:

pytest

Disclaimer

This project was built with the help of AI coding tools.

License

indexes is licensed under the MIT License. See the LICENSE file for more information.

Release files for indexes 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for indexes 0.1.3
File Size Uploaded
indexes-0.1.3.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for indexes 0.1.3
File Interpreter ABI Platform
indexes-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 11.3 kB

Release files / indexes-0.1.3.tar.gz

Download URL indexes-0.1.3.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
437d452e4739a0298f11e1b3a76c15ab6844f0d8e53e6937b554d02ea2346e07
BLAKE2b-256 checksum
How to use checksums
dd24bdb5e5898a9dc5a514cebd62e9f551439f48dfb4fd0fefcac05fd9f10afb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 14, 2026.

Transparency log

Release files / indexes-0.1.3-py3-none-any.whl

Download URL indexes-0.1.3-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd7225dc2c33f767b1858036b98654bb94f4c1f8b77ab1860d7388c96a866af0
BLAKE2b-256 checksum
How to use checksums
89482975bc6e3a609fc6c23c4134dd6376e041f9a0d982087002123092adf603
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page