1. Data Retrieval
Glow Platform
  • Welcome to Glow Data Service!
  • Getting Started
  • Glow Portals
  • Introducing the Glow System
  • API Authentication
  • Smart Meter Onboarding
    • Introducing Smart Meter Onboarding
    • Smart Meter Eligibility Check
    • Terms and Conditions APIs and Management
    • Onboarding Methods — Direct Integration
      • EUI/Postcode Check
      • AVS Check
    • Onboarding Methods — Hosted Integration
      • Glow IDV SDK
        • Introducing the Glow SDK
        • Supported Verification Methods
        • Implementation Guide — Web
        • Implementation Guide — Mobile
        • Verifiable Credentials
        • Verification Result Screen
        • Consent Capture & Onboarding
    • Onboarding Methods — No Integration
      • Invitation Functionality
      • Agent Verification Portal
  • Data Retrieval
    • Retrieving Time Series Data from Onboarded Users
  • Consent Management and Offboarding
    • Consent Management
    • Offboarding
  • Glow CADs & Fulfilment
    • Glow CAD Fulfilment
  • API Reference
    • Smart Meter Elgibility
      • eligibility
        • smets-ihd-cad
          • Check MPxN has CAD/PPMID
        • checksmetsihd
          • postcode
            • Match EUI IHD with postcode
          • Match EUI IHD with MPxN
        • checksmetsmpxn
          • Check MPXN is eligible in DCC.
    • Content System
      • content
        • {contentId}
          • get a content object
          • Update an existing content object
        • Find all the content objects of an application
        • Add a content object
      • languagecontent
        • {languageContentId}
          • get a language content object by ID
          • Update an existing language content object
        • Find all the language content objects of an application
        • Add a language content object
      • termsconditions
        • {tcId}
          • get a terms and conditions object by ID
        • current
          • Find the terms and conditions that are in force.
        • Find all the terms and conditions of an application
        • Add terms and conditions
      • termsconditionsuser
        • {tcUserId}
          • get a specified terms and conditions user obj
        • Find all the responses to terms and conditions documents.
        • Add a user's response to Terms & Conditions document
      • supportdetails
        • {supportDetailsId}
          • get a support details object
        • Find all the support detail objects of an application
        • Add a support details object
      • faq
        • {faqId}
          • get a FAQ object
        • Find all the FAQ objects of an application
        • Add a faq object
      • prompttype
        • {promptTypeId}
          • get a Prompt Type object
        • Find all the prompt type objects of an application
        • Add a Prompt Type object
      • prompt
        • {promptId}
          • get a Prompt object
        • Find all the prompt objects of an application
        • Add a Prompt object
      • promptuser
        • {promptUserId}
          • get a Prompt User object
        • Find all the prompt user objects of an application
        • Add a Prompt User object
      • useraction
        • {userActionId}
          • get a User Action object
        • Find all the user action objects of an application
        • Add a User Action object
      • useractiontype
        • {userActionTypeId}
          • get a User Action Type object
        • Find all the user action type objects of an application
        • Add a User Action Type object
    • User System
      • register
        • User self registers
      • account
        • {accountId}
          • status
            • Find the status of a specified account. If the account is using an external directory service, this call will confirm whether the user is authenticated against it. This call requires administrative application level credentials.
          • mobileapptoken
            • Add mobile app token to a user
            • Remove a mobile app token to a user
          • Find specific account of an application.
          • Updates the account's metadata.
          • Delete account
        • status
          • With a given JWT token a user can have their account status verfied. If their account is created under an external directory service, this call will establish whether a user's token to the external service is still valid.
        • email
          • Change a user's email
        • name
          • Change a user's name
        • changepassword
          • Change a user's password
        • Find all accounts of an application
        • Add an account to an existing user
      • user
        • {userId}
          • username
            • Change a user's username
          • Find specific user that has an account in an application.
          • Delete specific user. This will delete all the accounts of a user. Please refer to delete account API. This API requires specific permissions.
        • verify
          • Generate a user verification token
          • Verify a user verification token
        • resetpassword
          • Generate a token that can be used by user to reset their password.
          • A user resets their password
        • verification
          • status
            • mpxns
              • renewal
                • Renew consent for a number of meterpoints
              • revocation
                • Revoke consent for a number of meterpoints
            • mpxn
              • {mpxn}
                • renewal
                  • Get meter point consent renewals
                  • Renew meter point consent
                • revocation
                  • Get meter point consent revocations
                  • Revoke meter point consent
            • API to retrieve user's meter points' consent and verification
        • Find specific user that has an account in an application from the username.
        • Create a user
      • accountprofile
        • {profileName}
          • Find specific group of application
        • Find all the profiles of an account
        • Create an account profile under a given profileName.
      • accountsession
        • get the session of an account
        • Update an account session.
      • auth
        • token
          • {tokenId}
            • Deletes a token, specified by its tokenId.
          • Returns all the tokens that are active and valid for a specified user.
        • newToken
          • Generate a new token for an account.
        • deleteToken
          • delete a token
        • oauth
          • access
            • Exchange the Authorization Code for an Access Token.
          • Check and validate an Oauth Access token.
          • Authenticate a user and generate an OAuth 2.0 Authorization Code Grant.
        • Checks whether a user token is valid.
        • authenticate an account
    • Virtual Entity System
      • vesys
        • appstats
          • find statistics on the number of Virtual Entities per application
      • virtualentity
        • {id}
          • resources
            • Find the resources of that belong to Virtual Entity with ID
          • attribute
            • Find a Virtual Entity's metadata by ID
            • Add/Update a Virtual Entity's metadata
            • delete metadata from the Virtual Entity
          • Find Virtual Entity by ID
          • Update a Virtual Entity
          • Delete a Virtual Entity
        • Add a new Virtual Entity
        • Find all Virtual Entities
      • vetype
        • {id}
          • resources
            • Find all resources that belong to a user that satisfy the Resource Types in the Virtual Entity Type definition.
          • Find Virtual Entity Type by ID
          • Update a Virtual Entity Type
        • Add a new Virtual Entity Type
        • Find all Virtual Entity Types
    • Webhook System
      • webhook
        • {webhookId}
          • Find webhook by ID
        • error
          • {errorId}
            • Find a particular webhook error
          • Find all the webhooks that have failed
        • Find all webhooks of an application (or user)
    • Resource System
      • resource
        • {id}
          • readings
            • Get resource readings
          • current
            • Get the current resource reading.
          • first-time
            • Get the UTC time of the first available reading
          • last-time
            • Get the UTC time of the most recent available reading
          • meterread
            • Get the cumulative value reported on a metering device. (Not supported for all resource types).
          • tariff
            • Get the latest tariff that is being applied to a resource.
          • tariff-list
            • Get the tariff history that is being applied to a cost resource.
          • catchup
            • Trigger a request to retrieve the latest available readings from the DCC.
          • glowbinary
            • API that returns the resource's raw data in the Glow Binary format.
          • Find resource by ID
        • count
          • Count the number of resources per resourceType
        • Add a new resource
        • Find all resources per user or application
      • resourcetype
        • {id}
          • resource
            • Find resources of a specific resource type that belong to a user
          • appresource
            • Find resources of a specific resource type that an application has access to
          • Find resourceType by ID
        • Add a new resource type.
        • Find all resource types
    • Notification System
      • alerttype
        • {alertTypeId}
          • Find alert type by ID
          • Updates the alert type's metadata.
        • Find all alert types of an application
        • Create an alert type
      • alert
        • {alertId}
          • Get an alert by Id
        • user
          • Get the alerts sent to a user
        • Send an alert
      • template
        • {templateId}
          • Find template type by ID
          • Updates the teplate's metadata.
        • {alertTypeId}
          • {channelType}
            • {cultureCode}
              • Find template by alertTypeId, channeType and cultureCode
              • Create template by alertTypeId, channeType and cultureCode
        • Find all templates of an application
        • Create a template
      • notification
        • {notificationId}
          • log
            • Get the logs of a particular notification
          • Get a notification by Id
    • DFS
      • dfs
        • termsconditions
          • The current version of terms and conditions that is pertinent to DFS for a particular application.
        • user
          • Get all the users that have opted in the DFS functionality
          • User opts in to DFS functionality for a particular MPxN. The mpxn field is only required if a user has more than one MPxN.
          • User opts out of DFS functionality
        • event
          • {dfsEventId}
            • user
              • Get all the users that have participated in a particular DFS event
          • user
            • participation
              • API to indicate User participating in particular DFS event
            • Get all the events a user has signed up for
    • Device Management System
      • devicetype
        • {id}
          • Find Device Type by ID
        • Add a new Device Type
        • Find all device types
      • device
        • {id}
          • status
            • This call can be used to see whether a gateway device is sending packets to the Glow Platform (i.e. via WiFi).
          • Find device by ID
        • resource
          • {resourceId}
            • Find the device that sources a specified resource.
        • meter-point
          • {meterPointNumber}
            • inventory
              • Get the DCC inventory of a meter point
            • resources
              • Get the resources associated to a meter point
        • smart-meter
          • {eui}
            • inventory
              • Get the DCC inventory of a meter point by providing an EUI.
        • status
          • This call can be used to see whether a gateway device is sending packets to the Glow Platform (i.e. via WiFi).
        • Get a user's devices
        • Add a new device
      • discover
        • {hardwareId}
          • Find device by ID
  1. Data Retrieval

