Removed

Legacy endpoint versions

Deprecated or unsupported endpoints removed.

CAISO endpoints removed:

  • GET /us/caiso/dam/as-clearing-price
  • GET /us/caiso/dam/dam-lmp
  • GET /us/caiso/dam/ruc-lmp
  • GET /us/caiso/rtm/as-clearing-price
  • GET /us/caiso/rtm/fmm-lmp
  • GET /us/caiso/system/battery-operations
  • GET /us/caiso/system/battery-operations-v2
  • GET /us/caiso/system/generation-by-fuel-type
  • GET /us/caiso/system/storage-report
  • GET /us/caiso/system/wind-and-solar

ERCOT endpoints removed:

  • GET /us/ercot/dam/60d-generation-v2
  • GET /us/ercot/dam/ptp-obligation-awards-v2
  • GET /us/ercot/dam/ptp-obligation-bids-v2
  • GET /us/ercot/rtm/60d-cop-all-v2
  • GET /us/ercot/rtm/60d-generation-v2
  • GET /us/ercot/rtm/60d-load-v2
  • GET /us/ercot/rtm/spp

Migration: Use the corresponding v2 endpoints where available.


Deprecated

ERCOT Battery Benchmark Nowcast

The ERCOT Battery Benchmark Nowcast endpoint has been deprecated and is no longer updated as of 2025-09-01.

Affected endpoint:

  • GET /us/ercot/modo/battery-benchmark-nowcast

Migration: This endpoint will no longer receive updates. Contact Modo Energy for alternative solutions for real-time ERCOT battery revenue estimates.


Changed

Endpoint naming standardization

9 endpoints had their display names updated to remove the "v2" suffix. These are now the standard versions:

Updated endpoints:

  • GET /us/caiso/dam/as-clearing-price-v2 - Now displays as "AS DAM Clearing Prices"
  • GET /us/caiso/dam/dam-lmp-v2 - Now displays as "Locational Marginal Price - DAM"
  • GET /us/caiso/dam/ruc-lmp-v2 - Now displays as "RUC Locational Marginal Price - DAM"
  • GET /us/caiso/rtm/as-clearing-price-v2 - Now displays as "AS FMM Clearing Prices"
  • GET /us/caiso/rtm/fmm-lmp-v2 - Now displays as "FMM/RTPD Locational Marginal Price - RTM"
  • GET /us/caiso/system/generation-by-fuel-type-v2 - Now displays as "Generation by fuel type"
  • GET /us/caiso/system/storage-report-v2 - Now displays as "Energy Storage Report"
  • GET /us/caiso/system/wind-and-solar-v2 - Now displays as "Wind and Solar Generation - Forecasted and Actual"
  • GET /us/ercot/rtm/spp-v2 - Now displays as "Settlement Point Prices - RTM"

Note: The URL paths remain unchanged (still include "-v2" suffix). Only the display names and operation IDs were updated.

Changed

Forecast endpoint schema updates

The required field order in run_asset objects has been reorganized for consistency. All previously required fields remain required. No functional changes to API behavior or required integration updates.

Affected endpoints:

  • GET /forecasts/forecasts/
  • POST /forecasts/run-simulation/

Added

Custom grid curtailment profile fields

Forecast endpoints now support custom grid curtailment profiles for run assets.

GET /forecasts/forecasts/

New response fields in run_asset:

  • custom_grid_curtailment_profile (object) - Contains file (URI) and id (UUID) for the curtailment profile
  • custom_grid_curtailment_profile_id (UUID) - Direct reference to the curtailment profile ID

POST /forecasts/run-simulation/

New request fields in run_asset:

  • custom_grid_curtailment_profile (object) - Optional curtailment profile to apply to the simulation
  • custom_grid_curtailment_profile_id (UUID) - Optional ID reference for an existing curtailment profile

New response fields in run_asset:

  • custom_grid_curtailment_profile (object) - Returns the applied curtailment profile details
  • custom_grid_curtailment_profile_id (UUID) - Returns the curtailment profile ID used

Changed

Forecast run asset validation relaxed

GET /forecasts/forecasts/

The run_asset.max_import field now accepts 0 as a valid minimum value (previously required 1 or greater).

POST /forecasts/run-simulation/

