openapi: 3.2.0
info:
title: Miso Real Time API
version: '1.0'
description: 'Operations tagged Real Time across 2 of this provider''s published API definitions: miso-data-exchange-load-generation-interchange-api-openapi.json, miso-data-exchange-pricing-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://apim.misoenergy.org/lgi
- url: https://apim.misoenergy.org/pricing
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: Real Time
paths:
/v1/real-time/{date}/binding-constraint:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-binding-constraint
summary: Real-Time Binding Constraints
description: The total number of binding constraints in the real-time market, in hourly intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Real-Time-BindingConstraintsResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
constraintCount: 0
interval: string
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/demand/actual:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-demand-actual
summary: Actual Load
description: Actual load (in megawatt-hours) as used in the real-time market, by region or grouped local resource zones (LRZ) in hourly or daily intervals. Available at 2am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: geoResolution
in: query
required: false
description: Geographic resolution of data
schema:
type: string
enum:
- region
- localResourceZone
default: region
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: localResourceZone
in: query
required: false
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: region
in: query
required: false
schema:
type: string
enum:
- NORTH
- CENTRAL
- SOUTH
- MISO
- NO_REGION
- name: timeResolution
in: query
required: false
description: Time resolution of data
schema:
type: string
enum:
- hourly
- daily
default: hourly
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-LoadResponse-json'
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/demand/forecast:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-demand-forecast
summary: Real-Time Cleared Demand
description: Demand cleared (in megawatts) in the real-time market, in hourly or daily intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: timeResolution
in: query
required: false
description: Time resolution of data
schema:
type: string
enum:
- hourly
- daily
default: hourly
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-RealTime-DemandResponse-json'
example:
data:
- interval: string
demand: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/demand/load-state-estimator:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-demand-load-state-estimator
summary: Real-Time State Estimator Load
description: Preliminary actual load (in megawatt-hours) as determined by the state estimator and reported in EIA-930 filings, in hourly or daily intervals. Available at 7am EST the day after. Aggregated by zone groups to preserve market participant confidentiality.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: timeResolution
in: query
required: false
description: Time resolution of data
schema:
type: string
enum:
- hourly
- daily
default: hourly
- name: zone
in: query
required: false
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Demand-EstResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
zone: string
demand: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/generation/cleared/supply:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-generation-cleared-supply
summary: Real-Time Cleared Generation
description: Generation cleared (in megawatts) in the real-time market, in hourly or 5-minute intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: timeResolution
in: query
required: false
description: Time resolution of data
schema:
type: string
enum:
- 5min
- hourly
default: hourly
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Gen-ClearedResponse-json'
example:
data:
- generation: 0
timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/generation/committed/ecomax:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-generation-committed-ecomax
summary: Real-Time Committed Generation, ECOMAX
description: The Economic Maximum for all units committed in the real-time market and Forward Reliability Assessment & Commitment (FRAC) process, in hourly intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Committed-GenerationResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
committedForwardEcoMax: 0
committedRealTimeEcoMax: 0
committedEcoMaxDelta: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/generation/fuel-on-the-margin:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-generation-fuel-on-the-margin
summary: Real-Time Generation Fuel-on-the-Margin
description: Retrieve real-time generation fuel on the margin, by region in 5-minute intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: fuelType
in: query
required: false
description: Filter to specific fuel type (ex. Coal, Gas, Wind, Solar, Hydro, Nuclear, Storage).
schema:
type: string
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: region
in: query
required: false
schema:
type: string
enum:
- NORTH
- CENTRAL
- SOUTH
- MISO
- NO_REGION
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-RtGenerationFuelOnTheMarginResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
peak: true
region: NORTH
fuelType: string
unitCount: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/generation/fuel-type:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-generation-fuel-type
summary: Real-Time Generation Fuel Type
description: Generation fuel mix (in megawatts) as determined by the state estimator for the various fuel types in the MISO footprint, by region in hourly intervals. Available at 7am EST the day after. 'Coal' includes combination coal/gas units; 'Gas' includes combination oil/gas units; 'Storage' includes pumped storage, ESR, and battery units. 'Solar' data is only available from 2022-01-01 onwards.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: region
in: query
required: false
schema:
type: string
enum:
- NORTH
- CENTRAL
- SOUTH
- MISO
- NO_REGION
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Generation-Fuel-TypeResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
region: NORTH
fuelTypes:
coal: 0
gas: 0
nuclear: 0
water: 0
wind: 0
solar: 0
other: 0
storage: 0
totalMw: 0
interval: string
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/generation/offered/ecomax:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-generation-offered-ecomax
summary: Real-Time Offered Generation, ECOMAX
description: The Economic Maximum from unit offers available to the real-time market and Forward Reliability Assessment & Commitment (FRAC) process, in hourly intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Offer-GenerationResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
offerForwardEcoMax: 0
offerRealTimeEcoMax: 0
offerEcoMaxDelta: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/interchange/net-actual:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-interchange-net-actual
summary: Real-Time Net Actual Interchange
description: Net actual interchange (NAI), by adjacent balancing authority (BA) in hourly intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: adjacentBa
in: query
required: false
description: Filter to a specific adjacent Balancing Authority (ex. PJM, TVA, SWPP).
schema:
type: string
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Net-Actual-InterchangeResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
adjacentBa: string
nai: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/interchange/net-scheduled:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-interchange-net-scheduled
summary: Real-Time Net Scheduled Interchange
description: Net scheduled interchange (NSI) used in the Forward Reliability Assessment & Commitment (FRAC) process and Unit Dispatch System (UDS) cases, in hourly intervals. Positive values indicate imports. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Real-Time-Net-Scheduled-InterchangeResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
nsiForward: 0
nsiRealTime: 0
nsiDelta: 0
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/outage:
servers:
- url: https://apim.misoenergy.org/lgi
get:
operationId: get-v1-real-time-date-outage
summary: Real-Time Outages
description: The approved (planned) outages (in megawatt-hours) used in the real-time market and Forward Reliability Assessment & Commitment (FRAC) process, in hourly intervals. Available at 7am EST the day after.
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-Real-Time-OutageResponse-json'
example:
data:
- timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
realTime: 0
forward: 0
delta: 0
interval: string
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/asm-exante:
servers:
- url: https://apim.misoenergy.org/pricing
get:
operationId: get-v1-real-time-date-asm-exante
summary: Real-Time Ex-Ante MCP
description: 'Historical ex-ante market clearing prices (MCP) for the real-time (RT) ancillary services market (ASM), by reserve zone in 5-minute intervals. Available at 7am EST the day after. [On May 6, 2026 Changes Applied including historical dates] 5-minute interval labels corrected. The database stores end-of-interval timestamps. Previously, the API returned interval values misaligned with database storage. Now corrected: ''value'', ''start'', and ''end'' fields correctly represent period START time (and end time in ''end'' field). To update stored data: subtract 5 minutes from all three fields. Before (old stored data): {"value": "2025-12-31T23:55:00", "start": "2025-12-31T23:55:00", "end": "2026-01-01T00:00:00"}. After (corrected): {"value": "2025-12-31T23:50:00", "start": "2025-12-31T23:50:00", "end": "2025-12-31T23:55:00"}. Apply this offset to all stored 5-minute interval records. No re-fetch required.'
parameters:
- name: date
in: path
required: true
description: 'Market date in the form: yyyy-mm-dd'
schema:
type: string
format: date
- name: interval
in: query
required: false
description: Filter to a specific time interval (ex. "13:05", "13"), in Eastern Standard Time (UTC−05:00).
schema:
type: string
- name: pageNumber
in: query
required: false
schema:
type: integer
format: int32
default: 1
- name: product
in: query
required: false
description: Filter to a specific product (e.g. "Regulation", "Spin", "Supplemental", "STR", "Ramp-up", "Ramp-down").
schema:
type: string
enum:
- Regulation
- Spin
- Supplemental
- STR
- Ramp-up
- Ramp-down
- name: zone
in: query
required: false
description: Filter to a specific Reserve Zone (e.g. "Zone 1", ..., "Zone 8").
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/200-OK-MCPResponse-json'
example:
data:
- interval: '1'
timeInterval:
resolution: daily
start: '2023-06-28 00:00:00.000'
end: '2023-06-29 00:00:00.000'
value: '2023-06-29'
product: Regulation
zone: Zone 1
mcp: 6.48
page:
pageNumber: 0
pageSize: 0
totalElements: 0
totalPages: 0
lastPage: true
'400':
description: Invalid date format
content:
application/json: {}
'401':
description: Invalid or missing Bearer Token in the Authorization header
content:
application/json: {}
'404':
description: Date not found
content:
application/json: {}
tags:
- Real Time
/v1/real-time/{date}/asm-expost:
servers:
- url: https://apim.misoenergy.org/pricing
get:
operationId: get-v1-real-time-date-asm-expost
summary: Real-Time Ex-Post MCP
description: 'Historical ex-post market clearing prices (MCP) for the real-time (RT) ancillary services market (ASM), by reserve zone in hourly or 5-minute intervals. Available at 7am EST the day after. It takes on average 3-5 days to finalize preliminary LMPs. [On May 6, 2026 Changes Applied including historical dates] Interval labels corrected. Database stores end-of-interval timestamps. Previously, API returned 5-minute values misaligned with storage. Now corrected: ''value'', ''start'', ''end'' fields represent period START time. Hourly unchanged. To update stored 5-minute data: subtract 5 minutes from all three fields. Before (old): {"value": "2025-12-31T23:55:00", "start": "2025-12-31T23:55:00", "end": "2026-01-01T00:00:00"}. After (corrected): {"value": "2025-12-31T23:50:00", "start": "2025-12-31T23:50:00", "end": "2025-12-31T23:55:00"}. Apply offset to all stored 5-minute records. No re-fetch required.'
parameters:
- name: date
in: path
required: true
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/miso/refs/heads/main/openapi/miso-real-time-api-openapi.yml