Retrieving Time Series Data from Onboarded Users

This document explains how the Glow APIs are used to access smart meter data from the properties of energy consumers who have provided consent for their smart meter data to be retrieved by Hildebrand and made available to your organisation.
By the end of this document, organisation users should have an understanding of how to retrieve time series data for their organisation’s energy consumers, and the base knowledge required to use the remainder of our APIs.
If you have further questions, please check the FAQ in the Developer's Portal or email support@glownetzero.com

Prerequisites to Data Access#

In order to access data via the Glow APIs on behalf of an organisation, an active account for the Glow Development Portal is required.
To set up a new Development portal user, please navigate to our previous page here.

Data Retrieval for Time Series Data#

Energy and sensor data is stored in a time series that can be retrieved as follows (each step is described in more detail below).
For a full list of the available Resource APIs, please visit this folder.
1
Retrieve all users from the Glow Platform
This is an optional step.
2
Get the virtual entities of each user
By skipping Step 1, you can instead retrieve all the virtual entities you have access to.
3
Get the full definition of resources that belong to a particular virtual entity
4
Get the time series data of a particular resource

Step 1: Retrieve all Users#

In the Glow Platform, each energy consumer is a user and is mapped to a unique identifier known as their userId. A userId has access to one or more applications. Their data is held in resources (described in more detail in Step 3), which are grouped in virtual entities.
To retrieve the complete user base of your application, use the following query:
API reqhttps://api.glowmarkt.com/api/v0-1/account
Authentication requiredBasic Auth
Headers
  • Content-Type: application/json
  • Authorization Header(Basic Auth)
