Supported ISOs
Direct ISO access (Python only, no API key unless noted)
There is no direct ISO scraper in the JavaScript client - this section applies to Python’s CAISO/ERCOT/etc. classes only.
| ISO | Fuel mix | Load | Load forecast | LMP | Curtailment | Interconnection queue | Auth |
|---|---|---|---|---|---|---|---|
| CAISO | Yes | Yes | Yes | RT, DA | Yes | - | None |
| ERCOT | Yes | - | Yes | RT, DA | - | - | None |
| MISO | Yes | - | Yes | RT, DA | - | - | None |
| NYISO | Yes | Yes | Yes | RT, DA | - | Yes | None |
| ISO-NE | Yes | Yes | Yes | RT | - | Yes | LMP requires ISONE_USERNAME / ISONE_PASSWORD |
| SPP | Yes | - | Yes | RTBM | Yes | - | None |
| PJM | - | - | - | RT, DA (legacy) | - | - | Legacy get_lmp() needs PJM_USERNAME / PJM_PASSWORD; DataMiner2 CSV feeds are dead as of 2026-07 (see Roadmap) |
ERCOT also exposes get_wind_generation(), get_solar_generation(), and get_ancillary_services(). CAISO also exposes get_generator_outages(). MISO also exposes get_generator_outages().
This table is generated from the actual method inventory on each ISO class - see coverage.yaml in the source repo, which is the source of truth.
Hosted API (Client, Python and JavaScript)
The hosted API normalizes coverage across all 7 ISOs for fuel mix, carbon, LMP, load, curtailment, interchange, ancillary services, emissions, and interconnection queue, plus generation/hydro/solar sub-resources (wind-solar forecast, battery, reservoirs, irradiance) and non-ISO datasets (natural gas, weather, nuclear, commodities, carbon markets). Method names are identical in shape between Python (snake_case) and JavaScript (camelCase) - see API Reference for the full method list in both.
Interconnection queue coverage on the hosted API’s daily-refresh job currently spans NYISO, PJM, and ISO-NE; not all 7 ISOs publish queue data on the same cadence. See Data Sources for exact refresh cadence per dataset.
Two endpoints (outages(), commodities_coal()/commoditiesCoal(), commodities_power_burn()/commoditiesPowerBurn()) currently return HTTP 500 from the hosted API in both languages - a backend issue, not specific to either client.