Get LMP Forecast

View as Markdown
Retrieve the most recent LMP forecast timeseries for one or more pricing nodes. Historical forecasts are available by specifying a `forecasted_by` time. Historical data is only available from January 1, 2026 onwards. All timestamps are in the period-beginning (hour beginning, day beginning) format. **Access:** Requires `core` subscription level.

Authentication

X-API-Keystring

API key for authentication. Can also be provided in the api_key query parameter.

Path parameters

isoenumRequired
ISO identifier.
typeenumRequired
LMP market type.
Allowed values:

Query parameters

forecasted_bydatetimeOptional

Only return forecasts that were created at or before this timestamp (UTC).

modelenumOptionalDefaults to optimized
Weather model to use for forecasts.
Allowed values:
idstringOptional

Unique identifier of the specific target (region, plant, county, or hub). If omitted, returns all available targets for the specified ISO.

Response

Successful Response
modelstring or null

Identifier of the weather model used for this forecast (e.g., ‘optimized’, ‘iso’). Null for historical actuals or composite responses.

created_atdatetime or null

Timestamp (UTC) when this forecast was created/published. Represents the model run time. Null for continuous/stitched forecasts or historical actuals.

unitsstring

Measurement units for all data values in the response. Common values: ‘MW’ (megawatts), ‘°C’ (degrees Celsius), ‘USD/MWh’, ’$/MMBtu’.

timezonestringformat: "zoneinfo"

IANA timezone identifier used for the time_local field. Typically matches the region’s local timezone.

time_utclist of datetimes

Array of timestamps in Coordinated Universal Time (UTC). Each entry corresponds to one row in the values matrix. Always timezone-aware.

time_locallist of datetimes

Array of timestamps in local time (timezone specified in timezone field). Each entry corresponds to one row in the values matrix. Parallel to time_utc.

columnslist of lists of strings

Metadata describing each column in the values matrix. Each entry is a list of one or more level labels — single-level columns are returned as length-1 sublists (e.g. [‘pjm_total’]); naturally multi-level data uses one entry per level (e.g. [‘pjm_total’, ‘demand’]). Clients can rebuild a pandas MultiIndex via pd.MultiIndex.from_tuples(columns).

valueslist of lists of nullable doubles

2D matrix of numeric forecast or actual values in column-major order. Each inner list represents a series (corresponding to columns), and each element within that list corresponds to a timestamp (corresponding to time_utc/time_local). Missing or unavailable data is represented as null.

Errors

422
Unprocessable Entity Error