Energy-Charts APIenergy-charts.de ↗
Access Germany and Europe electricity spot prices, generation by technology, cross-border trading, forecasts, and renewable share signals via the Energy-Charts API.
What is the Energy-Charts API?
The Energy-Charts API exposes 8 endpoints covering electricity market data for Germany and neighboring European countries. Use get_day_ahead_prices to retrieve Day-Ahead auction prices at 15-minute resolution in EUR/MWh across multiple bidding zones, get_public_power to pull net generation broken down by technology type, and get_cross_border_trading to track import/export flows with neighboring countries in GW — all indexed by Unix timestamps.
curl -X GET 'https://api.parse.bot/scraper/24c4baf7-4678-46df-af72-c31ec4dfe783/get_day_ahead_prices?bzn=DE-LU&end=2026-07-06&start=2026-07-06' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace energy-charts-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Energy-Charts API — bounded, re-runnable walkthrough."""
from parse_apis.energy_charts_api import (
EnergyCharts, BiddingZone, ProductionType, ForecastType, Country, DataNotFound
)
client = EnergyCharts()
# Fetch day-ahead spot prices for Germany-Luxembourg zone
price_data = client.prices.fetch(bzn=BiddingZone.DE_LU)
print(f"Day-ahead prices: {len(price_data.price)} intervals, unit={price_data.unit}")
# Fetch public power production by technology
power = client.powers.fetch(country=Country.DE)
for source in power.production_types[:3]:
print(f" {source.name}: {source.data[0]} MW")
# Fetch power forecast for solar
forecast = client.forecasts.fetch(
production_type=ProductionType.SOLAR,
forecast_type=ForecastType.CURRENT,
)
print(f"Solar forecast: {len(forecast.forecast_values)} values, type={forecast.production_type}")
# Fetch cross-border trading flows
trading = client.trades.fetch(country=Country.DE)
for flow in trading.countries[:2]:
print(f" Trading with {flow.name}: {flow.data[0]} GW")
# Typed error handling
try:
client.intradays.fetch(year="1900", week="1")
except DataNotFound as exc:
print(f"Data not found: {exc}")
print("exercised: prices.fetch / powers.fetch / forecasts.fetch / trades.fetch / intradays.fetch")
Fetch Day-Ahead auction spot market prices at 15-minute resolution for a given bidding zone and date range. Returns timestamps, prices in EUR/MWh, and license attribution. Defaults to today when no dates are supplied.
| Param | Type | Description |
|---|---|---|
| bzn | string | Bidding zone code. |
| end | string | End date in YYYY-MM-DD format. Defaults to the start date if omitted. |
| start | string | Start date in YYYY-MM-DD format. Defaults to today's date if omitted. |
{
"type": "object",
"fields": {
"unit": "string, price unit (EUR / MWh)",
"price": "array of price values in EUR/MWh",
"license_info": "string, data license attribution",
"unix_seconds": "array of Unix timestamps (seconds) for each 15-min interval"
},
"sample": {
"data": {
"unit": "EUR / MWh",
"price": [
147.22,
140.88
],
"license_info": "CC BY 4.0 (creativecommons.org/licenses/by/4.0) from Bundesnetzagentur | SMARD.de",
"unix_seconds": [
1781128800,
1781129700
]
},
"status": "success"
}
}About the Energy-Charts API
Spot Market and Intraday Pricing
The get_day_ahead_prices endpoint returns 15-minute resolution auction prices for a given bidding zone (bzn parameter) and date range (start/end in YYYY-MM-DD format). The response includes a price array in EUR/MWh, parallel unix_seconds timestamps, and a license_info string for attribution. For intraday continuous markets, get_intraday_prices_volume returns hourly price/volume objects keyed by ISO week and year — currently limited to Germany (country=de). The get_spot_market_prices_chart endpoint goes further, returning a full Highcharts series array for a given ISO week that includes IDA auction prices, intraday prices, and production mix data together in data_full.
Generation, Forecasts, and Renewable Signals
get_public_power provides net electricity generation at 15-minute resolution, returning production_types — an array of objects each carrying a technology name (solar, wind, gas, coal, etc.) and an array of MW values aligned to the same unix_seconds index. Country coverage includes de, at, fr, and ch. get_public_power_forecast extends this with forward-looking values for a chosen production_type and forecast_type, noting null entries where future periods are not yet forecasted. The get_traffic_signal endpoint summarizes renewable share as a percentage alongside a 0/1/2 integer signal (red/yellow/green) and optionally narrows results to a German local grid area via postal_code.
Cross-Border Trading and Market Values
get_cross_border_trading returns bilateral flow data in GW between the requested country and its neighbors, with positive values indicating exports and negative values indicating imports, at 15-minute resolution. get_market_values covers monthly capture prices and feed-in tariffs by technology in Cent/kWh for Germany, organized as chart series objects with name, color, and monthly data arrays — available by calendar year via the year parameter.
Data Shape and Coverage Notes
All time-series endpoints align data to unix_seconds arrays, making it straightforward to join generation, price, and flow series by timestamp. Week-based endpoints (get_intraday_prices_volume, get_spot_market_prices_chart, get_market_values) use ISO week numbering and reliably support Germany only. Date-range endpoints default to today when no parameters are supplied.
The Energy-Charts API is a managed, monitored endpoint for energy-charts.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when energy-charts.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official energy-charts.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Tracking Day-Ahead electricity price volatility by bidding zone across 15-minute intervals for trading models.
- Building dashboards that compare solar, wind, gas, and coal generation shares in real time using
production_typesfields. - Alerting energy-intensive applications when the renewable traffic signal drops to red (signal=0) for a given postal code.
- Analyzing cross-border import/export flows in GW to identify transmission congestion between Germany and France or Austria.
- Back-testing energy procurement strategies using historical spot prices and intraday volumes by ISO week.
- Calculating technology-specific capture prices month-over-month from
get_market_valuesCent/kWh series. - Feeding electricity production forecasts into demand-response or battery dispatch optimization systems.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Energy-Charts.info have an official developer API?+
What does `get_cross_border_trading` return, and how are import vs. export flows distinguished?+
countries array where each object has a neighbor name and a data array of GW values at 15-minute resolution. Positive values represent exports from the requested country to that neighbor; negative values represent imports. The unix_seconds array provides the shared time index.Which countries are supported across the different endpoints?+
get_public_power, get_cross_border_trading, get_day_ahead_prices — accept country codes including de, at, fr, and ch. Week-based endpoints (get_intraday_prices_volume, get_spot_market_prices_chart, get_market_values) are documented as reliably supporting de only. Results for other country codes on those endpoints may be incomplete or absent.Does the API cover balancing market or capacity market data?+
How current is the data, and does the API support real-time streaming?+
get_day_ahead_prices and get_public_power) return the latest available data, which reflects publication cadence from the underlying source — typically updated at 15-minute intervals for current-day data. The API returns point-in-time snapshots via REST; it does not support streaming or push-based delivery. For near-real-time needs, repeated polling at an appropriate interval is the expected pattern.