Can we get access to the live usage API?

Userlevel 2
  • Carbon Cutter***
  • 5 replies

Hi Ovo,

I wondered whether the API that powers your live and historical usage page in the account menu is something you could look into opening up a bit so we can freely access our raw data and also perhaps it may stimulate some interesting community projects?

For instance (more sport related), Strava and Fitbit.


Best answer by g-de 27 August 2020, 19:02

can you help me understand if the links above allow users to access raw data as if from an API?

I can certainly give it a go.


Firstly, big thanks to Timmo and other contributors for developing the library. All thanks go to them and links to buy them a coffee for their effort can be found on PyPi or GitHub:


I assume the way the library was developed this was to reverse engineer the My OVO website. That is, browse the website as normal and and monitor the traffic to see what OVO URLs and APIs it uses. Assuming this is the case, one of these URLs (get account IDs) already seems to be different but the library is still working for the moment. The APIs being used are not officially supported outside of the website, so first, a warning that any changes to the My OVO website may break the library.


For anyone using Python, you should be able to include the ovoenergy library and look at for how to use it.


For replicating this in other languages, the process seems to be as follows:

  1. Login by sending a POST request to with the following JSON in the body:
    "username": "...",
    "password": "...",
    "rememberMe": true

    From the response, save the cookies to use in all future requests.

  2. Next, send a GET request to . Be sure to save the items in the “accountIds” property (usually only one item).
  3. Finally, make a GET request to{accountId}?date={yyyy-MM} where {accountId} is the value from the previous request and {yyyy-MM} is the month in the format 2020-08.

You can also get monthly or half-hourly usage using the following URLs similar to step 3:

