ENTSO-E European Power Market Scraper - Prices & Generation
Pricing
Pay per event
ENTSO-E European Power Market Scraper - Prices & Generation
Pull EU electricity-market data from the ENTSO-E Transparency Platform: day-ahead prices, load, generation by fuel type (nuclear, gas, wind, solar, hydro), cross-border flows, outages. All 61 EU bidding zones. No API key or signup — pick a dataset, zones, and date range.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
ENTSO-E European Power Market Scraper
Pull EU electricity-market data from the ENTSO-E Transparency Platform REST API. Extracts day-ahead prices, actual load, generation by fuel type (nuclear, gas, wind, solar, hydro), cross-border physical flows, and installed capacity across all 61 EU bidding zones.
The actor calls https://web-api.tp.entsoe.eu/api directly — no browser rendering, no proxy required, no API key or signup on your side. The API returns XML in IEC 62325 format; the actor parses it into flat time-series rows ready for spreadsheet or database ingestion.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
datasetType | select | day_ahead_price | Dataset to fetch: day_ahead_price, actual_load, actual_generation_by_type, installed_capacity_by_type, or cross_border_flow. |
biddingZones | string list | (all 20 major zones) | EIC codes or short labels (e.g. DE_LU, FR, NL, IT_NORD, NO_4). Leave empty to query all 20 major zones. |
periodFrom | string | 24 hours ago | UTC start of the query window. ISO 8601 format: 2026-05-01T00:00Z or 2026-05-01. |
periodTo | string | now | UTC end of the query window. ISO 8601 format: 2026-05-02T00:00Z or 2026-05-02. |
maxItems | integer | 10 | Maximum number of time-series rows to return. Set to 0 for unlimited. |
Supported Datasets
| Dataset | ENTSO-E Code | Typical Resolution | Description |
|---|---|---|---|
| Day-Ahead Price | A44 | PT60M / PT15M | EUR/MWh prices published daily by 13:00 CET for the next day |
| Actual Total Load | A65 | PT60M / PT15M | Realised system load with ~1h lag |
| Actual Generation by Type | A75 | PT60M / PT15M | Realised generation per fuel type (nuclear, gas, wind, solar, hydro, etc.) |
| Installed Capacity by Type | A68 | PT60M / monthly | Installed capacity per fuel type — rarely changes |
| Cross-Border Physical Flow | A88 | PT60M | Net directional MW flow between adjacent zones |
Bidding Zone Labels
The actor accepts both short labels and raw EIC codes:
| Short Label | EIC Code | Zone |
|---|---|---|
DE_LU | 10YDE-VE-------2 | Germany + Luxembourg |
FR | 10YFR-RTE------C | France |
NL | 10YNL----------L | Netherlands |
BE | 10YBE----------2 | Belgium |
ES | 10YES-REE------0 | Spain |
IT_NORD | 10YIT-GRTN-----B | Italy North |
NO_4 | 10YNO-4--------9 | Norway 4 |
Leave biddingZones empty to query the 20 major EU zones automatically.
Output Schema
Each dataset row is a flat object with fields relevant to the requested dataset type. Fields not applicable to the dataset type are omitted.
| Field | Type | Description |
|---|---|---|
dataset_type | string | One of: day_ahead_price, actual_load, actual_generation_by_type, installed_capacity_by_type, cross_border_flow |
bidding_zone | string | EIC code of the bidding zone |
bidding_zone_label | string | Human-readable label (e.g. DE_LU, FR) |
period_start | string | UTC start of the interval (ISO 8601) |
period_end | string | UTC end of the interval (ISO 8601) |
resolution | string | PT60M (hourly) or PT15M (15-minute) |
market | string | day_ahead, actual, installed_capacity, or cross_border |
price_eur_per_mwh | number | Day-ahead price in EUR/MWh (day_ahead_price only) |
generation_mw | number | Actual generation in MW (actual_generation_by_type only) |
installed_capacity_mw | number | Installed capacity in MW (installed_capacity_by_type only) |
actual_load_mw | number | Actual total load in MW (actual_load only) |
flow_mw | number | Cross-border flow in MW, positive = net export from in_area to out_area (cross_border_flow only) |
production_type | string | Fuel/technology label (e.g. Nuclear, Fossil_Gas, Wind_Onshore, Solar) (generation/capacity only) |
in_area | string | Source zone EIC code (cross_border_flow only) |
out_area | string | Destination zone EIC code (cross_border_flow only) |
currency | string | Always EUR |
scraped_at | string | UTC fetch timestamp (ISO 8601) |
Use Cases
- Energy trading and analytics — Pull day-ahead price curves for arbitrage analysis or portfolio valuation across all CWE/Nordic/Iberian zones
- Grid operations research — Analyse actual load vs. generation by fuel mix for a given zone and time window
- Carbon footprint modeling — Combine generation-by-type data with emission factors for real-time or historical carbon intensity estimates
- Academic research — Download multi-year historical data for econometric or ML studies on European electricity markets
- Cross-border flow monitoring — Track hourly MW flows on interconnectors for congestion analysis
Limits
400 requests per minute is shared across all concurrent runs of this actor. Heavy back-fill jobs over many zones may queue.
For zones / periods that return no data (HTTP 400 "No matching data found"), this is normal — the zone simply doesn't publish that dataset for that window.