Skip to main content

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 gridstatus dependency. Most endpoints need no API key; ISO-NE and PJM LMP require a free account with that ISO.

Install

pip install kardashev

Direct ISO access

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

# 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

# PJM (requires PJM_USERNAME + PJM_PASSWORD env vars; free account at dataminer2.pjm.com)
pjm = PJM()
df = pjm.get_lmp(market="RT")       # hourly RT LMP for a pricing node
df = pjm.get_lmp(market="DA")       # hourly DA LMP

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")

Common tasks

Get today's fuel mix for all 7 ISOs in one pass:

from kardashev import Client

kl = Client()
mixes = {iso: kl.fuel_mix(iso=iso) for iso in ["CAISO", "ERCOT", "MISO", "NYISO", "ISONE", "SPP", "PJM"]}

Compare real-time LMP across ISOs:

prices = {iso: kl.lmp(iso=iso, market="RT", limit=1) for iso in ["CAISO", "ERCOT", "PJM"]}

Latest carbon intensity for every ISO in a single call:

carbon = kl.carbon_latest()

Pull an ISO's interconnection queue to a file:

kl.queue(iso="MISO").to_csv("miso_queue.csv")

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
curtailment(iso) Renewable curtailment
interchange(ba) Tie-line power flows for a balancing authority
nat_gas(hub) Natural gas spot prices
nat_gas_storage() EIA weekly storage report
weather(iso) Hourly temperature at representative ISO hub cities
bpa() BPA 5-min balancing area: wind, hydro, thermal, load
outages(iso) Generator outage reports
outages_summary() Total MW in outage by ISO x type
ancillary(iso, market) Ancillary service prices
ancillary_latest() Latest ancillary snapshot
nuclear_status() Nuclear plant capacity factors
nuclear_summary() Nuclear fleet capacity/output summary
emissions(iso) SO₂/NOₓ emission rates
generation_wind_solar(iso) Wind/solar generation forecast
generation_battery() Battery storage (CAISO)
generation_btm_solar() Behind-the-meter solar (NYISO)
generation_reserve_margins() Planning reserve margins
hydro_reservoirs() Reservoir storage levels
hydro_reservoirs_latest() Latest reservoir snapshot
hydro_streamflow() USGS streamflow by site
solar_irradiance() Solar irradiance by location
solar_irradiance_locations() Tracked irradiance stations
solar_irradiance_latest() Latest irradiance snapshot
queue(iso) Interconnection queue
commodities_coal() Coal prices by rank
commodities_petroleum() Petroleum spot prices
commodities_power_burn() Gas consumed for power generation
steo_forecast() EIA Short-Term Energy Outlook
carbon_markets() RGGI/WCI carbon market prices

Note: outages() (unit-level generator outages), commodities_coal(), and commodities_power_burn() currently return a 500 from the hosted API - known backend issues, not client bugs. See coverage.yaml. outages_summary() and the other commodities endpoints work.

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, except ISO-NE and PJM LMP (free ISO account) 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 all 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 scrapers for the same set (no key needed except ISO-NE and PJM LMP).

Links

License

MIT - see LICENSE.

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.3.1.tar.gz (36.7 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.3.1-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kardashev-0.3.1.tar.gz
Algorithm Hash digest
SHA256 28acd2be96945bd773d78eda97b82d22992bd0f2cafa203b7afe764218424630
MD5 3c3eef34888f1cd5e52c5a193eb76307
BLAKE2b-256 07fd31fbe6a48edacaa2e14d1344b6cfd2fa5d2c9e6316939ac71319ca0c9205

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kardashev-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 43.5 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57940ed4227d1e7db6e13590a83ed046741e4e3eb28528ddd16d55b9c45bd652
MD5 cb320f79856dda120b6fa757ee3917e4
BLAKE2b-256 db4d5c4fa461a11139de49d13a9edb7620c4dcdfe12feb7999d3940cffbe3aab

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.2

2 files

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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