GrünstromIndex

App · 6 actions

Use the GrünstromIndex (Green Power Index) by Corrently to see when electricity at a German postcode is greenest. Get the hourly forecast for the next four days, find the best time to run appliances, check wholesale electricity prices, see which renewables and nearby towns supply the power, get a heat pump schedule and forecast a solar installation's output. Germany only. No account or API key required.

Actions

ActionWhat it does
Find the greenest time to use powerFind the hour with the most green power at a German postcode within the next few hours, to run a dishwasher, charge a car or start a batch job then.
Get a solar power forecastEstimate how much electricity a solar installation at a German postcode will make, hour by hour and per day for the next few days, from its size, tilt and direction.
Get electricity market pricesGet German wholesale electricity prices for every quarter hour from now until the end of tomorrow's published prices, in EUR per MWh and cents per kWh, alongside a local price adjusted for the green power at a postcode.
Get the green power forecastGet the hour-by-hour GrünstromIndex for a German postcode: how green the electricity there will be, from 0 to 100, with the solar and wind parts and an estimate of CO2 per kWh.
Get the heat pump scheduleGet an hour-by-hour signal for running a heat pump (or another flexible appliance) at a German postcode: boost when there is plenty of green power, normal, or reduce when there is little.
Get where local green power comes fromSee which renewables make up the green power at a German postcode over recent days (wind, solar, biomass and so on, in percent), which nearby towns supply it, where the surplus goes, and how far it travels on average.

Find the greenest time to use power

Find the hour with the most green power at a German postcode within the next few hours, to run a dishwasher, charge a car or start a batch job then. Says whether that is now, and how many minutes until it starts.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.
Within the next (hours)within_hoursnumber
How far ahead to look, from 1 to 96 hours. Defaults to 24. Use a short window, such as 8, for something that has to happen today.From 1 to 96. Default: 24.

Outputs

best_timetext
When the greenest hour starts, in UTC.
best_time_localtext
When the greenest hour starts, in German time.
green_power_indexnumber
The GrünstromIndex, from 0 to 100: how much of the power at this place comes from renewables. Higher is greener.
is_nowtrue/false
True when the greenest hour is the current one.
postcodetext
The postcode the figures are for.
starts_in_minutesnumber
Minutes until it starts; 0 when it is now.
summarytext
The answer as one or two sentences.
within_hoursnumber
How many hours ahead were searched.
Example output
{
  "best_time": "2026-10-16T15:00:00Z",
  "best_time_local": "2026-10-16T17:00:00+02:00",
  "green_power_index": 91.2,
  "is_now": false,
  "postcode": "69168",
  "starts_in_minutes": 1243,
  "summary": "The greenest time to use power at 69168 in the next 24 hours is Fri 16 Oct, 17:00 German time (index 91.2).",
  "within_hours": 24
}

Get a solar power forecast

Estimate how much electricity a solar installation at a German postcode will make, hour by hour and per day for the next few days, from its size, tilt and direction. Gives today's and tomorrow's totals and the best hour, for example to plan when to run appliances on your own solar power.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.
Peak power (kWp)peak_power_kwnumberRequired
The installation's size in kilowatt peak, as on the installer's paperwork, from 0.1 to 1000. A typical home roof is 5 to 10 kWp, a balcony panel about 0.8.From 0.1 to 1000.
Panel tilt (degrees)tilt_degreesnumber
How steeply the panels lean, from 0 (flat) to 90 (upright, as on a balcony railing). Defaults to 30, which suits most pitched roofs.From 0 to 90. Default: 30.
Panels facefacingtext
Which way the panels face. Defaults to south.One of: south, south_west (South-west), west, south_east (South-east), east, north. Default: south.

Outputs

