Red Energy · Schema
EnergyServicePointDetailResponseV2
EnergyAustraliaUtilitiesElectricityGasEnergy RetailConsumer Data RightCDRProduct Reference DataSmart MeteringOpen Data
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/red-energy/main/json-schema/red-energy-energy-service-point-detail-response-v2-schema.json",
"title": "EnergyServicePointDetailResponseV2",
"x-generated": "2026-10-21",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/red-energy-electricity-service-points-api-openapi.yml#/components/schemas/EnergyServicePointDetailResponseV2",
"properties": {
"data": {
"$ref": "#/$defs/EnergyServicePointDetailV2"
},
"links": {
"$ref": "#/$defs/Links"
},
"meta": {
"$ref": "#/$defs/Meta"
}
},
"required": [
"data",
"links"
],
"type": "object",
"$defs": {
"CommonPAFAddress": {
"description": "Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). Required if _addressUType_ is set to `paf`.",
"properties": {
"buildingName1": {
"description": "Building/Property name 1.",
"type": "string"
},
"buildingName2": {
"description": "Building/Property name 2.",
"type": "string"
},
"dpid": {
"description": "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier.",
"type": "string"
},
"flatUnitNumber": {
"description": "Unit number (including suffix, if applicable).",
"type": "string"
},
"flatUnitType": {
"description": "Type of flat or unit for the address.",
"type": "string"
},
"floorLevelNumber": {
"description": "Floor or level number (including alpha characters).",
"type": "string"
},
"floorLevelType": {
"description": "Type of floor or level for the address.",
"type": "string"
},
"localityName": {
"description": "Full name of locality.",
"type": "string"
},
"lotNumber": {
"description": "Allotment number for the address.",
"type": "string"
},
"postalDeliveryNumber": {
"description": "Postal delivery number if the address is a postal delivery type.",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"postalDeliveryNumberPrefix": {
"description": "Postal delivery number prefix related to the postal delivery number.",
"type": "string"
},
"postalDeliveryNumberSuffix": {
"description": "Postal delivery number suffix related to the postal delivery number.",
"type": "string"
},
"postalDeliveryType": {
"description": "Postal delivery type. (e.g., PO BOX). Valid enumeration defined by Australia Post PAF code file.",
"type": "string"
},
"postcode": {
"description": "Postcode for the locality.",
"type": "string"
},
"state": {
"description": "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.",
"type": "string"
},
"streetName": {
"description": "The name of the street.",
"type": "string"
},
"streetSuffix": {
"description": "The street type suffix. Valid enumeration defined by Australia Post PAF code file.",
"type": "string"
},
"streetType": {
"description": "The street type. Valid enumeration defined by Australia Post PAF code file.",
"type": "string"
},
"thoroughfareNumber1": {
"description": "Thoroughfare number for a property (first number in a property ranged address).",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"thoroughfareNumber1Suffix": {
"description": "Suffix for the thoroughfare number. Only relevant if _thoroughfareNumber1_ is populated.",
"type": "string"
},
"thoroughfareNumber2": {
"description": "Second thoroughfare number (only used if the property has a ranged address e.g., 23-25).",
"type": "integer",
"x-cds-type": "PositiveInteger"
},
"thoroughfareNumber2Suffix": {
"description": "Suffix for the second thoroughfare number. Only relevant if _thoroughfareNumber2_ is populated.",
"type": "string"
}
},
"required": [
"localityName",
"postcode",
"state"
],
"type": "object"
},
"CommonPhysicalAddress": {
"properties": {
"addressUType": {
"description": "The type of address object present.",
"enum": [
"paf",
"simple"
],
"type": "string"
},
"paf": {
"$ref": "#/$defs/CommonPAFAddress"
},
"simple": {
"$ref": "#/$defs/CommonSimpleAddress"
}
},
"required": [
"addressUType"
],
"type": "object",
"x-conditional": [
"simple",
"paf"
]
},
"CommonSimpleAddress": {
"description": "Required if _addressUType_ is set to `simple`.",
"properties": {
"addressLine1": {
"description": "First line of the standard address object.",
"type": "string"
},
"addressLine2": {
"description": "Second line of the standard address object.",
"type": "string"
},
"addressLine3": {
"description": "Third line of the standard address object.",
"type": "string"
},
"city": {
"description": "Name of the city or locality.",
"type": "string"
},
"country": {
"default": "AUS",
"description": "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (`AUS`) is assumed if country is not present.",
"type": "string",
"x-cds-type": "ExternalRef"
},
"mailingName": {
"description": "Name of the individual or business formatted for inclusion in an address used for physical mail.",
"type": "string"
},
"postcode": {
"description": "Mandatory for Australian addresses.",
"type": "string"
},
"state": {
"description": "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.",
"type": "string"
}
},
"required": [
"addressLine1",
"city",
"state"
],
"type": "object",
"x-conditional": [
"postcode"
]
},
"EnergyServicePointDetailV2": {
"allOf": [
{
"$ref": "#/$defs/EnergyServicePointV2"
},
{
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf"
}
]
},
"EnergyServicePointDetailV2_allOf": {
"properties": {
"distributionLossFactor": {
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf_distributionLossFactor"
},
"location": {
"allOf": [
{
"$ref": "#/$defs/CommonPhysicalAddress"
}
],
"description": "Location of the servicepoint."
},
"meters": {
"description": "The meters associated with the service point. This may be empty where there are no meters physically installed at the service point.",
"items": {
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf_meters"
},
"type": "array"
},
"relatedParticipants": {
"items": {
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf_relatedParticipants"
},
"type": "array"
}
},
"required": [
"distributionLossFactor",
"location",
"relatedParticipants"
]
},
"EnergyServicePointDetailV2_allOf_distributionLossFactor": {
"properties": {
"code": {
"description": "A code used to identify data loss factor for the service point values. Refer to AEMO distribution loss factor documents for each financial year to interpret.",
"type": "string"
},
"description": {
"description": "Description of the data loss factor code and value.",
"type": "string"
},
"lossValue": {
"description": "The value associated with the loss factor code.",
"type": "string"
}
},
"required": [
"code",
"description",
"lossValue"
],
"type": "object"
},
"EnergyServicePointDetailV2_allOf_meters": {
"properties": {
"meterId": {
"description": "The meter ID uniquely identifies a meter for a given service point. It is unique in the context of the service point. It is not globally unique.",
"type": "string"
},
"registers": {
"description": "Usage data registers available from the meter. This may be empty where there are no meters physically installed at the service point.",
"items": {
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf_registers"
},
"type": "array"
},
"specifications": {
"$ref": "#/$defs/EnergyServicePointDetailV2_allOf_specifications"
}
},
"required": [
"meterId",
"specifications"
],
"type": "object"
},
"EnergyServicePointDetailV2_allOf_registers": {
"properties": {
"averagedDailyLoad": {
"description": "The energy delivered through a connection point or metering point over an extended period normalised to a 'per day' basis (kWh). This value is calculated annually.",
"type": "number"
},
"consumptionType": {
"description": "Actual/Subtractive Indicator. Note the details of enumeration values below: <ul><li>`ACTUAL`: implies volume of energy actually metered between two dates</li><li>`CUMULATIVE`: indicates a meter reading for a specific date. A second Meter Reading is required to determine the consumption between those two Meter Reading dates.</li></ul>",
"enum": [
"ACTUAL",
"CUMULATIVE"
],
"type": "string"
},
"controlledLoad": {
"description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime.",
"type": "boolean"
},
"multiplier": {
"description": "Multiplier required to take a register value and turn it into a value representing billable energy.",
"type": "number"
},
"networkTariffCode": {
"description": "The Network Tariff Code is a free text field containing a code supplied and published by the local network service provider.",
"type": "string"
},
"registerConsumptionType": {
"description": "Indicates the consumption type of register.",
"enum": [
"INTERVAL",
"BASIC",
"PROFILE_DATA",
"ACTIVE_IMPORT",
"ACTIVE",
"REACTIVE_IMPORT",
"REACTIVE"
],
"type": "string"
},
"registerId": {
"description": "Unique identifier of the register within this service point. Is not globally unique.",
"type": "string"
},
"registerSuffix": {
"description": "Register suffix of the meter register where the meter reads are obtained.",
"type": "string"
},
"timeOfDay": {
"description": "Code to identify the time validity of register contents.",
"enum": [
"ALLDAY",
"INTERVAL",
"PEAK",
"BUSINESS",
"SHOULDER",
"EVENING",
"OFFPEAK",
"CONTROLLED",
"DEMAND"
],
"type": "string"
},
"unitOfMeasure": {
"description": "The unit of measure for data held in this register.",
"type": "string"
}
},
"required": [
"registerConsumptionType",
"registerId"
],
"type": "object"
},
"EnergyServicePointDetailV2_allOf_relatedParticipants": {
"properties": {
"party": {
"description": "The name of the party/organisation related to this service point.",
"type": "string"
},
"role": {
"description": "The role performed by this participant in relation to the service point. Note the details of enumeration values below: <ul><li>`FRMP`: Financially Responsible Market Participant</li><li>`LNSP`: Local Network Service Provider or Embedded Network Manager for child connection points</li><li>`DRSP`: wholesale Demand Response and/or market ancillary Service Provider and note that where it is not relevant for a NMI it will not be included.</li></ul>",
"enum": [
"FRMP",
"LNSP",
"DRSP"
],
"type": "string"
}
},
"required": [
"party",
"role"
],
"type": "object"
},
"EnergyServicePointDetailV2_allOf_specifications": {
"description": "Technical characteristics of the meter.",
"properties": {
"installationType": {
"description": "The metering Installation type code indicates whether the metering installation has to be manually read. Note the details of enumeration values below: <ul><li>`BASIC`: Accumulation Meter – Type 6</li><li>`COMMS1`: Interval Meter with communications – Type 1</li><li>`COMMS2`: Interval Meter with communications – Type 2</li><li>`COMMS3`: Interval Meter with communications – Type 3</li><li>`COMMS4`: Interval Meter with communications – Type 4</li><li>`COMMS4C`: CT connected metering installation that meets the minimum services specifications</li><li>`COMMS4D`: Whole current metering installation that meets the minimum services specifications</li><li>`MRAM`: Small customer metering installation – Type 4A</li><li>`MRIM`: Manually Read Interval Meter – Type 5</li><li>`UMCP`: Unmetered Supply – Type 7</li><li>`VICAMI`: A relevant metering installation as defined in clause 9.9C of the NER</li><li>`NCONUML`: Non-contestable unmeter load - Introduced as part of Global Settlement.</li></ul>",
"enum": [
"BASIC",
"COMMS1",
"COMMS2",
"COMMS3",
"COMMS4",
"COMMS4C",
"COMMS4D",
"MRAM",
"MRIM",
"PROF",
"SAMPLE",
"UMCP",
"VICAMI",
"NCOLNUML"
],
"type": "string"
},
"manufacturer": {
"description": "Free text field to identify the manufacturer of the installed meter.",
"type": "string"
},
"model": {
"description": "Free text field to identify the meter manufacturer's designation for the meter model.",
"type": "string"
},
"nextScheduledReadDate": {
"description": "This date is the next scheduled meter read date (NSRD) if a manual Meter Reading is required.",
"type": "string",
"x-cds-type": "DateString"
},
"readType": {
"description": "Code to denote the method and frequency of Meter Reading. The value is formatted as follows: <ul><li>First Character = Remote (`R`) or Manual (`M`)</li><li>Second Character = Mode: `T` = telephone, `W` = wireless, `P` = powerline, `I` = infra-red, `G` = galvanic, `V` = visual</li><li>Third Character = Frequency of Scheduled Meter Readings: `1` = Twelve times per year, `2` = Six times per year, `3` = Four times per year, `D` = Daily or weekly</li><li>Optional Fourth Character = to identify what interval length the meter is capable of reading. This includes five, 15 and 30 minute granularity as the following: `A` = 5 minute, `B` = 15 minute, `C` = 30 minute, `D` = Cannot convert to 5 minute (i.e. due to metering installation de-energised), `M` = Manually Read Accumulation Meter.</li></ul>For example, <ul><li>`MV3` = Manual, Visual, Quarterly</li><li>`MV3M` = Manual, Visual, Quarterly, Manually Read Accumulation Meter</li><li>`RWDC` = Remote, Wireless, Daily, 30 minutes interval.</li></ul>",
"type": "string"
},
"status": {
"description": "A code to denote the status of the meter. Note the details of enumeration values below: <ul><li>`CURRENT`: Applies when a meter is current and not disconnected</li><li>`DISCONNECTED`: Applies when a meter is present but has been remotely disconnected.</li></ul>",
"enum": [
"CURRENT",
"DISCONNECTED"
],
"type": "string"
}
},
"required": [
"installationType",
"status"
],
"type": "object"
},
"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"
},
"EnergyServicePointV2": {
"properties": {
"consumerProfile": {
"$ref": "#/$defs/EnergyServicePointV2_consumerProfile"
},
"isGenerator": {
"default": false,
"description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit (this may include generator auxiliary loads). If absent defaults to `false`. <br>**Note:** Only applicable for scheduled or semischeduled generators, does not indicate on site generation by consumer.",
"type": "boolean"
},
"jurisdictionCode": {
"description": "Jurisdiction code to which the service point belongs.This code defines the jurisdictional rules which apply to the service point. Note the details of enumeration values below:<ul><li>`ALL`: All Jurisdictions</li><li>`ACT`: Australian Capital Territory</li><li>`NEM`: National Electricity Market</li><li>`NSW`: New South Wales</li><li>`QLD`: Queensland</li><li>`SA`: South Australia</li><li>`TAS`: Tasmania</li><li>`VIC`: Victoria.</li></ul>",
"enum": [
"ALL",
"ACT",
"NEM",
"NSW",
"QLD",
"SA",
"TAS",
"VIC"
],
"type": "string"
},
"lastConsumerChangeDate": {
"description": "The date the account holder changed for the NMI.",
"type": "string",
"x-cds-type": "DateString"
},
"lastUpdateDateTime": {
"description": "The date and time that the information for this service point was modified.",
"type": "string",
"x-cds-type": "DateTimeString"
},
"nationalMeteringId": {
"description": "The independent ID of the service point, known in the industry as the NMI.",
"type": "string"
},
"servicePointClassification": {
"description": "The classification of the service point as defined in MSATS procedures.",
"enum": [
"EXTERNAL_PROFILE",
"GENERATOR",
"LARGE",
"SMALL",
"WHOLESALE",
"NON_CONTEST_UNMETERED_LOAD",
"NON_REGISTERED_EMBEDDED_GENERATOR",
"DISTRIBUTION_WHOLESALE"
],
"type": "string"
},
"servicePointId": {
"allOf": [
{
"$ref": "#/$defs/EnergyServicePointId"
}
],
"description": "Unique identifier for the service point."
},
"servicePointStatus": {
"description": "Code used to indicate the status of the service point. Note the details for the enumeration values below:<ul><li>`ACTIVE`: An active, energised, service point</li><li>`DE_ENERGISED`: The service point exists but is deenergised</li><li>`EXTINCT`: The service point has been permanently decommissioned</li><li>`GREENFIELD`: Applies to a service point that has never been energised</li><li>`OFF_MARKET`: Applies when the service point is no longer settled in the NEM.</li></ul>",
"enum": [
"ACTIVE",
"DE_ENERGISED",
"EXTINCT",
"GREENFIELD",
"OFF_MARKET"
],
"type": "string"
},
"validFromDate": {
"description": "The latest start date from which the constituent data sets of this service point became valid.",
"type": "string",
"x-cds-type": "DateString"
}
},
"required": [
"jurisdictionCode",
"lastUpdateDateTime",
"nationalMeteringId",
"servicePointClassification",
"servicePointId",
"servicePointStatus",
"validFromDate"
],
"type": "object"
},
"EnergyServicePointV2_consumerProfile": {
"properties": {
"classification": {
"description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments.",
"enum": [
"BUSINESS",
"RESIDENTIAL"
],
"type": "string"
},
"threshold": {
"description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments. Note the details of enumeration values below: <ul><li>`LOW`: Consumption is less than the 'lower consumption threshold' as defined in the National Energy Retail Regulations</li><li>`MEDIUM`: Consumption is equal to or greater than the 'lower consumption threshold', but less than the 'upper consumption threshold', as defined in the National Energy Retail Regulations</li><li>`HIGH`: Consumption is equal to or greater than the 'upper consumption threshold' as defined in the National Energy Retail Regulations.</li></ul>",
"enum": [
"LOW",
"MEDIUM",
"HIGH"
],
"type": "string"
}
},
"type": "object"
},
"Links": {
"properties": {
"self": {
"description": "Fully qualified link that generated the current response document.",
"type": "string",
"x-cds-type": "URIString"
}
},
"required": [
"self"
],
"type": "object"
},
"Meta": {
"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/red-energy-energy-service-point-detail-response-v2"
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.