Example cURLcurl -X GET -H "Content-Type: application/json" -H "Authorization: Basic BASIC_AUTH_KEY” "https://api.glowmarkt.com/api/v0-1/account"
Swagger referencehttps://api.glowmarkt.com/api-docs/v0-1/usersys/usertypes/#/account/getAccounts
The response will be in JSON and will be an array of user documents.
A user document looks like this (the userID listed below will deliver sample data as described below):
{
    "createdAt": "2018-03-23T10:12:18.454Z",
    "updatedAt": "2018-03-23T10:12:18.454Z",
    "directoryId": "ac164539-5d7a-4cf9-8478-ca25b6d81ef0",
    "applicationId": "c72ef3b8-eeb1-4f64-9abd-96eda813c068",
    "userId": "41ad1a43-cdaf-4f48-b48c-1577d2edd65b",
    "accountId": "4df0241d-d074-4b30-b0df-bd1dbb94bd28",
    "status": "active",
    "active": true,
    "name": "Tester",
    "username": "tester@glowtest.com"
  }

Step 2: Get all Virtual Entities#

To retrieve a specific user’s virtual entities, use the following query:
API reqGET https://api.glowmarkt.com/api/v0-1/virtualentity
Authentication requiredBasic Auth
Headers
  • Content-Type: application/json
  • Authorization Header(Basic Auth)
  • userId (optional)
