CDR Energy Secondary Data Holder API

The gateway contract AEMO implements as the CDR Secondary Data Holder for energy. Retailers are the primary data holders for the customer relationship, but the physical data — NMI standing data, meter and interval usage records, and the distributed energy resources register — lives with AEMO, so the standards define a separate six-operation server-to-server API that retailers call on the consumer's behalf. This is the piece of machinery that has no banking equivalent, and it is why energy needed a shared-responsibility model rather than a straight copy of the banking contract.

OpenAPI Specification

cdr-energy-sdh-openapi.json Raw ↑
{
  "openapi" : "3.0.3",
  "info" : {
    "contact" : {
      "email" : "contact@dsb.gov.au",
      "name" : "Data Standards Body",
      "url" : "https://dsb.gov.au/"
    },
    "description" : "Specifications for resource endpoints applicable to secondary data holders in the Energy sector.",
    "title" : "CDR Energy Secondary Data Holder API",
    "version" : "1.36.0"
  },
  "servers" : [ {
    "description" : "TLS",
    "url" : "https://tls.sdh.example.com/cds-au/v1"
  } ],
  "tags" : [ {
    "description" : "Electricity Service Point (SR) endpoints",
    "name" : "Electricity Service Points (SR)",
    "x-shortName" : "Service Points"
  }, {
    "description" : "Electricity Usage (SR) endpoints",
    "name" : "Electricity Usage (SR)",
    "x-shortName" : "Usage"
  }, {
    "description" : "Distributed Energy Resource (SR) endpoints",
    "name" : "Distributed Energy Resources (SR)",
    "x-shortName" : "Distributed Energy Resources"
  } ],
  "paths" : {
    "/secondary/energy/electricity/servicepoints" : {
      "post" : {
        "description" : "Obtain a list of service points owned by the customer that has authorised the current session.\n\nOther Versions: [v1](includes/obsolete/get-service-points-SR-v1.html).",
        "operationId" : "listElectricityServicePointsSR",
        "parameters" : [ {
          "description" : "Page of results to request (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Page size to request. Default is 25 (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page-size",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The _x-fapi-interaction-id_ header value provided by the Data Recipient. If not supplied by the Data Recipient, the primary Data Holder **MUST** create a unique **[[RFC4122]](#nref-RFC4122)** UUID value for the _x-fapi-interaction-id_ header.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "A unique string representing a consent arrangement between a Data Recipient Software Product and Data Holder for a given consumer. The identifier **MUST** be unique per customer according to the definition of customer in the CDR Federation section of this profile. The _x-cds-arrangement_ should contain the arrangement ID for the consent that the request is being made under and will be used for tracing and audit purposes. This field **MUST** be populated but AEMO **MUST NOT** seek to validate the consent associated with the arrangement.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-arrangement",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "$ref" : "#/components/requestBodies/RequestSDHServicePointIds"
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnergyServicePointListResponseV2"
                }
              }
            },
            "description" : "Successful response",
            "headers" : {
              "x-v" : {
                "$ref" : "#/components/headers/XV"
              },
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Page Size](#error-400-field-invalid-page-size)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "422" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[422 - Invalid Page](#error-422-field-invalid-page)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          }
        },
        "summary" : "Get Service Points (SR)",
        "tags" : [ "Electricity Service Points (SR)" ],
        "x-restricted-access" : "AEMO",
        "x-version" : "2"
      }
    },
    "/secondary/energy/electricity/servicepoints/{servicePointId}" : {
      "get" : {
        "description" : "Obtain detailed standing information for a specific service point that is owned by the customer that has authorised the current session.\n\nOther Versions: [v1](includes/obsolete/get-service-point-detail-SR-v1.html).",
        "operationId" : "getElectricityServicePointDetailSR",
        "parameters" : [ {
          "description" : "The independent ID of the service point, known in the industry as the NMI. The _servicePointId_ will be replaced with NMI for all interactions between Data Holder and AEMO.",
          "explode" : false,
          "in" : "path",
          "name" : "servicePointId",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/EnergySDHServicePointId"
          },
          "style" : "simple"
        }, {
          "description" : "Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The _x-fapi-interaction-id_ header value provided by the Data Recipient. If not supplied by the Data Recipient, the primary Data Holder **MUST** create a unique **[[RFC4122]](#nref-RFC4122)** UUID value for the _x-fapi-interaction-id_ header.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "A unique string representing a consent arrangement between a Data Recipient Software Product and Data Holder for a given consumer. The identifier **MUST** be unique per customer according to the definition of customer in the CDR Federation section of this profile. The _x-cds-arrangement_ should contain the arrangement ID for the consent that the request is being made under and will be used for tracing and audit purposes. This field **MUST** be populated but AEMO **MUST NOT** seek to validate the consent associated with the arrangement.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-arrangement",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnergyServicePointDetailResponseV2"
                }
              }
            },
            "description" : "Successful response",
            "headers" : {
              "x-v" : {
                "$ref" : "#/components/headers/XV"
              },
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[404 - Unavailable Service Point](#error-404-unavailable-service-point)</li><li>[404 - Invalid Service Point](#error-404-invalid-service-point)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          }
        },
        "summary" : "Get Service Point Detail (SR)",
        "tags" : [ "Electricity Service Points (SR)" ],
        "x-restricted-access" : "AEMO",
        "x-version" : "2"
      }
    },
    "/secondary/energy/electricity/servicepoints/{servicePointId}/usage" : {
      "get" : {
        "description" : "Obtain a list of electricity usage data from a particular service point.",
        "operationId" : "getElectricityServicePointUsageSR",
        "parameters" : [ {
          "description" : "The independent ID of the service point, known in the industry as the NMI. The _servicePointId_ will be replaced with NMI for all interactions between Data Holder and AEMO.",
          "explode" : false,
          "in" : "path",
          "name" : "servicePointId",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/EnergySDHServicePointId"
          },
          "style" : "simple"
        }, {
          "description" : "Constrain the request to records with effective date at or after this date. If absent defaults to _newest-date_ minus 24 months. Format is aligned to DateString common type.",
          "explode" : true,
          "in" : "query",
          "name" : "oldest-date",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form",
          "x-cds-type" : "DateString"
        }, {
          "description" : "Constrain the request to records with effective date at or before this date. If absent defaults to current date. Format is aligned to DateString common type.",
          "explode" : true,
          "in" : "query",
          "name" : "newest-date",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form",
          "x-cds-type" : "DateString"
        }, {
          "description" : "Type of interval reads. Any one of the valid values for this field can be supplied. If absent defaults to `NONE`.",
          "explode" : true,
          "in" : "query",
          "name" : "interval-reads",
          "required" : false,
          "schema" : {
            "default" : "NONE",
            "enum" : [ "NONE", "MIN_30", "FULL" ],
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Page of results to request (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Page size to request. Default is 25 (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page-size",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The _x-fapi-interaction-id_ header value provided by the Data Recipient. If not supplied by the Data Recipient, the primary Data Holder **MUST** create a unique **[[RFC4122]](#nref-RFC4122)** UUID value for the _x-fapi-interaction-id_ header.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "A unique string representing a consent arrangement between a Data Recipient Software Product and Data Holder for a given consumer. The identifier **MUST** be unique per customer according to the definition of customer in the CDR Federation section of this profile. The _x-cds-arrangement_ should contain the arrangement ID for the consent that the request is being made under and will be used for tracing and audit purposes. This field **MUST** be populated but AEMO **MUST NOT** seek to validate the consent associated with the arrangement.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-arrangement",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnergyUsageListResponse"
                }
              }
            },
            "description" : "Successful response",
            "headers" : {
              "x-v" : {
                "$ref" : "#/components/headers/XV"
              },
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Date](#error-400-field-invalid-date-time)</li><li>[400 - Invalid Page Size](#error-400-field-invalid-page-size)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[404 - Unavailable Service Point](#error-404-unavailable-service-point)</li><li>[404 - Invalid Service Point](#error-404-invalid-service-point)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "422" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[422 - Invalid Page](#error-422-field-invalid-page)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          }
        },
        "summary" : "Get Usage For Service Point (SR)",
        "tags" : [ "Electricity Usage (SR)" ],
        "x-restricted-access" : "AEMO",
        "x-version" : "1"
      }
    },
    "/secondary/energy/electricity/servicepoints/usage" : {
      "post" : {
        "description" : "Obtain the electricity usage data for a specific set of service points.",
        "operationId" : "listElectricityUsageForServicePointsSR",
        "parameters" : [ {
          "description" : "Constrain the request to records with effective date at or after this date. If absent defaults to _newest-date_ minus 24 months. Format is aligned to DateString common type.",
          "explode" : true,
          "in" : "query",
          "name" : "oldest-date",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form",
          "x-cds-type" : "DateString"
        }, {
          "description" : "Constrain the request to records with effective date at or before this date. If absent defaults to current date. Format is aligned to DateString common type.",
          "explode" : true,
          "in" : "query",
          "name" : "newest-date",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form",
          "x-cds-type" : "DateString"
        }, {
          "description" : "Type of interval reads. Any one of the valid values for this field can be supplied. If absent defaults to `NONE`.",
          "explode" : true,
          "in" : "query",
          "name" : "interval-reads",
          "required" : false,
          "schema" : {
            "default" : "NONE",
            "enum" : [ "NONE", "MIN_30", "FULL" ],
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Page of results to request (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Page size to request. Default is 25 (standard pagination).",
          "explode" : true,
          "in" : "query",
          "name" : "page-size",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "style" : "form",
          "x-cds-type" : "PositiveInteger"
        }, {
          "description" : "Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The _x-fapi-interaction-id_ header value provided by the Data Recipient. If not supplied by the Data Recipient, the primary Data Holder **MUST** create a unique **[[RFC4122]](#nref-RFC4122)** UUID value for the _x-fapi-interaction-id_ header.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "A unique string representing a consent arrangement between a Data Recipient Software Product and Data Holder for a given consumer. The identifier **MUST** be unique per customer according to the definition of customer in the CDR Federation section of this profile. The _x-cds-arrangement_ should contain the arrangement ID for the consent that the request is being made under and will be used for tracing and audit purposes. This field **MUST** be populated but AEMO **MUST NOT** seek to validate the consent associated with the arrangement.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-arrangement",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "$ref" : "#/components/requestBodies/RequestSDHServicePointIds"
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnergyUsageListResponse"
                }
              }
            },
            "description" : "Successful response",
            "headers" : {
              "x-v" : {
                "$ref" : "#/components/headers/XV"
              },
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Date](#error-400-field-invalid-date-time)</li><li>[400 - Invalid Page Size](#error-400-field-invalid-page-size)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          },
          "422" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[422 - Invalid Page](#error-422-field-invalid-page)</li><li>[422 - Unavailable Service Point](#error-422-unavailable-service-point)</li><li>[422 - Invalid Service Point](#error-422-invalid-service-point)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "$ref" : "#/components/headers/XFAPIInteractionId"
              }
            }
          }
        },
        "summary" : "Get Usage For Specific Service Points (SR)",
        "tags" : [ "Electricity Usage (SR)" ],
        "x-restricted-access" : "AEMO",
        "x-version" : "1"
      }
    },
    "/secondary/energy/electricity/servicepoints/{servicePointId}/der" : {
      "get" : {
        "description" : "Obtain a list of DER data from a particular service point.",
        "operationId" : "getElectricityDERForServicePointSR",
        "parameters" : [ {
          "description" : "The independent ID of the service point, known in the industry as the NMI. The _servicePointId_ will be replaced with NMI for all interactions between Data Holder and AEMO.",
          "explode" : false,
          "in" : "path",
          "name" : "servicePointId",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/EnergySDHServicePointId"
          },
          "style" : "simple"
        }, {

# --- truncated at 32 KB (112 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cdr-energy/refs/heads/main/openapi/cdr-energy-sdh-openapi.json