Use our experimental Agile forecasts on your own website.
A read-only, versioned JSON forecast feed covering all 14 GB Agile electricity pricing regions. Public access, no API key needed. Browser cross-origin access is enabled.
All regions in one response. Usually refreshed by the normal data collector twice daily; check generated_at_utc for freshness.
Read the forecasts
Every region contains days.tomorrow and days.dayafter. Each day's baseline is our V0.4 experimental forecast; weather_day2, if available, is the alternative V0.6 weather-adjusted Day+2 experiment.
{
"api_version": "1",
"generated_at_utc": "2026-11-03T18:18:22Z",
"unit": "p/kWh incl VAT",
"regions": {
"B": {
"name": "East Midlands",
"days": {
"tomorrow": {
"date": "2026-11-04",
"horizon_days": 1,
"baseline": {
"model": "model identifier",
"issued_at_utc": "2026-11-03T11:24:13Z",
"complete": true,
"periods": [
{"start_utc":"2026-11-04T00:00:00Z","p_per_kwh":34.46}
]
}
}
}
}
}
}
Example is abbreviated for readability. All times in the real API are UTC; dates and the window refer to UK local calendar days, including 46/50 half-hours on clock-change days. Example values are illustrative and not live prices.
JavaScript example
const response = await fetch(
"https://agile-forecast-engine.thravesrichard.workers.dev/api/v1/forecasts.json"
);
if (!response.ok) throw new Error("Forecast feed unavailable");
const data = await response.json();
const region = data.regions["B"];
const tomorrow = region.days.tomorrow;
const prices = tomorrow.baseline?.periods ?? [];
console.log(tomorrow.date, prices);
Electricity pricing region codes
| Code | Area | Code | Area |
|---|---|---|---|
| A | Eastern England | B | East Midlands |
| C | London | D | Merseyside & North Wales |
| E | West Midlands | F | North East England |
| G | North West England | H | Southern England |
| J | South East England | K | South Wales |
| L | South West England | M | Yorkshire |
| N | Southern Scotland | P | Northern Scotland |
Important limitations
These are experimental forecast estimates, not official Octopus Agile tariff rates, and can be inaccurate. Predictions may be absent or incomplete. Never silently treat a missing forecast as an official rate. Compare against published Octopus prices before automatically controlling appliances or making significant financial decisions.
complete means all settlement periods were forecast, not that they were correct. issued_at_utc is the archived forecast issue time. The feed is a periodically published static snapshot, not a live streaming or push service.
This endpoint serves market forecasts only. It contains no Octopus account details, smart-meter readings, personal savings or API credentials. If you need a server-to-server push/webhook integration, please contact the project owner to agree a destination and payload format.