openapi: 3.2.0 info: title: Miso Real Time API version: '1.0' x-refined-note: - x-provenance differs across the merged source definitions and was not carried 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: Realtime paths: /v1/real-time/{date}/binding-constraint: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/demand/actual: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/demand/forecast: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/demand/load-state-estimator: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/generation/cleared/supply: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/generation/committed/ecomax: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/generation/fuel-on-the-margin: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/generation/fuel-type: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/generation/offered/ecomax: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/interchange/net-actual: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/interchange/net-scheduled: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/outage: 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: - Realtime servers: - url: https://apim.misoenergy.org/lgi /v1/real-time/{date}/asm-exante: 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: - Realtime servers: - url: https://apim.misoenergy.org/pricing /v1/real-time/{date}/asm-expost: 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 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: preliminaryFinal in: query required: false description: When set, only return data if it's flagged as the given state. schema: type: string enum: - Preliminary - Final - name: product in: query required: false description: Filter to a specific product (ex. "Regulation", "Spin", etc). schema: type: string enum: - Regulation - Spin - Supplemental - STR - Ramp-up - Ramp-down - name: timeResolution in: query required: false description: Time resolution of data schema: type: string enum: - 5min - hourly default: hourly - name: zone in: query required: false description: Filter to a specific Reserve Zone (ex. "Zone 1"). schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/200-OK-RTMCPResponse-json' example: data: - preliminaryFinal: string product: Regulation zone: Zone 1 mcp: 6.48 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: - Realtime servers: - url: https://apim.misoenergy.org/pricing /v1/real-time/{date}/asm-summary: get: operationId: get-v1-real-time-date-asm-summary summary: Real-Time MCP Summary description: Historical ex-post market clearing prices (MCP) for the real-time (RT) ancillary services market (ASM), at the MISO level 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 - name: product in: query required: false description: Filter to a specific product (ex. "Regulation", "Spin", etc). schema: type: string enum: - Regulation - Spin - Supplemental - SER - Mileage - name: timeResolution in: query required: false description: Time resolution of data schema: type: string enum: - hourly default: hourly responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/200-OK-RTMCPResponse-json' example: data: - preliminaryFinal: string product: Regulation zone: Zone 1 mcp: 6.48 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: - Realtime servers: - url: https://apim.misoenergy.org/pricing /v1/real-time/{date}/lmp-exante: get: operationId: get-v1-real-time-date-lmp-exante summary: Real-Time Ex-Ante LMP description: 'Historical ex-ante locational marginal prices (LMP) for the real-time (RT) energy market, by commercial pricing node (CPNode) 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: node in: query required: false description: Filter to a specific Commercial Pricing Node. 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-LMPResponse-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' node: ALTW.WELLS1 lmp: 21.6 mcc: 0.02 mec: 20.94 mlc: 0.64 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: - Realtime servers: - url: https://apim.misoenergy.org/pricing /v1/real-time/{date}/lmp-expost: get: operationId: get-v1-real-time-date-lmp-expost summary: Real-Time Ex-Post LMP description: 'Historical ex-post locational marginal prices (LMP) for the real-time (RT) energy market, by commercial pricing node (CPNode) 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 - 5-MINUTE INTERVALS ONLY] 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 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: node in: query required: false description: Filter to a specific Commercial Pricing Node. schema: type: string - name: pageNumber in: query required: false schema: type: integer format: int32 default: 1 - name: preliminaryFinal in: query required: false description: When set, only return data if it's flagged as the given state. schema: type: string enum: - Preliminary - Final - 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-RTLMPResponse-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' preliminaryFinal: string node: ALTW.WELLS1 lmp: 21.6 mcc: 0.02 mec: 20.94 mlc: 0.64 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: - Realtime servers: - url: https://apim.misoenergy.org/pricing components: schemas: 200-OK-Generation-Fuel-TypeResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/GenerationFuelType' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true CommittedGeneration: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' committedForwardEcoMax: type: number description: The economic maximum (in megawatts) for all units committed in the Forward Reliability Assessment & Commitment (FRAC) process. committedRealTimeEcoMax: type: number description: The economic maximum (in megawatts) for all units committed in the real-time market, based on the peak case within the hour. committedEcoMaxDelta: type: number description: The difference between the forward and real-time values. RealTimeNetScheduledInterchange: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' nsiForward: type: number description: The net scheduled interchange (in megawatts) as used in the Forward Reliability Assessment Commitment (FRAC) process. nsiRealTime: type: number description: The net scheduled interchange (in megawatts) as used in the real-time market. nsiDelta: type: number description: The difference between the forward and real-time values. GenerationCleared: type: object properties: generation: type: number timeInterval: $ref: '#/components/schemas/TimeInterval' 200-OK-LoadResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/Load' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true GenerationFuelType: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' region: $ref: '#/components/schemas/Region' fuelTypes: $ref: '#/components/schemas/FuelType' totalMw: type: number interval: type: string TimeInterval: type: object properties: resolution: enum: - 5min - hourly - daily type: string example: daily start: pattern: ([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3}) type: string description: In Eastern Standard Time (UTC−05:00). example: '2023-06-28 00:00:00.000' end: pattern: ([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3}) type: string description: In Eastern Standard Time (UTC−05:00). example: '2023-06-29 00:00:00.000' value: type: string description: 'Short hand value for time interval. Can be timestamp for 5min resolution (ex: 2023-06-28 00:00:00.000), hour ending value for hourly resolution, 1-24 (ex: 21), or date string for daily (ex: 2023-06-28). In Eastern Standard Time (UTC−05:00).' example: '2023-06-29' NetActualInterchange: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' adjacentBa: type: string nai: type: number Region: enum: - NORTH - CENTRAL - SOUTH - MISO - NO_REGION type: string 200-OK-Offer-GenerationResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/OfferGeneration' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true RealTimeBindingConstraints: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' constraintCount: type: number interval: type: string 200-OK-RtGenerationFuelOnTheMarginResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeGenerationFuelMargin' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true RealTimeDemand: type: object properties: interval: type: string demand: type: number 200-OK-Real-Time-BindingConstraintsResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeBindingConstraints' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true 200-OK-RealTime-DemandResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeDemand' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true 200-OK-Committed-GenerationResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/CommittedGeneration' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true RealTimeGenerationFuelMargin: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' peak: type: boolean region: $ref: '#/components/schemas/Region' fuelType: type: string unitCount: type: integer format: int32 RealTimeOutage: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' realTime: type: number description: The approved (planned) outages (in megawatts) used in the real-time market. forward: type: number description: The approved (planned) outages (in megawatts) used in the Forward Reliability Assessment & Commitment (FRAC) process. delta: type: number description: The difference between the forward and real-time values. interval: type: string FuelType: type: object properties: coal: type: number gas: type: number nuclear: type: number water: type: number wind: type: number solar: type: number other: type: number storage: type: number 200-OK-Real-Time-Net-Scheduled-InterchangeResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeNetScheduledInterchange' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true 200-OK-Net-Actual-InterchangeResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/NetActualInterchange' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true OfferGeneration: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' offerForwardEcoMax: type: number description: The economic maximum (in megawatts) from unit offers available to the Forward Reliability Assessment & Commitment (FRAC) process. offerRealTimeEcoMax: type: number description: The economic maximum (in megawatts) from unit offers available to the real-time market. offerEcoMaxDelta: type: number description: The difference between the forward and real-time values. DemandEst: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' zone: type: string demand: type: number 200-OK-Real-Time-OutageResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeOutage' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true 200-OK-Demand-EstResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/DemandEst' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true PageInfo: type: object properties: pageNumber: type: integer format: int32 pageSize: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int64 lastPage: type: boolean Load: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' region: type: string description: The applicable region. When geoResolution=region. example: North localResourceZone: type: string description: The applicable localResourceZone. When geoResolution=localResourceZone. example: LRZ3_5 load: type: number example: 1349.2 200-OK-Gen-ClearedResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/GenerationCleared' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true RealTimeExPostMarketClearingPrice: type: object properties: preliminaryFinal: type: string allOf: - $ref: '#/components/schemas/PreliminaryFinalEnum' description: Whether the price is preliminary or final. product: enum: - Regulation - Spin - Supplemental - STR - Ramp-up - Ramp-down type: string description: Ancillary Market product zone: type: string description: Ancillary Services Reserve Zone example: Zone 1 mcp: type: number description: Market Clearing Price example: 6.48 timeInterval: $ref: '#/components/schemas/TimeInterval' 200-OK-RTLMPResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeExPostLocationalMarginalPrice' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true PreliminaryFinalEnum: enum: - Preliminary - Final type: string 200-OK-RTMCPResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/RealTimeExPostMarketClearingPrice' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true MarketClearingPrice: type: object properties: interval: type: string example: '1' timeInterval: $ref: '#/components/schemas/TimeInterval' product: enum: - Regulation - Spin - Supplemental - STR - Ramp-up - Ramp-down type: string description: Ancillary Market product zone: type: string description: Ancillary Services Reserve Zone example: Zone 1 mcp: type: number description: Market Clearing Price example: 6.48 200-OK-MCPResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/MarketClearingPrice' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true LocationalMarginalPrice: type: object properties: interval: type: string example: '1' timeInterval: $ref: '#/components/schemas/TimeInterval' node: type: string description: Commercial Pricing Node example: ALTW.WELLS1 lmp: type: number description: Locational Marginal Price example: 21.6 mcc: type: number description: Marginal Congestion Component example: 0.02 mec: type: number description: Marginal Energy Component example: 20.94 mlc: type: number description: Marginal Losses Component example: 0.64 200-OK-LMPResponse-json: type: object properties: data: type: array items: $ref: '#/components/schemas/LocationalMarginalPrice' page: $ref: '#/components/schemas/PageInfo' x-apim-inline: true RealTimeExPostLocationalMarginalPrice: type: object properties: timeInterval: $ref: '#/components/schemas/TimeInterval' preliminaryFinal: type: string allOf: - $ref: '#/components/schemas/PreliminaryFinalEnum' description: Whether the price is preliminary or final node: type: string description: Commercial Pricing Node example: ALTW.WELLS1 lmp: type: number description: Locational Marginal Price example: 21.6 mcc: type: number description: Marginal Congestion Component example: 0.02 mec: type: number description: Marginal Energy Component example: 20.94 mlc: type: number description: Marginal Losses Component example: 0.64 securitySchemes: apiKeyHeader: type: apiKey name: Ocp-Apim-Subscription-Key in: header apiKeyQuery: type: apiKey name: subscription-key in: query x-refined-from: - miso-data-exchange-load-generation-interchange-api-openapi.json - miso-data-exchange-pricing-api-openapi.json