Cernion NOVA API
The NOVA API from Cernion — 17 operation(s) for nova.
The NOVA API from Cernion — 17 operation(s) for nova.
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-nova-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 NOVA 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: NOVA
paths:
/api/nova/pending-decisions:
get:
summary: List pending NOVA decisions (dynamic)
tags:
- NOVA
operationId: nova_pendingDecisions
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Analyses the project graph and returns dynamic NOVA decisions using O/V heuristics (Q(U) optimization and rONT reinforcement).
/api/nova/apply/:id:
post:
summary: Apply NOVA decision
tags:
- NOVA
operationId: nova_apply
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Applies a dynamic NOVA decision to the in-memory ZNP graph, persists the update, and emits znp.project.updated for SSE consumers.
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
/api/nova/decisions:
get:
summary: List NOVA decisions
tags:
- NOVA
operationId: nova_listDecisions
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- in: query
name: status
required: false
schema:
type: string
example: pending_approval
- in: query
name: kind
required: false
schema:
type: string
example: threshold_update
- in: query
name: limit
required: false
schema:
type: integer
default: 50
- in: query
name: cursor
required: false
schema:
type: string
example: eyJwaXZvdCI6Ii4uLiJ9
- in: query
name: offset
required: false
schema:
type: integer
default: 0
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
/api/nova/decisions/:id:
get:
summary: Get NOVA decision by id
tags:
- NOVA
operationId: nova_getDecision
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- in: path
name: id
required: true
schema:
type: string
example: dec_a1b2c3d4_SUB_1_QU
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
/api/nova/decisions/:id/approve:
post:
summary: Approve NOVA decision
tags:
- NOVA
operationId: nova_approveDecision
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
comment:
type: string
example: Approved via HITL
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
comment: Approved via HITL
/api/nova/decisions/:id/reject:
post:
summary: Reject NOVA decision
tags:
- NOVA
operationId: nova_rejectDecision
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
reason:
type: string
example: Insufficient evidence
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
reason: Insufficient evidence
/api/nova/decisions/stats:
get:
summary: NOVA decision status counts
tags:
- NOVA
operationId: nova_decisionStats
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
/api/nova/decisions/:id/replay-trigger:
post:
summary: Replay NOVA decision trigger source (async)
tags:
- NOVA
operationId: nova_replayTrigger
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'202':
description: Replay accepted as async job
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
/api/nova/stream:
get:
summary: NOVA realtime stream (SSE)
tags:
- NOVA
operationId: nova_stream
parameters:
- in: query
name: projectId
required: false
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Server-Sent Events endpoint with tenant isolation and optional project-scoped filtering.
/api/znp/projects/:projectId/nova/pending-decisions:
get:
summary: List pending NOVA decisions (dynamic)
tags:
- NOVA
operationId: getApiZnpProjects:projectIdNovaPendingDecisions
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Analyses the project graph and returns dynamic NOVA decisions using O/V heuristics (Q(U) optimization and rONT reinforcement).
x-operation-id-source: normalized
x-operation-id-original: nova_pendingDecisions
/api/znp/projects/:projectId/nova/apply/:id:
post:
summary: Apply NOVA decision
tags:
- NOVA
operationId: postApiZnpProjects:projectIdNovaApply:id
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Applies a dynamic NOVA decision to the in-memory ZNP graph, persists the update, and emits znp.project.updated for SSE consumers.
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
x-operation-id-source: normalized
x-operation-id-original: nova_apply
/api/znp/projects/:projectId/nova/decisions:
get:
summary: List NOVA decisions
tags:
- NOVA
operationId: getApiZnpProjects:projectIdNovaDecisions
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- in: query
name: status
required: false
schema:
type: string
example: pending_approval
- in: query
name: kind
required: false
schema:
type: string
example: threshold_update
- in: query
name: limit
required: false
schema:
type: integer
default: 50
- in: query
name: cursor
required: false
schema:
type: string
example: eyJwaXZvdCI6Ii4uLiJ9
- in: query
name: offset
required: false
schema:
type: integer
default: 0
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
x-operation-id-source: normalized
x-operation-id-original: nova_listDecisions
/api/znp/projects/:projectId/nova/decisions/stats:
get:
summary: NOVA decision status counts
tags:
- NOVA
operationId: getApiZnpProjects:projectIdNovaDecisionsStats
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
x-operation-id-source: normalized
x-operation-id-original: nova_decisionStats
/api/znp/projects/:projectId/nova/decisions/:id:
get:
summary: Get NOVA decision by id
tags:
- NOVA
operationId: getApiZnpProjects:projectIdNovaDecisions:id
parameters:
- in: query
name: projectId
required: true
schema:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
- in: path
name: id
required: true
schema:
type: string
example: dec_a1b2c3d4_SUB_1_QU
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
x-operation-id-source: normalized
x-operation-id-original: nova_getDecision
/api/znp/projects/:projectId/nova/decisions/:id/approve:
post:
summary: Approve NOVA decision
tags:
- NOVA
operationId: postApiZnpProjects:projectIdNovaDecisions:idApprove
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
comment:
type: string
example: Approved via HITL
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
comment: Approved via HITL
x-operation-id-source: normalized
x-operation-id-original: nova_approveDecision
/api/znp/projects/:projectId/nova/decisions/:id/reject:
post:
summary: Reject NOVA decision
tags:
- NOVA
operationId: postApiZnpProjects:projectIdNovaDecisions:idReject
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
reason:
type: string
example: Insufficient evidence
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
reason: Insufficient evidence
x-operation-id-source: normalized
x-operation-id-original: nova_rejectDecision
/api/znp/projects/:projectId/nova/decisions/:id/replay-trigger:
post:
summary: Replay NOVA decision trigger source (async)
tags:
- NOVA
operationId: postApiZnpProjects:projectIdNovaDecisions:idReplayTrigger
parameters:
- $ref: '#/components/parameters/TokenQuery'
responses:
'202':
description: Replay accepted as async job
requestBody:
required: false
content:
application/json:
schema:
type: object
required:
- projectId
- id
properties:
projectId:
type: string
example: a1b2c3d4-0000-0000-0000-000000000001
id:
type: string
example: dec_a1b2c3d4_SUB_1_QU
token:
type: string
description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
examples:
default:
value:
projectId: a1b2c3d4-0000-0000-0000-000000000001
id: dec_a1b2c3d4_SUB_1_QU
x-operation-id-source: normalized
x-operation-id-original: nova_replayTrigger
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.'