Cernion Object Store API

Generic namespaced document store backed by PouchDB (v0.20.5). Provides CRUD and Mango-query operations for frontend persistence (ZNP workspaces, user settings, etc.) without backend schema changes. Documents are keyed as namespace:key; namespace isolation enforced in all queries.

Operations 8

GET /api/object-store/:namespace/:key Get a document from the Object Store #
PUT /api/object-store/:namespace/:key Create or update a document in the Object Store (upsert) #
DELETE /api/object-store/:namespace/:key Delete a document from the Object Store #
POST /api/object-store/:namespace/query Query documents in a namespace (Mango selector) #
POST /api/objects/:namespace/query Query documents in a namespace (Mango selector) #
GET /api/objects/:namespace/:key Get a document from the Object Store #
PUT /api/objects/:namespace/:key Create or update a document in the Object Store (upsert) #
DELETE /api/objects/:namespace/:key Delete a document from the Object Store #

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-object-store-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-object-store-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cernion Energy Tools Object Store 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: Object Store
  description: Generic namespaced document store backed by PouchDB (v0.20.5). Provides CRUD and Mango-query operations for frontend persistence (ZNP workspaces, user settings, etc.) without backend schema changes. Documents are keyed as namespace:key; namespace isolation enforced in all queries.
paths:
  /api/object-store/:namespace/:key:
    get:
      summary: Get a document from the Object Store
      tags:
      - Object Store
      operationId: object_store_get
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
        description: Logical namespace (lowercase letter start, underscores allowed, 1–64 chars).
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
        description: Unique document key within the namespace (1–256 non-whitespace chars).
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document found
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
                  payload:
                    type: object
                    example:
                      name: My Project
                  _rev:
                    type: string
                    example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                    description: Current PouchDB document revision for CAS updates.
                  createdAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
                  updatedAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
      description: Retrieves a single document by namespace and key. Returns the stored JSON payload together with namespace, key, createdAt, and updatedAt.
    put:
      summary: Create or update a document in the Object Store (upsert)
      tags:
      - Object Store
      operationId: object_store_put
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document created or updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
                  payload:
                    type: object
                    example:
                      name: My Project
                  _rev:
                    type: string
                    example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                    description: Current PouchDB document revision after upsert.
                  createdAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
                  updatedAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
      description: 'Upserts a document identified by namespace + key. On update the payload is fully replaced and updatedAt is refreshed; createdAt is preserved. Optional CAS: callers may pass _rev. On revision mismatch, the action returns HTTP 409 OBJECT_OCC_CONFLICT.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - payload
              properties:
                payload:
                  type: object
                  description: Arbitrary JSON payload to store.
                  example:
                    name: My Project
                    status: active
                _rev:
                  type:
                  - string
                  - 'null'
                  description: Optional PouchDB revision for CAS updates. Use null for create-if-not-exists CAS semantics.
                  example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  payload:
                    name: My Project
                    status: active
    delete:
      summary: Delete a document from the Object Store
      tags:
      - Object Store
      operationId: object_store_delete
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
      description: Permanently removes a document. Returns 404 OBJECT_NOT_FOUND if the document does not exist.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
  /api/object-store/:namespace/query:
    post:
      summary: Query documents in a namespace (Mango selector)
      tags:
      - Object Store
      operationId: object_store_query
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
        description: Namespace to search within.
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Query results
          content:
            application/json:
              schema:
                type: object
                properties:
                  docs:
                    type: array
                    items:
                      type: object
                      properties:
                        namespace:
                          type: string
                          example: znp_projects
                        key:
                          type: string
                          example: a1b2c3d4
                        payload:
                          type: object
                        createdAt:
                          type: string
                          example: '2026-04-06T12:00:00.000Z'
                        updatedAt:
                          type: string
                          example: '2026-04-06T12:00:00.000Z'
                  totalDocs:
                    type: integer
                    example: 3
      description: 'Searches for documents within a namespace using PouchDB Mango query syntax. The `ns` namespace guard is injected automatically into every selector — callers cannot escape their namespace. Use dotted paths to filter on payload fields: `{ "payload.status": "active" }`.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                selector:
                  type: object
                  example:
                    payload.status: active
                  description: Mango selector for payload fields (namespace guard injected automatically).
                limit:
                  type: integer
                  default: 50
                  maximum: 1000
                  example: 50
                  description: Maximum results to return (1–1000).
                skip:
                  type: integer
                  default: 0
                  example: 0
                  description: Number of documents to skip (for pagination).
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  selector:
                    payload.status: active
                  limit: 10
  /api/objects/:namespace/query:
    post:
      summary: Query documents in a namespace (Mango selector)
      tags:
      - Object Store
      operationId: postApiObjects:namespaceQuery
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
        description: Namespace to search within.
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Query results
          content:
            application/json:
              schema:
                type: object
                properties:
                  docs:
                    type: array
                    items:
                      type: object
                      properties:
                        namespace:
                          type: string
                          example: znp_projects
                        key:
                          type: string
                          example: a1b2c3d4
                        payload:
                          type: object
                        createdAt:
                          type: string
                          example: '2026-04-06T12:00:00.000Z'
                        updatedAt:
                          type: string
                          example: '2026-04-06T12:00:00.000Z'
                  totalDocs:
                    type: integer
                    example: 3
      description: 'Searches for documents within a namespace using PouchDB Mango query syntax. The `ns` namespace guard is injected automatically into every selector — callers cannot escape their namespace. Use dotted paths to filter on payload fields: `{ "payload.status": "active" }`.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                selector:
                  type: object
                  example:
                    payload.status: active
                  description: Mango selector for payload fields (namespace guard injected automatically).
                limit:
                  type: integer
                  default: 50
                  maximum: 1000
                  example: 50
                  description: Maximum results to return (1–1000).
                skip:
                  type: integer
                  default: 0
                  example: 0
                  description: Number of documents to skip (for pagination).
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  selector:
                    payload.status: active
                  limit: 10
      x-operation-id-source: normalized
      x-operation-id-original: object_store_query
  /api/objects/:namespace/:key:
    get:
      summary: Get a document from the Object Store
      tags:
      - Object Store
      operationId: getApiObjects:namespace:key
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
        description: Logical namespace (lowercase letter start, underscores allowed, 1–64 chars).
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
        description: Unique document key within the namespace (1–256 non-whitespace chars).
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document found
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
                  payload:
                    type: object
                    example:
                      name: My Project
                  _rev:
                    type: string
                    example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                    description: Current PouchDB document revision for CAS updates.
                  createdAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
                  updatedAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
      description: Retrieves a single document by namespace and key. Returns the stored JSON payload together with namespace, key, createdAt, and updatedAt.
      x-operation-id-source: normalized
      x-operation-id-original: object_store_get
    put:
      summary: Create or update a document in the Object Store (upsert)
      tags:
      - Object Store
      operationId: putApiObjects:namespace:key
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document created or updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
                  payload:
                    type: object
                    example:
                      name: My Project
                  _rev:
                    type: string
                    example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                    description: Current PouchDB document revision after upsert.
                  createdAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
                  updatedAt:
                    type: string
                    example: '2026-04-06T12:00:00.000Z'
      description: 'Upserts a document identified by namespace + key. On update the payload is fully replaced and updatedAt is refreshed; createdAt is preserved. Optional CAS: callers may pass _rev. On revision mismatch, the action returns HTTP 409 OBJECT_OCC_CONFLICT.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - payload
              properties:
                payload:
                  type: object
                  description: Arbitrary JSON payload to store.
                  example:
                    name: My Project
                    status: active
                _rev:
                  type:
                  - string
                  - 'null'
                  description: Optional PouchDB revision for CAS updates. Use null for create-if-not-exists CAS semantics.
                  example: 2-4f8a63d0f9c94d97a0b5b6f8cdef1234
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
            examples:
              default:
                value:
                  payload:
                    name: My Project
                    status: active
      x-operation-id-source: normalized
      x-operation-id-original: object_store_put
    delete:
      summary: Delete a document from the Object Store
      tags:
      - Object Store
      operationId: deleteApiObjects:namespace:key
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: znp_projects
      - name: key
        in: path
        required: true
        schema:
          type: string
          example: a1b2c3d4
      - $ref: '#/components/parameters/TokenQuery'
      responses:
        '200':
          description: Document deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  namespace:
                    type: string
                    example: znp_projects
                  key:
                    type: string
                    example: a1b2c3d4
      description: Permanently removes a document. Returns 404 OBJECT_NOT_FOUND if the document does not exist.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
      x-operation-id-source: normalized
      x-operation-id-original: object_store_delete
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.'