Skip to main content

Python client for the ISOview energy forecasting API

Project description

isoview-client

Python client for the ISOview energy forecasting API — demand, wind, solar, LMP, and natural gas forecasts across US ISOs, returned as pandas DataFrames.

Installation

pip install isoview-client

Requires Python 3.10+. Installs requests and pandas as dependencies.

Authentication

Sign up at isoview.io and grab your API key from the Portal.

from isoview import Client

client = Client("your-api-key")

Quick Start

from isoview import Client

client = Client("your-api-key")

# Get the latest PJM demand forecast
ts = client.get_regional_forecast("pjm", "demand")

# Convert to a pandas DataFrame
df = ts.to_df()
print(df.head())

Every forecast method returns a TimeseriesResponse. Call .to_df() to get a pandas DataFrame with a UTC DatetimeIndex and MultiIndex columns like ("pjm_total", "forecast"). Pass utc=False for local time instead.

Examples

Regions

Forecasts for geographic regions within an ISO — demand, wind, solar, outages, and population-weighted temperature.

# See what regions are available
regions = client.list_regions("pjm", "demand")

# Latest forecast for a specific region
ts = client.get_regional_forecast("pjm", "demand", id="pjm_total")

# Stitched historical forecast — what did the day-ahead forecast
# look like at 10am each day?
ts = client.get_regional_continuous_forecast(
    "miso", "wind",
    start="2025-01-01T00:00:00Z",
    end="2025-06-01T00:00:00Z",
    latest_hour=10,
    days_ahead=1,
)

# Probabilistic ensemble forecast (multiple scenarios)
ts = client.get_regional_ensemble_forecast("pjm", "demand", id="pjm_total")

# Day-ahead backcast for model evaluation
ts = client.get_regional_backcast("pjm", "demand")

# Everything at once — demand, wind, solar, outages, temp, LMP
ts = client.get_iso_summary("pjm")

Plants

Generation forecasts for individual wind and solar facilities.

# Browse plants in ERCOT
plants = client.list_plants("ercot", "wind")
print(plants[0].name, plants[0].capacity_mw, "MW")

# Get a forecast
ts = client.get_plant_forecast("ercot", "wind", id=str(plants[0].id))
df = ts.to_df()

Counties

County-level electricity demand forecasts, disaggregated from regional data.

counties = client.list_counties("isone")
ts = client.get_county_forecast("isone", id=counties[0].id)

Gas

Natural gas price forecasts for major trading hubs.

hubs = client.list_gas_hubs()
ts = client.get_gas_forecast(id=hubs[0].id)

LMP

Locational Marginal Price forecasts for electricity market nodes.

nodes = client.list_lmp_nodes("pjm", "dalmp")
ts = client.get_lmp_forecast("pjm", "dalmp", id=nodes[0].id)

Working with Responses

Timeseries

All forecast, continuous, ensemble, backcast, and summary endpoints return a TimeseriesResponse:

ts = client.get_regional_forecast("pjm", "demand")

ts.model       # 'optimized'
ts.created_at  # datetime — when the forecast was generated
ts.units       # 'MW'
ts.timezone    # 'America/New_York'

# Convert to a pandas DataFrame (UTC index by default)
df = ts.to_df()

# Or use local time
df_local = ts.to_df(utc=False)

The DataFrame has a DatetimeIndex and MultiIndex columns (e.g. ("pjm_total", "forecast")).

Metadata

List endpoints return typed objects you can inspect directly:

regions = client.list_regions("pjm", "demand")
for r in regions:
    print(r.id, r.name, r.timezone)

plants = client.list_plants("ercot", "solar")
for p in plants:
    print(p.name, f"{p.capacity_mw} MW", p.state)

Supported ISOs

Code Name
pjm PJM Interconnection
miso Midcontinent ISO
spp Southwest Power Pool
ercot Electric Reliability Council of Texas
caiso California ISO
nyiso New York ISO
isone ISO New England

Error Handling

The client raises requests.HTTPError on API errors (401, 403, 422, etc.):

import requests

try:
    ts = client.get_regional_forecast("pjm", "demand")
except requests.HTTPError as e:
    print(e.response.status_code, e.response.text)

Links

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

isoview_client-0.1.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

isoview_client-0.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file isoview_client-0.1.0.tar.gz.

File metadata

  • Download URL: isoview_client-0.1.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for isoview_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 26f9e456edd4d50342983501ae4f37b94ab9b3d7d1b1e22bf41fea30d1f765d3
MD5 2a4ed3bd0bbc360735fe7b90f590d623
BLAKE2b-256 673333d37793db5e3d897ff79d63261861684ae997fba5582f421c6d4134661a

See more details on using hashes here.

Provenance

The following attestation bundles were made for isoview_client-0.1.0.tar.gz:

Publisher: publish.yml on isoview-io/isoview-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file isoview_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: isoview_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for isoview_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0524d76c766ecfbe1d2e496005660e6af52df22172fdf42c1586d96d445c5ff8
MD5 4d9f6f9567c9f73eb61efca86d36a7e7
BLAKE2b-256 0679fd50e1c2385b33cceeb03c7efe5bb67f37beb3b92a8a259ab9a6723a9df8

See more details on using hashes here.

Provenance

The following attestation bundles were made for isoview_client-0.1.0-py3-none-any.whl:

Publisher: publish.yml on isoview-io/isoview-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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