EU Electricity Prices API: Day-Ahead Power Prices & Cheap Hours
Pricing
from $0.14 / 1,000 price rows
EU Electricity Prices API: Day-Ahead Power Prices & Cheap Hours
Electricity prices scraper & API: hourly (or 15-minute) day-ahead prices of the European electricity market (Strompreise, prix de l'électricité), 40+ bidding zones — cheapest hours, negative-price and spike alerts, history, generation mix and renewable share. For Home Assistant, Slack, webhooks.
Pricing
from $0.14 / 1,000 price rows
Rating
0.0
(0)
Developer
EuroScrape
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
EU Electricity Prices (Day-Ahead): All Zones & Cheap Hours
Tomorrow's electricity prices for 40+ European bidding zones — with the cheapest hours computed for you. Hourly (or native 15-minute) day-ahead spot prices from official market data, plus a free day summary per zone: the cheapest 3-hour window, negative-price intervals, min/max with their exact times.

- ⚡ Every European zone: France, Germany-Luxembourg, all 4 Swedish and 5 Norwegian zones, both Danish zones, all Italian zones, Iberia, the Baltics, the Balkans… Type a country name and get all its zones.
- 🕐 Cheapest window, of the length you need: 3 hours by default, 1 to 12 with
windowHours— the single answer smart-home and EV owners actually want: when to charge, heat or run heavy loads. - 🔔 Daily alerts: schedule it after the 13:00 CET auction and get tomorrow's summary on Telegram, Slack, Discord or a webhook (Home Assistant friendly) — with negative-price and spike alerts.
- 📜 History included: the same data goes back years, for backtesting a dynamic tariff or sizing a battery.
✨ Why this Actor
| 🌍 One input, a continent | "zones": ["all"] = every European bidding zone in one dataset, same format. |
| 🧮 Both units | Every row carries priceEurMwh and priceCtKwh — no mental division when comparing with your tariff. |
| ⏱️ Market-native resolution | The EU switched to 15-minute pricing; get hourly averages (default) or the raw quarter-hours. |
| 🆓 Summaries free | Averages, extremes with times, cheapest/priciest windows (with start and end), hours of negative prices, daily spread. |
| 🌱 Generation mix, free | includeGenerationMix: renewable share, a green/yellow/red signal, load and generation by source (solar, wind, nuclear, hydro, gas, coal…) on every row; the greenest hours and the mix of the day in the summary. |
| 🔌 Automation-ready | JSON/CSV via the Apify API, plus webhook pushes — drop it into Home Assistant, Node-RED, Make or n8n. |
🎯 Use cases
- Smart home & EV: charge in the cheapest window every night, automatically.
- Small businesses on spot tariffs: shift consumption, get spike warnings before an expensive day.
- Energy analysts & journalists: compare zones, track negative-price frequency, pull years of history in one run.
- Solar & battery owners: spot the negative-price intervals when exporting costs you money.
- Carbon-aware automation: run the heat pump, the dishwasher or the batch job when the grid is greenest, not only cheapest.
🚀 Examples
Today and tomorrow for France and Germany:
{"zones": ["FR", "DE-LU"]}
Tomorrow's cheap hours on Telegram, every day at 13:30 CET:
{"zones": ["France"],"monitorName": "fr-spot","alertBelowEurMwh": 0,"telegramBotToken": "123456:ABC…","telegramChatId": "123456789"}
Tomorrow's cheapest 5 hours to charge an EV, pushed to Home Assistant:
{"zones": ["FR"],"windowHours": 5,"monitorName": "ev-charge","webhookUrl": "https://your-home-assistant/api/webhook/…"}
Cheap and green — Germany with the renewable share and the generation by source on every hour:
{"zones": ["DE-LU"],"includeGenerationMix": true}
A year of 15-minute history for the whole Nordics:
{"zones": ["Norway", "Sweden", "Denmark", "FI"],"dateFrom": "2025-10-01","dateTo": "2026-10-01","resolution": "quarter"}
📊 Data Report · 31 Oct 2026: day-ahead power in 18 countries
One run, ENTSO-E day-ahead market, average price of 31 October 2026 in the bidding zone of each capital, the day after European gas crossed 100 €/MWh:
| Country | Average €/MWh |
|---|---|
| Finland | 77 |
| Sweden | 155 |
| Norway | 171 |
| Portugal | 207 |
| Poland | 210 |
| Spain | 218 |
| France | 238 |
| Slovakia | 248 |
| Belgium | 248 |
| Netherlands | 250 |
| Czechia | 251 |
| Denmark | 251 |
| Germany | 251 |
| Austria | 257 |
| Italy | 258 |
| Bulgaria | 281 |
| Romania | 282 |
| Hungary | 290 |
France: 238 €/MWh against 22 €/MWh on the same day of 2025 (×10.7). Same run, a year earlier: set dateFrom and dateTo to 2025-10-31.
Reproduce it (then widen the list):
{"zones": ["France","Germany","Spain","Finland","Hungary"],"includeSummary": true,"includeGenerationMix": true}
More reports like this one, twice a week: EuroScrape on LinkedIn.
📦 Output
A price row (real data):
{"type": "price","zone": "FR","zoneName": "France","country": "France","date": "2026-10-02","timeCet": "2026-10-02T00:00","timeUtc": "2026-10-01T22:00Z","priceEurMwh": 176.41,"priceCtKwh": 17.641,"resolution": "hour"}
The free day summary (real data — note the solar dip: the day averages 172 € but the early-afternoon window costs less than half the evening peak):
{"type": "daySummary","zone": "FR","zoneName": "France","date": "2026-10-03","marketResolution": "15min","averageEurMwh": 172.52,"minEurMwh": 63.94,"minTimeCet": "2026-10-03T13:30","maxEurMwh": 243.06,"maxTimeCet": "2026-10-03T18:45","negativeQuarterHours": 0,"negativeHours": 0,"cheapestWindow": { "hours": 3, "startCet": "2026-10-03T12:15", "averageEurMwh": 81.95, "endCet": "2026-10-03T15:15" },"priciestWindow": { "hours": 3, "startCet": "2026-10-03T18:15", "averageEurMwh": 229.93, "endCet": "2026-10-03T21:15" },"cheapest3hWindow": { "startCet": "2026-10-03T12:15", "averageEurMwh": 81.95 },"priciest3hWindow": { "startCet": "2026-10-03T18:15", "averageEurMwh": 229.93 },"spreadEurMwh": 179.12,"peakAverageEurMwh": 155.24,"offPeakAverageEurMwh": 189.79,"source": "Bundesnetzagentur | SMARD.de via api.energy-charts.info (CC BY 4.0)"}
With includeGenerationMix (real data, Germany, 23 Oct 2026 at 13:00 — a windy, sunny lunch hour: 88 % renewables, 110 € instead of the day's 226 € morning peak):
{"type": "price","zone": "DE-LU","timeCet": "2026-10-23T13:00","priceEurMwh": 110.13,"renewableSharePct": 88.2,"solarSharePct": 19.1,"windSharePct": 52.2,"signal": "green","loadMw": 64224,"residualLoadMw": 13217,"generationMw": { "windOnshore": 31397, "solar": 13678, "coal": 9625, "windOffshore": 5932, "gas": 3954, "biomass": 3788, "waste": 1364, "hydro": 1244, "oil": 299, "other": 156, "geothermal": 13 },"mixSource": "measured"}
and the day summary adds averageRenewableSharePct (64.7 that day), greenestWindow (11:30–14:30 at 84.6 %), peakLoadMw with its time, generationMixPct (wind 48 %, coal 21.5 %, gas 9.5 %, solar 7.4 %…) and generationGwh per source.
💰 Pricing
| Event | Price |
|---|---|
| Run start | $0.003 |
| Price row (one hour, one zone) | $0.0002 |
| Day summaries | free |
A daily "France + Germany, today + tomorrow" run ≈ $0.02. A full year of hourly history for one zone ≈ $1.75. Apify subscribers pay less: −10% (Starter), −20% (Scale), −30% (Business). Set a maximum cost per run in the run options and the Actor stops cleanly when it's reached.
❓ FAQ
When is tomorrow published? The day-ahead auction clears around 12:45 CET; prices are available shortly after 13:00 CET. Schedule your daily run at 13:30 CET and you'll always catch them.
Which time zone are the times in? timeCet is market time (CET/CEST) — the clock the European power market runs on — and timeUtc is included for your automations.
Why 15 minutes? European day-ahead markets moved from hourly to 15-minute products in 2025. The default output averages them into hourly rows; set resolution: "quarter" for the native data.
Are all zones and dates in 15 minutes? No. Dates before the market switched, and a few zones such as Switzerland, are hourly. marketResolution tells you which one you got, and the windows and negative-price durations are computed on real time either way.
Is this my home tariff? It's the wholesale day-ahead price — the basis of dynamic tariffs (Tibber, aWATTar, Octopus…). Your supplier adds taxes, grid fees and margin on top; the shape of the day (cheap and expensive hours) is what this data gives you.
Where does the data come from? Official market data (Bundesnetzagentur | SMARD.de) served by the Fraunhofer ISE energy-charts.info API, licence CC BY 4.0 — the source is credited in every summary. If that API is down, the prices of Germany-Luxembourg, France, Austria, Belgium, the Netherlands, Switzerland, Italy North, Poland, Czechia, Hungary, Slovenia, Denmark (DK1, DK2), southern Norway (NO2) and southern Sweden (SE4) are read directly from SMARD, the same data at its origin; Spain and Portugal from OMIE, the Iberian market operator; Finland, Estonia, Latvia and Lithuania from Elering, the Estonian grid operator; central Sweden (SE3) from Energinet. Each backup was checked hour by hour against a second source. The other zones wait for the API to come back.
Where does the generation mix come from? ENTSO-E transparency data served by the same energy-charts.info API, per country (a country's zones share one mix). Past days and today are measured; the hours not yet measured use the renewable-share forecast, and mixSource tells you which one you got. For the current day, the day summary combines both so that greenestWindow, averageRenewableSharePct and maxRenewableSharePct cover the whole day (mixSource: "measured + forecast", with measuredUntilCet and measuredSharePct saying how much of the day is measured); load and generation by source stay measured only. Nothing is charged for it.
Great Britain? GB left the EU day-ahead coupling; it's not in this dataset (the Actor tells you if you ask for it).
🔌 API, AI agents and integrations
- API: one call runs the Actor and returns the results,
POST https://api.apify.com/v2/acts/euroscrape~eu-electricity-prices/run-sync-get-dataset-items(see the API tab for Python, JavaScript and cURL). - AI agents (MCP): add
https://mcp.apify.com?tools=euroscrape/eu-electricity-pricesto Claude, Cursor, VS Code or any MCP client, and the Actor becomes a tool your agent can call. - No-code automation: start runs and pass the results on with Apify's integrations for n8n, Make and Zapier, or with a webhook when a run ends.
- Exports: every result set downloads as JSON, CSV, Excel or XML, and can be sent to Google Sheets.
- Data Reports: twice a week, EuroScrape turns a run of one of its Actors into a 30-second data report (used-iPhone prices in 18 countries, electricity prices, Ryanair fares…) on LinkedIn. Follow the page to see what the data looks like.
⭐ Your feedback
If this Actor saves you time, a short review on Apify Store helps other users find it. Missing a zone or a statistic? Say it in your review: the most requested features are added first.
🔗 More from EuroScrape
- France Fuel Prices: Cheapest Stations Near You & Alerts: live official prices of all ~10,000 French stations — cheapest Diesel, E10, E85 or LPG around any point, with distances and price-drop alerts.
- EU Public Tenders Scraper: TED, BOAMP & Awards: open tenders and contract awards from all of Europe (TED) and France (BOAMP, DECP), with winners per lot, values in € and daily alerts.
- EU VAT Number Validator (VIES): Bulk Check, Proof & Alerts: validate VAT numbers in bulk against the EU's official registry, with consultation proof for tax audits and alerts when a customer's number becomes invalid.
- France Real Estate Sold Prices (DVF): €/m², Sales & Trends: every property sale registered by the French State — real prices, €/m², addresses, GPS, market trends per city and alerts on new sales.
- France Energy Ratings (DPE): Homes, Energy Sieves & Alerts: official energy certificates of French homes — class, address, consumption, yearly bill — with the F/G energy sieves of any city and alerts on new certificates.
- France Building Permits (Sitadel): Projects, Builders & Alerts: official register of French building permits — housing programmes and commercial buildings with the developer (name, SIREN), address, size and status, and alerts when works start.
- Google Flights Scraper: Cheapest Dates, Prices & Price History: flight prices for any route and dates, cheapest day to fly, typical price range and price-drop alerts.
- Ryanair Low Fare Finder: Cheapest Days, Anywhere & Alerts: Ryanair fare calendars months ahead, every destination under your price cap from any airport, and alerts on drops and new deals.
- Google Hotels Scraper: Prices from Every Booking Site: hotel prices for any destination and dates, with the price on every booking site, rate parity, price calendars and alerts.
- Vinted Scraper: 26 Countries, Deals, Alerts & Seller Data: search Vinted across 26 countries, prices with buyer fees, seller ratings and instant alerts on new listings.
- EU Second-Hand Marketplaces Scraper: Vinted, OLX & More: one search on the top second-hand marketplaces of 18 European countries, prices in €, cheapest country and resale margin.
- Kleinanzeigen Scraper: Deal Finder & Price-Drop Alerts: German classifieds with view counts, full seller details and instant alerts.
- Website Tech Stack Detector: 280+ Technologies, Leads & Signals: technologies, company identity, contacts and sales signals for any website.
- French Companies Scraper (SIRENE): every French company by activity, area and size, with verified websites and emails.
- UK Companies House Scraper: UK companies by SIC code and location, with directors, websites and emails.
- App Store Reviews + Google Play Reviews Scraper (All Countries): reviews from both stores in 175 countries, rating by version and country, free top charts and keyword rankings, alerts on new negative reviews.
- Impressum & Legal Notice Scraper (EU): legal identity, registry numbers and VAT IDs from any website, registry-verified.