AEMO RCM Operations

AEMO's public API catalogue lists 50 operation(s) for this API, gateway-routed under the path prefix /WEM/RCM. AEMO's own openapi-link export for this API is a shell — it declares paths: {} with zero operations and names an internal host — so the 50 operation(s) in the OpenAPI captured here were harvested from AEMO's developer-portal operations endpoints (https://dev.aemo.com.au/developer/apis/rcm-ops-external-v1/operations?api-version=2022-04-01-preview), complete with parameters, headers, response codes and response examples. Harvested 2026-07-27 (HTTP 200).

OpenAPI Specification

aemo-rcm-ops-external-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: RCM Operations
  version: '3.0'
  x-origin:
  - format: openapi
    source: AEMO API Management developer portal
    url: https://dev.aemo.com.au/developer/apis/rcm-ops-external-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/WEM/RCM
paths:
  /api/v1/CapacityYears/Facilities/SeparatelyCertifiedComponents/{tradingDay}:
    get:
      operationId: apiV1CapacityYearsFacilitiesSeparatelyCertifiedComponentsTradingDayGET
      summary: /api/v1/CapacityYears/Facilities/SeparatelyCertifiedComponents/{tradingDay} - GET
      tags:
      - RCM Operations
      description: /api/v1/CapacityYears/Facilities/SeparatelyCertifiedComponents/{tradingDay} - GET
      parameters:
      - name: tradingDay
        in: path
        required: true
        schema:
          type: string
        description: Format - date-time (as date-time in RFC3339).
      - name: participantId
        in: query
        required: false
        schema:
          type: string
      - name: x-initiatingParticipantId
        in: header
        required: true
        schema:
          type: string
        description: The id of the Initiating Participant
      - name: x-market
        in: header
        required: true
        schema:
          type: string
        description: The id of the market
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                data:
                  facilities:
                  - facilityId: string
                    indicativeFacilityClass: string
                    separatelyCertifiedComponentsViewModels:
                    - sccCode: string
                      technologyType: string
        '400':
          description: Bad request
          content:
            application/json:
              examples:
                missingHeader:
                  summary: Missing mandatory HTTP header parameter
                  value:
                    transactionId: 61361d96-f20d-43a7-bkdf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '400'
                      title: Missing mandatory HTTP header parameter
                      detail: Mandatory HTTP header <headerName> is missing
                      source: ''
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    transactionId: 9a8e902a-ed40-45f3-b075-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: Unauthorized
                      source: ''
                initiatingParticipantIdMismatch:
                  summary: x-initiatingParticipantId does not match with participant id associated with
                    certificate
                  value:
                    transactionId: 9a8e902a-ed40-45f3-u475-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: x-initiatingParticipantId does not match with participant id associated
                        with certificate
                      source: ''
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              examples:
                resourceNotFound:
                  summary: Resource Not Found
                  value:
                    transactionId: 61361d96-f09d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '404'
                      title: Not Found
                      detail: Resources for the endpoint URI not found. Endpoint URI:<URI>
                      source: ''
        '405':
          description: Method not allowed
          content:
            application/json:
              examples:
                methodNotAllowed:
                  summary: Method Not Allowed
                  value:
                    transactionId: 61361d96-z20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '405'
                      title: Method Not Allowed
                      detail: 'Input request HTTP method is <invokedMethod> but operation <operationURI>
                        accepts only: [<operationMethod>]'
                      source: ''
        '413':
          description: Payload Too Large
          content:
            application/json:
              examples:
                payloadTooLarge:
                  summary: Payload Too Large
                  value:
                    transactionId: dc6826bc-1c0d-498b-b474-2b231910860c
                    data: {}
                    errors:
                    - code: '413'
                      title: Payload Too Large
                      detail: Maximum allowed size for the <request/response> body is <payload size limit>
                        bytes (<size limit> MB). This <request/response> has size of <number of bytes>
                        bytes
                      source: ''
        '429':
          description: Too many request
          content:
            application/json:
              examples:
                tooManyRequests:
                  summary: Too Many Requests
                  value:
                    transactionId: 63361d96-f20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '429'
                      title: Too Many Requests
                      detail: Number of inbound requests exceeded the throttling limits; try after sometime
                      source: ''
        '500':
          description: Application unavailable
          content:
            application/json:
              examples:
                applicationUnavailable:
                  summary: Application Unavailable
                  value: ''
  /api/v1/RelevantDemand/{capacityYearId}/TwoHundredPeakHours:
    get:
      operationId: aListOfTwoHundredHoursWithTheHighestGeneration
      summary: A list of two hundred hours with the highest generation
      tags:
      - RCM Operations
      description: "This returns a CSV with a header and two hundred subsequent rows, representing the\
        \ intervals of the highest periods of generation in the capacity market and the corresponding\
        \ generation quantity (in MW). Eg:\r\n           \r\n           \r\n           Hour Interval,Value\r\
        \n           12/01/2016 14:30,35037.00\r\n           15/01/2016 13:00,35033.00\r\n           ..."
      parameters:
      - name: capacityYearId
        in: path
        required: true
        schema:
          type: integer
        description: Format - int32. ID of the capacity year to query (eg 2017)
      - name: x-initiatingParticipantId
        in: header
        required: true
        schema:
          type: string
        description: The id of the Initiating Participant
      - name: x-market
        in: header
        required: true
        schema:
          type: string
        description: The id of the market
      responses:
        '400':
          description: Bad request
          content:
            application/json:
              examples:
                missingHeader:
                  summary: Missing mandatory HTTP header parameter
                  value:
                    transactionId: 61361d96-f20d-43a7-bkdf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '400'
                      title: Missing mandatory HTTP header parameter
                      detail: Mandatory HTTP header <headerName> is missing
                      source: ''
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    transactionId: 9a8e902a-ed40-45f3-b075-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: Unauthorized
                      source: ''
                initiatingParticipantIdMismatch:
                  summary: x-initiatingParticipantId does not match with participant id associated with
                    certificate
                  value:
                    transactionId: 9a8e902a-ed40-45f3-u475-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: x-initiatingParticipantId does not match with participant id associated
                        with certificate
                      source: ''
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              examples:
                resourceNotFound:
                  summary: Resource Not Found
                  value:
                    transactionId: 61361d96-f09d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '404'
                      title: Not Found
                      detail: Resources for the endpoint URI not found. Endpoint URI:<URI>
                      source: ''
        '405':
          description: Method not allowed
          content:
            application/json:
              examples:
                methodNotAllowed:
                  summary: Method Not Allowed
                  value:
                    transactionId: 61361d96-z20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '405'
                      title: Method Not Allowed
                      detail: 'Input request HTTP method is <invokedMethod> but operation <operationURI>
                        accepts only: [<operationMethod>]'
                      source: ''
        '413':
          description: Payload Too Large
          content:
            application/json:
              examples:
                payloadTooLarge:
                  summary: Payload Too Large
                  value:
                    transactionId: dc6826bc-1c0d-498b-b474-2b231910860c
                    data: {}
                    errors:
                    - code: '413'
                      title: Payload Too Large
                      detail: Maximum allowed size for the <request/response> body is <payload size limit>
                        bytes (<size limit> MB). This <request/response> has size of <number of bytes>
                        bytes
                      source: ''
        '429':
          description: Too many request
          content:
            application/json:
              examples:
                tooManyRequests:
                  summary: Too Many Requests
                  value:
                    transactionId: 63361d96-f20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '429'
                      title: Too Many Requests
                      detail: Number of inbound requests exceeded the throttling limits; try after sometime
                      source: ''
        '500':
          description: Application unavailable
          content:
            application/json:
              examples:
                applicationUnavailable:
                  summary: Application Unavailable
                  value: ''
  /api/v4/capacityCreditAllocations/flexible/{capacityYear}/standing:
    get:
      operationId: retrievesAFlexibleCCAStandingSubmissionListForACapacityYear
      summary: Retrieves a Flexible CCA Standing Submission List for a Capacity Year.
      tags:
      - RCM Operations
      description: "This method allows a Market Participant to retrieve their Flexible Capacity Credit\
        \ Allocation Standing Submission List for the given Capacity Year.\r\n<br /><br />\r\nNote: This\
        \ method is only available from Capacity Year 2027."
      parameters:
      - name: capacityYear
        in: path
        required: true
        schema:
          type: integer
        description: 'Format - int32. The Capacity Year associated with the request (Format: YYYY, e.g.
          2027)'
      - name: participantCode
        in: query
        required: false
        schema:
          type: string
        description: The code of the Market Participant associated with the request
      - name: X-transactionId
        in: header
        required: false
        schema:
          type: string
        description: The unique identifier for the request
      - name: x-initiatingParticipantId
        in: header
        required: true
        schema:
          type: string
        description: The id of the Initiating Participant
      - name: x-market
        in: header
        required: true
        schema:
          type: string
        description: The id of the market
      responses:
        '200':
          description: Success
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: {}
                data:
                  standingSubmissions:
                  - capacityYear: 0
                    participantCode: string
                    standingSubmissionItems:
                    - entityCode: string
                      entityType: string
                      targetParticipantCode: string
                      flexibleCapacityCredits: 0
                      order: 0
            text/json:
              example:
                transactionId: {}
                data:
                  standingSubmissions:
                  - capacityYear: 0
                    participantCode: string
                    standingSubmissionItems:
                    - entityCode: string
                      entityType: string
                      targetParticipantCode: string
                      flexibleCapacityCredits: 0
                      order: 0
        '400':
          description: Bad Request
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    transactionId: 9a8e902a-ed40-45f3-b075-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: Unauthorized
                      source: ''
                initiatingParticipantIdMismatch:
                  summary: x-initiatingParticipantId does not match with participant id associated with
                    certificate
                  value:
                    transactionId: 9a8e902a-ed40-45f3-u475-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: x-initiatingParticipantId does not match with participant id associated
                        with certificate
                      source: ''
        '403':
          description: Forbidden
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '404':
          description: Not Found
          content:
            application/json:
              examples:
                resourceNotFound:
                  summary: Resource Not Found
                  value:
                    transactionId: 61361d96-f09d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '404'
                      title: Not Found
                      detail: Resources for the endpoint URI not found. Endpoint URI:<URI>
                      source: ''
        '405':
          description: Method not allowed
          content:
            application/json:
              examples:
                methodNotAllowed:
                  summary: Method Not Allowed
                  value:
                    transactionId: 61361d96-z20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '405'
                      title: Method Not Allowed
                      detail: 'Input request HTTP method is <invokedMethod> but operation <operationURI>
                        accepts only: [<operationMethod>]'
                      source: ''
        '413':
          description: Payload Too Large
          content:
            application/json:
              examples:
                payloadTooLarge:
                  summary: Payload Too Large
                  value:
                    transactionId: dc6826bc-1c0d-498b-b474-2b231910860c
                    data: {}
                    errors:
                    - code: '413'
                      title: Payload Too Large
                      detail: Maximum allowed size for the <request/response> body is <payload size limit>
                        bytes (<size limit> MB). This <request/response> has size of <number of bytes>
                        bytes
                      source: ''
        '422':
          description: Client Error
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '429':
          description: Too many request
          content:
            application/json:
              examples:
                tooManyRequests:
                  summary: Too Many Requests
                  value:
                    transactionId: 63361d96-f20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '429'
                      title: Too Many Requests
                      detail: Number of inbound requests exceeded the throttling limits; try after sometime
                      source: ''
        '500':
          description: Application unavailable
          content:
            application/json:
              examples:
                applicationUnavailable:
                  summary: Application Unavailable
                  value: ''
    post:
      operationId: submitsAFlexibleCCAStandingSubmissionListForACapacityYear
      summary: Submits a Flexible CCA Standing Submission List for a Capacity Year.
      tags:
      - RCM Operations
      description: "This method allows a Market Participant to submit a Flexible Capacity Credit Allocation\
        \ Standing Submission for a Capacity Year.\r\n<br /><br />\r\nNote: This method is only available\
        \ from Capacity Year 2027."
      parameters:
      - name: capacityYear
        in: path
        required: true
        schema:
          type: integer
        description: 'Format - int32. The Capacity Year associated with the request (Format: YYYY, e.g.
          2027)'
      - name: X-transactionId
        in: header
        required: false
        schema:
          type: string
        description: The unique identifier for the request
      - name: x-initiatingParticipantId
        in: header
        required: true
        schema:
          type: string
        description: The id of the Initiating Participant
      - name: x-market
        in: header
        required: true
        schema:
          type: string
        description: The id of the market
      requestBody:
        content:
          application/json:
            example:
            - entityCode: string
              entityType: string
              targetParticipantCode: string
              flexibleCapacityCredits: 0
              order: 0
          text/json:
            example:
            - entityCode: string
              entityType: string
              targetParticipantCode: string
              flexibleCapacityCredits: 0
              order: 0
          application/*+json:
            example:
            - entityCode: string
              entityType: string
              targetParticipantCode: string
              flexibleCapacityCredits: 0
              order: 0
        description: JSON object containing the details to submit the standing submission
      responses:
        '200':
          description: Success
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: {}
                data: {}
            text/json:
              example:
                transactionId: {}
                data: {}
        '400':
          description: Bad Request
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    transactionId: 9a8e902a-ed40-45f3-b075-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: Unauthorized
                      source: ''
                initiatingParticipantIdMismatch:
                  summary: x-initiatingParticipantId does not match with participant id associated with
                    certificate
                  value:
                    transactionId: 9a8e902a-ed40-45f3-u475-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: x-initiatingParticipantId does not match with participant id associated
                        with certificate
                      source: ''
        '403':
          description: Forbidden
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '404':
          description: Not Found
          content:
            application/json:
              examples:
                resourceNotFound:
                  summary: Resource Not Found
                  value:
                    transactionId: 61361d96-f09d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '404'
                      title: Not Found
                      detail: Resources for the endpoint URI not found. Endpoint URI:<URI>
                      source: ''
        '405':
          description: Method not allowed
          content:
            application/json:
              examples:
                methodNotAllowed:
                  summary: Method Not Allowed
                  value:
                    transactionId: 61361d96-z20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '405'
                      title: Method Not Allowed
                      detail: 'Input request HTTP method is <invokedMethod> but operation <operationURI>
                        accepts only: [<operationMethod>]'
                      source: ''
        '413':
          description: Payload Too Large
          content:
            application/json:
              examples:
                payloadTooLarge:
                  summary: Payload Too Large
                  value:
                    transactionId: dc6826bc-1c0d-498b-b474-2b231910860c
                    data: {}
                    errors:
                    - code: '413'
                      title: Payload Too Large
                      detail: Maximum allowed size for the <request/response> body is <payload size limit>
                        bytes (<size limit> MB). This <request/response> has size of <number of bytes>
                        bytes
                      source: ''
        '422':
          description: Client Error
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '429':
          description: Too many request
          content:
            application/json:
              examples:
                tooManyRequests:
                  summary: Too Many Requests
                  value:
                    transactionId: 63361d96-f20d-43a7-babf-59b35fab9b13
                    data: {}
                    errors:
                    - code: '429'
                      title: Too Many Requests
                      detail: Number of inbound requests exceeded the throttling limits; try after sometime
                      source: ''
        '500':
          description: Application unavailable
          content:
            application/json:
              examples:
                applicationUnavailable:
                  summary: Application Unavailable
                  value: ''
  /api/v4/capacityCreditAllocations/flexible/received:
    get:
      operationId: retrievesAListOfApprovedFlexibleCCAsReceivedByAMarketParticipantForARangeOfTradingDays
      summary: Retrieves a list of approved Flexible CCAs received by a Market Participant for a range
        of Trading Days.
      tags:
      - RCM Operations
      description: "This method retrieves a list of Flexible Capacity Credit Allocation received by a\
        \ Market Participant for a range of Trading Days.\r\n<br /><br />\r\nNote: This method is only\
        \ available from Capacity Year 2027."
      parameters:
      - name: tradingDayFrom
        in: query
        required: false
        schema:
          type: string
        description: 'Format - date-time (as date-time in RFC3339). The Trading Day at the start of the
          range in the request (inclusive) (Format: YYYY-MM-DD, e.g. 2027-10-01)'
      - name: tradingDayTo
        in: query
        required: false
        schema:
          type: string
        description: 'Format - date-time (as date-time in RFC3339). The Trading Day at the end of the
          range in the request (inclusive) (Format: YYYY-MM-DD, e.g. 2027-10-31)'
      - name: participantCode
        in: query
        required: false
        schema:
          type: string
        description: The code of the Market Participant associated with the request
      - name: X-transactionId
        in: header
        required: false
        schema:
          type: string
        description: The unique identifier for the request
      - name: x-initiatingParticipantId
        in: header
        required: true
        schema:
          type: string
        description: The id of the Initiating Participant
      - name: x-market
        in: header
        required: true
        schema:
          type: string
        description: The id of the market
      responses:
        '200':
          description: Success
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: {}
                data:
                  allocations:
                  - id: 0
                    capacityYear: 0
                    tradingDay: string
                    participantCode: string
                    entityCode: string
                    entityType: string
                    targetParticipantCode: string
                    flexibleCapacityCredits: 0
                    status: string
                    lastActionResult: string
            text/json:
              example:
                transactionId: {}
                data:
                  allocations:
                  - id: 0
                    capacityYear: 0
                    tradingDay: string
                    participantCode: string
                    entityCode: string
                    entityType: string
                    targetParticipantCode: string
                    flexibleCapacityCredits: 0
                    status: string
                    lastActionResult: string
        '400':
          description: Bad Request
          content:
            text/plain:
              example: ''
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
            text/json:
              example:
                transactionId: string
                data: {}
                errors:
                - code: 0
                  title: string
                  detail: string
                  source: string
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    transactionId: 9a8e902a-ed40-45f3-b075-7a644b12947f
                    data: {}
                    errors:
                    - code: '401'
                      title: Unauthorized
                      detail: Unauthorized
                      source: ''
                initiatingParticipantIdMismatch:
                  summary: x-initiatingParticipantId does not match with participant id associated with
                    cer

# --- truncated at 32 KB (349 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aemo/refs/heads/main/openapi/aemo-rcm-ops-external-v1-openapi.yml