15.2. API Catalog Reference

GEISA Application Programming Interface

This section is not intended to be read as a narrative description of system behavior, but to serve as a structured reference for developers implementing or integrating with the GEISA API.

It serves as a comprehensive catalog of all defined API calls, including:

  • MQTT topic structures

  • Required and optional parameters

  • Message payload formats

  • Expected responses

  • Error conditions, where applicable

GEISA APIs are implemented using MQTT topic hierarchies. Each API call is defined by:

  • The MQTT topic structure

  • The direction of message flow

  • The associated request and response payload definitions

  • References to relevant sections of the GEISA specification that define relevant behavior and constraints

Note

In the event of a conflict between this API catalog and the specific description in each API reference section, the API reference section SHALL prevail.

15.2.1. API Topic and Permission Catalog

Note

In the topic definitions below, <userid> refers to the platform-local identifier of the requesting GEISA application instance (see Glossary).

Table 15.1 API Topic and Permission Catalog

Category

Topic

Role

Action

Direction

Message Name

Message Type

Discovery

geisa/api/platform/discovery/req/<userid>

Application

Publish

App → Platform

GeisaPlatformDiscovery_Req

Request

geisa/api/platform/discovery/rsp/<userid>

Application

Subscribe

Platform → App

GeisaPlatformDiscovery_Rsp

Response

geisa/api/app/manifest/req/<userid>

Application

Publish

App → Platform

GeisaApplicationDeploymentManifest_Req

Request

geisa/api/app/manifest/rsp/<userid>

Application

Subscribe

Platform → App

GeisaApplicationDeploymentManifest_Rsp

Response

geisa/api/platform/discovery/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaPlatformDiscovery_Req

Request

geisa/api/platform/discovery/rsp/<userid>

Platform

Publish

Platform → App

GeisaPlatformDiscovery_Rsp

Response

geisa/api/app/manifest/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaApplicationDeploymentManifest_Req

Request

geisa/api/app/manifest/rsp/<userid>

Platform

Publish

Platform → App

GeisaApplicationDeploymentManifest_Rsp

Response

Platform Status

geisa/api/platform/status

Application

Subscribe

Platform → App

GeisaPlatformToAppStatus

Broadcast

geisa/api/platform/app/status/<userid>

Application

Subscribe

Platform → App

GeisaPlatformToAppStatus

Directed

geisa/api/app/platform/status/<userid>

Application

Publish

App → Platform

GeisaAppToPlatformStatus

Directed

geisa/api/platform/status

Platform

Publish

Platform → App

GeisaPlatformToAppStatus

Broadcast

geisa/api/platform/app/status/<userid>

Platform

Publish

Platform → App

GeisaPlatformToAppStatus

Directed

geisa/api/app/platform/status/#

Platform

Wildcard Subscribe

App → Platform

GeisaAppToPlatformStatus

Directed

Networking

geisa/api/message/upstream/req/<userid>

Application

Publish

App → Platform

GeisaAppMessage_Req

Request

geisa/api/message/upstream/rsp/<userid>

Application

Subscribe

Platform → App

GeisaAppMessage_Rsp

Response

geisa/api/message/downstream/req/<userid>

Application

Subscribe

Platform → App

GeisaAppMessage_Req

Request

geisa/api/message/downstream/rsp/<userid>

Application

Publish

App → Platform

GeisaAppMessage_Rsp

Response

geisa/api/message/upstream/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaAppMessage_Req

Request

geisa/api/message/upstream/rsp/<userid>

Platform

Publish

Platform → App

GeisaAppMessage_Rsp

Response

geisa/api/message/downstream/req/<userid>

Platform

Publish

Platform → App

GeisaAppMessage_Req

Request

geisa/api/message/downstream/rsp/#

Platform

Wildcard Subscribe

App → Platform

GeisaAppMessage_Rsp

Response

Instantaneous Data

geisa/api/instantaneous/data

Application

Subscribe

Platform → App

GeisaInstantaneousQuantities

Broadcast

geisa/api/instantaneous/data

Platform

Publish

Platform → App

GeisaInstantaneousQuantities

Broadcast

Waveform Data

geisa/api/waveform/req/<userid>

Application

Publish

App → Platform

GeisaWaveform_Req

Request

geisa/api/waveform/rsp/<userid>

Application

Subscribe

Platform → App

GeisaWaveform_Rsp

Response

geisa/api/waveform/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaWaveform_Req

Request

geisa/api/waveform/rsp/<userid>

Platform

Publish

Platform → App

GeisaWaveform_Rsp

Response

Actuator Status & Control

geisa/api/actuator/get/req/<userid>

Application

Publish

App → Platform

GeisaActuatorGet_Req

Request

geisa/api/actuator/get/rsp/<userid>

Application

Subscribe

Platform → App

GeisaActuatorGet_Rsp

Response

geisa/api/actuator/set/req/<userid>

Application

Publish

App → Platform

GeisaActuatorSet_Req

Request

geisa/api/actuator/set/rsp/<userid>

Application

Subscribe

Platform → App

GeisaActuatorSet_Rsp

Response

geisa/api/actuator/get/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaActuatorGet_Req

Request

geisa/api/actuator/get/rsp/<userid>

Platform

Publish

Platform → App

GeisaActuatorGet_Rsp

Response

geisa/api/actuator/set/req/#

Platform

Wildcard Subscribe

App → Platform

GeisaActuatorSet_Req

Request

geisa/api/actuator/set/rsp/<userid>

Platform

Publish

Platform → App

GeisaActuatorSet_Rsp

Response

Sensors

geisa/api/sensor

Application

Subscribe

Platform → App

GeisaSensorReading

Broadcast

geisa/api/sensor-req/<userid>

Application

Publish

App → Platform

GeisaSensorReadings_Req

Request

geisa/api/sensor-rsp/<userid>

Application

Subscribe

Platform → App

GeisaSensorReadings_Rsp

Response

geisa/api/sensor

Platform

Publish

Platform → App

GeisaSensorReading

Broadcast

geisa/api/sensor-req/#

Platform

Wildcard Subscribe

App → Platform

GeisaSensorReadings_Req

Request

geisa/api/sensor-rsp/<userid>

Platform

Publish

Platform → App

GeisaSensorReadings_Rsp

Response

Actuator payloads are defined by GeisaActuatorGet_Req, GeisaActuatorGet_Rsp, GeisaActuatorSet_Req, and GeisaActuatorSet_Rsp. Status and control are permission-gated. Actuator support and target availability are platform-specific.

GEISA Pyramid