Cernion Flex (§14a Flexibilitätsmanagement) API

Controllable consumption device management (§14a EnWG). SVE registry, dimming planning with grid capacity analysis, MQTT-based execution, Entlastungsnachweis, and tariff reduction.

Operations 8

POST /api/flex/devices Register a controllable device (§14a EnWG) #
GET /api/flex/devices List registered §14a devices #
GET /api/flex/devices/:deviceId Get registered §14a device #
PUT /api/flex/devices/:deviceId/status Update §14a device status #
POST /api/flex/events/plan Plan dimming events based on load forecast #
POST /api/flex/events/execute Execute dimming event (real or simulated) #
GET /api/flex/relief-proof/:period Generate Entlastungsnachweis for a period #
GET /api/flex/customer/:deviceId/reduction Calculate §14a tariff reduction for a customer #

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-flex-14a-flexibilit-tsmanagement-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-flex-14a-flexibilit-tsmanagement-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cernion Energy Tools Flex (§14a Flexibilitätsmanagement) 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: Flex (§14a Flexibilitätsmanagement)
  description: Controllable consumption device management (§14a EnWG). SVE registry, dimming planning with grid capacity analysis, MQTT-based execution, Entlastungsnachweis, and tariff reduction.
paths:
  /api/flex/devices:
    post:
      summary: Register a controllable device (§14a EnWG)
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_registerDevice
      parameters:
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      description: Registers a controllable consumption device (wallbox, heat pump, storage) for §14a grid management. Devices are eligible for reduced network tariffs in exchange for temporary dimming.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - deviceId
              - type
              - capacityKw
              properties:
                deviceId:
                  type: string
                  example: wb_test_001
                type:
                  type: string
                  enum:
                  - wallbox
                  - heat_pump
                  - storage
                  - air_conditioning
                  - other
                  example: wallbox
                capacityKw:
                  type: number
                  example: 11
                minDimmingKw:
                  type: number
                  example: 4.2
                meloId:
                  type: string
                  example: DE0012345678901234567890123456789
                customerName:
                  type: string
                  example: Max Mustermann
                postalCode:
                  type: string
                  example: '66989'
                steuerboxId:
                  type: string
                  example: STB-001
                registeredSince:
                  type: string
                  example: '2026-04-26T10:00:00.000Z'
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  deviceId: wb_test_001
                  type: wallbox
                  capacityKw: 11
                  minDimmingKw: 4.2
                  customerName: Max Mustermann
                  postalCode: '66989'
    get:
      summary: List registered §14a devices
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_listDevices
      parameters:
      - name: type
        in: query
        required: false
        schema:
          type: string
          example: wallbox
      - name: postalCode
        in: query
        required: false
        schema:
          type: string
          example: '66989'
      - name: status
        in: query
        required: false
        schema:
          type: string
          example: active
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
  /api/flex/devices/:deviceId:
    get:
      summary: Get registered §14a device
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_getDevice
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
          example: wb_test_001
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
  /api/flex/devices/:deviceId/status:
    put:
      summary: Update §14a device status
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_updateDeviceStatus
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
          example: wb_test_001
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  type: string
                  enum:
                  - active
                  - inactive
                  - maintenance
                  - deregistered
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
  /api/flex/events/plan:
    post:
      summary: Plan dimming events based on load forecast
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_planDimming
      parameters:
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      description: 'Analyzes load forecast against grid capacity and generates a dimming plan. Respects §14a constraints: min 4.2 kW, max 2h duration, min 2h cooldown between events.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - date
              - gridCapacityKw
              properties:
                date:
                  type: string
                  example: '2026-04-20'
                gridCapacityKw:
                  type: number
                  example: 100
                postalCode:
                  type: string
                  example: '66989'
                threshold:
                  type: number
                  example: 0.85
                loadForecastOverride:
                  type: array
                  example:
                  - ts: '2026-04-20T18:00:00.000Z'
                    value: 95
                  - ts: '2026-04-20T18:15:00.000Z'
                    value: 92
                  items:
                    type: object
                    properties:
                      ts:
                        type: string
                      value:
                        type: number
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  date: '2026-04-20'
                  gridCapacityKw: 100
                  threshold: 0.85
                  postalCode: '66989'
  /api/flex/events/execute:
    post:
      summary: Execute dimming event (real or simulated)
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_executeDimming
      parameters:
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      description: Executes a dimming plan or single device dimming. Publishes MQTT command to cernion/flex/{deviceId}/dimming topic and stores events for Entlastungsnachweis.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                planId:
                  type: string
                  example: flexplan_1714123456789_ab12cd34
                deviceId:
                  type: string
                  example: wb_test_001
                durationMinutes:
                  type: number
                  example: 30
                dimmedPowerKw:
                  type: number
                  example: 4.2
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              byPlan:
                value:
                  planId: flexplan_1714123456789_ab12cd34
              singleDevice:
                value:
                  deviceId: wb_test_001
                  durationMinutes: 30
                  dimmedPowerKw: 4.2
  /api/flex/relief-proof/:period:
    get:
      summary: Generate Entlastungsnachweis for a period
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_getReliefProof
      parameters:
      - name: period
        in: path
        required: true
        schema:
          type: string
          example: 2026-04
      - name: postalCode
        in: query
        required: false
        schema:
          type: string
          example: '66989'
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      description: Documents effectiveness of §14a dimming measures with event-level and aggregated relief indicators.
  /api/flex/customer/:deviceId/reduction:
    get:
      summary: Calculate §14a tariff reduction for a customer
      tags:
      - Flex (§14a Flexibilitätsmanagement)
      operationId: flex_getTariffReduction
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
          example: wb_test_001
      - name: annualHours
        in: query
        required: false
        schema:
          type: number
          example: 8760
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
      description: Calculates annual and monthly network tariff reduction for participating §14a SVE customers.
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.'