Skip to main content
Gary
Rank 1
Rank 1
March 9, 2017
Solved

Can we get access to the OVO energy online account API to download our smart meter usage data?

  • March 9, 2017
  • 227 replies
  • 36559 views

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

Updated on 14/08/25 by Abby_OVO

 

Tim_OVO: “We love seeing the innovative ways our customers are using tech to help monitor and manage their energy usage. It’s inspiring us to think about ways to do energy differently. We know some customers have been using some of the application programming interface (APIs) behind our public facing services. While we’re OK with that, we do need to make you aware of a couple of things.

 

These APIs are designed to be used by OVO teams only, and aren't public facing. There are some downsides to using APIs that aren't for the public, and we wanted to let you know what these are. Behind the scenes, OVO uses APIs to share and update information between systems that power your bills and your online account. This is done in partnership with Kaluza, the tech company that’s part of the OVO family. They’ve built the billing platform designed to put our customers in the driving seat of their energy usage. 

 

These internal APIs are intended for use by Kaluza and its clients, who are energy retailers like OVO, rather than customers. Because of this, there’s no support for them being used anywhere else, which means they may be discontinued with no notice when we update our products and services. 

 

OVO Energy and Kaluza need to be able to monitor these APIs, and may block access if there's any problems in the future.

 

We know some customers may have put time and effort into developing solutions that use these API. So, now that you know the risks, we want to hear from you on how you’re using the APIs and the problems you’re solving with your DIY approach. 

 

Is there anything you’d like to see from OVO to help you monitor and manage your energy better? Leave a comment below to tell us.”

 

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:

https://pypi.org/project/ovoenergy/
https://github.com/timmo001/ovoenergy

 

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 https://github.com/timmo001/ovoenergy/blob/master/ovoenergy/cli.py 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 https://my.ovoenergy.com/api/v2/auth/login 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 https://smartpaym.ovoenergy.com/api/customer-and-account-ids . Be sure to save the items in the “accountIds” property (usually only one item).
  3. Finally, make a GET request to https://smartpaym.ovoenergy.com/api/energy-usage/daily/{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 (https://www.home-assistant.io/integrations/ovo_energy/).


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

 

227 replies

Firedog
Super User
Super User
November 12, 2025

Thanks again, Mike. Retrieving readings will be a welcome bonus for many.

I can’t get this version to work. I log in successfully and select the electricity account. A few moments later, the app crashes. There’s nothing interesting in the OVOData log, but this is from Event Viewer:
  

Application: OvoData.exe

CoreCLR Version: 8.0.2125.47513

.NET Version: 8.0.21

Description: The process was terminated due to an unhandled exception.

Exception Info: code = Error (1), message = System.Data.SQLite.SQLiteException (0x87AF001F): SQL logic error

no such table: MeterReadings

   at System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, SQLiteCommand command, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)

   . . . 

 

Is this enough for you to find and squash the fault? There’s more where that came from!

Noel | I have no official status; I'm just a volunteer who comes here to help other customers. My gear: Aclara SGM 1416-B Electricity-only E7 meter; Chameleon IHD3-PPMID-AAA | It may look as if I know what I’m talking about, but don’t let that fool you. |
MikeWilliams
Newcomer
Newcomer
November 12, 2025

@Firedog 

It looks like the code to Add the new tables did not work.

Can you try renaming your database (which should exist in C:\ProgramData\OvoData) to something other than [accountnumber.db]

Then try again as this should re-build it from scratch
 

/Mike

MikeWilliams
Newcomer
Newcomer
November 12, 2025

Just tried that myself and I have located the issue.

One of my scripts (to update the database) had Unix Line endings instead of Windows line endings

Not sure how that happened ???

Fixing it now ...

/Mike

 

MikeWilliams
Newcomer
Newcomer
November 12, 2025
Firedog
Super User
Super User
November 12, 2025

Brilliant swift reaction again 👍

Off to test - watch this space 👀

 

[EDIT some time later]

@MikeWilliams Getting there! 

The Hh usage data all turned up after chugging away for 25 minutes.  That’s lightning-fast on my dodgy 4G LTE Internet connection, retrieving 150,000 lines of data.

Meter readings also turned up, but incomplete. Looking at the tables in the DB, your code doesn’t seem to be handling multi-register readings well. The MeterRegisters table is incomplete, and if that’s used in some way to drive the MeterReadings selection, it’s not surprising that many fall by the wayside. 

If you need sample files from my multi-register electricity-only account to see what needs to be selected, shout and I’ll get them to you.

Noel | I have no official status; I'm just a volunteer who comes here to help other customers. My gear: Aclara SGM 1416-B Electricity-only E7 meter; Chameleon IHD3-PPMID-AAA | It may look as if I know what I’m talking about, but don’t let that fool you. |
MikeWilliams
Newcomer
Newcomer
November 12, 2025

@Firedog glad you are up and running.

Yes it would help greatly if you could zip up and PM me the meter readings json.

It IS very possible that your JSON is organised slightly different to mine.

I am on a flat daily rate, whereas you are on E7 (according to you signature) and yours data probably has differently organised JSON.

It's a shame that OVO doesn't have a publicly visible definition of the API.

/Mike

Firedog
Super User
Super User
November 12, 2025

@MikeWilliams This is the first time I’ve looked for the readings JSON since the system changed. What I found is very different from the simple file I used to refer to, so I hope this is what you need. Next hurdle is to get it to you. Let me know when you’ve retrieved it and I’ll take it down again.

Noel | I have no official status; I'm just a volunteer who comes here to help other customers. My gear: Aclara SGM 1416-B Electricity-only E7 meter; Chameleon IHD3-PPMID-AAA | It may look as if I know what I’m talking about, but don’t let that fool you. |
MikeWilliams
Newcomer
Newcomer
November 12, 2025

I will try to download it tomorrow when I am on computer. I have downloaded it to my phone, but phone won't open it ...

MikeWilliams
Newcomer
Newcomer
November 12, 2025

Just emailed the file to my work address and I can see the data, so you can delete the file ​@Firedog 

/Mike

Firedog
Super User
Super User
November 12, 2025

Just emailed the file to my work address and I can see the data, so you can delete the file ​...
  

Gone. Good hunting 🙂

Noel | I have no official status; I'm just a volunteer who comes here to help other customers. My gear: Aclara SGM 1416-B Electricity-only E7 meter; Chameleon IHD3-PPMID-AAA | It may look as if I know what I’m talking about, but don’t let that fool you. |