Key Concepts

This document provides sample code for typical scenarios when integrating the Openvolt API

🚦 Interactive API Docs

When using the api docs to list all meters https://docs.openvolt.com/reference/get_meters, the docs makes a live call to the Openvolt API and returns a live response, but also gives you code snippets in every language to build directly into your app. All samples in this document are actually constructed this way, so if you need to modify any of the calls, feel free to do so on the API documentation and generate new sample code

πŸ“ˆ Developer Keys

All calls to the API, either through code snippets or through the API docs need to use an API Key. These keys are found in the Developer Dashboard and can be rotated as often as you wish (for security purposes). Keep this key safe, as any developer with these keys can make API calls on your behalf.

Earlier this year we deprecated our sandbox environment in favour of using test meters. Use meter numbers 9999999999999 9999999999998 9999999999997 9999999999996 and 9999999999995 to simulate successful meters (more test meters to follow, simulating unsuccessful scenarios)

If you would like a separate application for production and staging (for example), each with their separate api keys, please talk to your account manager


πŸ’¬ Openvolt concepts

Before getting into the different recipes, it’s important to understand some design decisions on our API. Ultimately, Users wants to pull half hourly data for a meter_number (mpan) . However, multiple different parties may give consent to pull the same meter_number data, and so the concept of a customer is needed. For example - the Property Manager of Building A with meter_number:12345 maybe one customer, but Asset Manager of Building A with meter_number:12345 could also be another customer. Each of these will have different consent mechanisms or LOAs governing the correct access to the data.

This is where the meter object comes in. A meter is unique to both a customer and a meter_number (mpan). When pulling data from central sources, it will be at the meter level. When a user is consuming daily webhooks from Openvolt, it will be at the meter level.