aedifion MQTT API

MQTT 3.1.1 broker interface at mqtt.aedifion.io for streaming building telemetry into and out of the aedifion.io platform. TLS-only (ports 8883 for native MQTT, 9001 for MQTT over WebSockets), username/password authentication with per-topic read/write authorization. Three topic families - timeseries, META and CONTROLS - are namespaced by load-balancing group and project handle. Timeseries payloads use InfluxDB Line Protocol; metadata and controls payloads are JSON.

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/aedifion-mqtt-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

AsyncAPI Specification

aedifion-mqtt-asyncapi.yml Raw ↑
asyncapi: 3.0.0
info:
  title: aedifion MQTT API
  version: '2'
  description: >-
    Event-driven interface to the aedifion.io building operations platform. The broker carries
    three topic families - building timeseries observations, semantic metadata, and control
    commands - namespaced by load-balancing group and project handle.


    PROVENANCE: aedifion publishes no AsyncAPI document. This description was GENERATED by API
    Evangelist from aedifion's own published MQTT specification at
    https://docs.aedifion.io/en/developers/mqtt-api/ - every host, port, topic pattern, payload
    format and QoS statement below is taken from that page. Nothing here is inferred beyond
    what the documentation states. It is a third-party rendering of a documented interface, not
    a contract aedifion ships.
  contact:
    name: aedifion GmbH
    url: https://www.aedifion.com/kontakt
    email: contact@aedifion.com
  externalDocs:
    description: aedifion MQTT API documentation
    url: https://docs.aedifion.io/en/developers/mqtt-api/
x-generated-by: API Evangelist enrichment pipeline
x-generated-from: documentation
x-source-url: https://docs.aedifion.io/en/developers/mqtt-api/
x-generated-date: '2026-09-09'
servers:
  cloud-mqtts:
    host: mqtt.aedifion.io:8883
    protocol: secure-mqtt
    protocolVersion: 3.1.1
    description: >-
      Native MQTT over TLS. Brokers accept only TLS 1.2 and TLS 1.3; plain TCP connections are
      rejected. Server certificates are issued by Let's Encrypt.
    security:
    - $ref: '#/components/securitySchemes/userPassword'
  cloud-wss:
    host: mqtt.aedifion.io:9001
    protocol: secure-mqtt
    protocolVersion: 3.1.1
    description: MQTT over WebSockets via TLS, for browser clients.
    security:
    - $ref: '#/components/securitySchemes/userPassword'
  dedicated:
    host: 'mqtt.{realm}.aedifion.io:8883'
    protocol: secure-mqtt
    protocolVersion: 3.1.1
    description: Broker for a dedicated single-tenant instance.
    variables:
      realm:
        description: The customer's dedicated realm name.
    security:
    - $ref: '#/components/securitySchemes/userPassword'
channels:
  timeseries:
    address: '{loadBalancingGroup}/{projectHandle}'
    title: Building timeseries observations
    description: >-
      Observation stream for a project. Messages must strictly adhere to InfluxDB Line
      Protocol. Publishing requires write access to the topic; subscribing requires read access.
    parameters:
      loadBalancingGroup:
        description: The load-balancing group assigned to the project. Also present on the
          Project resource in the HTTP API as load_balancing_group.
      projectHandle:
        description: The project's handle, as returned by the HTTP API Project resource.
    messages:
      observation:
        $ref: '#/components/messages/observation'
  metadata:
    address: 'META/{loadBalancingGroup}/{projectHandle}'
    title: Semantic metadata
    description: >-
      Metadata about datapoints and entities, as JSON. Messages may not exceed 1 MB. Two
      schemes exist - V1 is deprecated, V2 is current and uses an entity/mode/tags structure.
    parameters:
      loadBalancingGroup:
        description: The load-balancing group assigned to the project.
      projectHandle:
        description: The project's handle.
    messages:
      metadata:
        $ref: '#/components/messages/metadata'
  controls:
    address: 'CONTROLS/{loadBalancingGroup}/{projectHandle}'
    title: Control commands
    description: >-
      Setpoints and schedules, as JSON, using the SWOP protocol. This channel writes to physical
      building equipment.
    parameters:
      loadBalancingGroup:
        description: The load-balancing group assigned to the project.
      projectHandle:
        description: The project's handle.
    messages:
      control:
        $ref: '#/components/messages/control'
operations:
  publishObservation:
    action: send
    channel:
      $ref: '#/channels/timeseries'
    summary: Publish building telemetry into the platform.
    description: Requires write access to the topic. QoS 0, 1 and 2 are all supported.
    messages:
    - $ref: '#/channels/timeseries/messages/observation'
  subscribeObservation:
    action: receive
    channel:
      $ref: '#/channels/timeseries'
    summary: Subscribe to a project's live observation stream.
    description: Requires read access to the topic. MQTT hierarchical wildcards (+, #) apply.
    messages:
    - $ref: '#/channels/timeseries/messages/observation'
  publishMetadata:
    action: send
    channel:
      $ref: '#/channels/metadata'
    summary: Publish semantic metadata for datapoints and entities.
    messages:
    - $ref: '#/channels/metadata/messages/metadata'
  subscribeControls:
    action: receive
    channel:
      $ref: '#/channels/controls'
    summary: Receive setpoint and schedule commands for building equipment.
    messages:
    - $ref: '#/channels/controls/messages/control'
components:
  securitySchemes:
    userPassword:
      type: userPassword
      description: >-
        Username and password presented in the MQTT CONNECT packet, over TLS. Limited-validity
        credentials are minted through the HTTP API's MQTT user-management endpoints;
        unlimited-validity credentials are issued only on request by aedifion staff.
        Authorization is per-topic - read to subscribe, write to publish.
  messages:
    observation:
      name: observation
      title: Timeseries observation
      summary: One or more datapoint observations in InfluxDB Line Protocol.
      contentType: text/plain
      payload:
        type: string
        description: >-
          InfluxDB Line Protocol. The documented form is
          `datapoint value=<float> <nanosecond-timestamp>`. Multiple datapoints may be sent in
          a single message.
        examples:
        - 'bacnet100-4120-CO2 value=612.0 1757404800000000000'
    metadata:
      name: metadata
      title: Entity metadata
      summary: Semantic metadata for a datapoint or entity, JSON, max 1 MB.
      contentType: application/json
      payload:
        type: object
        description: >-
          Scheme V2 - entity/mode/tags structure. Scheme V1 is deprecated. aedifion does not
          publish a JSON Schema for either scheme, so the property set is not reproduced here
          rather than guessed.
    control:
      name: control
      title: Control command
      summary: Setpoint or schedule command, JSON, SWOP protocol.
      contentType: application/json
      payload:
        type: object
        description: >-
          SWOP protocol message. aedifion does not publish a JSON Schema for SWOP, so the
          property set is not reproduced here rather than guessed. See
          https://docs.aedifion.io/en/products/io/setpoints-and-schedules/protocol/