Industrial IoT / SCADA · API

Eclipse Ditto HTTP API

Eclipse Foundation

Model and access connected things through a digital-twin HTTP interface.

Official documentationDownload development spec

The linked unversioned Ditto pages identify themselves as development documentation. Pin a released version before implementing; do not assume every documented feature exists in your installation.

ECLIPSE DITTO / DEVELOPER FIELD GUIDE

Choose an interface. Define a verifiable result.

Company or project context, ten technical entry points and a practical analysis of every reference.

2026-10-08 · Integration not tested

Company / project overview

Original summary of official company or project statements; use the source for the full original page.

Eclipse Ditto · About
ProjectEclipse Ditto is an open-source, domain-independent digital twin framework for IoT devices.
Middleware roleIt abstracts device state and exposes synchronous and asynchronous interfaces with resource-level access control.
Connectivity boundaryDevice connectivity layers and protocol connections connect physical devices and external systems to Ditto.
Complete official About page ↗
About reference — TA analysis
AudienceBuyers, partners and product owners shortlisting an AI provider.
Our assessmentUse positioning and company history for initial fit. Obtain project-specific deployment, support and commercial terms separately.

Official sources reviewed; no live API, inference or benchmark was run. Expected results are proposed internal contracts.

Top 10 technical entry points

Ten documented technical entry points selected by developer task; not ten separate SDKs or an official ranking.

Choose by the work you need to complete
InterfacePurpose and audience
01 · Things modelAPI / SDK / developer guideRepresent a device as a digital twin entity.Twin model designers
02 · Features modelAPI / SDK / developer guideGroup device properties into features.Device capability modelers
03 · PolicyAPI / SDK / developer guideAuthorize access to twin resources.Access-control teams
04 · HTTP searchAPI / SDK / developer guideSearch authorized twins using filters.Fleet application developers
05 · HTTP messagesAPI / SDK / developer guideSend application messages through Ditto.Device interaction teams
06 · WebSocket bindingAPI / SDK / developer guideExchange protocol messages over a persistent socket.Live UI teams
07 · Payload mappingAPI / SDK / developer guideTranslate external payloads to or from Ditto messages.Protocol integration engineers
08 · Twin and live channelsAPI / SDK / developer guideChoose persisted twin access versus live device interaction.Architecture teams
09 · Conditional requestsAPI / SDK / developer guideApply updates only when declared conditions match.Concurrent update developers
10 · Acknowledgements and QoSAPI / SDK / developer guideDefine required acknowledgements for message processing.Delivery reliability engineers

Reference analysis

Capabilities summarize official documentation. Constraints and proposed tests are our engineering assessment.

01

API / SDK / developer guide

Things model

Things model · TA
Target audienceTwin model designers
Documented capabilityRepresent a device as a digital twin entity.
Input → outputThing identifier and attributes → twin document.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintStored twin state may differ from the physical device.
Our suggested validationPreserve device identity, update time and state provenance.
Official reference · Things model ↗
02

API / SDK / developer guide

Features model

Features model · TA
Target audienceDevice capability modelers
Documented capabilityGroup device properties into features.
Input → outputFeature ID and properties → structured feature state.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintDesired and reported properties are not interchangeable.
Our suggested validationValidate property names, units and intended/reporting paths.
Official reference · Features model ↗
03

API / SDK / developer guide

Policy

Policy · TA
Target audienceAccess-control teams
Documented capabilityAuthorize access to twin resources.
Input → outputSubjects, resources and permissions → enforced policy.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintAuthentication alone does not grant resource permissions.
Our suggested validationTest allowed fields and denied cross-device access.
Official reference · Policy ↗
05

API / SDK / developer guide

HTTP messages

HTTP messages · TA
Target audienceDevice interaction teams
Documented capabilitySend application messages through Ditto.
Input → outputMessage subject and payload → receiver response when available.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintMessage transport does not guarantee physical task completion.
Our suggested validationCorrelate device replies and handle timeout explicitly.
Official reference · HTTP messages ↗
06

API / SDK / developer guide

WebSocket binding

WebSocket binding · TA
Target audienceLive UI teams
Documented capabilityExchange protocol messages over a persistent socket.
Input → outputSubscribed or commanded protocol traffic → streamed responses/events.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintReconnect can interrupt event observation.
Our suggested validationReconcile state after reconnect rather than assuming no missed changes.
Official reference · WebSocket binding ↗
07

API / SDK / developer guide

Payload mapping

Payload mapping · TA
Target audienceProtocol integration engineers
Documented capabilityTranslate external payloads to or from Ditto messages.
Input → outputDevice-specific payload → normalized protocol data.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintMapping errors can change units or target identifiers.
Our suggested validationRound-trip representative payloads and reject malformed structures.
Official reference · Payload mapping ↗
08

API / SDK / developer guide

Twin and live channels

