Cernion Renewable Energy Forecasting API

The Renewable Energy Forecasting API from Cernion — 1 operation(s) for renewable energy forecasting.

Operations 1

POST /api/forecast/generation-forecast Weather-based renewable energy generation forecast #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cernion-de:cernion-de-renewable-energy-forecasting-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

cernion-de-renewable-energy-forecasting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cernion Energy Tools Renewable Energy Forecasting API
  version: 0.99.22
  description: 'MicroService Agent System for Energy Markets - REST API with AI integration.


    CERNION_TOKEN: request at https://cernion.de/ or by email: dev@stromdao.com.


    For the public instance at https://api.cernion.de/, create your token at https://cernion.de/cet-token/.'
servers:
- url: https://api.cernion.de
  description: API Server
tags:
- name: Renewable Energy Forecasting
paths:
  /api/forecast/generation-forecast:
    post:
      summary: Weather-based renewable energy generation forecast
      tags:
      - Renewable Energy Forecasting
      operationId: forecast_generationForecast
      parameters:
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Forecast generated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  summary:
                    type: object
                    properties:
                      location:
                        type: string
                        example: Netzgebiet SNB935578300972
                      type:
                        type: string
                        example: all
                      totalCapacityMW:
                        type: number
                        example: 25.77
                      installationCount:
                        type: number
                        example: 2756
                      isHistorical:
                        type: boolean
                        description: true when startDate is in the past (observed weather data used)
                        example: false
                      dataMode:
                        type: string
                        enum:
                        - weather_forecast
                        - historical_observation
                        description: '"weather_forecast" for future dates, "historical_observation" for past dates'
                        example: weather_forecast
                      forecastPeriod:
                        type: object
                        properties:
                          start:
                            type: string
                            format: date-time
                          end:
                            type: string
                            format: date-time
                  forecasts:
                    type: array
                    items:
                      type: object
                      properties:
                        timestamp:
                          type: string
                          format: date-time
                        generationMW:
                          type: number
                          description: Forecasted generation in MW
                        capacityFactor:
                          type:
                          - number
                          - 'null'
                          description: Capacity factor (0-1)
                        weather:
                          type: object
                          properties:
                            temperature:
                              type: number
                              description: Temperature in °C
                            windSpeed:
                              type: number
                              description: Wind speed in m/s
                            solarIrradiance:
                              type: number
                              description: Solar irradiance in W/m²
                            cloudCover:
                              type: number
                              description: Cloud cover in %
                  metadata:
                    type: object
                    properties:
                      toolName:
                        type: string
                        example: mastr_generation_forecast
                      timestamp:
                        type: string
                        format: date-time
                      weatherDataSource:
                        type: string
                        example: Visual Crossing
                      iecStandardApplied:
                        type: string
                        example: IEC 61853
                        description: IEC 61853 for solar, IEC 61400 for wind
                      cachingEnabled:
                        type: boolean
                        example: true
                      apiCallsUsed:
                        type: number
                        example: 1
                      orientationCorrectionApplied:
                        type: boolean
                        example: true
                      portfolioOrientationFactor:
                        type: number
                        example: 0.9712
                        description: Capacity-weighted azimuth+tilt factor from MaStR Hauptausrichtung
                      orientationDataCoverage:
                        type: number
                        example: 0.8341
                        description: Fraction of installations with MaStR orientation data
              examples:
                gridOperatorForecast:
                  summary: All EE generation for SNB935578300972
                  value:
                    success: true
                    summary:
                      location: Netzgebiet SNB935578300972
                      type: all
                      totalCapacityMW: 25.77
                      installationCount: 2756
                      forecastPeriod:
                        start: '2026-02-19T00:00:00.000Z'
                        end: '2026-02-26T00:00:00.000Z'
                    forecasts:
                    - timestamp: '2026-02-19T00:00:00.000Z'
                      generationMW: 0.01
                      capacityFactor: null
                      weather:
                        temperature: 4.3
                        windSpeed: 12.2
                        solarIrradiance: 30.8
                        cloudCover: 100
                    metadata:
                      toolName: mastr_generation_forecast
                      timestamp: '2026-02-18T23:21:46.848Z'
            text/csv:
              description: CSV format with metadata comments (when format=csv)
              example: '# Renewable Energy Generation Forecast

                # Location: Netzgebiet SNB935578300972

                # Total Capacity: 25.77 MW

                # Installation Count: 2756

                Timestamp,Generation (MW),Capacity Factor,Temperature (°C),Wind Speed (m/s),Solar Irradiance (W/m²),Cloud Cover (%)

                2026-02-19T00:00:00.000Z,0.01,,4.3,12.2,30.8,100'
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              description: Excel XLSX with Forecast sheet (daily data + weather) and Metadata sheet
              schema:
                type: string
                format: binary
        '400':
          description: Invalid request parameters
          content:
            application/json:
              example:
                success: false
                error:
                  code: VALIDATION_ERROR
                  message: 'Invalid forecastDays: must be between 1 and 14'
        '500':
          description: Server error during forecast generation
          content:
            application/json:
              example:
                success: false
                error:
                  code: FORECAST_ERROR
                  message: Weather API unavailable
      description: 'Regional Solar/Wind generation forecast based on ACTUAL installed capacity from MaStR, combined with weather forecasts from Visual Crossing API.


        **How it works:**

        1. Queries MaStR database for ALL installed solar/wind capacity in the specified area

        2. Fetches weather forecast from Visual Crossing API (24h cache, IEC-compliant)

        3. Calculates expected generation using IEC 61853 (solar) / IEC 61400 (wind) standards

        4. Returns daily MW forecast + weather conditions for up to 14 days


        **Key Features:**

        - Real installation data from German MaStR registry (3.7M+ installations)

        - IEC standard compliance (IEC 61853 for solar, IEC 61400 for wind)

        - Daily forecasts up to 14 days

        - Filter by grid operator (MaStR ID), federal state, district, municipality, or postal code

        - Optional cross-validation with SMARD data


        **Use Cases:**

        - **Grid Operators (VNB/GNB)**: Anticipate feed-in volumes and plan redispatch measures

        - **Energy Suppliers (Stadtwerke)**: Optimize procurement by forecasting local renewable generation

        - **Virtual Power Plants (VPP)**: Aggregate forecasts for trading and balancing markets

        - **Energy Trading**: Intraday and day-ahead market positioning


        **Parameters:**

        - **installationType**: "solar" (default), "wind", or "all" (combined solar+wind)

        - **forecastDays**: Forecast period 1-14 days (default: 7)

        - **resolution**: Time resolution — `"daily"` (1 point/day, default), `"hourly"` (24 pts/day, intraday trading), `"15min"` (96 pts/day, §12 StromNZV balancing/scheduling)

        - **gridOperatorMastrId**: MaStR Netzbetreiber-ID (SNB/GNB...) — use cernion_vnb_lookup to resolve BDEW→MaStR

        - **bundesland**: German federal state (e.g., "Bayern", "Baden-Württemberg")

        - **landkreis**: District/Landkreis name

        - **gemeinde**: Municipality/Gemeinde name

        - **postleitzahl**: 5-digit postal code (e.g., "69115")

        - **latitude/longitude**: Coordinates for precise weather data

        - **startDate**: Optional start date (`YYYY-MM-DD`). Omit for default tomorrow behaviour (no breaking change). Past dates retrieve **observed weather data** (Visual Crossing historical observations) — identical IEC calculation, 30-day cache. Response gains `summary.isHistorical` and `summary.dataMode` fields.

        - **includeValidation**: Cross-validate with SMARD data (default: false)

        - **installationMastrNummer**: Single-installation forecast by MaStR unit ID (SEE…=solar, SWE…=wind). **Highest priority** — overrides all regional filters. installationType is auto-derived from prefix.

        - **messlokationId**: Single-installation forecast via Metering Location ID (MeLo, 33 chars, starts with DE). Resolved via NAP table. Priority: installationMastrNummer > messlokationId > gridOperatorMastrId > location.'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                installationType:
                  type: string
                  enum:
                  - solar
                  - wind
                  - all
                  default: solar
                  description: Installation type to forecast
                  example: all
                forecastDays:
                  type: number
                  minimum: 1
                  maximum: 14
                  default: 7
                  description: Number of days to forecast (1-14)
                  example: 7
                resolution:
                  type: string
                  enum:
                  - daily
                  - hourly
                  - 15min
                  default: daily
                  description: Time resolution of forecast output. "daily" = 1 pt/day (default); "hourly" = 24 pts/day (intraday dispatch/trading); "15min" = 96 pts/day (§12 StromNZV balancing/scheduling, linear interpolation between hourly values)
                  example: daily
                gridOperatorMastrId:
                  type: string
                  description: MaStR Netzbetreiber-ID (SNB/GNB...). Use cernion_vnb_lookup to resolve BDEW → MaStR ID.
                  example: SNB935578300972
                installationMastrNummer:
                  type: string
                  description: MaStR unit ID for single-installation forecast (SEE…=solar, SWE…=wind). Highest priority — overrides all regional filters. installationType is auto-derived from prefix.
                  example: SEE984033548619
                messlokationId:
                  type: string
                  description: 'Metering location ID (MeLo, 33 chars, starts with DE). Resolved via NAP table. Priority: installationMastrNummer > messlokationId > gridOperatorMastrId > location.'
                  example: DE0010107352900000000000000336372
                bundesland:
                  type: string
                  description: German federal state
                  example: Bayern
                landkreis:
                  type: string
                  description: District/Landkreis name
                  example: Rhein-Neckar-Kreis
                gemeinde:
                  type: string
                  description: Municipality/Gemeinde name
                  example: Heidelberg
                postleitzahl:
                  type: string
                  pattern: ^[0-9]{5}$
                  description: 5-digit postal code
                  example: '69115'
                latitude:
                  type: number
                  description: Latitude for precise weather data
                  example: 49.3988
                longitude:
                  type: number
                  description: Longitude for precise weather data
                  example: 8.6724
                startDate:
                  type: string
                  pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
                  description: Optional start date (YYYY-MM-DD). Omit for default tomorrow behaviour. Past dates switch to historical observation mode (30-day cache, observed weather instead of forecast).
                  example: '2026-01-15'
                includeValidation:
                  type: boolean
                  default: false
                  description: Cross-validate forecast with SMARD data
                  example: false
                format:
                  type: string
                  enum:
                  - json
                  - csv
                  - xlsx
                  default: json
                  description: Output format
                  example: json
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              gridOperatorForecast:
                summary: Daily EE generation for a grid operator network
                value:
                  gridOperatorMastrId: SNB935578300972
                  installationType: all
                  forecastDays: 7
                  resolution: daily
              hourlyIntraday:
                summary: Hourly Solar+Wind forecast for Bavaria (intraday trading)
                value:
                  bundesland: Bayern
                  installationType: all
                  forecastDays: 3
                  resolution: hourly
              quarterHourlyBalancing:
                summary: 15-min forecast for §12 StromNZV balancing/scheduling
                value:
                  postleitzahl: '67063'
                  installationType: solar
                  forecastDays: 2
                  resolution: 15min
              solarByPostalCode:
                summary: Solar forecast for a specific postal code
                value:
                  postleitzahl: '69115'
                  installationType: solar
                  forecastDays: 3
              windBayern:
                summary: Wind forecast for Bavaria (14 days)
                value:
                  bundesland: Bayern
                  installationType: wind
                  forecastDays: 14
              csvExport:
                summary: Download hourly forecast as CSV
                value:
                  gridOperatorMastrId: SNB935578300972
                  installationType: all
                  forecastDays: 3
                  resolution: hourly
                  format: csv
              xlsxExport:
                summary: Download 15-min forecast as Excel (XLSX)
                value:
                  bundesland: Bayern
                  installationType: solar
                  forecastDays: 7
                  resolution: 15min
                  format: xlsx
              singleInstallationMastrNr:
                summary: Single PV installation forecast via MaStR-ID
                value:
                  installationMastrNummer: SEE984033548619
                  forecastDays: 3
                  resolution: hourly
              singleInstallationMeLo:
                summary: Single installation forecast via Messlokation (MeLo)
                value:
                  messlokationId: DE0010107352900000000000000336372
                  forecastDays: 1
                  resolution: 15min
              historicalForecast:
                summary: Historical generation analysis (past date, observed weather)
                value:
                  gridOperatorMastrId: SNB935578300972
                  installationType: all
                  startDate: '2026-01-15'
                  forecastDays: 7
                  resolution: daily
components:
  parameters:
    TokenQuery:
      name: token
      in: query
      required: false
      schema:
        type: string
      description: Optional Cernion MCP token as URL query parameter. If provided, it overrides CERNION_TOKEN for this request. Prefer Authorization Bearer header in production to reduce token exposure in URLs/logs.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Optional Cernion MCP token. If not provided, falls back to CERNION_TOKEN from environment. Request token at https://cernion.de/ or by email: dev@stromdao.com.'