The run_asset.max_import request parameter and response field now accept 0 as a valid minimum value (previously required 1 or greater).

Changed

Forecast simulation asset constraints

Maximum values increased for battery energy storage system (BESS) parameters in forecast simulations.

GET /forecasts/forecasts/

Modified response fields:

  • results[].run_asset.duration (number) - Maximum increased from 8 to 12 hours
  • results[].run_asset.rated_power (number) - Maximum increased from 500 to 1000 MW

POST /forecasts/run-simulation/

Modified request fields:

  • run_asset.duration (number) - Maximum increased from 8 to 12 hours
  • run_asset.rated_power (number) - Maximum increased from 500 to 1000 MW

Modified response fields:

  • run_asset.duration (number) - Maximum increased from 8 to 12 hours
  • run_asset.rated_power (number) - Maximum increased from 500 to 1000 MW

Added

GB forecasts list endpoint

GET /forecasts/gb-forecasts-list/

New endpoint for retrieving Great Britain forecast data.

Solar configuration fields

Forecast run assets now support custom solar profiles and location-based configuration.

New fields:

  • custom_solar_profile (object) - Custom solar generation profile
  • custom_solar_profile_id (uuid) - Reference to custom solar profile
  • latitude (number) - Asset latitude coordinate
  • longitude (number) - Asset longitude coordinate
  • azimuth (number) - Solar panel azimuth angle
  • tilt (number) - Solar panel tilt angle
  • market_region (string) - Market region identifier

GB-specific field:

  • cfd_strike_price (number) - Contract for Difference strike price (0-200)

Changed

Forecast asset validation constraints

Asset configuration limits updated across forecast endpoints.

POST /forecasts/run-simulation/ and GET /forecasts/forecasts/:

  • max_cycles minimum reduced from 1.0 to 0.5
  • duration maximum reduced from 10 to 8
  • repowering validation constraints removed

ERCOT forecast revenue fields

Multiple revenue breakdown fields removed from ERCOT forecast responses.

GET /forecasts/ercot-forecasts-list/:

Removed fields:

  • ancillary_services_revenue
  • ancillary_services_revenue_per_mw
  • avg_real_time_energy_price
  • real_time_energy_revenue
  • real_time_energy_revenue_per_mw
  • total_revenue_per_mw

Type changes:

  • avg_ancillary_services_price changed from number to string
  • avg_cycles_per_day changed from number to string
  • total_revenues changed from number to string

Applies to both annual_energy_only_focus_data, annual_energy_with_as_focus_data, monthly_energy_only_focus_data, and monthly_energy_with_as_focus_data arrays.

GB forecast revenue field types

Revenue and metric fields changed from number to string format.

GET /forecasts/forecasts/{id}/:

Type changes in annual/monthly ancillaries and merchant focus data:

  • avg_cycles_per_day
  • avg_wholesale_day_ahead_price
  • balancing_mechanism_revenues
  • balancing_reserve_revenues
  • capacity_market_revenues
  • duos_* fields (all DUOS-related revenues)
  • frequency_response_revenues
  • tnuos_revenues
  • total_revenues
  • total_revenues_battery_excl_duos
  • total_revenues_solar_excl_duos
  • wholesale_day_ahead_battery_revenues
  • wholesale_day_ahead_solar_revenues
  • wholesale_day_ahead_total_revenues
  • wholesale_intraday_revenues
  • capacity_mwh_battery in forecast metadata

Documentation removed: Contextual descriptions removed from co-located and non-co-located revenue fields. Fields remain functionally unchanged.


Documentation updates

400 Bad Request response removed from /forecasts/macro-scenarios/ endpoint documentation. Nullability markers and integer validation constraints cleaned up across forecast schemas.

Deprecated

ERCOT Real-Time ORDC endpoints

4 ERCOT Real-Time Market ORDC endpoints will not receive data updates after December 5, 2025, due to discontinuation at source.

Affected endpoints:

  • GET /us/ercot/rtm/historical-ordc-15min
  • GET /us/ercot/rtm/historical-ordc-5min
  • GET /us/ercot/rtm/real-time-ordc-15min
  • GET /us/ercot/rtm/real-time-ordc-price-adders-5min

These endpoints remain available for historical data access but will not be updated with new data after the discontinuation date.