ISO New England · Arazzo Workflow

ISO New England grid snapshot

Version 1.0.0

Build a complete current picture of the New England power system - resolve the location registry, check feed freshness, then pull system load, generation fuel mix, Hub price and the hourly load forecast. Every operationId exists verbatim in the referenced OpenAPI. All calls require HTTP Basic credentials from a free ISO Express account; anonymous calls return 401.

1 workflow 1 source API 1 provider
View Spec View on GitHub EnergyUnited StatesElectricityEnergy MarketsGridOpen DataWholesale MarketsDemand ResponseRenewablesNew EnglandArazzoWorkflows

Provider

iso-new-england

Workflows

grid-snapshot
Current load, fuel mix, Hub LMP and load forecast for the New England system.
Reads five public feeds in sequence. Step 1 resolves the location registry so ids can be checked rather than assumed; step 2 uses the /info freshness endpoint so a caller can skip the pull when nothing has advanced.
6 steps inputs: locationId outputs: forecast, fuelMix, latestBeginDate, lmp, load
1
list-locations
getLocationsAll
Resolve every published pricing/load location (1,302 entries observed 2026-07-27).
2
check-freshness
getFiveminutelmpInfo
Read ServiceInfo.LatestBeginDate for the five-minute LMP feed before pulling it.
3
system-load
getFiveminutesystemloadCurrent
Current five-minute system load, including behind-the-meter PV estimates.
4
fuel-mix
getGenfuelmixCurrent
Current generation fuel mix in MW by fuel category, with the marginal-fuel flag.
5
hub-price
getFiveminutelmpCurrentLocationByLocationId
Current five-minute LMP for the requested location.
6
load-forecast
getHourlyloadforecastCurrent
Current hourly load forecast.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: ISO New England grid snapshot
  version: 1.0.0
  description: >-
    Build a complete current picture of the New England power system - resolve the location
    registry, check feed freshness, then pull system load, generation fuel mix, Hub price and the
    hourly load forecast. Every operationId exists verbatim in the referenced OpenAPI. All calls
    require HTTP Basic credentials from a free ISO Express account; anonymous calls return 401.
sourceDescriptions:
- name: isone
  url: ../openapi/iso-new-england-web-services-openapi.yml
  type: openapi
workflows:
- workflowId: grid-snapshot
  summary: Current load, fuel mix, Hub LMP and load forecast for the New England system.
  description: >-
    Reads five public feeds in sequence. Step 1 resolves the location registry so ids can be checked
    rather than assumed; step 2 uses the /info freshness endpoint so a caller can skip the pull when
    nothing has advanced.
  inputs:
    type: object
    properties:
      locationId:
        type: string
        description: Pricing location id. 4000 is the Hub; 4001-4008 are the eight load zones.
        default: '4000'
  steps:
  - stepId: list-locations
    description: Resolve every published pricing/load location (1,302 entries observed 2026-07-27).
    operationId: getLocationsAll
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      locations: $response.body#/Locations/Location
  - stepId: check-freshness
    description: Read ServiceInfo.LatestBeginDate for the five-minute LMP feed before pulling it.
    operationId: getFiveminutelmpInfo
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      latestBeginDate: $response.body#/ServiceInfo/LatestBeginDate
  - stepId: system-load
    description: Current five-minute system load, including behind-the-meter PV estimates.
    operationId: getFiveminutesystemloadCurrent
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      load: $response.body#/FiveMinSystemLoad
  - stepId: fuel-mix
    description: Current generation fuel mix in MW by fuel category, with the marginal-fuel flag.
    operationId: getGenfuelmixCurrent
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      fuelMix: $response.body#/GenFuelMixes/GenFuelMix
  - stepId: hub-price
    description: Current five-minute LMP for the requested location.
    operationId: getFiveminutelmpCurrentLocationByLocationId
    parameters:
    - name: locationId
      in: path
      value: $inputs.locationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      lmp: $response.body#/FiveMinLmp
  - stepId: load-forecast
    description: Current hourly load forecast.
    operationId: getHourlyloadforecastCurrent
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      forecast: $response.body#/HourlyLoadForecast
  outputs:
    latestBeginDate: $steps.check-freshness.outputs.latestBeginDate
    load: $steps.system-load.outputs.load
    fuelMix: $steps.fuel-mix.outputs.fuelMix
    lmp: $steps.hub-price.outputs.lmp
    forecast: $steps.load-forecast.outputs.forecast