Cleantech Content DataUK energy tariff and EV charging price API

Data, sources and freshness

The rule behind every row: a value is either verified against a supplier, regulator or network source, or it is marked unverified and hidden by default. Nothing is estimated.

Coverage

DatasetSource and cadence
Octopus Energy tariffs, all 14 regions, electricity and gas, import and exportOctopus Energy public products API, synced daily. Off-peak windows are derived from the published half-hourly rate series; Agile and Tracker carry 7, 30 and 90-day averages.
Other suppliers (British Gas, EDF, E.ON Next, Good Energy, OVO, ScottishPower, So Energy, Ecotricity and others)Supplier tariff sheets, quote pages and product pages, verified by hand with the check date recorded. Regional coverage is stated on each row: H (Southern England) or GB average where the supplier publishes one figure.
Ofgem price capOfgem's regional tables, transcribed on announcement day for the coming quarter. All 14 regions plus the GB average, direct debit, standard credit and prepayment, single-rate and Economy 7, electricity and gas.
EV public chargingEach operator's own pricing page, re-checked on a schedule and whenever a price change is reported.

Regions

Electricity prices in Great Britain vary by GSP group (distribution region). Use the letter; the API also returns the region name.

CodeRegionCodeRegion
AEastern EnglandJSouth East England
BEast MidlandsKSouth Wales
CLondonLSouth West England
DMerseyside and North WalesMYorkshire
EWest MidlandsNSouth Scotland
FNorth East EnglandPNorth Scotland
GNorth West EnglandGBGreat Britain average
HSouthern England

Northern Ireland has a separate market and is not covered.

Provenance fields

Every tariff, rate, cap and charging row carries source_url (the page or API the value came from), verified_at (the date it was checked), verified_by (a person or a named automated process) and confidence (verified or unverified). Pass include_unverified=true to see unverified rows; they are clearly labelled.

Freshness

GET /v1/meta/status (or the get_data_freshness tool) returns, per dataset, the number of verified rows and the newest and oldest verified_at, the cap period in force and the next one on file, and the last sync runs. Every response also carries meta.as_of.

Changelog

Inserts, updates and retirements are recorded automatically with old and new values: GET /v1/meta/changelog?table=tariff_rates&limit=50. Rows are retired (active=false, valid_to set), never deleted, so a tariff that was withdrawn last month is still there with include_unavailable=true.

Corrections

If a figure is wrong, email david@cleantechcontent.co.uk with the row's id and a source. Corrections are applied with a note in the changelog.