best_hourobject
dayslist
facingtext
The direction the panels face.
hour_countnumber
How many hours are in the list.
hourslist
peak_power_kwnumber
The installation's size, in kWp.
postcodetext
The postcode the figures are for.
summarytext
The answer as one or two sentences.
tilt_degreesnumber
The panel tilt used, in degrees.
today_kwhnumber
Expected output for the whole of today, in kWh.
tomorrow_kwhnumber
Expected output for tomorrow, in kWh.
Example output
{
  "best_hour": {
    "energy_kwh": 2.628,
    "local_time": "2026-10-16T13:00:00+02:00",
    "start_time": "2026-10-16T11:00:00Z"
  },
  "days": [
    {
      "date": "2026-10-16",
      "energy_kwh": 32.79
    },
    {
      "date": "2026-10-17",
      "energy_kwh": 31.78
    }
  ],
  "facing": "South",
  "hour_count": 1,
  "hours": [
    {
      "energy_kwh": 2.628,
      "local_time": "2026-10-16T13:00:00+02:00",
      "start_time": "2026-10-16T11:00:00Z"
    }
  ],
  "peak_power_kw": 9.6,
  "postcode": "69168",
  "summary": "Solar forecast for 9.6 kWp facing south at 30\u00b0 in 69168: today 32.79 kWh, tomorrow 31.78 kWh. Best hour: Fri 16 Oct, 13:00 (2.628 kWh).",
  "tilt_degrees": 30,
  "today_kwh": 32.79,
  "tomorrow_kwh": 31.78
}

Get electricity market prices

Get German wholesale electricity prices for every quarter hour from now until the end of tomorrow's published prices, in EUR per MWh and cents per kWh, alongside a local price adjusted for the green power at a postcode. Also gives the price now, the cheapest and most expensive quarter hours and the average. These are wholesale prices, not what a household tariff charges.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.

Outputs

average_local_price_cents_per_kwhnumber
The average local price, in cents per kWh.
cheapest_slotobject
citytext
The town or city of that postcode.
current_priceobject
most_expensive_slotobject
postcodetext
The postcode the figures are for.
slot_countnumber
How many quarter hours are in the list.
slotslist
summarytext
The answer as one or two sentences.
Example output
{
  "average_local_price_cents_per_kwh": 20.76,
  "cheapest_slot": {
    "end_time": "2026-10-16T09:15:00Z",
    "local_price_cents_per_kwh": 12.11,
    "local_price_eur_per_mwh": 121.14,
    "local_time": "2026-10-16T11:00:00+02:00",
    "market_price_cents_per_kwh": 14.5,
    "market_price_eur_per_mwh": 145.04,
    "start_time": "2026-10-16T09:00:00Z"
  },
  "city": "Wiesloch",
  "current_price": {
    "end_time": "2026-10-16T09:15:00Z",
    "local_price_cents_per_kwh": 12.11,
    "local_price_eur_per_mwh": 121.14,
    "local_time": "2026-10-16T11:00:00+02:00",
    "market_price_cents_per_kwh": 14.5,
    "market_price_eur_per_mwh": 145.04,
    "start_time": "2026-10-16T09:00:00Z"
  },
  "most_expensive_slot": {
    "end_time": "2026-10-16T09:30:00Z",
    "local_price_cents_per_kwh": 29.41,
    "local_price_eur_per_mwh": 294.14,
    "local_time": "2026-10-16T11:15:00+02:00",
    "market_price_cents_per_kwh": 25.91,
    "market_price_eur_per_mwh": 259.06,
    "start_time": "2026-10-16T09:15:00Z"
  },
  "postcode": "69168",
  "slot_count": 2,
  "slots": [
    {
      "end_time": "2026-10-16T09:15:00Z",
      "local_price_cents_per_kwh": 12.11,
      "local_price_eur_per_mwh": 121.14,
      "local_time": "2026-10-16T11:00:00+02:00",
      "market_price_cents_per_kwh": 14.5,
      "market_price_eur_per_mwh": 145.04,
      "start_time": "2026-10-16T09:00:00Z"
    },
    {
      "end_time": "2026-10-16T09:30:00Z",
      "local_price_cents_per_kwh": 29.41,
      "local_price_eur_per_mwh": 294.14,
      "local_time": "2026-10-16T11:15:00+02:00",
      "market_price_cents_per_kwh": 25.91,
      "market_price_eur_per_mwh": 259.06,
      "start_time": "2026-10-16T09:15:00Z"
    }
  ],
  "summary": "Electricity market prices for Wiesloch (69168), 2 quarter hours. Now: 12.11 ct/kWh. Cheapest: Fri 16 Oct, 11:00 (12.11 ct/kWh). Most expensive: Fri 16 Oct, 11:15 (29.41 ct/kWh)."
}

