BYTETOOLS

GrünstromIndex (Corrently) API

Free German renewable energy forecast API with no key: hourly green-power share, wind and solar split, CO2 intensity and grid price by postcode. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the GrünstromIndex (Corrently) API?

The GrünstromIndex, served through Corrently's API, forecasts the renewable share of German electricity for a given postcode hour by hour. Each forecast entry gives the green-energy index, wind and solar contributions, CO2 grams per kilowatt-hour and an indicative energy price.

German electricity is greenest in specific hours and specific places, depending on local wind and solar output and on grid congestion. The GrünstromIndex turns that into an hourly forecast keyed by postcode, so a load can be shifted to when the local grid mix is cleanest rather than merely when power is cheapest — the two rarely coincide exactly.

Two fields carry the actual signal. `gsi` is the headline green power index from 0 to 100, and `co2_g_standard` alongside `co2_g_oekostrom` gives you grams of CO2 per kilowatt-hour for a standard tariff versus a green tariff — the difference between them being the point of the whole exercise. `sci` is a related carbon-intensity score aligned with the Green Software Foundation's specification, which is why this API turns up in carbon-aware scheduling libraries. Every response also carries a `signee` field holding a blockchain address, a leftover from Corrently's energy-token work that you can safely ignore. Fair-use terms apply and a paid tier exists for higher volume.

Quick facts

Base URL
https://api.corrently.io/v2.0/gsi
Authentication
No API key for the forecast endpoint under fair use. Corrently sells a paid tier for higher request volumes.
Rate limit
Fair-use policy rather than a published number. Forecasts are hourly — one call per postcode per hour is plenty.
Pricing
Free under fair use; paid plans lift the limits.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the GrünstromIndex (Corrently) API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Forecast the green power index for a postcode

GET https://api.corrently.io/v2.0/gsi/prediction?zip=69168

curl
curl 'https://api.corrently.io/v2.0/gsi/prediction?zip=69168'
JavaScript (fetch)
const res = await fetch("https://api.corrently.io/v2.0/gsi/prediction?zip=69168");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.corrently.io/v2.0/gsi/prediction?zip=69168", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "support": "If you have any question please contact dev@stromdao.com or visit https://premium.corrently.de/",
  "info": "https://corrently.io/books/stromdao-gmbh/page/fair-use-policy",
  "documentation": "https://corrently.io/books/grunstromindex",
  "commercial": "https://corrently.energy/products/corrently-apis-rate-limit-erhohung",
  "signee": "0xE7Fe0626D7B8e3F2e5ECD146F9b11daac1DBE447",
  "forecast": [
    {
      "epochtime": 1787292000,
      "eevalue": 35,
      "ewind": 31,
      "esolar": 7,
      "ensolar": 7,
      "enwind": 31,
      "sci": 29,
      "gsi": 33.25,
      "timeStamp": 1787292000000,
      "energyprice": "-0.0175000",
      "co2_avg": null,
      "co2_g_standard": null,
      "co2_g_oekostrom": 45,
      "timeframe": {
        "start": 1787292000000,
        "end": 1787295600000
      },
      "iat": 1787298371142,
      "zip": "69168",
      "signature": "0x4559f3283cb78723a1bfdb6e099c8bcde11ba6e7b7e73cd18e7719243876549b29071bb06c6f905c8d67524324d5a02aa53514f855840e6bb7c417318972e3421b"
    },
    {
      "epochtime": 1787295600,
      "eevalue": 18,
      "ewind": 9,
      "esolar": 13,
      "ensolar": 13,
      "enwind": 9,
      "sci": 32,
      "gsi": 17.099999999999998,
      "timeStamp": 1787295600000,
      "energyprice": "-0.0090000",
      "co2_avg": null,
      "co2_g_standard": null,
      "co2_g_oekostrom": 55,
      "timeframe": {
        "start": 1787295600000,
        "end": 1787299200000
      },
      "iat": 1787298371143,
      "zip": "69168",
      "signature": "0x57b61e77fb8da8654f49ee512994970c12b06eace6068d29121c297d769

Parameters

ParameterTypeRequiredDescription
zipqueryRequiredGerman postcode. The forecast is regional because wind and solar output vary across the grid. 69168
cityqueryOptionalCity name as an alternative to the postcode. Berlin

Response fields

forecastarray
Hourly forecast entries, chronological.
forecast[].gsifloat
GrünstromIndex, 0 to 100. Higher means a greener local mix in that hour.
forecast[].eevalueinteger
Renewable share as a percentage, the simpler cousin of `gsi`.
forecast[].ewind / esolarinteger
Wind and solar contributions to that percentage, so you can see which resource is driving it.
forecast[].enwind / ensolarinteger
Normalised wind and solar values for the same hour.
forecast[].sciinteger
Carbon-intensity score aligned with the Green Software Foundation specification, used by carbon-aware schedulers.
forecast[].co2_g_standard / co2_g_oekostrominteger
Grams of CO2 per kilowatt-hour on a standard versus a green tariff. Either can be null when unavailable.
forecast[].energypricestring
Indicative price as a decimal string. Negative values occur during renewable surpluses.
forecast[].epochtime / timeStampinteger
The hour in Unix seconds and in milliseconds respectively.
forecast[].timeframeobject
Explicit `start` and `end` millisecond bounds for the hour.
signeestring
Blockchain address from Corrently's energy-token work. Not needed for reading the forecast.
support / info / documentation / commercialstring
Contact, fair-use policy, documentation and commercial upgrade links, restated in every response.

What you can build with the GrünstromIndex (Corrently) API

  • Schedule EV charging or heat pumps for the greenest local hours
  • Add carbon-aware timing to a build or batch job running in Germany
  • Show households when their regional grid mix is cleanest
  • Compare green share against price to see where the two diverge

Common errors and how to fix them

Null CO2 fields

Not every hour has both tariff figures available.

Fix: Fall back to `gsi` or `sci`, which are populated far more consistently.

Price arithmetic fails

`energyprice` is a string such as `"-0.0175000"`.

Fix: Parse to a float first, and expect negative values during renewable surplus hours.

Same values for distant postcodes

The forecast is regional rather than street-level.

Fix: Neighbouring postcodes in the same grid region will legitimately match.

Rate limited

Fair-use policy applies to the free tier.

Fix: One call per postcode per hour is ample. The `info` field in every response links to the policy.

GrünstromIndex (Corrently) API — frequently asked questions

Is the GrünstromIndex API free?

Yes, free with no key under a fair-use policy. Corrently sells a paid tier for higher request volumes, and every response links to both the policy and the upgrade path.

What does the gsi value mean?

It is the GrünstromIndex from 0 to 100, expressing how green the local electricity mix is forecast to be in that hour. Higher is greener, and it varies by postcode because wind and solar output are regional.

Why does it need a postcode?

Because German grid mix is not uniform. Northern regions carry far more wind, southern regions more solar, and grid congestion changes what is actually delivered locally.

What is the sci field?

A carbon-intensity score aligned with the Green Software Foundation's Software Carbon Intensity specification, which is why carbon-aware scheduling libraries use this API as a data source.

Tools that pair with this API

GrünstromIndex (Corrently) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.