{"openapi":"3.1.0","info":{"title":"Rill Bates API","version":"1.0.0","summary":"Unofficial read-only Agile Octopus prices for the 14 GB regions.","description":"Public JSON API from Rill Bates. No account and no API key. Prices are Octopus value_inc_vat in p/kWh, served from this site's cache. Rill Bates is not affiliated with Octopus Energy. Forecasts are attributed to AgilePredict and are not published rates. No warranty."},"servers":[{"url":"https://rillbates.com"}],"paths":{"/api/v1/cap":{"get":{"operationId":"priceCap","summary":"Ofgem GB average Direct Debit price cap used by this site.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","geography":"GB average","geography_note":"This is the Great Britain average for Direct Debit. Your region’s standing charge and unit rate can differ. Ofgem publishes the regional tables.","period":"1 October to 31 December 2026","as_of":"2026-10-01","payment":"Direct Debit","annual_cap_pounds":1723,"source":{"name":"Ofgem","url":"https://www.ofgem.gov.uk/your-energy-supply/your-energy-bill/energy-price-cap-unit-rates-and-standing-charges"},"electricity":{"unit_pence_per_kwh":26.32,"standing_pence_per_day":54.83,"vat_note":"No VAT on electricity from 1 October 2026 to 31 March 2027."},"gas":{"unit_pence_per_kwh":7.97,"standing_pence_per_day":29.68,"vat_note":"The published gas figures include 5% VAT."},"typical_use":{"name":"Ofgem Typical Domestic Consumption Values","electricity_kwh":2500,"gas_kwh":9500}}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/household/appliances":{"get":{"operationId":"householdAppliances","summary":"Typical appliance energy use and the cost at the price cap. Estimates.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplianceListResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","cap":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","geography":"GB average","geography_note":"This is the Great Britain average for Direct Debit. Your region’s standing charge and unit rate can differ. Ofgem publishes the regional tables.","period":"1 October to 31 December 2026","as_of":"2026-10-01","payment":"Direct Debit","annual_cap_pounds":1723,"source":{"name":"Ofgem","url":"https://www.ofgem.gov.uk/your-energy-supply/your-energy-bill/energy-price-cap-unit-rates-and-standing-charges"},"electricity":{"unit_pence_per_kwh":26.32,"standing_pence_per_day":54.83,"vat_note":"No VAT on electricity from 1 October 2026 to 31 March 2027."},"gas":{"unit_pence_per_kwh":7.97,"standing_pence_per_day":29.68,"vat_note":"The published gas figures include 5% VAT."},"typical_use":{"name":"Ofgem Typical Domestic Consumption Values","electricity_kwh":2500,"gas_kwh":9500}},"appliances":[{"slug":"washing-machine","name":"Washing machine","estimate":true,"kwh_per_use":0.8,"annual_kwh":176,"cap_cost_per_use_gbp":0.21056,"cap_cost_per_year_gbp":46.3232,"source_note":"Typical estimate: about 0.8 kWh for a 40°C cycle, around four washes a week. A hot cycle uses more."},{"slug":"tumble-dryer","name":"Tumble dryer","estimate":true,"kwh_per_use":2.4000000000000004,"annual_kwh":360.00000000000006,"cap_cost_per_use_gbp":0.6316800000000001,"cap_cost_per_year_gbp":94.75200000000001,"source_note":"Typical estimate for a vented or condenser dryer. A heat-pump dryer often uses less."},{"slug":"dishwasher","name":"Dishwasher","estimate":true,"kwh_per_use":1.0995,"annual_kwh":241.89,"cap_cost_per_use_gbp":0.2893884,"cap_cost_per_year_gbp":63.665448,"source_note":"Typical estimate: about 1.1 kWh for an eco cycle, most days."},{"slug":"oven","name":"Oven","estimate":true,"kwh_per_use":1.5,"annual_kwh":225,"cap_cost_per_use_gbp":0.39480000000000004,"cap_cost_per_year_gbp":59.22,"source_note":"Typical estimate for an hour including heat-up. Fan ovens often use less."},{"slug":"hob","name":"Electric hob","estimate":true,"kwh_per_use":0.75,"annual_kwh":225,"cap_cost_per_use_gbp":0.19740000000000002,"cap_cost_per_year_gbp":59.22,"source_note":"Typical estimate for half an hour at a middling ring, not every ring on full."},{"slug":"air-fryer","name":"Air fryer","estimate":true,"kwh_per_use":0.5,"annual_kwh":100,"cap_cost_per_use_gbp":0.1316,"cap_cost_per_year_gbp":26.32,"source_note":"Typical estimate from a common 1.5 kW rating plate and a 20 minute cook."},{"slug":"kettle","name":"Kettle","estimate":true,"kwh_per_use":0.15000000000000002,"annual_kwh":150.00000000000003,"cap_cost_per_use_gbp":0.03948000000000001,"cap_cost_per_year_gbp":39.48000000000001,"source_note":"Typical estimate: a 3 kW kettle boiled for about 3 minutes, a few times a day."},{"slug":"fridge-freezer","name":"Fridge-freezer","estimate":true,"kwh_per_use":null,"annual_kwh":250,"cap_cost_per_use_gbp":null,"cap_cost_per_year_gbp":65.8,"source_note":"Typical estimate for a modern fridge-freezer over a year. Older models can use much more."},{"slug":"tv","name":"Television","estimate":true,"kwh_per_use":0.32,"annual_kwh":116.8,"cap_cost_per_use_gbp":0.084224,"cap_cost_per_year_gbp":30.74176,"source_note":"Typical estimate: a modest TV for about 4 hours a day. Large screens use more."},{"slug":"electric-shower","name":"Electric shower","estimate":true,"kwh_per_use":1.1333333333333333,"annual_kwh":340,"cap_cost_per_use_gbp":0.29829333333333335,"cap_cost_per_year_gbp":89.488,"source_note":"Typical estimate: an 8.5 kW electric shower for 8 minutes. A mixer shower off a combi is gas, not this."},{"slug":"heater","name":"Electric heater","estimate":true,"kwh_per_use":2,"annual_kwh":200,"cap_cost_per_use_gbp":0.5264,"cap_cost_per_year_gbp":52.64,"source_note":"Typical estimate: a 2 kW fan heater for an hour. How many hours you need is the uncertain part."},{"slug":"dehumidifier","name":"Dehumidifier","estimate":true,"kwh_per_use":2.4,"annual_kwh":288,"cap_cost_per_use_gbp":0.63168,"cap_cost_per_year_gbp":75.8016,"source_note":"Typical estimate: 300 W for 8 hours, on damp days rather than all year."}]}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/household/cheapest":{"get":{"operationId":"householdCheapest","summary":"Cheapest published Agile window today and tomorrow for a typical appliance, versus the cap unit rate.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}},{"name":"appliance","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HouseholdCheapestResponse"}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/regions":{"get":{"operationId":"listRegions","summary":"List the 14 GB regions.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionsResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Rill Bates","note":"The 14 GB distribution regions used for Octopus Agile. Letters I and O are not used."},"count":14,"regions":[{"code":"A","slug":"eastern-england","name":"Eastern England","short_name":"Eastern","dno":"UK Power Networks","cities":"Norwich, Ipswich, Cambridge, Chelmsford"},{"code":"B","slug":"east-midlands","name":"East Midlands","short_name":"East Midlands","dno":"National Grid Electricity Distribution","cities":"Nottingham, Leicester, Derby"},{"code":"C","slug":"london","name":"London","short_name":"London","dno":"UK Power Networks","cities":"Greater London"},{"code":"D","slug":"merseyside-and-north-wales","name":"Merseyside and North Wales","short_name":"Merseyside & N. Wales","dno":"SP Energy Networks","cities":"Liverpool, Chester, Wrexham"},{"code":"E","slug":"west-midlands","name":"West Midlands","short_name":"West Midlands","dno":"National Grid Electricity Distribution","cities":"Birmingham, Coventry, Wolverhampton"},{"code":"F","slug":"north-east-england","name":"North East England","short_name":"North East","dno":"Northern Powergrid","cities":"Newcastle, Sunderland, Middlesbrough"},{"code":"G","slug":"north-west-england","name":"North West England","short_name":"North West","dno":"Electricity North West","cities":"Manchester, Preston, Carlisle"},{"code":"H","slug":"southern-england","name":"Southern England","short_name":"Southern","dno":"SSEN","cities":"Oxford, Reading, Southampton, Portsmouth"},{"code":"J","slug":"south-east-england","name":"South East England","short_name":"South East","dno":"UK Power Networks","cities":"Brighton, Canterbury, Guildford"},{"code":"K","slug":"south-wales","name":"South Wales","short_name":"South Wales","dno":"National Grid Electricity Distribution","cities":"Cardiff, Swansea, Newport"},{"code":"L","slug":"south-west-england","name":"South West England","short_name":"South West","dno":"National Grid Electricity Distribution","cities":"Bristol, Exeter, Plymouth"},{"code":"M","slug":"yorkshire","name":"Yorkshire","short_name":"Yorkshire","dno":"Northern Powergrid","cities":"Leeds, Sheffield, York"},{"code":"N","slug":"southern-scotland","name":"Southern Scotland","short_name":"South Scotland","dno":"SP Energy Networks","cities":"Glasgow, Edinburgh"},{"code":"P","slug":"northern-scotland","name":"Northern Scotland","short_name":"North Scotland","dno":"SSEN","cities":"Aberdeen, Inverness, Dundee"}]}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/prices/current":{"get":{"operationId":"currentPrice","summary":"The half-hour in progress.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"average_inc_vat":29,"slot":{"start":"2026-11-02T18:00:00.000Z","end":"2026-11-02T18:30:00.000Z","start_uk":"2026-11-02T18:00:00+00:00","end_uk":"2026-11-02T18:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"}}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/prices/today":{"get":{"operationId":"pricesToday","summary":"Published half-hours for the London civil day in progress.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DayResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"date":"2026-11-02","published":true,"partial":true,"average_inc_vat":29,"slot_count":14,"slots":[{"start":"2026-11-02T17:00:00.000Z","end":"2026-11-02T17:30:00.000Z","start_uk":"2026-11-02T17:00:00+00:00","end_uk":"2026-11-02T17:30:00+00:00","timezone":"Europe/London","value_inc_vat":20,"value_exc_vat":20,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T17:30:00.000Z","end":"2026-11-02T18:00:00.000Z","start_uk":"2026-11-02T17:30:00+00:00","end_uk":"2026-11-02T18:00:00+00:00","timezone":"Europe/London","value_inc_vat":20,"value_exc_vat":20,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T18:00:00.000Z","end":"2026-11-02T18:30:00.000Z","start_uk":"2026-11-02T18:00:00+00:00","end_uk":"2026-11-02T18:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T18:30:00.000Z","end":"2026-11-02T19:00:00.000Z","start_uk":"2026-11-02T18:30:00+00:00","end_uk":"2026-11-02T19:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T19:00:00.000Z","end":"2026-11-02T19:30:00.000Z","start_uk":"2026-11-02T19:00:00+00:00","end_uk":"2026-11-02T19:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T19:30:00.000Z","end":"2026-11-02T20:00:00.000Z","start_uk":"2026-11-02T19:30:00+00:00","end_uk":"2026-11-02T20:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T20:00:00.000Z","end":"2026-11-02T20:30:00.000Z","start_uk":"2026-11-02T20:00:00+00:00","end_uk":"2026-11-02T20:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T20:30:00.000Z","end":"2026-11-02T21:00:00.000Z","start_uk":"2026-11-02T20:30:00+00:00","end_uk":"2026-11-02T21:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T21:00:00.000Z","end":"2026-11-02T21:30:00.000Z","start_uk":"2026-11-02T21:00:00+00:00","end_uk":"2026-11-02T21:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T21:30:00.000Z","end":"2026-11-02T22:00:00.000Z","start_uk":"2026-11-02T21:30:00+00:00","end_uk":"2026-11-02T22:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T22:00:00.000Z","end":"2026-11-02T22:30:00.000Z","start_uk":"2026-11-02T22:00:00+00:00","end_uk":"2026-11-02T22:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T22:30:00.000Z","end":"2026-11-02T23:00:00.000Z","start_uk":"2026-11-02T22:30:00+00:00","end_uk":"2026-11-02T23:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T23:00:00.000Z","end":"2026-11-02T23:30:00.000Z","start_uk":"2026-11-02T23:00:00+00:00","end_uk":"2026-11-02T23:30:00+00:00","timezone":"Europe/London","value_inc_vat":8,"value_exc_vat":8,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T23:30:00.000Z","end":"2026-11-03T00:00:00.000Z","start_uk":"2026-11-02T23:30:00+00:00","end_uk":"2026-11-03T00:00:00+00:00","timezone":"Europe/London","value_inc_vat":8,"value_exc_vat":8,"unit":"p/kWh","status":"cheap"}]}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/prices/tomorrow":{"get":{"operationId":"pricesTomorrow","summary":"Tomorrow's published half-hours, or an empty list if Octopus has not published them.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DayResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"date":"2026-11-03","published":false,"partial":false,"average_inc_vat":null,"slot_count":0,"slots":[]}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/prices/history":{"get":{"operationId":"pricesHistory","summary":"Up to 30 London civil days ending today. Heavy rate limit.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}},{"name":"days","in":"query","required":false,"description":"Whole number from 1 to 30. Defaults to 1. Days above 1 use the history cache.","schema":{"type":"integer","minimum":1,"maximum":30,"default":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"days":1,"from":"2026-11-02","to":"2026-11-02","slot_count":14,"slots":[{"start":"2026-11-02T17:00:00.000Z","end":"2026-11-02T17:30:00.000Z","start_uk":"2026-11-02T17:00:00+00:00","end_uk":"2026-11-02T17:30:00+00:00","timezone":"Europe/London","value_inc_vat":20,"value_exc_vat":20,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T17:30:00.000Z","end":"2026-11-02T18:00:00.000Z","start_uk":"2026-11-02T17:30:00+00:00","end_uk":"2026-11-02T18:00:00+00:00","timezone":"Europe/London","value_inc_vat":20,"value_exc_vat":20,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T18:00:00.000Z","end":"2026-11-02T18:30:00.000Z","start_uk":"2026-11-02T18:00:00+00:00","end_uk":"2026-11-02T18:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T18:30:00.000Z","end":"2026-11-02T19:00:00.000Z","start_uk":"2026-11-02T18:30:00+00:00","end_uk":"2026-11-02T19:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T19:00:00.000Z","end":"2026-11-02T19:30:00.000Z","start_uk":"2026-11-02T19:00:00+00:00","end_uk":"2026-11-02T19:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T19:30:00.000Z","end":"2026-11-02T20:00:00.000Z","start_uk":"2026-11-02T19:30:00+00:00","end_uk":"2026-11-02T20:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T20:00:00.000Z","end":"2026-11-02T20:30:00.000Z","start_uk":"2026-11-02T20:00:00+00:00","end_uk":"2026-11-02T20:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T20:30:00.000Z","end":"2026-11-02T21:00:00.000Z","start_uk":"2026-11-02T20:30:00+00:00","end_uk":"2026-11-02T21:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T21:00:00.000Z","end":"2026-11-02T21:30:00.000Z","start_uk":"2026-11-02T21:00:00+00:00","end_uk":"2026-11-02T21:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T21:30:00.000Z","end":"2026-11-02T22:00:00.000Z","start_uk":"2026-11-02T21:30:00+00:00","end_uk":"2026-11-02T22:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T22:00:00.000Z","end":"2026-11-02T22:30:00.000Z","start_uk":"2026-11-02T22:00:00+00:00","end_uk":"2026-11-02T22:30:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T22:30:00.000Z","end":"2026-11-02T23:00:00.000Z","start_uk":"2026-11-02T22:30:00+00:00","end_uk":"2026-11-02T23:00:00+00:00","timezone":"Europe/London","value_inc_vat":35,"value_exc_vat":35,"unit":"p/kWh","status":"expensive"},{"start":"2026-11-02T23:00:00.000Z","end":"2026-11-02T23:30:00.000Z","start_uk":"2026-11-02T23:00:00+00:00","end_uk":"2026-11-02T23:30:00+00:00","timezone":"Europe/London","value_inc_vat":8,"value_exc_vat":8,"unit":"p/kWh","status":"cheap"},{"start":"2026-11-02T23:30:00.000Z","end":"2026-11-03T00:00:00.000Z","start_uk":"2026-11-02T23:30:00+00:00","end_uk":"2026-11-03T00:00:00+00:00","timezone":"Europe/London","value_inc_vat":8,"value_exc_vat":8,"unit":"p/kWh","status":"cheap"}]}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"413":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/prices/forecast":{"get":{"operationId":"priceForecast","summary":"AgilePredict p10–p90 band. Heavy rate limit. 200 with availability unavailable when the upstream is down.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForecastResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"AgilePredict","url":"https://agilepredict.com/","note":"Community forecast with a p10–p90 band. Not a published Octopus price."},"fetched_at":"2026-11-02T16:05:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"availability":"available","forecast":{"name":"AgilePredict","created_at":"2026-11-02T16:00:00.000Z","stale":false,"points":[{"start":"2026-11-03T00:00:00.000Z","end":"2026-11-03T00:30:00.000Z","start_uk":"2026-11-03T00:00:00+00:00","end_uk":"2026-11-03T00:30:00+00:00","timezone":"Europe/London","value_inc_vat":11.2,"p10":9.1,"p90":14.4,"unit":"p/kWh"}]}}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/windows/cheapest":{"get":{"operationId":"cheapestWindow","summary":"Lowest-average contiguous block inside the next 24 hours.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}},{"name":"hours","in":"query","required":true,"schema":{"type":"integer","enum":[1,2,3,4]}},{"name":"within","in":"query","required":false,"description":"Only 24h is accepted. It is the default.","schema":{"type":"string","enum":["24h","24"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheapestResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"hours":1,"within":"24h","window":{"start":"2026-11-02T23:00:00.000Z","end":"2026-11-03T00:00:00.000Z","start_uk":"2026-11-02T23:00:00+00:00","end_uk":"2026-11-03T00:00:00+00:00","timezone":"Europe/London","hours":1,"average_inc_vat":8,"min_inc_vat":8,"max_inc_vat":8,"slot_count":2,"unit":"p/kWh","status":"cheap"}}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/appliances/best-time":{"get":{"operationId":"applianceBestTime","summary":"Cheapest run inside 48 hours and a cost for a typical kWh figure.","parameters":[{"name":"region","in":"query","required":true,"description":"GB letter A–P excluding I and O, or a slug such as london.","schema":{"type":"string"}},{"name":"appliance","in":"query","required":true,"schema":{"type":"string","enum":["washing-machine","dishwasher","dryer","ev","oven","heat-pump","immersion"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplianceResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","source":{"name":"Octopus Energy public API","url":"https://developer.octopus.energy/guides/rest/api-endpoints/","product_code":"AGILE-24-10-01","tariff_code":"E-1R-AGILE-24-10-01-C","unit":"p/kWh","field":"value_inc_vat","vat_rate":0,"vat_note":"value_exc_vat is Octopus's published field, copied through unchanged. It matches value_inc_vat. Household electricity VAT in Great Britain is 0% for this period, so the two figures are equal. Rill Bates does not add VAT."},"fetched_at":"2026-11-02T18:10:00.000Z","stale":false,"region":{"code":"C","slug":"london","name":"London"},"appliance":{"id":"washing-machine","name":"Washing machine","assumed_kwh":0.8,"hours":1},"horizon":"48h","window":{"start":"2026-11-02T23:00:00.000Z","end":"2026-11-03T00:00:00.000Z","start_uk":"2026-11-02T23:00:00+00:00","end_uk":"2026-11-03T00:00:00+00:00","timezone":"Europe/London","hours":1,"average_inc_vat":8,"min_inc_vat":8,"max_inc_vat":8,"slot_count":2,"unit":"p/kWh","status":"cheap"},"cost_gbp":0.064,"cost_note":"Estimate is the average unit rate times the assumed kWh. A negative figure means you would be paid for those units. Standing charge is not included. The kWh figure is a typical assumption, not a measurement of your appliance."}}}},"400":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"503":{"description":"The query is missing or not usable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/status":{"get":{"operationId":"apiStatus","summary":"Cache freshness. Does not call Octopus or AgilePredict.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"},"example":{"notice":"Unofficial. Not affiliated with, endorsed by, or speaking for Octopus Energy. No warranty. Attribute the source if you republish the figures.","generated_at":"2026-11-02T18:15:00.000Z","version":"1","limits":{"standard":{"requests":60,"window_seconds":60,"burst":60},"heavy":{"requests":10,"window_seconds":60,"burst":10,"paths":["/api/v1/prices/history","/api/v1/prices/forecast"]},"note":"Limits are per IP. HTML pages do not use these buckets. There is no API key."},"cache":{"product":{"state":"fresh","fetched_at":"2026-11-02T18:00:00.000Z","age_seconds":900,"product_code":"AGILE-24-10-01"},"regions":[{"code":"A","slug":"eastern-england","name":"Eastern England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"B","slug":"east-midlands","name":"East Midlands","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"C","slug":"london","name":"London","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"D","slug":"merseyside-and-north-wales","name":"Merseyside and North Wales","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"E","slug":"west-midlands","name":"West Midlands","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"F","slug":"north-east-england","name":"North East England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"G","slug":"north-west-england","name":"North West England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"H","slug":"southern-england","name":"Southern England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"J","slug":"south-east-england","name":"South East England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"K","slug":"south-wales","name":"South Wales","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"L","slug":"south-west-england","name":"South West England","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"M","slug":"yorkshire","name":"Yorkshire","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"N","slug":"southern-scotland","name":"Southern Scotland","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}},{"code":"P","slug":"northern-scotland","name":"Northern Scotland","rates":{"state":"fresh","fetched_at":"2026-11-02T18:10:00.000Z","age_seconds":300},"history":{"state":"stale","fetched_at":"2026-11-02T12:00:00.000Z","age_seconds":22500},"forecast":{"state":"empty","fetched_at":null,"age_seconds":null}}]}}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}},"/api/v1/openapi.json":{"get":{"operationId":"openApi","summary":"This document.","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object","required":["openapi","paths"]}}}},"429":{"description":"Per-IP limit reached. Retry after Retry-After seconds.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer","minimum":1}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until one request can succeed.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time when one request can succeed.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}}}}}},"components":{"schemas":{"CapResponse":{"type":"object","additionalProperties":false,"required":["notice","geography","geography_note","period","as_of","payment","annual_cap_pounds","source","electricity","gas","typical_use"],"properties":{"notice":{"type":"string"},"geography":{"type":"string"},"geography_note":{"type":"string"},"period":{"type":"string"},"as_of":{"type":"string"},"payment":{"type":"string"},"annual_cap_pounds":{"type":"number"},"source":{"type":"object","additionalProperties":false,"required":["name","url"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"electricity":{"type":"object","additionalProperties":false,"required":["unit_pence_per_kwh","standing_pence_per_day","vat_note"],"properties":{"unit_pence_per_kwh":{"type":"number"},"standing_pence_per_day":{"type":"number"},"vat_note":{"type":"string"}}},"gas":{"type":"object","additionalProperties":false,"required":["unit_pence_per_kwh","standing_pence_per_day","vat_note"],"properties":{"unit_pence_per_kwh":{"type":"number"},"standing_pence_per_day":{"type":"number"},"vat_note":{"type":"string"}}},"typical_use":{"type":"object","additionalProperties":false,"required":["name","electricity_kwh","gas_kwh"],"properties":{"name":{"type":"string"},"electricity_kwh":{"type":"number"},"gas_kwh":{"type":"number"}}}}},"ApplianceListResponse":{"type":"object","additionalProperties":false,"required":["notice","cap","appliances"],"properties":{"notice":{"type":"string"},"cap":{"$ref":"#/components/schemas/CapResponse"},"appliances":{"type":"array","items":{"type":"object"}}}},"HouseholdCheapestResponse":{"type":"object","required":["notice","estimate","today","tomorrow","cap_unit_pence"],"properties":{"notice":{"type":"string"},"estimate":{"const":true},"cap_unit_pence":{"type":"number"},"today":{"type":["object","null"]},"tomorrow":{"type":["object","null"]}}},"ErrorObject":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Region":{"type":"object","additionalProperties":false,"required":["code","slug","name"],"properties":{"code":{"type":"string","pattern":"^[A-HJ-NP]$"},"slug":{"type":"string"},"name":{"type":"string"}}},"Slot":{"type":"object","additionalProperties":false,"required":["start","end","start_uk","end_uk","timezone","value_inc_vat","value_exc_vat","unit","status"],"properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"start_uk":{"type":"string","format":"date-time"},"end_uk":{"type":"string","format":"date-time"},"timezone":{"const":"Europe/London"},"value_inc_vat":{"type":"number"},"value_exc_vat":{"type":"number"},"unit":{"const":"p/kWh"},"status":{"enum":["cheap","normal","expensive","negative"]}}},"OctopusSource":{"type":"object","additionalProperties":false,"required":["name","url","product_code","tariff_code","unit","field","vat_rate","vat_note"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"product_code":{"type":"string"},"tariff_code":{"type":["string","null"]},"unit":{"const":"p/kWh"},"field":{"const":"value_inc_vat"},"vat_rate":{"type":["number","null"],"description":"Fraction implied by value_inc_vat / value_exc_vat on a sample slot. 0 when Octopus publishes the same figure for both, which is the case while GB household electricity VAT is 0%."},"vat_note":{"type":"string"}}},"Window":{"type":"object","additionalProperties":false,"required":["start","end","start_uk","end_uk","timezone","hours","average_inc_vat","min_inc_vat","max_inc_vat","slot_count","unit","status"],"properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"start_uk":{"type":"string","format":"date-time"},"end_uk":{"type":"string","format":"date-time"},"timezone":{"const":"Europe/London"},"hours":{"type":"number"},"average_inc_vat":{"type":"number"},"min_inc_vat":{"type":"number"},"max_inc_vat":{"type":"number"},"slot_count":{"type":"integer","minimum":1},"unit":{"const":"p/kWh"},"status":{"enum":["cheap","normal","expensive","negative"]}}},"CurrentResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","average_inc_vat","slot"],"properties":{"notice":{"type":"string"},"source":{"$ref":"#/components/schemas/OctopusSource"},"fetched_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"},"average_inc_vat":{"type":["number","null"]},"slot":{"anyOf":[{"$ref":"#/components/schemas/Slot"},{"type":"null"}]}}},"DayResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","date","published","partial","average_inc_vat","slot_count","slots"],"properties":{"notice":{"type":"string"},"source":{"$ref":"#/components/schemas/OctopusSource"},"fetched_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"},"date":{"type":"string","format":"date"},"published":{"type":"boolean"},"partial":{"type":"boolean"},"average_inc_vat":{"type":["number","null"]},"slot_count":{"type":"integer","minimum":0},"slots":{"type":"array","items":{"$ref":"#/components/schemas/Slot"}}}},"HistoryResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","days","from","to","slot_count","slots"],"properties":{"notice":{"type":"string"},"source":{"$ref":"#/components/schemas/OctopusSource"},"fetched_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"},"days":{"type":"integer","minimum":1,"maximum":30},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"slot_count":{"type":"integer","minimum":0},"slots":{"type":"array","items":{"$ref":"#/components/schemas/Slot"}}}},"ForecastPoint":{"type":"object","additionalProperties":false,"required":["start","end","start_uk","end_uk","timezone","value_inc_vat","p10","p90","unit"],"properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"start_uk":{"type":"string","format":"date-time"},"end_uk":{"type":"string","format":"date-time"},"timezone":{"const":"Europe/London"},"value_inc_vat":{"type":"number"},"p10":{"type":["number","null"]},"p90":{"type":["number","null"]},"unit":{"const":"p/kWh"}}},"ForecastResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","availability","forecast"],"properties":{"notice":{"type":"string"},"source":{"type":"object","additionalProperties":false,"required":["name","url","note"],"properties":{"name":{"const":"AgilePredict"},"url":{"type":"string","format":"uri"},"note":{"type":"string"}}},"fetched_at":{"type":["string","null"],"format":"date-time"},"stale":{"type":["boolean","null"]},"region":{"$ref":"#/components/schemas/Region"},"availability":{"enum":["available","unavailable"]},"forecast":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["name","created_at","stale","points"],"properties":{"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"points":{"type":"array","items":{"$ref":"#/components/schemas/ForecastPoint"}}}}]}}},"CheapestResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","hours","within","window"],"properties":{"notice":{"type":"string"},"source":{"$ref":"#/components/schemas/OctopusSource"},"fetched_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"},"hours":{"type":"integer","enum":[1,2,3,4]},"within":{"const":"24h"},"window":{"anyOf":[{"$ref":"#/components/schemas/Window"},{"type":"null"}]}}},"ApplianceResponse":{"type":"object","additionalProperties":false,"required":["notice","source","fetched_at","stale","region","appliance","horizon","window","cost_gbp","cost_note"],"properties":{"notice":{"type":"string"},"source":{"$ref":"#/components/schemas/OctopusSource"},"fetched_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"},"appliance":{"type":"object","additionalProperties":false,"required":["id","name","assumed_kwh","hours"],"properties":{"id":{"enum":["washing-machine","dishwasher","dryer","ev","oven","heat-pump","immersion"]},"name":{"type":"string"},"assumed_kwh":{"type":"number"},"hours":{"type":"number"}}},"horizon":{"const":"48h"},"window":{"anyOf":[{"$ref":"#/components/schemas/Window"},{"type":"null"}]},"cost_gbp":{"type":["number","null"]},"cost_note":{"type":"string"}}},"RegionsResponse":{"type":"object","additionalProperties":false,"required":["notice","source","count","regions"],"properties":{"notice":{"type":"string"},"source":{"type":"object","additionalProperties":false,"required":["name","note"],"properties":{"name":{"type":"string"},"note":{"type":"string"}}},"count":{"const":14},"regions":{"type":"array","minItems":14,"maxItems":14,"items":{"type":"object","additionalProperties":false,"required":["code","slug","name","short_name","dno","cities"],"properties":{"code":{"type":"string","pattern":"^[A-HJ-NP]$"},"slug":{"type":"string"},"name":{"type":"string"},"short_name":{"type":"string"},"dno":{"type":"string"},"cities":{"type":"string"}}}}}},"CacheState":{"type":"object","additionalProperties":false,"required":["state","fetched_at","age_seconds"],"properties":{"state":{"enum":["fresh","stale","empty"]},"fetched_at":{"type":["string","null"],"format":"date-time"},"age_seconds":{"type":["integer","null"],"minimum":0}}},"StatusResponse":{"type":"object","additionalProperties":false,"required":["notice","generated_at","version","limits","cache"],"properties":{"notice":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"version":{"const":"1"},"limits":{"type":"object","additionalProperties":false,"required":["standard","heavy","note"],"properties":{"standard":{"type":"object","additionalProperties":false,"required":["requests","window_seconds","burst"],"properties":{"requests":{"const":60},"window_seconds":{"const":60},"burst":{"const":60}}},"heavy":{"type":"object","additionalProperties":false,"required":["requests","window_seconds","burst","paths"],"properties":{"requests":{"const":10},"window_seconds":{"const":60},"burst":{"const":10},"paths":{"type":"array","items":{"type":"string"}}}},"note":{"type":"string"}}},"cache":{"type":"object","additionalProperties":false,"required":["product","regions"],"properties":{"product":{"type":"object","additionalProperties":false,"required":["state","fetched_at","age_seconds","product_code"],"properties":{"state":{"enum":["fresh","stale","empty"]},"fetched_at":{"type":["string","null"],"format":"date-time"},"age_seconds":{"type":["integer","null"],"minimum":0},"product_code":{"type":["string","null"]}}},"regions":{"type":"array","minItems":14,"maxItems":14,"items":{"type":"object","additionalProperties":false,"required":["code","slug","name","rates","history","forecast"],"properties":{"code":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"rates":{"$ref":"#/components/schemas/CacheState"},"history":{"$ref":"#/components/schemas/CacheState"},"forecast":{"$ref":"#/components/schemas/CacheState"}}}}}}}}}}}