Get the green power forecast

Get the hour-by-hour GrünstromIndex for a German postcode: how green the electricity there will be, from 0 to 100, with the solar and wind parts and an estimate of CO2 per kWh. Also gives the index right now and the greenest and least green hours, so a workflow can plan or alert on them.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.
Hours aheadhoursnumber
How many hours to return, starting with the current hour, from 1 to 96. Defaults to 24. The forecast reaches about four days ahead, so a large number may return fewer hours.From 1 to 96. Default: 24.

Outputs

average_indexnumber
The average index over the hours returned.
citytext
The town or city of that postcode.
current_hourobject
current_indexnumber
The GrünstromIndex for the current hour.
greenest_hourobject
hour_countnumber
How many hours are in the list.
hourslist
least_green_hourobject
postcodetext
The postcode the figures are for.
summarytext
The answer as one or two sentences.
Example output
{
  "average_index": 72.5,
  "city": "Wiesloch",
  "current_hour": {
    "co2_grams_per_kwh": 17,
    "end_time": "2026-10-16T10:00:00Z",
    "green_power_index": 83.6,
    "local_time": "2026-10-16T11:00:00+02:00",
    "solar_index": 66,
    "start_time": "2026-10-16T09:00:00Z",
    "wind_index": 22
  },
  "current_index": 83.6,
  "greenest_hour": {
    "co2_grams_per_kwh": 11,
    "end_time": "2026-10-16T11:00:00Z",
    "green_power_index": 91.2,
    "local_time": "2026-10-16T12:00:00+02:00",
    "solar_index": 74,
    "start_time": "2026-10-16T10:00:00Z",
    "wind_index": 22
  },
  "hour_count": 3,
  "hours": [
    {
      "co2_grams_per_kwh": 17,
      "end_time": "2026-10-16T10:00:00Z",
      "green_power_index": 83.6,
      "local_time": "2026-10-16T11:00:00+02:00",
      "solar_index": 66,
      "start_time": "2026-10-16T09:00:00Z",
      "wind_index": 22
    },
    {
      "co2_grams_per_kwh": 11,
      "end_time": "2026-10-16T11:00:00Z",
      "green_power_index": 91.2,
      "local_time": "2026-10-16T12:00:00+02:00",
      "solar_index": 74,
      "start_time": "2026-10-16T10:00:00Z",
      "wind_index": 22
    },
    {
      "co2_grams_per_kwh": 41,
      "end_time": "2026-10-16T12:00:00Z",
      "green_power_index": 42.8,
      "local_time": "2026-10-16T13:00:00+02:00",
      "solar_index": 23,
      "start_time": "2026-10-16T11:00:00Z",
      "wind_index": 20
    }
  ],
  "least_green_hour": {
    "co2_grams_per_kwh": 41,
    "end_time": "2026-10-16T12:00:00Z",
    "green_power_index": 42.8,
    "local_time": "2026-10-16T13:00:00+02:00",
    "solar_index": 23,
    "start_time": "2026-10-16T11:00:00Z",
    "wind_index": 20
  },
  "postcode": "69168",
  "summary": "Green power forecast for Wiesloch (69168), next 3 hours. Now: 83.6 out of 100. Greenest: Fri 16 Oct, 12:00 (91.2). Least green: Fri 16 Oct, 13:00 (42.8)."
}

Get the heat pump schedule

Get an hour-by-hour signal for running a heat pump (or another flexible appliance) at a German postcode: boost when there is plenty of green power, normal, or reduce when there is little. Gives the signal now and when the next boost hour starts.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.
Hours aheadhoursnumber
How many hours to return, starting with the current hour, from 1 to 96. Defaults to 24. The forecast reaches about four days ahead, so a large number may return fewer hours.From 1 to 96. Default: 24.

