MISO Reports API

The Reports API from MISO — 14 operation(s) for reports.

OpenAPI Specification

miso-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: MISO Public Specification to support Market System Enhancement (MSE) new Market User Interface (MUI 2.0).
  title: MUI - Public Specification Reports API
  contact:
    name: MUI 2.0 Questions
    url: https://www.misoenergy.org/markets-and-operations/MSE/market-user-interface/
    email: MSEQuestions@misoenergy.org
  license:
    name: For use by MISO member companies and thier vendors
  version: 3.3.0
servers:
- url: https://cce.midwestiso.org/dart2/
- url: https://markets.midwestiso.org/dart2/
tags:
- name: Reports
paths:
  /markets/day-ahead/{day}/reports/lmp-exante:
    description: LMP Ex-Ante report for the Day-Ahead market on a specific day.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the LMP Ex-Ante report for the Day-Ahead market on a specific day. If neither pnode or portfolio query parameters are provided then all public pnodes from the report for all hours of the day are returned.
      operationId: getDayAheadLmpExAnte
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadLmpExAnte'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/lmp-expost:
    description: LMP Ex-Post report for the Day-Ahead market on a specific day.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the LMP Ex-Post report for the Day-Ahead market on a specific day. If neither pnode or portfolio query parameters are provided then all public pnodes from the report for all hours of the day are returned.
      operationId: getDayAheadLmpExPost
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadLmpExPost'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/lf-hourly:
    description: The hourly load forecast report for the total MISO area or an individual control area.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Return the load forecast report for total the MISO area or an individual control area. If the controlAreaName query parameter filter is not provided the MISO total is returned. If the hour query parameter filter is not provided all hours of the day are returned.
      operationId: getLFHourly
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Hour'
      - name: controlAreaName
        description: Optional parameter to specify the name of the control area load forecast to return, otherwise system-wide is returned.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LFHourly'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/real-time/{day}/reports/lmp-exante:
    description: LMP Ex-Ante report for the Real-Time market for a specific day that returns a single interval.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the LMP Ex-Ante (UDS) report for the Real-Time market for a specific day and one or more 5 minute intervals. If neither pnode or portfolio query parameters are provided then all public pnodes from the report are returned. If no interval5 query parameter is provided then returns data for the latest 5 minute interval that is available.
      operationId: getRealTimeLmpExAnte
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - name: interval5
        description: List of up to 12 date-time values as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00 specifying the 5 minute interval(s) for which the LMP report is requested. If not specified then return the latest approved 5 minute interval.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/MarketIntervalLabel'
        style: form
        explode: false
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealTimeLmpExAnte'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/real-time/{day}/reports/lmp-expost:
    description: LMP Ex-Post report for the Real-Time market for a specific day that returns a single interval.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the LMP Ex-Post (RTLMP) report for the Real-Time market for a specific day and one or more 5 minute intervals. If neither pnode or portfolio query parameters are provided then all public pnodes from the report are returned. If no interval5 query parameter is provided then returns data for the latest 5 minute interval that is available.
      operationId: getRealTimeLmpExPost
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - name: interval5
        description: List of up to 12 date-time values as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00 specifying the 5 minute interval(s) for which the LMP report is requested. If not specified then return the latest approved 5 minute interval.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/MarketIntervalLabel'
        style: form
        explode: false
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealTimeLmpExPost'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/real-time/{day}/reports/hourly-lmp-expost:
    description: Integrated hourly Real-Time locational marginal prices on a per pricing node basis.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the integrated hourly Real-Time locational marginal prices on a per pricing node basis. The integrated hourly totals contain a time-weighted aggregation of the underlying 5 minute reports. The integrated totals are only available for the Ex-Post (RTLMP) study mode. If neither pnode or portfolio or hour query parameters are provided then all public pnodes are returned for all intervals of the day.
      operationId: getRealTimeIntgLmp
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/Hour'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealTimeIntegratedLmpExPost'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/locational-results/participants/{participantName}:
    description: Returns the Day-Ahead market results for all offered products (i.e. energy supply, regulation, spinning reserve, supplemental reserve, ramp capability up, and ramp capability down. Data is returned from the Ex-Ante (Day-Ahead) study.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the Day-Ahead market results for all offered products (i.e. energy supply, regulation, spinning reserve, supplemental reserve, ramp capability up, and ramp capability down), as well as any location with cleared demand and virtual bids/offers, by pnode location. Report is participant specific. Data is returned from the Ex-Ante (Day-Ahead) study and are available when the Day-Ahead market closes on the day-ahead of the operating day. Pnode or portfolio query parameters may be provided, otherwise all participant resources as well as any cleared demand or virtual bids/offers by the participant are returned. Cleared MW are only populated for the participant's own resources.
      operationId: getLocationalResult
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/Hour'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadLocationalResults'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/common/{day}/reports/dist-factors:
    description: Returns the state estimator distribution factors used to allocate the percentage of load distribution of bus nodes to an aggregate node.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: REST endpoint calls existing back-end PL/SQL procedure to return the state estimator distribution factors used to allocate the percentage of load distribution of bus nodes to an aggregate node.
      operationId: getDistributionFactors
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionFactors'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/market-wide-results:
    description: Returns the hourly Day-Ahead summary of market wide results. Output includes forecast MW as well cleared MWs for Energy, Regulation, and the various Contingency Reserve market products. Output data is from the Ex-Ante (Day-Ahead) study.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the hourly Day-Ahead summary of market wide results. Output includes forecast MW as well cleared MWs for Energy, Regulation, and the various Contingency Reserve market products. Output data is from the Ex-Ante (Day-Ahead) study.
      operationId: getMkWideResult
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadMarketWideResults'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/zonal-lmp-exante:
    description: Returns the Day-Ahead market clearing Ex-Ante prices at the zonal level. This is the Day-Ahead Pricing data.  Results are available from the Day-Ahead market after the market has been cleared, the results have been published, and the results publish time for the market has been reached.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the Day-Ahead market clearing Ex-Ante prices at the zonal level.  This is the Day-Ahead Pricing data. Results are available from the Day-Ahead market after the market has been cleared, the results have been published, and the results publish time for the market has been reached.
      operationId: getDaZonalLmpExAnte
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Hour'
      - name: zone
        description: Optional element to specify the name of zone for the requested report. Zone names are integers.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadZonalLMPResultsExAnte'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/zonal-lmp-expost:
    description: Returns the Day-Ahead market clearing Ex-Post prices at the zonal level. This is the current Day-Ahead ELMP pricing data. Results are available from the Day-Ahead market after the market has been cleared, the results have been published, and the results publish time for the market has been reached.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the Day-Ahead market clearing Ex-Post prices at the zonal level. This is the current Day-Ahead ELMP pricing data.  This is the Day-Ahead Pricing data.  Results are available from the Day-Ahead market after the market has been cleared, the results have been published, and the results publish time for the market has been reached.
      operationId: getDaZonalLmpExPost
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Hour'
      - name: zone
        description: Optional element to specify the name of zone for the requested report. Zone names are integers.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadZonalLMPResultsExPost'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/day-ahead/{day}/reports/binding-limits:
    description: Returns the binding constraints by hour from the approved Day-Ahead case for a given market day.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the binding constraints by hour from the approved Day-Ahead case for a given market day.
      operationId: getBindingLimitsResult
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayAheadBindingLimitsResults'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/real-time/{day}/reports/zonal-lmp-exante:
    description: Returns the Real Time market clearing Ex-Ante prices at the zonal level.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the Real Time market clearing Ex-Ante prices at the zonal level.
      operationId: getRealTimeZonalPriceResultExAnte
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - name: zone
        description: Optional element to specify the name of zone for the requested report. Zone names are integers.
        in: query
        required: false
        schema:
          type: string
      - name: interval5
        description: List of up to 12 date-time values as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00 specifying the 5 minute interval(s) for which the LMP report is requested. If not specified then return the latest approved 5 minute interval.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/MarketIntervalLabel'
        style: form
        explode: false
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealTimeZonalLMPResultsExAnte'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/real-time/{day}/reports/zonal-lmp-expost:
    description: Returns the Real Time market clearing Ex-Post prices at the zonal level.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Reports
      description: Returns the Real Time market clearing Ex-Post prices at the zonal level.
      operationId: getRealTimeZonalPriceResultExPost
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - name: zone
        description: Optional element to specify the name of zone for the requested report. Zone names are integers.
        in: query
        required: false
        schema:
          type: string
      - name: interval5
        description: List of up to 12 date-time values as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00 specifying the 5 minute interval(s) for which the LMP report is requested. If not specified then return the latest approved 5 minute interval.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/MarketIntervalLabel'
        style: form
        explode: false
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealTimeZonalLMPResultsExPost'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
components:
  schemas:
    MarketOperatingDay:
      description: Effective Market operating day of data. RFC 3339. 'YYYY-MM-DD'.
      type: string
      format: date
      example: '2019-03-14'
    PNodeName:
      description: Commercial Pricing Node (PNode) name.
      type: string
      minLength: 1
      maxLength: 30
      example: PNODE1
    DistributionFactors:
      description: All distribution factors, filtered by query params.
      type: object
      properties:
        day:
          type: string
          example: '2019-03-14'
        aggregatePnodes:
          description: A pnode at which load from other pnodes is aggregated to for repsentation in the market.
          type: array
          items:
            type: object
            properties:
              pnodeName:
                $ref: '#/components/schemas/PNodeName'
              busPnodes:
                description: Bus pnode for a particular pnode.
                type: array
                items:
                  type: object
                  properties:
                    pnodeName:
                      $ref: '#/components/schemas/PNodeName'
                    factor:
                      type: number
                      example: 0.17468
                  required:
                  - pnodeName
                  - factor
      required:
      - day
      - aggregatePnodes
    DayAheadLmpExAnte:
      description: A LMP Ex-Ante report from the Day-Ahead market.
      type: object
      properties:
        day:
          $ref: '#/components/schemas/MarketOperatingDay'
        priceType:
          $ref: '#/components/schemas/PriceTypeExAnte'
        pnodes:
          description: Pricing nodes in the report.
          type: array
          items:
            type: object
            properties:
              pnodeName:
                $ref: '#/components/schemas/PNodeName'
              hours:
                type: array
                items:
                  type: object
                  properties:
                    hour:
                      $ref: '#/components/schemas/HourLabel'
                    lmp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    mcc:
                      $ref: '#/components/schemas/MarketPriceResults'
                    mlc:
                      $ref: '#/components/schemas/MarketPriceResults'
                    regMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    spinMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    suppMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    strMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    rcUpMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    rcDownMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
      required:
      - day
      - priceType
    PriceTypeExAnte:
      description: Market pricing type - Ex-Ante.
      type: string
      enum:
      - ExAnte
      example: ExAnte
    ParticipantName:
      description: Market participant name.
      type: string
      minLength: 1
      maxLength: 40
      example: MP
    RealTimeZonalLMPResultsExAnte:
      description: Real-Time zonal LMP results.
      type: object
      properties:
        day:
          $ref: '#/components/schemas/MarketOperatingDay'
        priceType:
          $ref: '#/components/schemas/PriceTypeExAnte'
        interval5s:
          type: array
          items:
            type: object
            properties:
              interval5:
                $ref: '#/components/schemas/MarketIntervalLabel'
              zones:
                type: array
                items:
                  type: object
                  properties:
                    zone:
                      $ref: '#/components/schemas/ReserveZone'
                    genRegMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    genSpinMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    genSuppMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    strMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    demandRegMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    demandSpinMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    demandSuppMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    rcpUpMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
                    rcpDownMcp:
                      $ref: '#/components/schemas/MarketPriceResults'
      required:
      - day
      - priceType
      - interval5s
    RealTimeLmpExAnte:
      description: A LMP Ex-Ante report from the Real-Time market.
      type: object
      properties:
        day:
          $ref: '#/components/schemas/MarketOperatingDay'
        priceType:
          $ref: '#/components/schemas/PriceTypeExAnte'
        pnodes:
          description: Pricing nodes in the report.
          type: array
          minItems: 0
          items:
            type: object
            properties:
              pnodeName:
                $ref: '#/components/schemas/PNodeName'
              interval5s:
                type: array
                minItems: 0
                maxItems: 288
                items:
                  $ref: '#/components/schemas/RealTimeIntvlLmp'
            required:
            - pnodeName
            - interval5s
      required:
      - day
      - priceType
      - pnodes
    LFHourly:
      description: Load Forecast report for the Day-Ahead market.
      type: object
      properties:
        day:
          $ref: '#/components/schemas/MarketOperatingDay'
        controlAreas:
          description: Collection of Control Areas.
          type: array
          items:
            description: Control Area.
            type: object
            properties:
              areaName:
                description: Name of the local balancing authority or label for MISO total.
                type: string
                example: Area1
              hours:
                type: array
                items:
                  type: object
                  properties:
                    hour:
                      $ref: '#/components/schemas/HourLabel'
                    mw:
                      $ref: '#/components/schemas/RealEnergyResults'
                minItems: 1
                maxItems: 24
            required:
            - areaName
            - hours
      required:
      - day
    APIResponse:
      description: General container for API response.
      type: object
      properties:
        action:
          description: A general action code summary of the result. HTTP status codes will be applied that match. These indicate the type of operation that was done (or not). Note, some APIs use REST verbiage like created/updated/deleted while others use submit/query.
          enum:
          - CREATED
          - UPDATED
          - DELETED
          - CREATE_FAILED
          - UPDATE_FAILED
          - DELETE_FAILED
          - GET_FAILED
          - SUBMITTED
          - SUBMIT_FAILED
          - QUERY
          - QUERY_FAILED
        responses:
          description: List of responses in case multiple resources are modified, or general errors that are not resource specific.
          type: array
          minItems: 0
          items:
            description: A single response which may contain multiple messages, both error and warning, per response.
            type: object
            properties:
              messages:
                description: List of warnings and errors resulting from the command.
                type: array
                minItems: 0
                items:
                  description: An individual warning or error message.  Designed to be either localized or categorized as an event.
                  type: object
                  properties:
                    level:
                      description: An indication of severity of the message.
                      type: string
                      enum:
                      - ERROR
                      - WARNING
                      - INFO
                    msgId:
                      description: A categorized ID for this message, identifying it as a particular type of event. Useful for checking for specific errors, or localization.
                      type: string
                    params:
                      description: Ordered list of parameter values for the message.
                      type: array
       

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/miso/refs/heads/main/openapi/miso-reports-api-openapi.yml