Twin and live channels · TA
Target audienceArchitecture teams
Documented capabilityChoose persisted twin access versus live device interaction.
Input → outputChannel-specific request → stored state or live response.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintA successful twin read is not proof the device is online.
Our suggested validationExpose channel and data freshness to downstream users.
Official reference · Twin and live channels ↗
09

API / SDK / developer guide

Conditional requests

Conditional requests · TA
Target audienceConcurrent update developers
Documented capabilityApply updates only when declared conditions match.
Input → outputCondition and mutation → accepted update or failed precondition.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintIgnoring failed conditions risks overwriting concurrent changes.
Our suggested validationTest stale-state conflicts and retry only after reconciling current state.
Official reference · Conditional requests ↗
10

API / SDK / developer guide

Acknowledgements and QoS

Acknowledgements and QoS · TA
Target audienceDelivery reliability engineers
Documented capabilityDefine required acknowledgements for message processing.
Input → outputRequested acknowledgement labels → acknowledgement outcome.
Execution environmentPinned released Ditto deployment and configured connectivity layer
Our decision constraintEach acknowledgement covers a specific processing boundary.
Our suggested validationVerify expected participants and distinguish missing acknowledgement from success.
Official reference · Acknowledgements and QoS ↗

HTTP API concepts

HTTP API concepts · Supporting reference analysis
TAAPI integrators
Our validation adviceChoose the released-version documentation and confirm conditional access and response behavior.
Official reference · HTTP API concepts ↗

04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE

Expected results before implementation

Illustrative digital-twin read contract, not native Ditto protocol JSON. No twin write, device message or API call was performed.

Illustrative contract · no API call or model execution · not measured provider output

Stored twin retrieved

Expected behavior — illustrative, not executed
InputAuthorized read of a known twin.
Expected resultok with channel=twin and stored properties.
AcceptancePreserve freshness and do not assert live device connectivity.

No search match

Expected behavior — illustrative, not executed
InputValid authorized search matches no twins.
Expected resultok with things: [].
AcceptanceDistinguish search emptiness from denial and direct missing-resource errors.

Live device unavailable

Expected behavior — illustrative, not executed
InputA live-channel request receives no device response within policy.
Expected resulttimeout/error; stored twin may still be readable.
AcceptanceNever substitute stored data and label it live without disclosure.

Conditional update conflict

Expected behavior — illustrative, not executed
InputUpdate condition does not match current twin state.
Expected resulterror/conflict; do not report applied change.
AcceptanceRead current state and reconcile before any retry.

Map the expected result to your application

Map the actual SDK or service response into this proposed internal contract after integration. All IDs and values below are invented examples; no credentials or live requests are included.

Expected output JSON — illustrative, not measured · EclipseDitto-expected-results.json
{
  "schema_version": "1.0.0",
  "example": true,
  "provider": "Eclipse Ditto",
  "status": "ok",
  "input_id": "sample-001",
  "data": {
    "thing_id": "example:device",
    "channel": "twin",
    "reported": {
      "temperature_c": 24
    },
    "desired": {},
    "observed_at": null,
    "device_online_confirmed": false
  },
  "error": null,
  "verification": "illustrative-only;not-provider-response"
}
Download specification, example and acceptance plan
Engineering handoff — our proposed contract and gates
Result interpretationSuccessful transport or execution does not establish model accuracy. Preserve valid empty results separately from operational failure.
ReproducibilityRecord model, runtime, configuration and input identifiers; agree quality and latency criteria before representative tests. No measured performance is claimed.
Operation boundaryIllustrative digital-twin read contract, not native Ditto protocol JSON. No twin write, device message or API call was performed.

Development assessment

Device state twin

Development concept · integration not tested

Provider capabilities above are based on official documentation or repositories. The proposed product, inputs, deliverable and acceptance criteria below are our development assessment.

Small prototype

Test one documented operation with a small real sample after access is confirmed. This is a development judgment, not a delivery estimate.

Proposed inputs
A test device or simulator, a tag map and documented units.
Proposed deliverable
Timestamped device values with freshness, unit and connection state.
Acceptance criterion
Verify scaling and timestamps against the source; a disconnected device must not appear healthy.
Dependencies
A gateway or service account, an equipment schema and access to a test environment.

Integration condition

The linked unversioned Ditto pages identify themselves as development documentation. Pin a released version before implementing; do not assume every documented feature exists in your installation.

Development sequence

  1. Confirm access to Eclipse Ditto HTTP API, license and the exact supported version.
  2. Prepare the sample above and implement one documented operation for “Device state twin”.
  3. Normalize the result with source, time and explicit error state; keep the provider response for review.
  4. Run the acceptance criterion before estimating rollout effort or committing a customer deliverable.

How to validate demand

Record product views, documentation clicks, specification downloads and contextual hub clicks. These are event counts, not unique people or completed integrations.

This feasibility assessment uses implementation conditions. No traffic-based rank or delivery-time promise is assigned.

Related products