Eventuate · Capability

Eventuate REST API

The Eventuate REST API provides HTTP endpoints for managing aggregates, events, subscriptions, and event-sourced entities in the Eventuate platform for distributed data management in microservices.

Run with Naftiko EventuateAPI

What You Can Do

POST
Createentity — Create an entity
/entity/{entityType}
GET
Getentity — Get an entity
/entity/{entityType}/{entityId}
POST
Updateentity — Update an entity
/entity/{entityType}/{entityId}
GET
Getentityevents — Get events for an entity
/entity/{entityType}/{entityId}/events
POST
Createsubscription — Create an event subscription
/subscriptions
GET
Getsubscription — Get a subscription
/subscriptions/{subscriptionId}
DELETE
Deletesubscription — Delete a subscription
/subscriptions/{subscriptionId}
GET
Getsubscriptionevents — Get events from a subscription
/subscriptions/{subscriptionId}/events
POST
Acknowledgeevents — Acknowledge events
/subscriptions/{subscriptionId}/acknowledge
GET
Gethealth — Health check
/health

MCP Tools

createentity

Create an entity

getentity

Get an entity

read-only idempotent
updateentity

Update an entity

getentityevents

Get events for an entity

read-only idempotent
createsubscription

Create an event subscription

getsubscription

Get a subscription

read-only idempotent
deletesubscription

Delete a subscription

idempotent
getsubscriptionevents

Get events from a subscription

read-only idempotent
acknowledgeevents

Acknowledge events

gethealth

Health check

read-only idempotent

Capability Spec

