AGL Energy · Schema
EnergyUsageListResponse
EnergyAustraliaUtilitiesElectricityGasEnergy RetailerConsumer Data RightCDRSmart MeteringSolarDERRenewablesEnergy Markets
Properties
| Name | Type | Description |
|---|---|---|
| data | object | |
| links | object | |
| meta | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/agl-energy/main/json-schema/agl-energy-energy-usage-list-response-schema.json",
"title": "EnergyUsageListResponse",
"x-generated": "2026-10-20",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/agl-energy-electricity-usage-api-openapi.yml#/components/schemas/EnergyUsageListResponse",
"properties": {
"data": {
"$ref": "#/$defs/EnergyUsageListResponse_data"
},
"links": {
"$ref": "#/$defs/LinksPaginated"
},
"meta": {
"$ref": "#/$defs/MetaPaginated"
}
},
"required": [
"data",
"links",
"meta"
],
"type": "object",
"$defs": {
"EnergyServicePointId": {
"description": "A unique identifier for an Energy service point, generated according to [CDR ID Permanence](#id-permanence) requirements.",
"type": "string",
"x-cds-type": "ASCIIString"
},
"EnergyUsageListResponse_data": {
"properties": {
"reads": {
"description": "Array of meter reads sorted by NMI in ascending order followed by _readStartDate_ in descending order.",
"items": {
"$ref": "#/$defs/EnergyUsageRead"
},
"type": "array"
}
},
"required": [
"reads"
],
"type": "object"
},
"EnergyUsageRead": {
"properties": {
"servicePointId": {
"allOf": [
{
"$ref": "#/$defs/EnergyServicePointId"
}
],
"description": "Unique identifier for the service point."
},
"registerId": {
"description": "Register ID of the meter register where the meter reads are obtained.",
"type": "string"
},
"registerSuffix": {
"description": "Register suffix of the meter register where the meter reads are obtained.",
"type": "string"
},
"meterId": {
"description": "Meter id/serial number as it appears in customer's bill. ID permanence rules do not apply.",
"type": "string"
},
"controlledLoad": {
"description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime.",
"type": "boolean"
},
"readStartDate": {
"description": "Date when the meter reads start in AEST and assumed to start from 12:00am AEST.",
"type": "string",
"x-cds-type": "DateString"
},
"readEndDate": {
"description": "Date when the meter reads end in AEST. If absent then assumed to be equal to _readStartDate_. In this case the entry represents data for a single date specified by _readStartDate_.",
"type": "string",
"x-cds-type": "DateString"
},
"unitOfMeasure": {
"description": "Unit of measure of the meter reads. Refer to Appendix B of <a href='https://www.aemo.com.au/-/media/files/stakeholder_consultation/consultations/nem-consultations/2019/5ms-metering-package-2/final-determination/mdff-specification-nem12-nem13-v21-final-determination-clean.pdf?la=en&hash=03FCBA0D60E091DE00F2361AE76206EA'>MDFF Specification NEM12 NEM13 v2.1</a> for a list of possible values.",
"type": "string",
"x-cds-type": "ExternalRef"
},
"readUType": {
"description": "Specify the type of the meter read data.",
"enum": [
"basicRead",
"intervalRead"
],
"type": "string"
},
"basicRead": {
"$ref": "#/$defs/EnergyUsageRead_basicRead"
},
"intervalRead": {
"$ref": "#/$defs/EnergyUsageRead_intervalRead"
}
},
"required": [
"readStartDate",
"readUType",
"registerSuffix",
"servicePointId"
],
"type": "object",
"x-conditional": [
"basicRead",
"intervalRead"
]
},
"EnergyUsageRead_basicRead": {
"description": "Mandatory if _readUType_ is set to `basicRead`.",
"properties": {
"quality": {
"default": "ACTUAL",
"description": "The quality of the read taken. If absent then assumed to be `ACTUAL`.",
"enum": [
"ACTUAL",
"SUBSTITUTE",
"FINAL_SUBSTITUTE"
],
"type": "string"
},
"value": {
"description": "Meter read value. If positive then it means consumption, if negative it means export.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
},
"EnergyUsageRead_intervalRead": {
"description": "Mandatory if _readUType_ is set to `intervalRead`.",
"properties": {
"readIntervalLength": {
"description": "Read interval length in minutes. Required when _interval-reads_ query parameter equals `FULL` or `MIN_30`.",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"aggregateValue": {
"description": "The aggregate sum of the interval read values. If positive then it means net consumption, if negative it means net export.",
"type": "number"
},
"intervalReads": {
"description": "Array of Interval read values. If positive then it means consumption, if negative it means export. Required when _interval-reads_ query parameter equals `FULL` or `MIN_30`.<br>Each read value indicates the read for the interval specified by _readIntervalLength_ beginning at midnight of _readStartDate_ (for example 00:00 to 00:30 would be the first reading in a 30 minute Interval).",
"items": {
"type": "number"
},
"type": "array"
},
"readQualities": {
"description": " Specifies quality of reads that are not `ACTUAL`. For read indices that are not specified, quality is assumed to be `ACTUAL`. If not present, all quality of all reads are assumed to be actual. Required when _interval-reads_ query parameter equals `FULL` or `MIN_30`.",
"items": {
"$ref": "#/$defs/EnergyUsageRead_intervalRead_readQualities"
},
"type": "array"
}
},
"required": [
"aggregateValue"
],
"type": "object",
"x-conditional": [
"readIntervalLength",
"intervalReads",
"readQualities"
]
},
"EnergyUsageRead_intervalRead_readQualities": {
"properties": {
"startInterval": {
"description": "Start interval for read quality flag. First read begins at `1`.",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"endInterval": {
"description": "End interval for read quality flag.",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"quality": {
"description": "The quality of the read taken.",
"enum": [
"SUBSTITUTE",
"FINAL_SUBSTITUTE"
],
"type": "string"
}
},
"required": [
"endInterval",
"quality",
"startInterval"
],
"type": "object"
},
"LinksPaginated": {
"properties": {
"self": {
"description": "Fully qualified link that generated the current response document.",
"type": "string",
"x-cds-type": "URIString"
},
"first": {
"description": "URI to the first page of this set. Mandatory if this response is not the first page.",
"type": "string",
"x-cds-type": "URIString"
},
"prev": {
"description": "URI to the previous page of this set. Mandatory if this response is not the first page.",
"type": "string",
"x-cds-type": "URIString"
},
"next": {
"description": "URI to the next page of this set. Mandatory if this response is not the last page.",
"type": "string",
"x-cds-type": "URIString"
},
"last": {
"description": "URI to the last page of this set. Mandatory if this response is not the last page.",
"type": "string",
"x-cds-type": "URIString"
}
},
"required": [
"self"
],
"type": "object",
"x-conditional": [
"first",
"prev",
"next",
"last"
]
},
"MetaPaginated": {
"properties": {
"totalRecords": {
"description": "The total number of records in the full set. See [pagination](#pagination).",
"type": "integer",
"x-cds-type": "NaturalNumber"
},
"totalPages": {
"description": "The total number of pages in the full set. See [pagination](#pagination).",
"type": "integer",
"x-cds-type": "NaturalNumber"
}
},
"required": [
"totalPages",
"totalRecords"
],
"type": "object"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/agl-energy-energy-usage-list-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.