Example cURLcurl -X GET -H "Content-Type: application/json" -H "Authorization: Basic BASIC_AUTH_KEY” -H "userId: b0f1b774-a586-4f72-9edd-27ead8aa7a8d" “https://api.glowmarkt.com/api/v0-1/virtualentity"
Swagger referencehttps://api.glowmarkt.com/api-docs/v0-1/vesys/#/Virtual%20Entity/virtualentity_findAll
To retrieve all the virtual entities your application has access to, do not add the userId on the headers of the request.
The response will be in JSON, and will be an array of virtual entity documents. Each virtual entity will have a name, a unique identifier (veId), and a field named resources that will list all the resources that belong to that particular virtual entity.
[
  {
    "name": "Smart Home 1",
    "veId": "dc9069a7-7695-43fd-8f27-16b1c94213da",
    "veTypeId": "cc90b599-2705-4b13-98d4-3306f81169cf",
    "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
    "applicationId": "b0f1b774-a586-4f72-9edd-27ead8aa7a8d",
    "updatedAt": "2018-10-26T17:10:02.670Z",
    "createdAt": "2018-10-26T17:10:02.670Z",
    "resources": [
      {
 	"resourceId": "73f70bcd-3743-4009-a2c4-e98cc959c030",
        "resourceTypeId": "ea02304a-2820-4ea0-8399-f1d1b430c3a0"
      },
      {
        "resourceId": "b120977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "b4158501-a678-484a-837a-874194d3bd48"
      },
      {
        "resourceId": "b320977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "32d9821b-34fd-46d1-9ba1-56259afd4734"
      },
      {
        "resourceId": "b420977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "672b8071-44ff-4f23-bca2-f50c6a3ddd02"
      }
    ]
  },
  {
    "name": "Smart Business 2",
    "veId": "dc9069a7-7695-43fd-8f27-16b1c94213da",
    "veTypeId": "cc90b599-2705-4b13-98d4-3306f81169cf",
    "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
    "applicationId": "b0f1b774-a586-4f72-9edd-27ead8aa7a8d",
    "updatedAt": "2018-11-26T17:10:02.670Z",
    "createdAt": "2018-11-26T17:10:02.670Z",
    "resources": [
      {
        "resourceId": "74f70bcd-3743-4009-a2c4-e98cc959c030",
        "resourceTypeId": "ea02304a-2820-4ea0-8399-f1d1b430c3a0"
      },
      {
        "resourceId": "c120977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "b4158501-a678-484a-837a-874194d3bd48"
      },
      {
        "resourceId": "c320977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "32d9821b-34fd-46d1-9ba1-56259afd4734"
      },
      {
        "resourceId": "c420977-aeb6-4b56-a0d3-d4a9b485848a",
        "resourceTypeId": "672b8071-44ff-4f23-bca2-f50c6a3ddd02"
      }
    ]
  }
]

Get a Virtual Entity with the full definition of resources#