As mentioned above, if this is wanted for Home Assistant, the integration was added in version 0.114 (

Unfortunately the data only goes up to the end of the previous day as OVO no longer provide real-time data:


View original

204 replies

Userlevel 2
I'd also be interested in having a play with an API if/when it is available.

Could I also suggest simply making the data for a specified date range available as a downloadable CSV?

I would expect that this would be much easier to implement than an API (mainly because it wouldn't require the OAuth or similar authentication infrastructure that would be needed for the API), and would allow customers to analyse their own data in Excel or whatever without needing the programming skills required to use an API.

Userlevel 2
That's great to hear, I'll keep a look out!

I'm interested in making the current live usage more accessible - the page on the website is great but means physically going to look at it, so I'd like to have the current usage readily available on something such as my phone.

I think it would also be interesting to look at the historic usage on other ways such as day of the week and cross reference with freely available weather history to see if there are correlations temperature and gas usage.🆒
A bit late to answer (just got a smart meter installed last week) but I think this would be a great idea. I would probably use the API to include data in a general home automation dashboard, integrating the electricity usage to see if any link to time spent at home or weather information. Happy to be involved in the early testing when it's being developed.
Userlevel 1

I am also working towards a plan zero initiative:

I’d like to be able to track energy usage through the day, not just a daily, weekly, monthly graph so I know where to optimize.

I’d like to be able to create charts using something like Graphana and map the energy data against light levels, temperature, humidity and other atmospheric conditions so I know when there are anomolies.

I’d like to combine the energy usage data with my smart thermostat to better understand the relationship between temperature and cost.

I’d like to set up an alert the moment my smart meter stops posting data so that I’m not sent an email months later requesting a manual submission.

I am not alone having these ideas and being capable of implementing them. But I will not scrape the data. I will simply move to a provider who does support an API.

Userlevel 7
Badge +2

Btw, I can confirm there is no risk of insecure as you will see from the command line the details are on your machine and provided to directly access ovo, the exe has been made by best practice .net core code and is a standalone on pc only exe.

Userlevel 7
Badge +2

We are getting there! 

May be a bit longer but getting there with a reusable easy download:


Userlevel 7

I’ve already been speaking to the dev team this week (most recently yesterday) about what is required, how feasible, and when etc  @mattc 


I’ll be able to get an update shared next week. Thanks for bearing with - this query has not been forgotten. :)

Userlevel 1

If anyone else is still looking for this, Home Assistant just added support for OVO in the latest release (0.114). Details on the integration can be found here:

This uses the “ovoenergy” library which can be found here:

The only problem is data is only available from OVO up to the previous day. I suspect there is some overnight batch process to format the data for the frontend.

Edit: Actually it seems OVO turned off real-time data years ago as it was “unreliable”:


Userlevel 3


At the moment I’m afraid that we’re not planning to be offering something like this in the near future. It’s quite a complex undertaking


Thoughts below please! 

I’ve just spent another 4 fours re-engineering the Smart Meter API, and updated my python automatic script.

Anyone that is interested can use this python script; just update the user name and password.  This queries against the new API and unlike the previous version which output to a MySQL schema, this simply produces a CSV so users can also paste the O/P into Excel, Calc or whatever. :relaxed:


Anyone unhappy with the OVO developers position is free to use my Python script which wraps the normal Web interface to achieve the same.

Userlevel 3
I'm also interested in joining the early access program for the API. At present I'm using Loopenergy to monitor my gas and electric usage, and couple that with my Honeywell Evohome heating controller, I've got a fairly good monitor of overall usage and trends. At present I've a series of python scripts collecting data from both platforms and storing the metrics in an influxdb setup which I query and visualise graphically using grafana. I've also developed custom methods for adapting the overall control of the central heating system beyond what the controller already performs, adapting dynamically to usage patterns, weather, and overall energy consumption, for example, if gas usage increases without heat being called across any zone of the heating system, then the assumption is that the cooker is on and the heating then scales back on the upper floors to allow the increase in ambient temperature from the cooker to be taken into account. Plus I just like seeing what's going on (In work with some fairly big data platforms with work so it's kind of second nature really)

So yes, I'm hoping I can continue to collect data from the new smart meter and continue to use it how I do!
Userlevel 7
Badge +2

Thanks @Jequinlan Have got it working, and it confirms last HH gas data was logged on 19 August 23:30!

What’s the TOU comparison tool you’re working on next?

I am working on creating a "price comparison tool" for taking your actuals and comparing to tarrifs from suppliers where rates may change on up to a half hourly basis. Allowing a true "annual cost projection"

Any chance we've moved on and now have API access or we still waiting?

Userlevel 1

For those interested in something like this being easily accessible I’ve made a terrible walkthrough of how to do so. hope you don’t mind me posting this Tim.

Userlevel 7
Hi Ovo, I wondered whether the API that powers your live and historical usage page in the account menu is something you could look into opening up a bit so we can freely access our raw data and also perhaps it may stimulate some interesting community projects?

Great question, Gary, and thanks for sharing it with us!

We definitely agree that an open API (application program interface, for those not in the know), for our customers to access their smart meter data, is a brilliant idea. This is something we have thought about, and plan on making available in the future, so watch this space!

The possibilities for community projects are endless and we'd love to see some of the ideas that you OVO Forum users have - fire away in the comments sections below! ;)


Updated on 12/07/2019
Tim - that absolutely works for me!
Userlevel 4
I've been monitoring internal temperature and external temperature for over a year, but the missing data set in my home fabric performance analysis is gas use. Ever since I got a smart meter I have periodically asked about the availability of a smart router, from which I could get usage data. I understand that data standards are still evolving, but downloading timestamp and kWh reading doesn't seem a lot to ask for:) I have sampled a few days of data by hovering over the usage graph and transcribing times and values into a spreadsheet, but obviously this takes far too long to be able to build up enough data to analyse. I have been successfully monitoring electricity usage (using an Open Energy Monitor emonTx) for a couple of months now, but the clever guys at OEM say that they don't know of any way of reading gas usage from my particular gas meter, although the technology is available to read gas usage from other kinds of gas meter.
So please add me to the list of people interested in a gas usage api.
Userlevel 7

I’ve got our official stance on this from our dev team:

At the moment I’m afraid that we’re not planning to be offering something like this in the near future. It’s quite a complex undertaking and our product teams are focused on building a great online experience and working with our members towards our Plan Zero initiative. When this changes in the future we’ll announce it on this topic first.

I’ll stick this as the ‘best answer’ so others know. 

Thoughts below please! 

Would it be possible to add a feature to analyse the gas smart meter data against the degree day data for my area.

This is a widely used tool to analyse the energy efficiency of building heating, as it allows usage to be normalised against the weather.
Userlevel 3
Sorry, I know I'm jumping the gun... but I'm:

a) Impatient
b) Curious

