# Energy-Charts API - full endpoint reference > European electricity data (production, forecasts, day-ahead prices, cross-border exchange, renewable shares, grid frequency) by energy-charts.info / Fraunhofer ISE. Every data endpoint returns the same self-describing envelope: ISO 8601 timestamps in the stated `timezone`, series identified by the ids listed in `series`, units and resolution declared inline, and `available_from` / `available_until` marking the span that actually contains data. Timestamps always mark the START of the period they refer to, with one exception: installed_power, where values represent the state at the END of the labelled year or month. Base URL: http://api.energy-charts.info ## Usage conventions - Prefer the `/v2/...` endpoints: one uniform JSON envelope, interpretable without external documentation. The v1 endpoints (same names without the `/v2` prefix) return compact columnar JSON (`unix_seconds` + parallel value arrays) and remain supported. - Timestamps in v2 responses are ISO 8601 with UTC offset in the stated `timezone` and always mark the START of the period they refer to. Single exception: `installed_power`, where the timestamp labels the reporting year or month and values represent the installed power at the END of that period (or the net change during it, with installation_decommission=true). `series[*].id` are the keys of every `data[*].values` record; series entries carry `unit` or `description` only where they differ from the envelope level. Units and resolution are declared inline; `null` values mean "not (yet) available". `available_from`/`available_until` span the records that actually contain data at generation time. - `start`/`end` query parameters accept ISO 8601 (`2026-01-01T17:00Z`), a date (`2026-01-01`, interpreted in the local timezone of the country / bidding zone) or unix seconds (`1767222000`). Omitted `start` defaults to today, omitted `end` to `start`. - Requests are rate limited per client IP and per endpoint (token bucket, short bursts allowed): 2 requests/minute by default (burst 4), `signal` 20/minute (burst 40), `price` 2/minute (burst 2); each `/v2` endpoint inherits the limit of its v1 counterpart. The limits are additionally adjusted dynamically to the current server load, so treat them as an upper bound rather than a guarantee. On HTTP 429, wait and retry (honour the `Retry-After` header, in seconds) and cache results on your side. Identical requests are served from a short-lived server-side cache. - Data license: CC BY 4.0 with attribution to energy-charts.info unless the response's `license` field states otherwise (day-ahead prices carry their license per bidding zone; several zones are CC BY 4.0 from Bundesnetzagentur | SMARD.de, all others are restricted to private and internal use). ## Response envelope (all /v2 endpoints) ```json { "schema_version": "2.0", "endpoint": "public_power", "country": "de", "timezone": "Europe/Berlin", "resolution": "PT15M", "interval_minutes": 15, "unit": "MW", "generated_at": "2026-07-20T19:45:00+02:00", "available_from": "2026-07-20T00:00:00+02:00", "available_until": "2026-07-20T19:30:00+02:00", "series": [{"id": "solar", "name": "Solar"}, {"id": "renewable_share_of_load", "name": "Renewable share of load", "unit": "%"}], "data": [{"timestamp": "2026-07-20T12:00:00+02:00", "values": {"solar": 42135.7, "renewable_share_of_load": 61.4}}], "attributes": {}, "license": "CC BY 4.0 (creativecommons.org/licenses/by/4.0), attribution: energy-charts.info", "deprecated": false } ``` ## GET /v2/cbet Cross-border electricity trading (scheduled commercial exchanges). Cross-border electricity trading (scheduled commercial exchanges) in gigawatt (GW) between a country and each of its neighbors, plus a 'sum' series. Positive values are imports, negative values exports. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/cbpf Cross-border physical flows. Cross-border physical electricity flows in gigawatt (GW) between a country and each of its neighbors, plus a 'sum' series. Positive values are imports, negative values exports. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/frequency Grid frequency (RG Continental Europe), 1 second resolution. Grid frequency in hertz (Hz) measured at Fraunhofer ISE in Freiburg, Germany (RG Continental Europe). Available in 1 second steps from 2022-05-01 on; the requested interval is limited to 3 days. Timestamps are ISO 8601 in UTC. Parameters: - `region` (string, optional, default: DE-Freiburg): Measurement region (currently only 'DE-Freiburg') - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/installed_power Installed power per production type. Installed power per production type. Units are carried per series (typically GW; battery storage capacity in GWh; monthly installation / decommission figures in MW). NOTE: unlike all other endpoints, timestamps here label the reporting year or month, and values represent the installed power at the END of that period (or, with installation_decommission=true, the net change during the period). Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `time_step` (string, optional, default: yearly): 'monthly' is only available for Germany Allowed values: yearly, monthly. - `installation_decommission` (boolean, optional, default: False): If true, net installation / decommission per period is returned instead of cumulative installed power ## GET /v2/price Day-ahead spot market price. Day-ahead spot market price for a bidding zone in EUR/MWh. The `license` field states the license of the returned data; for several zones the data is CC BY 4.0 from Bundesnetzagentur | SMARD.de, for all other zones it is restricted to private and internal use. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `bzn` (string, optional, default: DE-LU): Bidding zone Allowed values: see 'bzn' list below. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/price_current Day-ahead spot market price of the current interval. Day-ahead spot market price of the interval that contains the current time, as a single-record envelope. `attributes.valid_until` states when the returned price expires (start of the next interval); re-fetch after that time. Returns 404 if no price is available for the current interval. License handling as for /v2/price. Parameters: - `bzn` (string, optional, default: DE-LU): Bidding zone Allowed values: see 'bzn' list below. ## GET /v2/price_next_day Day-ahead spot market price for the next day. Day-ahead spot market prices for the next local day of the bidding zone (the day after today), covering the full day. `attributes.delivery_date` states the day the prices refer to. Returns 404 while tomorrow's auction results are not yet published (results typically become available in the early afternoon CET of the current day). License handling as for /v2/price. Parameters: - `bzn` (string, optional, default: DE-LU): Bidding zone Allowed values: see 'bzn' list below. ## GET /v2/public_power Public net electricity production per production type. Public net electricity production in megawatt (MW) for a given country, one series per production type. Timestamps are ISO 8601 in the local timezone and mark the interval start. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `subtype` (string, optional): Optional subtype, e.g. "solarlog" for Switzerland ## GET /v2/public_power_forecast Forecast of public net electricity production or load. Forecast of the public net electricity production (or load) in megawatt (MW). If no dates are provided, values from today until the end of the available forecast are returned. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `production_type` (string, optional, default: solar): Forecasted quantity Allowed values: solar, wind_onshore, wind_offshore, load, wind. - `forecast_type` (string, optional, default: current): Forecast horizon; 'load' supports only 'day-ahead' Allowed values: current, intraday, day-ahead, week-ahead. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/ren_share_daily_avg Average daily renewable share of load. Average daily renewable share of load in percent, either for the trailing 365 days (year = -1) or for a given calendar year. Timestamps mark local midnight of each day. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `year` (integer, optional, default: -1): Calendar year; -1 = trailing 365 days ## GET /v2/ren_share_forecast Renewable share of load forecast. Forecast of the renewable share of load in percent from today until the end of the available forecast, including the solar, wind onshore and wind offshore contributions. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. ## GET /v2/signal Electricity traffic signal (renewable share of load). Renewable share of load in percent from today until the end of the available forecast, together with a traffic light signal per timestamp: -1 = red (grid congestion), 0 = red (low renewable share), 1 = yellow (average), 2 = green (high renewable share). Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `postal_code` (string, optional): Reserved for future local-grid awareness ## GET /v2/solar_share Solar share of load. Solar share of load in percent from today until the end of the available forecast, as measured values plus forecast. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. ## GET /v2/solar_share_daily_avg Average daily solar share of load. Average daily solar share of load in percent, either for the trailing 365 days (year = -1) or for a given calendar year. Timestamps mark local midnight of each day. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `year` (integer, optional, default: -1): Calendar year; -1 = trailing 365 days ## GET /v2/total_power Total net electricity production (incl. industrial self supply). Total net electricity production (including industrial self supply) in megawatt (MW), one series per production type. Currently only available for Germany. Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. Parameters: - `country` (string, optional, default: de): Country code (currently only 'de') Allowed values: see 'country' list below. - `start` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. - `end` (string, optional): Accepted formats: ISO 8601 (`2026-01-01T17:00Z`), day (`2026-01-01`, interpreted in the local timezone) or unix seconds (`1767222000`). Empty start defaults to today; empty end defaults to start. ## GET /v2/wind_offshore_share Wind offshore share of load. Wind offshore share of load in percent from today until the end of the available forecast, as measured values plus forecast. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. ## GET /v2/wind_offshore_share_daily_avg Average daily wind offshore share of load. Average daily wind offshore share of load in percent, either for the trailing 365 days (year = -1) or for a given calendar year. Timestamps mark local midnight of each day. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `year` (integer, optional, default: -1): Calendar year; -1 = trailing 365 days ## GET /v2/wind_onshore_share Wind onshore share of load. Wind onshore share of load in percent from today until the end of the available forecast, as measured values plus forecast. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. ## GET /v2/wind_onshore_share_daily_avg Average daily wind onshore share of load. Average daily wind onshore share of load in percent, either for the trailing 365 days (year = -1) or for a given calendar year. Timestamps mark local midnight of each day. Parameters: - `country` (string, optional, default: de): Country code Allowed values: see 'country' list below. - `year` (integer, optional, default: -1): Calendar year; -1 = trailing 365 days ## country values ch, eu, all, at, ba, be, bg, cy, cz, de, dk, ee, es, fi, fr, ge, gr, hr, hu, ie, it, lt, lu, lv, md, me, mk, nl, no, pl, pt, ro, rs, se, si, sk, ua, uk, xk ## bzn values (bidding zones) DE-LU, AT, BE, BG, CH, CZ, DK1, DK2, EE, ES, FI, FR, GR, HR, HU, IT-Calabria, IT-Centre-North, IT-Centre-South, IT-North, IT-SACOAC, IT-SACODC, IT-Sardinia, IT-Sicily, IT-South, LT, LV, ME, NL, NO1, NO2, NO2NSL, NO3, NO4, NO5, PL, PT, RO, RS, SE1, SE2, SE3, SE4, SI, SK, DE-AT-LU, IE(SEM), UA-IPS, UA-BEI, IT-Brindisi, IT-Foggia, IT-GR, IT-North-AT, IT-North-CH, IT-North-SI, IT-North-FR, IT-Priolo, IT-Rossano