MISO Historical API

The Historical API from MISO — 1 operation(s) for historical.

OpenAPI Specification

miso-historical-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Load, Generation, and Interchange Historical API
  description: 'Provides load, generation, and interchange data. Load: Includes demand, load, and load forecast. Generation: Includes generation cleared and offered as well as related data. Interchange: Includes Energy transfers that cross Balancing Authority (BA) Area boundaries. Note: Data available within the interchange endpoints are subject to change up to 105 days after the market day due to reconciliation.'
  version: '1.0'
  x-provenance:
    harvestedBy: API Evangelist
    fetchDate: '2026-07-27'
    note: Assembled verbatim from MISO's own anonymously served Azure API Management developer-portal data API. MISO's OpenAPI export endpoint returns a valid document whose paths object is EMPTY, so info, servers and components.securitySchemes were taken from that export, while paths, methods, operationIds, summaries, descriptions, parameters, response codes and response examples were taken from the portal operations endpoints, and components.schemas from the portal schemas endpoint. Nothing was invented, inferred or paraphrased.
    sources:
    - https://data-exchange.misoenergy.org/developer/apis/load-generation-and-interchange-api?export=true&format=openapi%2Bjson&api-version=2022-04-01-preview (HTTP 200)
    - https://data-exchange.misoenergy.org/developer/apis/load-generation-and-interchange-api/operations?api-version=2022-04-01-preview (HTTP 200)
    - https://data-exchange.misoenergy.org/developer/apis/load-generation-and-interchange-api/operations/{operationId}?api-version=2022-04-01-preview (HTTP 200, all operations)
    - https://data-exchange.misoenergy.org/developer/apis/load-generation-and-interchange-api/schemas/6a63cd40da09a311a00a1048?api-version=2022-04-01-preview (HTTP 200)
    gatewayVerification: Anonymous GET to the gateway returns HTTP 401 "Access denied due to missing subscription key"; unknown routes return HTTP 404 "Resource not found" (verified 2026-07-27).
servers:
- url: https://apim.misoenergy.org/lgi
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: Historical
paths:
  /v1/historical/{date}/interchange/net-scheduled:
    get:
      operationId: get-v1-historical-date-interchange-net-scheduled
      summary: Historical Net Scheduled Interchange
      description: Net scheduled interchange (NSI) final volumes, by adjacent balancing authority (BA) in hourly intervals. Includes updates from Dynamic Schedules, Emergency Power Purchases, and ARS/CRSG events. Positive values indicate imports. Available at 7am EST the day after. May be updated up to 105 days after-the-fact.
      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-Historical-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'
                  adjacentBa: string
                  nsi: 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:
      - Historical
components:
  schemas:
    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'
    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
    200-OK-Historical-Net-Scheduled-InterchangeResponse-json:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalNetScheduledInterchange'
        page:
          $ref: '#/components/schemas/PageInfo'
      x-apim-inline: true
    HistoricalNetScheduledInterchange:
      type: object
      properties:
        timeInterval:
          $ref: '#/components/schemas/TimeInterval'
        adjacentBa:
          type: string
        nsi:
          type: number
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query