eventuate-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Eventuate REST API
  description: The Eventuate REST API provides HTTP endpoints for managing aggregates, events, subscriptions, and event-sourced
    entities in the Eventuate platform for distributed data management in microservices.
  tags:
  - Eventuate
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: eventuate
    baseUri: http://localhost:8080
    description: Eventuate REST API HTTP API.
    resources:
    - name: entity-entitytype
      path: /entity/{entityType}
      operations:
      - name: createentity
        method: POST
        description: Create an entity
        inputParameters:
        - name: entityType
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: entity-entitytype-entityid
      path: /entity/{entityType}/{entityId}
      operations:
      - name: getentity
        method: GET
        description: Get an entity
        inputParameters:
        - name: entityType
          in: path
          type: string
          required: true
        - name: entityId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateentity
        method: POST
        description: Update an entity
        inputParameters:
        - name: entityType
          in: path
          type: string
          required: true
        - name: entityId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: entity-entitytype-entityid-events
      path: /entity/{entityType}/{entityId}/events
      operations:
      - name: getentityevents
        method: GET
        description: Get events for an entity
        inputParameters:
        - name: entityType
          in: path
          type: string
          required: true
        - name: entityId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions
      path: /subscriptions
      operations:
      - name: createsubscription
        method: POST
        description: Create an event subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionid
      path: /subscriptions/{subscriptionId}
      operations:
      - name: getsubscription
        method: GET
        description: Get a subscription
        inputParameters:
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletesubscription
        method: DELETE
        description: Delete a subscription
        inputParameters:
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionid-events
      path: /subscriptions/{subscriptionId}/events
      operations:
      - name: getsubscriptionevents
        method: GET
        description: Get events from a subscription
        inputParameters:
        - name: subscriptionId
          in: path
          type: string
          required: true
        - name: maxEvents
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionid-acknowledge
      path: /subscriptions/{subscriptionId}/acknowledge
      operations:
      - name: acknowledgeevents
        method: POST
        description: Acknowledge events
        inputParameters:
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: health
      path: /health
      operations:
      - name: gethealth
        method: GET
        description: Health check
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: eventuate-rest
    description: REST adapter for Eventuate REST API.
    resources:
    - path: /entity/{entityType}
      name: createentity
      operations:
      - method: POST
        name: createentity
        description: Create an entity
        call: eventuate.createentity
        with:
          entityType: rest.entityType
        outputParameters:
        - type: object
          mapping: $.
    - path: /entity/{entityType}/{entityId}
      name: getentity
      operations:
      - method: GET
        name: getentity
        description: Get an entity
        call: eventuate.getentity
        with:
          entityType: rest.entityType
          entityId: rest.entityId
        outputParameters:
        - type: object
          mapping: $.
    - path: /entity/{entityType}/{entityId}
      name: updateentity
      operations:
      - method: POST
        name: updateentity
        description: Update an entity
        call: eventuate.updateentity
        with:
          entityType: rest.entityType
          entityId: rest.entityId
        outputParameters:
        - type: object
          mapping: $.
    - path: /entity/{entityType}/{entityId}/events
      name: getentityevents
      operations:
      - method: GET
        name: getentityevents
        description: Get events for an entity
        call: eventuate.getentityevents
        with:
          entityType: rest.entityType
          entityId: rest.entityId
        outputParameters:
        - type: object
          mapping: $.
    - path: /subscriptions
      name: createsubscription
      operations:
      - method: POST
        name: createsubscription
        description: Create an event subscription
        call: eventuate.createsubscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /subscriptions/{subscriptionId}
      name: getsubscription
      operations:
      - method: GET
        name: getsubscription
        description: Get a subscription
        call: eventuate.getsubscription
        with:
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /subscriptions/{subscriptionId}
      name: deletesubscription
      operations:
      - method: DELETE
        name: deletesubscription
        description: Delete a subscription
        call: eventuate.deletesubscription
        with:
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /subscriptions/{subscriptionId}/events
      name: getsubscriptionevents
      operations:
      - method: GET
        name: getsubscriptionevents
        description: Get events from a subscription
        call: eventuate.getsubscriptionevents
        with:
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /subscriptions/{subscriptionId}/acknowledge
      name: acknowledgeevents
      operations:
      - method: POST
        name: acknowledgeevents
        description: Acknowledge events
        call: eventuate.acknowledgeevents
        with:
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /health
      name: gethealth
      operations:
      - method: GET
        name: gethealth
        description: Health check
        call: eventuate.gethealth
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: eventuate-mcp
    transport: http
    description: MCP adapter for Eventuate REST API for AI agent use.
    tools:
    - name: createentity
      description: Create an entity
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: eventuate.createentity
      with:
        entityType: tools.entityType
      inputParameters:
      - name: entityType
        type: string
        description: entityType
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getentity
      description: Get an entity
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eventuate.getentity
      with:
        entityType: tools.entityType
        entityId: tools.entityId
      inputParameters:
      - name: entityType
        type: string
        description: entityType
        required: true
      - name: entityId
        type: string
        description: entityId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateentity
      description: Update an entity
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: eventuate.updateentity
      with:
        entityType: tools.entityType
        entityId: tools.entityId
      inputParameters:
      - name: entityType
        type: string
        description: entityType
        required: true
      - name: entityId
        type: string
        description: entityId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getentityevents
      description: Get events for an entity
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eventuate.getentityevents
      with:
        entityType: tools.entityType
        entityId: tools.entityId
      inputParameters:
      - name: entityType
        type: string
        description: entityType
        required: true
      - name: entityId
        type: string
        description: entityId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createsubscription
      description: Create an event subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: eventuate.createsubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubscription
      description: Get a subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eventuate.getsubscription
      with:
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletesubscription
      description: Delete a subscription
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: eventuate.deletesubscription
      with:
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubscriptionevents
      description: Get events from a subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eventuate.getsubscriptionevents
      with:
        subscriptionId: tools.subscriptionId
        maxEvents: tools.maxEvents
      inputParameters:
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      - name: maxEvents
        type: integer
        description: maxEvents
      outputParameters:
      - type: object
        mapping: $.
    - name: acknowledgeevents
      description: Acknowledge events
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: eventuate.acknowledgeevents
      with:
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: gethealth
      description: Health check
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eventuate.gethealth
      outputParameters:
      - type: object
        mapping: $.