MISO Notifications API

The Notifications API from MISO — 6 operation(s) for notifications.

OpenAPI Specification

miso-notifications-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 Notifications 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: Notifications
paths:
  /markets/notifications/{day}/resource-start-stop/participants/{participantName}/messages:
    description: Returns a filtered list of the Resource Start/Stop notification messages sent to a participant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns a filtered list of the Resource Start/Stop notification messages sent to a participant since a certain time for a particular pnode. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getResourceStartStopNotificationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: pnode
        description: Optional parameter to specify the name of a pricing node for the requested data. If not provided then all applicable data is returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/PNodeName'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceStartStopNotificationLog'
          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/notifications/{day}/dispatch-instruction/participants/{participantName}/messages:
    description: Returns a filtered list of the Dispatch Instruction notifications messages sent to a participant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns a filtered list of the Dispatch Instruction notifications messages sent to a participant since a certain time for a particular pnode. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getDispatchInstructionNotificationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: pnode
        description: Optional parameter to specify the name of a pricing node for the requested data. If not provided then all applicable data is returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/PNodeName'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DispatchNotificationLog'
          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/notifications/{day}/reserve-zone-study-status/participants/{participantName}/messages:
    description: Returns a filtered list of the Reserve Zone Study Status notification messages sent to a particpant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns a filtered list of the Reserve Zone Study Status notification messages sent to a particpant since a certain time. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getReserveZoneStudyStatusNotificationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReserveZoneStudyStatusNotificationLog'
          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/notifications/{day}/emergency-notification/participants/{participantName}/messages:
    description: Returns the filtered list of public and private messages that have been issued by the market operator and sent to a particpant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns the filtered list of public and private messages that have been issued by the market operator and sent to a particpant since a certain time. A public message is a message that is available to all market participants.  A private message is a message directed to a specific set (of one or more market participants). A message has an associated priority.  A message's priority is specified as a integer number from 0 through 999. The only meaning applied to these priorities is that the priority 0 value represents an emergency notification message. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getEmergencyNotificationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: realm
        description: Value specifying the realm to query as public only, private, or both public and private.  If not specified, the query is for public messages only.
        in: query
        required: false
        schema:
          type: string
          enum:
          - Private
          - Public
          - Both
      - name: priority
        description: Element specifying the priority threshold.  A value specified means that only those messages whose priority code is less than or equal to the threshold specified are returned.  By default, all message priorities are returned.
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          maximum: 999
          example: 0
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmergencyNotificationLog'
          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/notifications/{day}/contingency-reserve/participants/{participantName}/messages:
    description: Returns a filtered list of the CR Deployment notifications messages successfully sent to a participant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns a filtered list of the CR Deployment notifications messages successfully sent to a participant  since a certain time for a particular pnode. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getCRDeploymentNotificationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: pnode
        description: Optional parameter to specify the name of a pricing node for the requested data. If not provided then all applicable data is returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/PNodeName'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CRDeploymentNotificationLog'
          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/notifications/{day}/financial-contract-schedule-confirmation/participants/{participantName}/messages:
    description: Returns a filtered list of Financial Contract/Schedule Confirmation notifications messages sent to a participant.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Notifications
      description: Returns a filtered list of Financial Contract/Schedule Confirmation notifications messages sent to a participant since a certain time. If since is not provided then return all filtered notifications since start of day requested.
      operationId: getFinancialContractScheduleConfirmationHistory
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - name: since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. This value does not need to be on a 5-minute boundary. If not provided then messages sent since start of day are returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      - name: status
        description: Notification send status filter supporting multiple entries.
        in: query
        required: false
        schema:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NotifyStatus'
        style: form
        explode: false
      - name: externalId
        description: External ID
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: Page number, starts from zero.
        in: query
        required: false
        schema:
          type: integer
      - name: size
        description: Page size
        in: query
        required: false
        schema:
          type: integer
      - name: sort
        description: 'A comma separated list of sortable properties, each item must have format: property-name:order. Order can be asc or desc. Available property names: status, externalId, created. Default value is created:desc.'
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractScheduleNotificationLog'
          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'
    EmergencyNotificationLog:
      description: Emergency Notification log messages.
      type: array
      items:
        type: object
        required:
        - eventType
        - status
        - effectiveTime
        - terminationTime
        - version
        - participantName
        - created
        - requestPayload
        - responses
        properties:
          eventType:
            type: string
            enum:
            - Emergency Notification
            example: Emergency Notification
          status:
            $ref: '#/components/schemas/NotifyStatus'
          effectiveTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          terminationTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          version:
            type: string
            example: 1.0.0
          externalId:
            type: string
            example: ext-id-3
          url:
            type: string
            example: http://mcs-notifications-listener-svc/event
          participantMrid:
            type: string
            example: be553f66-8af1-0436-ffb7-f53ca339d84f
          participantName:
            $ref: '#/components/schemas/ParticipantName'
          created:
            $ref: '#/components/schemas/MarketIntervalLabel'
          lastmodified:
            $ref: '#/components/schemas/MarketIntervalLabel'
          requestPayload:
            type: object
            required:
            - test
            - notificationData
            properties:
              test:
                type: boolean
                example: false
              notificationData:
                type: object
                properties:
                  messages:
                    type: array
                    items:
                      type: object
                      properties:
                        realm:
                          type: string
                          enum:
                          - Public
                          - Private
                        source:
                          $ref: '#/components/schemas/ParticipantName'
                        destination:
                          $ref: '#/components/schemas/ParticipantName'
                        priority:
                          type: integer
                          minimum: 0
                          maximum: 999
                        text:
                          type: string
                          maxLength: 1027
                        effectiveTime:
                          $ref: '#/components/schemas/MarketIntervalLabel'
                        terminationTime:
                          $ref: '#/components/schemas/MarketIntervalLabel'
                      required:
                      - realm
                      - source
                      - destination
                      - priority
                      - text
                      - effectiveTime
                      - terminationTime
                required:
                - messages
          responses:
            $ref: '#/components/schemas/NotificationResponses'
    PNodeName:
      description: Commercial Pricing Node (PNode) name.
      type: string
      minLength: 1
      maxLength: 30
      example: PNODE1
    NotificationResponses:
      type: array
      items:
        type: object
        required:
        - responseCode
        - created
        - retryCount
        properties:
          responseCode:
            type: integer
            example: 200
          responsePayload:
            type:
            - string
            - 'null'
            example: '{\"response\": \"ok\"}'
          created:
            $ref: '#/components/schemas/MarketIntervalLabel'
          retryCount:
            type: integer
            example: 1
    ParticipantName:
      description: Market participant name.
      type: string
      minLength: 1
      maxLength: 40
      example: MP
    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
                      items:
                        type: string
                    userMsg:
                      description: The message, fully rendered in the default locale on the service side.
                      type: string
        transactionId:
          description: Unique identifier for the transaction which can be queried at a later date. Identifier is a GUID represented without hyphens. Only returned for submissions and errors though all calls generate a transaction ID that is returned in the http-x-request-id response header.
          type: string
          format: guid
        transactionTime:
          description: The time at which the transaction was received by the system.
          type: string
          format: date-time
    NotifyStatus:
      description: Notification send status.
      type: string
      enum:
      - SENT
      - GENERATED
      - GENERATION_FAILED
      - RETRYING
      - SEND_FAILED
      - EXPIRED
      - REQUEST_TIMEOUT
    ContractType:
      description: The type of contract established between two participants.
      type: string
      enum:
      - PureFinancial
      - GrandFathered
      - PseudoTie
    ContractScheduleNotificationLog:
      description: Financial Contract/Schedule Confirmation notification log messages.
      type: array
      items:
        type: object
        required:
        - eventType
        - status
        - effectiveTime
        - terminationTime
        - version
        - participantName
        - created
        - requestPayload
        - responses
        properties:
          eventType:
            type: string
            enum:
            - Financial Contract/Schedule Confirmation
            example: Financial Contract/Schedule Confirmation
          status:
            $ref: '#/components/schemas/NotifyStatus'
          effectiveTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          terminationTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          version:
            type: string
            example: 1.0.0
          externalId:
            type: string
            example: ext-id-3
          url:
            type: string
            example: http://mcs-notifications-listener-svc/event
          participantMrid:
            type: string
            example: be553f66-8af1-0436-ffb7-f53ca339d84f
          participantName:
            $ref: '#/components/schemas/ParticipantName'
          created:
            $ref: '#/components/schemas/MarketIntervalLabel'
          lastmodified:
            $ref: '#/components/schemas/MarketIntervalLabel'
          requestPayload:
            type: object
            required:
            - test
            - notificationData
            properties:
              test:
                type: boolean
                example: false
              notificationData:
                type: object
                properties:
                  unconfirmedContracts:
                    type: array
                    items:
                      type: object
                      properties:
                        contractName:
                          $ref: '#/components/schemas/ContractName'
                        buyerName:
                          $ref: '#/components/schemas/ParticipantName'
                        sellerName:
                          $ref: '#/components/schemas/ParticipantName'
                        contractType:
                          $ref: '#/components/schemas/ContractType'
                      required:
                      - contractName
                      - buyerName
                      - sellerName
                      - contractType
                  unconfirmedSchedules:
                    type: array
                    items:
                      type: object
                      properties:
                        contractName:
                          $ref: '#/components/schemas/ContractName'
                        buyerName:
                          $ref: '#/components/schemas/ParticipantName'
                        sellerName:
                          $ref: '#/components/schemas/ParticipantName'
                        contractType:
                          $ref: '#/components/schemas/ContractType'
                        scheduleDay:
                          $ref: '#/components/schemas/MarketOperatingDay'
                      required:
                      - contractName
                      - buyerName
                      - sellerName
                      - contractType
                      - scheduleDay
                required:
                - unconfirmedContracts
                - unconfirmedSchedules
          responses:
            $ref: '#/components/schemas/NotificationResponses'
    MarketPriceResults:
      description: General type for all market price results.
      format: money
      type: number
      multipleOf: 0.01
      minimum: -9.999999999E7
      maximum: 9.999999999E7
      example: 34.91
    CRDeploymentNotificationLog:
      description: CRD Deployment Notification log messages.
      type: array
      items:
        type: object
        required:
        - eventType
        - status
        - effectiveTime
        - terminationTime
        - version
        - participantName
        - created
        - requestPayload
        - responses
        properties:
          eventType:
            type: string
            enum:
            - Contingency Reserve
            example: Contingency Reserve
          status:
            $ref: '#/components/schemas/NotifyStatus'
          effectiveTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          terminationTime:
            $ref: '#/components/schemas/MarketIntervalLabel'
          version:
            type: string
            example: 1.0.0
          externalId:
            type: string
            example: ext-id-3
          url:
            type: string
            example: http://mcs-notifications-listener-svc/event
          participantMrid:
            type: string
            example: be553f66-8af1-0436-ffb7-f53ca339d84f
          participantName:
            $ref: '#/components/schemas/ParticipantName'
          created:
            $ref: '#/components/schemas/MarketIntervalLabel'
          lastmodified:
            $ref: '#/components/schemas/MarketIntervalLabel'
          requestPayload:
            type: object
            required:
            - test
            - notificationData
            properties:
              test:
                type: boolean
                example: false
              notificationData:
                type: object
                required:
                - crDeployments
                properties:
                  crDepl

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