I've spent about an hour messing about to try and aggregate the realtime metrics for my Smartmeter usage, and although somewhat inconclusive (due to gaps in data going back to ovo it seems). I've done some reading up on how the SmartThings integration points work, and between that and some trial and error, got a small python script up & running which will log in, poll for active smartmeters on the account, and check the instant usage data against them (if present):

vagrant@vagrant:~/Scripts# ./
Getting readings for GAS meter with mpan 7********4:
Estimated Annual Usage is 7144 M3
Demand : 11.693 KW
Cost/Hour: 0.3776839
Getting readings for ELECTRICITY meter with mpan 1********3:
Estimated Annual Usage is 7091.1 KWH
Demand : 2.564 KW
Cost/Hour: 0.3610112

I'm looking now at doing historical polling, so aggregating data over a set period of time, which seems easy enough to do as it's just serialised JSON in the results for example:


I just wish that the signal from the meter was more reliable so not to have gaps in the metrics... (hence the NotFound events)
Userlevel 7
Badge +2

This is absolutely brilliant all. I shall look and see if i can use this over next month or so to see if it can help model a TOU tariff price modler. Awesome!

Userlevel 7
Badge +2

@Tim_OVO @Transparent @TerryE @andsee @SianiAnni 


Here is it: The API exe I promised that takes all that HH data and nicely formats it into a consumable Sheet


Download all the files, and read the Readme! (oh, and Enjoy) - now I can start work on ther TOU comparison tool!! 


If anyone is willing to send me their export please do!  - It will help me build the tooling.

John (at) QuinlanServices (dot) Com 

Userlevel 3
You already have an internal RESTful API that your node.js framework uses for callbacks withing the Usage page et al. And this JSON return is all that you need for a Node RED flow.

However doing the page request to establish a valid session token is a bit of a PITA. It's a pity that you don;t faciliate direct access to your /api/live/meters/NNNNN/consumptions/aggregate read functions using a secret api key approach that many such system use.

Nonetheless, I'd rare do this the "approved " way, so can you sign me up for trials? Thanks.
Userlevel 3
You already have an internal RESTful API that your node.js framework uses for callbacks withing the Usage page et al. And this JSON return is all that you need for a Node RED flow.

Just in case anyone is interested in doing this, the JS code in the graphics display package running on your browser does a callback to retrieve the JSON data which it uses to draw the pretty usage graphs. For this to work your session must have been properly authenticated with your account and passwork because the API does a security check to ensure that any request for your data has the correct session cookies so that only you can see your data. Notwithstanding this, once your browser has established a session, then you can execute a query of the following format in your browser to pull this data down. You can then open this in your favourite spreadsheet application and manipulate / store the data as your see fit.

where the MPAN comes from your profile and the FROM and TO fields are of the format YYYY-MM-DDTHH:00:00.000Z.
The API does not seem to limited the range size, so I do this once a month and use a script to load the data into my Home Automation MySQL database. Please don't abuse this or I am sure that the developers will apply extra validation. I personally think that 1 query a month is better than going on a couple of times a day as I was doing previously.

Advanced programmers could no doubt script the whole session connection to recover the session cookies. I am one, but I haven't bothered.
Userlevel 7
Badge +5

And whilst we’re at it, let’s tag @NinjaGeek too. He might want to playing with this as well.

Userlevel 7
Badge +2

You can put them in there to save typing them all the time! Thats all. Then you can omit those params from command line.