Cheapest Electricity Hours API

Which hours are cheapest
to run things today?
Ask the API.

The cheapest_hours API returns ranked electricity hours for the next 24h — built on day-ahead market data, with a ready-to-use scheduling signal. No math, no custom logic. Just call it and act on the answer.

40
countries
24h
look-ahead
hourly
updated
€0
no API key
Connect via MCP → REST API docs

The response tells you what to do — not just what the price is

Most APIs return a list of prices and leave the scheduling logic to you. Elecz returns a decision-ready signal so an agent or automation can act immediately.

low
Current hour is among the cheapest of the day. Good time to run high-consumption devices — EV charging, heat pump, dishwasher, batch jobs.
medium
Price is average. Acceptable to run if needed, but a cheaper window is likely coming. Defer if possible.
high
Current hour is expensive. Avoid running non-essential loads. Check next_cheap_hour for when to resume.
REST — GET /signal/cheapest-hourscURL
curl "https://elecz.com/signal/cheapest-hours?zone=GB&hours=5"
Response example (zone: GB)JSON
{
  "zone": "GB",
  "currency": "GBP",
  "unit": "p/kWh",
  "current_hour_signal": "low",
  "current_hour_is_cheap": true,
  "current_hour_rank": 2,
  "cheap_window_ends": "2026-05-12T06:00:00+01:00",
  "next_cheap_hour": "2026-05-12T23:00:00+01:00",
  "hours_until_next_cheap": 17,
  "data_complete": true,
  "cheapest_hours": [
    { "rank": 1, "hour": "2026-05-12T04:00", "price": 8.3 },
    { "rank": 2, "hour": "2026-05-12T05:00", "price": 9.1 },
    { "rank": 3, "hour": "2026-05-12T03:00", "price": 9.7 },
    { "rank": 4, "hour": "2026-05-12T23:00", "price": 10.2 },
    { "rank": 5, "hour": "2026-05-12T02:00", "price": 11.4 }
  ]
}

Response fields

Every field is designed to be actionable — no post-processing required.

FieldTypeDescription
current_hour_signalstringlow / medium / high — ready to use as a run/wait/stop signal
current_hour_is_cheapbooleanTrue if current hour is within the requested cheapest window
current_hour_rankintegerRank of current hour by price (1 = cheapest of the day)
cheap_window_endsISO 8601When the current cheap window ends — useful for scheduling a stop time
next_cheap_hourISO 8601Start of the next cheap period — useful for scheduling a delayed start
hours_until_next_cheapintegerHours until the next cheap period — useful for natural language responses
data_completebooleanTrue if tomorrow's day-ahead prices are already published and included in the ranking. Day-ahead data typically available from ~13:00 CET for ENTSO-E zones, ~10:30 JST for Japan.
cheapest_hoursarrayRanked list of cheapest hours with price and timestamp

What developers build with it

The cheapest hours API is the core signal for any energy-aware automation.

⚡ EV charging scheduler
Check current_hour_signal — if low, start charging now. Otherwise delay to next_cheap_hour. No custom price comparison needed.
🌡️ Heat pump control
Pre-heat when electricity is cheap. Use cheap_window_ends to know how long the cheap period lasts before switching to stored heat.
🍽️ Appliance automation
Dishwasher, washing machine, tumble dryer — schedule to run during the top 3–5 cheapest hours. Use cheapest_hours array directly.
🤖 AI agent scheduling
User asks "when should I run the dryer?" — agent calls cheapest_hours, answers with a concrete time and estimated saving. Works via MCP in Claude, Grok, Cursor.
💻 Batch job scheduler
Run compute-heavy or GPU-intensive jobs during the cheapest hours. Useful for data centers, ML training runs, or any workload with flexible timing.
🔋 Battery storage
Charge battery storage during cheapest hours, discharge during expensive ones. Use the full ranked list to build a charge/discharge schedule for the day.

Via MCP — one line of config

The cheapest_hours tool is available via the Elecz MCP server. Any MCP-compatible AI client can call it directly.

MCP config — Claude Desktop / Cursor / GrokJSON
{
  "mcpServers": {
    "elecz": {
      "url": "https://elecz.com/mcp"
    }
  }
}
Example — agent response using cheapest_hoursnatural language
User: "Should I start the dishwasher now?"

Agent (via Elecz MCP):
"Now is actually a good time — you're in the 2nd cheapest hour of
the day at 9.1 p/kWh. The cheap window runs until 06:00, so you
have about 50 minutes. If you miss it, the next cheap period
starts at 23:00 tonight."

Frequently asked questions

Is there a free day-ahead electricity price API?
Yes — Elecz provides day-ahead prices as the foundation for cheapest_hours. Next-day prices are published daily (~13:00 CET for ENTSO-E zones, ~10:30 JST for Japan) and automatically included in the ranking when available. The data_complete flag tells you whether tomorrow's data is already in. No API key or registration required.
Is there a free API for finding the cheapest electricity hours?
Yes — Elecz provides a free cheapest_hours API for 40 countries. No API key, no account, no registration. Call GET /signal/cheapest-hours?zone=GB and you get a ranked list of cheapest hours plus scheduling signals.
How many hours ahead does it look?
Up to 24h ahead, spanning today and tomorrow. The data_complete flag tells you whether tomorrow's prices are already published (typically from ~13:00 CET). When both days are available, the ranking covers the full 24h window ahead.
How do I choose how many cheapest hours to return?
Pass the hours parameter — for example ?zone=FI&hours=3 returns the 3 cheapest hours. Default is 5. The current_hour_signal is calculated relative to your requested window.
Which countries are supported?
40 countries across Europe (all ENTSO-E zones), UK, USA (CAISO, ERCOT, NYISO), Canada (Ontario), Australia, New Zealand, South Korea, and Japan. Note: AU, NZ, and KR do not publish day-ahead data, so cheapest_hours is not available for those zones.
Can I use this with Home Assistant or n8n?
Yes. Via the REST API or the official n8n node (n8n-nodes-elecz), cheapest_hours integrates into any automation platform. The current_hour_signal field returns low, medium, or high — ready to use as a trigger condition without any custom logic.
How is this different from just fetching spot prices and sorting them myself?
You could — but cheapest_hours also returns current_hour_signal, cheap_window_ends, next_cheap_hour, and hours_until_next_cheap. These context fields are what make the response actionable for agents and automations without additional logic.
cheapest electricity hours API cheapest hours electricity API free day-ahead electricity price API day-ahead cheapest hours API off-peak electricity hours API electricity scheduling API EV charging cheapest hours API electricity price signal API cheapest electricity time API hourly electricity price API energy price scheduling API no auth electricity price API home automation smart home electricity API heat pump electricity price API

Find the cheapest hours.
Act on them automatically.

Free. No API key. 40 countries. Works via MCP or REST.

Connect via MCP → Full API overview