Skip to Content
kardashev is available for Python (PyPI) and JavaScript/TypeScript (npm)
Data Sources

Data sources and refresh cadence

This page covers where the data comes from and how often it refreshes, regardless of which client library you use - the underlying sources and cadence are identical for Python and JavaScript.

Direct ISO access (Python only, no API key)

The CAISO, ERCOT, MISO, NYISO, ISONE, SPP, and PJM classes fetch directly from each grid operator’s own public data feed at call time - there is no caching layer, so freshness matches the ISO’s own publishing cadence. This layer only exists in the Python client.

ISOSourceAuth
CAISOOASIS  (LMP), caiso.com/outlook  (fuel mix, load, curtailment)None
ERCOTMIS  (fuel mix, LMP, ancillary services)None
MISOpublic-api.misoenergy.org  (fuel mix, binding constraints, interchange), docs.misoenergy.org/marketreports  (LMP)None
NYISOmis.nyiso.com  (fuel mix, load, LMP, queue)None
ISO-NEirtt.iso-ne.com  (fuel mix, load, queue); LMP requires a free ISO-NE web services accountISONE_USERNAME / ISONE_PASSWORD for LMP only
SPPmarketplace.spp.org  (fuel mix, curtailment), portal.spp.org  (LMP)None
PJMapi.pjm.com  (instantaneous load, unverified 5-min RT LMP via public subscription key / optional PJM_API_KEY); legacy DataMiner2  CSV feeds for hourly RT/DA LMP are decommissioned as of 2026-07Public key for api.pjm.com path; legacy CSV path used PJM_USERNAME / PJM_PASSWORD

Hosted API (Client, data.kardashevlabs.org)

The hosted API ingests from the same direct ISO sources above (via this same kardashev package, server-side), plus EIA, EPA, and other federal sources, then stores and serves it on a fixed refresh schedule:

Refresh cadenceDatasets
Every 5 minutesFuel mix, real-time load, real-time LMP, wind/solar generation, battery storage, BPA, binding constraints, ancillary services
Every 15 minutesERCOT fuel mix
HourlyLoad, day-ahead LMP, load forecasts, reserve margins, temperatures, interchange, EIA fuel mix (all BAs), solar irradiance
DailyCurtailment, natural gas prices, gas storage, NRC reactor status, EPA emissions, USBR reservoirs, interconnection queues (NYISO, PJM, ISO-NE)
WeeklyEIA static datasets, carbon allowance (RGGI/WCI) prices
MonthlyERCOT large-load queue

Carbon intensity (carbon, carbon_latest) is computed at query time from the latest fuel mix plus EPA eGRID emission factors, so it refreshes on the same cadence as fuel mix (5 minutes).

Known limitations

  • Direct ISO scrapers depend on each ISO’s page/file format and are not versioned by the ISO - they can break without notice if an ISO changes its feed.
  • ISO-NE requires a free account with the ISO for LMP data; all other ISO-NE datasets work with no credentials.
  • PJM’s public PJM.get_lmp() still calls DataMiner2 hourly CSV feeds, which return SPA HTML as of 2026-07. Prefer the hosted Client for PJM LMP until the public class is rewired to api.pjm.com. Instantaneous load and 5-min RT LMP helpers already exist against api.pjm.com in the package.
  • Interconnection queue data on the hosted API currently covers NYISO, PJM, and ISO-NE; coverage across all 7 ISOs is not yet uniform.
Last updated on