Any incoming data from smart meters, sensors and devices etc, is stored in what we call resources. Typically, a resource represents a single data stream. Each resource has a unique identifier within the Glowmarkt platform, called a resourceId.
From Step 2, you already have the unique identifiers of each resource, so you can skip this step and move directly to Step 4.
If you wish to retrieve the full definition of all the resources that belong to a particular virtual entity, use the following query:
API reqGET https://api.glowmarkt.com/api/v0-1/virtualentity/dc9069a7-7695-43fd-8f27-16b1c94213da/resources
Authentication requiredBasic Auth
Headers
  • Content-Type: application/json
  • Authorization Header(Basic Auth)
Example cURLcurl -X GET -H "Content-Type: application/json" -H "Authorization: Basic BASIC_AUTH_KEY” "https://api.glowmarkt.com/api/v0-1/virtualentity/dc9069a7-7695-43fd-8f27-16b1c94213da/resources"
Swagger referencehttps://api.glowmarkt.com/api-docs/v0-1/vesys/#/Virtual%20Entity/virtualentity_findResourcesbyVeId
The response will be in JSON, and will be the virtual entity document. Under the resources array, the full definition of each resource will be provided.
{
  "name": "Smart Home 1",
  "veId": "dc9069a7-7695-43fd-8f27-16b1c94213da",
  "veTypeId": "cc90b599-2705-4b13-98d4-3306f81169cf",
  "ownerId": "51ad1a43-cdaf-4f48-b48c-1577d2edd65b",
  "applicationId": "b0f1b774-a586-4f72-9edd-27ead8aa7a8d",
  "updatedAt": "2018-10-26T17:10:02.670Z",
  "createdAt": "2018-10-26T17:10:02.670Z",
  "resources": [
    {
      "resourceId": "73f70bcd-3743-4009-a2c4-e98cc959c030",
      "resourceTypeId": "ea02304a-2820-4ea0-8399-f1d1b430c3a0",
      "name": "electricity",
      "classifier": "electricity.consumption",
      "description": "electricity consumption",
      "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
      "baseUnit": "kWh",
      "active": true
    },
    {
      "resourceId": "b120977-aeb6-4b56-a0d3-d4a9b485848a",
      "resourceTypeId": "b4158501-a678-484a-837a-874194d3bd48",
      "name": "electricity cost",
      "classifier": "electricity.consumption.cost",
      "description": "electricity cost",
      "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
      "baseUnit": "pence",
      "active": true
    },
    {
      "resourceId": "b320977-aeb6-4b56-a0d3-d4a9b485848a",
      "resourceTypeId": "32d9821b-34fd-46d1-9ba1-56259afd4734",
      "name": "gas",
      "classifier": "gas.consumption",
      "description": "gas consumption",
      "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
      "baseUnit": "kWh",
      "active": true
    },
    {
      "resourceId": "b420977-aeb6-4b56-a0d3-d4a9b485848a",
      "resourceTypeId": "672b8071-44ff-4f23-bca2-f50c6a3ddd02",
      "name": "gas cost",
      "classifier": "gas.consumption.cost",
      "description": "gas cost",
      "ownerId": "f78a3812-d4fc-4b00-99c5-20fd581721a6",
      "baseUnit": "pence",
      "active": true
    }
  ]
}
The classifier field on the resource document indicates the data type. Examples of classifiers are:
Classifier IdentifierDescription
electricity.consumptionThe electricity readings of a customer in energy units (kWh).
electricity.consumption.costThe electricity readings of a customer in monetary units (pence).
electricity.exportElectricity exported from a site, measured in energy units (kWh).
electricity.import.reactiveReactive electricity imported at a site, measured in energy units (kVARh). This represents power that is out of phase with active power due to equipment such as capacitors and inductors. This data is typically relevant for larger non-domestic sites.
electricity.export.reactiveThe export reactive energy for electricity of a site in energy units (kVARh). This data is typically useful for large non-domestic sites.
gas.consumptionThe gas readings of a customer in energy units (kWh).
gas.consumption.costThe gas readings of a customer in monetary units (pence).
If a property has an electricity and a gas meter installed, there will be four resources: electricity consumption, electricity cost, gas consumption, gas cost.
Electricity only customers will have two resources: electricity consumption, electricity cost.
The type of resources that are attached to a virtual entity depend on the type of the application.