Outputs

boost_hoursnumber
How many of the hours returned are boost hours.
citytext
The town or city of that postcode.
current_signaltext
The signal for the current hour: boost, normal or reduce.
hour_countnumber
How many hours are in the list.
hourslist
next_boost_timetext
When the next boost hour starts, in UTC; empty if none.
next_boost_time_localtext
The same, in German time.
postcodetext
The postcode the figures are for.
reduce_hoursnumber
How many of the hours returned are reduce hours.
summarytext
The answer as one or two sentences.
Example output
{
  "boost_hours": 1,
  "city": "Wiesloch",
  "current_signal": "normal",
  "hour_count": 2,
  "hours": [
    {
      "end_time": "2026-10-16T10:00:00Z",
      "green_power_index": 69.4,
      "local_time": "2026-10-16T11:00:00+02:00",
      "signal": "normal",
      "start_time": "2026-10-16T09:00:00Z"
    },
    {
      "end_time": "2026-10-16T11:00:00Z",
      "green_power_index": 77.0,
      "local_time": "2026-10-16T12:00:00+02:00",
      "signal": "boost",
      "start_time": "2026-10-16T10:00:00Z"
    }
  ],
  "next_boost_time": "2026-10-16T10:00:00Z",
  "next_boost_time_local": "2026-10-16T12:00:00+02:00",
  "postcode": "69168",
  "reduce_hours": 0,
  "summary": "Heat pump schedule for Wiesloch (69168), next 2 hours. Now: normal. Next boost: Fri 16 Oct, 12:00; 1 boost hour in total."
}

Get where local green power comes from

See which renewables make up the green power at a German postcode over recent days (wind, solar, biomass and so on, in percent), which nearby towns supply it, where the surplus goes, and how far it travels on average.

Inputs

PostcodepostcodetextRequired
A five-digit German postcode (Postleitzahl). The figures are for the electricity at that place, so use the postcode where the power is used.

Outputs

average_distance_kmnumber
How far, on average, the power travels to cover demand here, in km.
citytext
The town or city of that postcode.
delivered_tolist
period_endtext
End of the period the mix covers, in UTC.
period_starttext
Start of the period the mix covers, in UTC.
postcodetext
The postcode the figures are for.
renewable_mixlist
summarytext
The answer as one or two sentences.
supplied_fromlist
top_sourcetext
The biggest renewable source, e.g. Onshore wind.
top_source_share_percentnumber
Its share of the mix, in percent.
Example output
{
  "average_distance_km": 7.4,
  "city": "Wiesloch",
  "delivered_to": [
    {
      "place": "Heidelberg",
      "postcode": "69126",
      "share_percent": 8.2
    },
    {
      "place": "Schwetzingen",
      "postcode": "68723",
      "share_percent": 7.5
    }
  ],
  "period_end": "2026-10-15T18:00:00Z",
  "period_start": "2026-10-14T16:00:00Z",
  "postcode": "69168",
  "renewable_mix": [
    {
      "share_percent": 50.78,
      "source": "Onshore wind"
    },
    {
      "share_percent": 33.34,
      "source": "Solar"
    },
    {
      "share_percent": 15.55,
      "source": "Biomass"
    },
    {
      "share_percent": 0.28,
      "source": "Landfill gas"
    },
    {
      "share_percent": 0.05,
      "source": "Geothermal"
    }
  ],
  "summary": "Green power in Wiesloch (69168) is mostly onshore wind (50.78%); the biggest local supplier is Dielheim; it travels about 7.4 km on average.",
  "supplied_from": [
    {
      "place": "Dielheim",
      "postcode": "69234",
      "share_percent": 10.5
    },
    {
      "place": "Gaiberg",
      "postcode": "69251",
      "share_percent": 7.5
    }
  ],
  "top_source": "Onshore wind",
  "top_source_share_percent": 50.78
}

On this page