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.
Controllable consumption device management (§14a EnWG). SVE registry, dimming planning with grid capacity analysis, MQTT-based execution, Entlastungsnachweis, and tariff reduction.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cernion-de:cernion-de-flex-14a-flexibilit-tsmanagement-api"
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.
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: 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.'