Skip to main content

Open energy data for all US ISOs - direct access to CAISO, ERCOT, MISO, NYISO, ISONE, SPP, PJM. Free, open-source gridstatus alternative with no API key required.

Project description

kardashev

PyPI PyPI Downloads License Python

Open energy data for all US ISOs. Direct access to CAISO, ERCOT, MISO, NYISO, ISONE, SPP, and PJM - no API key, no rate limits, no gridstatus dependency.

Install

pip install kardashev

Direct ISO access (no API key)

from kardashev import CAISO, ERCOT, MISO, NYISO, ISONE, SPP

# CAISO
caiso = CAISO()
df = caiso.get_fuel_mix()           # live generation by fuel type
df = caiso.get_load()               # actual grid load
df = caiso.get_lmp(market="RT")     # real-time LMP (TH_NP15 hub)
df = caiso.get_lmp(market="DA", node="TH_SP15_GEN-APND")
df = caiso.get_curtailment()        # solar + wind curtailment

# ERCOT
ercot = ERCOT()
df = ercot.get_fuel_mix()
rows = ercot.get_lmp(market="RT")   # settlement point prices (CDR)
rows = ercot.get_lmp(market="DA")   # DAM hourly prices

# MISO
miso = MISO()
df = miso.get_fuel_mix()
rows = miso.get_lmp(market="RT")    # 5-min hub prices
rows = miso.get_lmp(market="DA")    # ex-ante DA LMP

# NYISO
nyiso = NYISO()
df = nyiso.get_fuel_mix()
df = nyiso.get_lmp(market="RT")     # real-time zonal LMP
df = nyiso.get_lmp(market="DA")     # day-ahead zonal LMP

# ISONE (LMP requires ISONE_USERNAME + ISONE_PASSWORD env vars)
isone = ISONE()
df = isone.get_fuel_mix()
df = isone.get_lmp(market="RT", location=".Z.NEPOOL")

# SPP
spp = SPP()
df = spp.get_fuel_mix()
df = spp.get_lmp()                  # latest RTBM prices

Managed API (optional)

Use Client to query the Kardashev Labs API - adds carbon intensity, LMP history, interconnection queues, and 25+ more endpoints with a single hosted backend.

from kardashev import Client

kl = Client()

# Live fuel mix for CAISO
fuel = kl.fuel_mix(iso="CAISO")

# Real-time LMP hub prices for MISO
prices = kl.lmp(iso="MISO", market="RT", limit=50)

# Carbon intensity (lbs CO₂/MWh) for ERCOT
carbon = kl.carbon(iso="ERCOT")

# All nodes with latest LMP for the map view
nodes = kl.lmp_map(iso="PJM", market="RT")

Endpoints

Method Description
fuel_mix(iso) Generation by fuel type
carbon(iso) Carbon intensity (lbs CO₂/MWh)
carbon_latest() Latest carbon intensity for all ISOs
lmp(iso, market, node_id, limit) LMP price history
lmp_map(iso, market) All nodes with latest price + coordinates
lmp_hubs(iso) Hub/zone node list
load(iso) Actual grid load
load_forecast(iso) Load forecast
generation(iso) Generation by unit type
curtailment(iso) Renewable curtailment
interchange(iso) Tie-line power flows
nat_gas(hub) Natural gas spot prices
nat_gas_storage() EIA weekly storage report
weather(city) Weather observations
outages(iso) Generator outage reports
ancillary(iso, market) Ancillary service prices
nuclear_status() Nuclear plant capacity factors
emissions(iso) SO₂/NOₓ emission rates
hydro(iso) Hydro generation
solar(iso) Solar generation
queue(iso) Interconnection queue
commodities() Power/gas commodity prices
carbon_markets() RGGI/WCI carbon market prices

ISOs supported

CAISO, ERCOT, ISONE, MISO, NYISO, PJM, SPP

Custom base URL

kl = Client(base_url="https://data.kardashevlabs.org")

Comparison

kardashev gridstatus
API key required No No (direct ISO access); hosted gridstatusio client requires a key
License MIT BSD-3-Clause
US ISO coverage 7 (CAISO, ERCOT, MISO, NYISO, ISONE, SPP, PJM) 7 US ISOs + IESO, AESO (Canada), plus EIA
Hosted normalized API Yes, free, no key (Client) Yes, paid tiers (gridstatusio)
Direct ISO scrapers Yes, for 6 of 7 ISOs Yes, for all covered ISOs
Datasets 25+ 450+
Maturity Early (2026) 3+ years, funded, staffed

Use gridstatus if you need Canadian ISOs, EIA data, or the widest dataset catalog. Use kardashev if you want a free hosted API with no key for the 7 major US ISOs, or direct no-key scrapers for the same set.

Links

License

MIT - see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kardashev-0.2.4.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kardashev-0.2.4-py3-none-any.whl (41.0 kB view details)

Uploaded Python 3

File details

Details for the file kardashev-0.2.4.tar.gz.

File metadata

  • Download URL: kardashev-0.2.4.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for kardashev-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ffded1bc9d5c6974a5cdc22fddef8cf25c889bf9deb83809c12efe110f34a2ce
MD5 c4b550cb100fc76b9a10cfe007cda40f
BLAKE2b-256 e405fc761ab35c517a4b41a02a16a962b1cd403138fb66878fe469245139d6a7

See more details on using hashes here.

File details

Details for the file kardashev-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: kardashev-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 41.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for kardashev-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3f8049e9678636796f081ea65e263e0306ba761558dcfe69717f299c6c505e7a
MD5 e098115b43982c7ab6a5e99058f56926
BLAKE2b-256 a2dd9615f629b0650888df35fbda2d56bbf2d90060d72c83d13a48cfa0ab5d2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page