Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/energy-charts-api:energy-charts-api-power-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Energy-Charts Power API
description: 'Timestamp Format Options
When specifying timestamps, you can choose from the following three formats:
ISO 8601 Format:
This format includes the full date and time, with an optional timezone indicator. Examples:
2026-01-01T17:00Z (UTC time)
2026-01-01T18:00+01:00 (Local time offset by +01:00)
Daily Format:
This format specifies only the date. The start time is assumed to be at 00:00 on the specified date in the local timezone of the specified country or bidding zone (bzn). The end timestamp is interpreted as the last minute of the specified day in the same local timezone. Example:
2026-01-01 (Starts at 00:00 and ends at 23:59 on January 1, 2026, local time)
UNIX Timestamp:
This format specifies the time as the number of seconds since the Unix Epoch (January 1st, 1970, at 00:00 UTC). Example:
1767222000
Default Behavior for Timestamps
If an end timestamp is not explicitly provided, it is assumed to be the same as the start timestamp. For daily formats, this means that one full day will be returned. If also no start timestamp is provided, the current day in the local timezone is used. Timestamp Semantics in Responses
All timestamps returned by the API mark the beginning of the period the value refers to. Single exception: /installed_power and /v2/installed_power, where the timestamp labels the reporting year or month and the value represents the installed power at the end of that period (or, with installation_decommission=true, the net change during the period). Rate Limiting
Requests are limited per client IP and per endpoint (token bucket, so short bursts are allowed). The default is 2 requests per minute with a burst of 4; /signal allows 20 per minute (burst 40), /price 2 per minute (burst 2), and every /v2 endpoint inherits the limit of its v1 counterpart. In addition, the limits are adjusted dynamically to the current server load, so the effective limit can be lower during peak times. Exceeding a limit returns HTTP 429 with a Retry-After header giving the number of seconds to wait. Clients should honour that header instead of assuming fixed limits, and cache responses on their side. For higher limits (commercial access) please contact leonhard.gandhi@ise.fraunhofer.de. Discontinuation of endpoints
Endpoint discontinuations will be preceded by an announcement at least six months in advance, indicated by setting the "deprecated" status to true. Data License
Unless stated otherwise, the data provided by the Energy-Charts API is licensed under the CC BY 4.0 license. Proper attribution to Energy-Charts.info as the source is required. New in release v2.0 (2026-07-20)
New machine-readable /v2/...'
termsOfService: https://energy-charts.info/data-protection.html
contact:
name: Contact
url: https://energy-charts.info/contact.html
license:
name: Publishing notes
url: https://energy-charts.info/publishing-notes.html
version: '2.0'
tags:
- name: Power
description: Query power values (legacy v1)
paths:
/public_power:
get:
tags:
- Power
summary: Public Power
description: 'Returns the public net electricity production in Megawatt (MW) for a given country for each production type. Subtype can be "solarlog" for Switzerland (ch).
Response schema:
```json
{
"unix_seconds": list[int],
"production_types": [
{
"name": str,
"data": list[float]
}
],
"deprecated": bool
}
```'
operationId: public_power_public_power_get
parameters:
- name: country
in: query
required: false
schema:
type: string
default: de
title: Country
- name: start
in: query
required: false
schema:
type: string
default: ''
title: Start
- name: end
in: query
required: false
schema:
type: string
default: ''
title: End
- name: subtype
in: query
required: false
schema:
type: string
default: ''
title: Subtype
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProductionModel'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/public_power_forecast:
get:
tags:
- Power
summary: Public Power Forecast
description: 'Returns the forecast of the public net electricity production in Megawatt (MW) for a given country for each production type.
production_type: Can be solar, wind_onshore, wind_offshore or load
forecast_type: Can be current, intraday or day-ahead
If no dates are provided, values for today until forecast is available are returned. For load only the forecast type "day-ahead" is available.
Response schema:
```json
{
"unix_seconds": list[int],
"forecast_values": list[float],
"production_type": str,
"forecast_type": str,
"deprecated": bool
}
```'
operationId: public_power_forecast_public_power_forecast_get
parameters:
- name: country
in: query
required: false
schema:
type: string
default: de
title: Country
- name: production_type
in: query
required: false
schema:
type: string
default: solar
title: Production Type
- name: forecast_type
in: query
required: false
schema:
type: string
default: current
title: Forecast Type
- name: start
in: query
required: false
schema:
type: string
default: ''
title: Start
- name: end
in: query
required: false
schema:
type: string
default: ''
title: End
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicPowerForecastModel'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/total_power:
get:
tags:
- Power
summary: Total Power
description: 'Returns the total net electricity production (including industrial self supply) in Megawatt (MW) for a given country for each production type.
Currently only available for Germany.
Response schema:
```json
{
"unix_seconds": list[int],
"production_types": [
{
"name": str,
"data": list[float]
}
],
"deprecated": bool
}
```'
operationId: total_power_total_power_get
parameters:
- name: country
in: query
required: false
schema:
type: string
default: de
title: Country
- name: start
in: query
required: false
schema:
type: string
default: ''
title: Start
- name: end
in: query
required: false
schema:
type: string
default: ''
title: End
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProductionModel'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/installed_power:
get:
tags:
- Power
summary: Installed Power
description: 'Returns the installed power for a specified country in GW except for battery storage capacity, which is given in GWh. Monthly installation / decommission numbers are returned in MW instead of GW. "last_update" is the time of the last data update, expressed as seconds since the Unix epoch (UTC). Note: unlike all other endpoints, the entries in "time" label the reporting year or month and the values represent the installed power at the end of that period (or, with installation_decommission=true, the net change during the period).
time_step: Time step can be either "yearly" or "monthly" (only for Germany)
installation_decommission: If true, the net installation / decommission numbers are returned instead of total installed power
Response schema:
```json
{
"time": list[str],
"production_types": [
{
"name": str,
"data": list[float]
}
],
"last_update": int,
"deprecated": bool
}
```'
operationId: installed_power_installed_power_get
parameters:
- name: country
in: query
required: false
schema:
type: string
default: de
title: Country
- name: time_step
in: query
required: false
schema:
type: string
default: yearly
title: Time Step
- name: installation_decommission
in: query
required: false
schema:
type: boolean
default: false
title: Installation Decommission
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InstalledModel'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/frequency:
get:
tags:
- Power
summary: Frequency
description: 'Returns the frequency measured at Fraunhofer ISE in Freiburg, Germany. Currently only the frequency in RG Continental Europe (formerly UCTE) is available. The data is available in 1 second timesteps from 1st of May 2022 onwards.
Response schema:
```json
{
"unix_seconds": list[int],
"data": list[float],
"deprecated": bool
}
```'
operationId: frequency_frequency_get
parameters:
- name: region
in: query
required: false
schema:
type: string
default: DE-Freiburg
title: Region
- name: start
in: query
required: false
schema:
type: string
default: ''
title: Start
- name: end
in: query
required: false
schema:
type: string
default: ''
title: End
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FrequencyModel'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
PublicPowerForecastModel:
properties:
unix_seconds:
items:
type: integer
type: array
title: Unix Seconds
forecast_values:
items:
anyOf:
- type: number
- type: 'null'
type: array
title: Forecast Values
production_type:
type: string
title: Production Type
forecast_type:
type: string
title: Forecast Type
deprecated:
type: boolean
title: Deprecated
type: object
required:
- unix_seconds
- forecast_values
- production_type
- forecast_type
- deprecated
title: PublicPowerForecastModel
InstalledModel:
properties:
time:
items:
type: string
type: array
title: Time
production_types:
anyOf:
- items:
$ref: '#/components/schemas/NamedData'
type: array
- type: 'null'
title: Production Types
last_update:
anyOf:
- type: integer
- type: 'null'
title: Last Update
deprecated:
type: boolean
title: Deprecated
type: object
required:
- time
- last_update
- deprecated
title: InstalledModel
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ProductionModel:
properties:
unix_seconds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Unix Seconds
production_types:
anyOf:
- items:
$ref: '#/components/schemas/NamedData'
type: array
- type: 'null'
title: Production Types
deprecated:
type: boolean
title: Deprecated
type: object
required:
- deprecated
title: ProductionModel
NamedData:
properties:
name:
type: string
title: Name
data:
items:
anyOf:
- type: number
- type: 'null'
type: array
title: Data
type: object
required:
- name
- data
title: NamedData
FrequencyModel:
properties:
unix_seconds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Unix Seconds
data:
items:
anyOf:
- type: number
- type: 'null'
type: array
title: Data
deprecated:
type: boolean
title: Deprecated
type: object
required:
- data
- deprecated
title: FrequencyModel
x-provenance:
method: harvested
publisher: Energy Charts API
source: https://api.energy-charts.info/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)