Step 4: Get the Resource readings#

To retrieve the time series data of a resource, make the following query:
API reqGET https://api.glowmarkt.com/api/v0-1/resource/1ddbfcb4-2ff1-4812-a425-1952f323c763/readings?from=2018-04-10T00:00:00&to=2018-04-23T23:59:59&period=P1D&offset=-60&function=sum
API Syntaxhttps://api.glowmarkt.com/api/v0-1/resource/{{resourceId}}/readings?from=YYYY-MM-DDTHH:MM:SS&to=YYYY-MM-DDTHH:MM:SS&period=P1D&offset=-60&function=sum
Authentication requiredBasic Auth
Headers
  • Content-Type: application/json
  • Authorization Header(Basic Auth)
Example cURLcurl -X GET -H "Content-Type: application/json" -H "Authorization: Basic BASIC_AUTH_KEY" “https://api.glowmarkt.com/api/v0-1/resource/1ddbfcb4-2ff1-4812-a425-1952f323c763/readings?from=2018-04-10T00:00:00&to=2018-04-23T23:59:59&period=P1D&offset=-60&function=sum"
Swagger referencehttps://api.glowmarkt.com/api-docs/v0-1/resourcesys/#/Resource/resource_getReading
The query parameters that can be used are:
Query ParameterDescription
fromThe date, data is required from. The date time syntax is yyyy-mm-ddThh:mm:ss
toThe date, data is required to. The date time syntax is yyyy-mm-ddThh:mm:ss
offsetAll the data we store is saved in UTC (Coordinated Universal Time), regardless of the timezone it was collected in. Note: UK smart meters timestamp in UTC. For the API to correctly return the data for the period you request you must supply the offset in minutes between the timezone you require and UTC. As an example if you wish to request data in BST (British Summer Time, UTC+1) you should specify an offset of -60. EST (East Coast N America) would be +300.
functionThe aggregating function that will be applied to the data. (Use sum to get total reading per period).
periodThe aggregation level in which the data is to be returned (ISO 8601).
  • PT1M (minute level, only elec)
  • PT30M (30 minute level)
  • PT1H (hour level)
  • P1D (day level)
  • P1W (week level, starting Monday)
  • P1M (month level)
  • P1Y (year level)
This is an example response:
{
  "status": "OK",
  "name": "electricity consumption",
  "resourceTypeId": "ea02304a-2820-4ea0-8399-f1d1b430c3a0",
  "resourceId": "73f70bcd-3743-4009-a2c4-e98cc959c030",
  "query": {
    "from": "2018-04-10T00:00:00",
    "to": "2018-04-11T23:59:59",
    "period": "P1D"
  },
  "data": [
    [
      1523318400,
      48.79
    ],
    [
      1523404800,
      48.826
    ]
  ]
}
All the data is under the data field. The data is an array of arrays.
[
	[UTC timestamp, reading],
	[UTC timestamp, reading],
]
Important: depending on the aggregation period, there is a limit to the volume of data that can be requested per query as follows:
Period ParameterDescriptionLimit in days
PT1M1-minute level2 days
PT30M30-minute level10 days
PT1H1-hour level31 days
P1D1-day level31 days
P1W1-week level6 weeks
P1M1-month level365 days
PIY1-year level365 days
When the aggregation periods of P1W and P1M are used, the start date of the query (“to” date) should be set to the beginning of the week (Monday) or month respectively (1st day).
An overview on using our APIs in a video is available here .
Modified at 2026-09-07 14:42:14
Previous
Agent Verification Portal
Next
Consent Management
Built with