gridstatus
API to access energy data
What it is and what it does
gridstatus is a Python library that normalizes access to electricity market data across multiple Independent System Operators in North America. It abstracts away the different data formats and APIs that each ISO publishes, presenting a consistent interface for fetching supply, demand, and pricing information. The library depends on pandas for data manipulation, requests for HTTP access, and several parsing libraries (beautifulsoup4, lxml, pdfplumber, openpyxl, xlrd) to handle the variety of data formats ISOs publish—some as APIs, others as web-scraped pages or file downloads.
The package is maintained by Grid Status and actively developed (last release 2026-04-21, last commit 2026-08-13). It is designed for research, analysis, and integration into energy market monitoring tools. The documentation notes that this library provides minimally-processed raw data; for production use cases, the maintainers recommend their hosted API instead. Installation is straightforward and requires Python 3.10 or higher.
Use it for:
- Fetch real-time or historical electricity demand and supply data from a specific ISO for market analysis
- Build a monitoring dashboard that aggregates pricing data across multiple ISOs for comparison
- Integrate grid status data into an energy trading or forecasting model
- Analyze historical load patterns and pricing trends across North American electricity markets
- Scrape and normalize electricity data for research or academic energy studies
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
gridstatus provides a unified Python API to fetch raw electricity supply, demand, and pricing data from major US and Canadian Independent System Operators (ISOs) including CAISO, SPP, ISONE, MISO, ERCOT, NYISO, PJM, IESO, AESO, and EIA.
Yes, if you need programmatic access to raw electricity market data from US or Canadian ISOs and can handle minimally-processed data. The library is actively maintained, has low install friction, and covers a wide range of ISOs. However, for production systems requiring guaranteed uptime and data quality, the maintainers recommend their hosted GridStatus.io API instead. License is permissive (BSD 3-Clause) and no known vulnerabilities are recorded.
Install
gridstatus on PyPI
pip
pip install gridstatusuv
uv add gridstatuspoetry
poetry add gridstatusInstalling gridstatus
Before you install
Low friction install with a pure-Python wheel. Active maintenance (last commit 2026-08-13) and 439 GitHub stars. Requires Python 3.10+ and supports current versions. Some parsers require environment variables for API credentials.
License in practice
BSD 3-Clause license (unclear SPDX classification in metadata). Permits commercial and private use with attribution and liability disclaimer; derivative works allowed under same terms.
Quickstart
pip install gridstatus
import gridstatus
# Fetch CAISO data
data = gridstatus.CAISO().get_load()
Requires Python 3.10 or higher. Some ISO parsers require environment variables for authentication or API access (see .env.template in repository).
Verify before relying
- Whether all 10 supported ISOs are equally well-maintained and have current data coverage
- Latency and update frequency for real-time data from each ISO
- Rate limits or throttling policies for data access
- Whether production use should prefer the hosted GridStatus.io API over this library
Package facts
| License | Copyright 2022 James Max Kanter Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (<3.15,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 22 — beautifulsoup4, certifi, cryptography, filelock, frozendict, h11, lxml, openpyxl, pandas, pdfplumber, plotly, requests, rpds-py, setuptools, tabulate, termcolor, tqdm, urllib3, virtualenv, xlrd, xmltodict, zipp |
| Maintenance | actively maintained — 115 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 93,663/month — #13,373 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gridstatus-0.36.0-py3-none-any.whl
Keywords: energy, independent system operator
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
energyzeroAsynchronous Python client for retrieving…
permissive · top 15,000 on PyPI
openbb-us-eiaIntegrates U.S. Energy Information…
agpl · top 15,000 on PyPI
power-grid-modelPower Grid Model is a Python/C++ library for…
copyleft · top 15,000 on PyPI
opowerFetches historical and forecasted energy usage…
permissive · top 15,000 on PyPI
pandapowerpandapower automates power system modeling,…
permissive · top 15,000 on PyPI
entsoe-pyProvides Python clients to query the ENTSO-E…
permissive · top 15,000 on PyPI
energyquantifiedA Python client library for querying Energy…
permissive · top 15,000 on PyPI
wapi-pythonA Python client library for accessing Volue…
unclear · top 15,000 on PyPI
pyTibberPython library for querying Tibber's…
copyleft · top 15,000 on PyPI
amberelectricProvides a Python interface to the Amber…
permissive · top 15,000 on PyPI