Device Reports Common Schema

Common Schema Structure

This document outlines the authoritative common schema structure for data reports generated by Sensos devices, including the Sensos Smart Label.

Data delivery rules (Webhooks and customer integrations) stream this payload in real time as devices transmit periodic heartbeats, movement alerts, sensor excursions, or milestone events.

Below is an example of the common JSON report structure used in data delivery:


Example JSON Report

{
  "messageId": "c961ea64-9e56-4e31-b563-de8ece738370",
  "deviceId": "351521100750611",
  "accountId": "83298196-0d7a-4f45-9a06-a3e92c35a090",
  "timestamp": "2026-09-15T12:32:14Z",
  "type": "SensosLabelMessage",
  "messageCount": 89,
  "device": {
    "partNumber": "SLS-10001F-00-B-00",
    "softwareVersion": "1.6"
  },
  "location": {
    "source": "Cellular",
    "latitude": 50.00350791,
    "longitude": 22.05932459,
    "accuracy": 568,
    "country": "Poland"
  },
  "trigger": {
    "main": "TemperatureAlert",
    "list": [
      "TemperatureAlert",
      "Static",
      "SavedReport"
    ]
  },
  "sensors": {
    "deviceTemperature": 10.0,
    "humidity": 52.3,
    "isSealClosed": true,
    "light": 120,
    "isLightBreached": false,
    "accelerometer": {
      "xAxis": 0,
      "yAxis": 32,
      "zAxis": 976
    }
  },
  "battery": {
    "voltage": 2989,
    "percentage": 87,
    "remainingReports": 261
  },
  "features": {
    "shock": {
      "timestamp": "2026-09-15T12:30:00Z",
      "counter": 2,
      "magnitude": 12.4,
      "duration": 40,
      "magnitudeThreshold": 10000,
      "durationThreshold": 80
    }
  }
}

Data Report Schema Fields

Field NameDescriptionTypeUnitsDetailed DescriptionNullable
messageIdReport Message IDString (UUID)—Unique identifier generated for every individual report event.No
deviceIdDevice IdentifierString—Identifier of the reporting hardware. For Sensos Smart Labels, this is the 15-digit cellular IMEI string (e.g. "351521100750611").No
accountIdAccount IdentifierString (UUID)—The operational Sensos account ID that the reporting device belongs to.No
timestampReport TimestampStringISO 8601Time the measurement was recorded on the device, represented in UTC (YYYY-MM-DDTHH:mm:ssZ).No
typeMessage TypeString—Protocol message discriminator. Fixed to "SensosLabelMessage" for device reports.No
messageCountMessage Sequence CounterInteger—Monotonically increasing counter incremented with every report transmission attempt.Yes
device.partNumberDevice Part NumberString—Commercial hardware model/part number (e.g., "SLS-10001F-00-B-00" or "SLS-2000-00-B-10").Yes
device.softwareVersionFirmware VersionString—Firmware version string running on the device micro-controller (e.g., "1.4", "1.6").Yes
location.sourcePositioning SourceString—Positioning technology used to determine coordinates: "Cellular", "GPS", "Wifi", or "BleGateway".Yes
location.latitudeLatitudeDecimal / FloatDegreesDevice geographical latitude in decimal degrees.Yes
location.longitudeLongitudeDecimal / FloatDegreesDevice geographical longitude in decimal degrees.Yes
location.accuracyPositioning AccuracyIntegerMetersEstimated horizontal accuracy radius in meters (67% confidence interval).Yes
location.countryCountry NameString—Country name resolved from cellular network MCC or reverse geolocation.Yes
trigger.mainPrimary TriggerString—Primary event condition that triggered the transmission (e.g., "TemperatureAlert", "Shock", "Movement").Yes
trigger.listEvaluated TriggersArray of Strings—List of all trigger conditions evaluated during this transmission interval.Yes
sensors.deviceTemperatureAmbient TemperatureDecimal / Float°CCalibrated temperature reading with a range of -30°C to +70°C and 0.1°C resolution.Yes
sensors.humidityRelative HumidityDecimal / Float%RHRelative humidity reading from 0% to 100% with 0.1% resolution.Yes
sensors.isSealClosedPhysical Seal StateBoolean—State of the continuous conductive seal loop: true (Intact / Sealed), false (Broken / Tampered).Yes
sensors.lightAmbient LightIntegerLuxAmbient illumination intensity in lux (calculated as raw sensor ADC × 4). Emitted when ambient light telemetry is enabled for the account.Yes
sensors.isLightBreachedLight Tamper AlarmBoolean—true if ambient light exceeds the darkness arming threshold (indicating container or parcel breach); false if armed/unarmed and intact; null if unconfigured.Yes
sensors.accelerometer.xAxisX-Axis AccelerationIntegermgInstantaneous linear acceleration along the X-axis in milli-G (mg).Yes
sensors.accelerometer.yAxisY-Axis AccelerationIntegermgInstantaneous linear acceleration along the Y-axis in milli-G (mg).Yes
sensors.accelerometer.zAxisZ-Axis AccelerationIntegermgInstantaneous linear acceleration along the Z-axis in milli-G (mg).Yes
battery.voltageCell VoltageIntegermVInstantaneous battery terminal voltage in millivolts. Primary indicator of electrical power reserve.No
battery.percentageBattery PercentageInteger%Estimated State of Charge (SoC) from 0% to 100%. Emitted when battery percentage calculation is enabled for the tenant.Yes
battery.levelBattery Level CategoryString—Categorical battery status ("Low", "Medium", "High", "Full"). Emitted when battery level reporting is active and percentage calculation is disabled.Yes
battery.remainingReportsEstimated Remaining ReportsIntegerReportsProjected count of remaining cellular report transmissions based on current battery capacity.Yes
features.shock.timestampShock Event TimeStringISO 8601UTC timestamp when peak acceleration was registered. null if no shock event occurred.Yes
features.shock.counterShock Event CounterInteger—Cumulative count of threshold-exceeding impact events registered during the reporting interval.Yes
features.shock.magnitudeShock Peak MagnitudeDecimal / FloatmgPeak resultant acceleration magnitude combining all three axes, measured in milli-G (mg).Yes
features.shock.durationShock DurationIntegermsDuration of the peak shock impact in milliseconds.Yes
features.shock.magnitudeThresholdMagnitude ThresholdIntegermgActive acceleration threshold required to record a shock event.Yes
features.shock.durationThresholdDuration ThresholdIntegermsActive minimum duration required to qualify an acceleration spike as a valid shock event.Yes

Trigger Enumerations

Main Triggers (trigger.main)

The primary condition that caused the device to initiate network registration and report delivery:

Activation               # Initial label activation when pulled from packaging
Static                   # Scheduled periodic report during stationary interval
Movement                 # Significant movement detected by accelerometer
StartMovement            # Transition from stationary state to motion
Tampering                # Physical seal loop severed or broken
Shock                    # Impact shock exceeding configured magnitude and duration
TemperatureAlert         # Temperature breached configured lower or upper threshold
TemperatureBackInRange   # Temperature returned within normal operating bounds
HumidityAlert            # Relative humidity breached configured bounds
LightArm                 # Light sensor armed after period of total darkness
LightBreach              # Ambient light detected while label was armed in carton
Takeoff                  # Flight takeoff detected via pressure and cellular disconnect
Landing                  # Flight landing detected; cellular modem re-enabled
RegainNetwork            # Re-established cellular connection after out-of-coverage period

Additional Triggers (trigger.list)

Secondary conditions flagged in the same transmission window:

Heartbeat                # Baseline periodic health ping
SavedReport              # Backlogged report stored in flash memory during out-of-coverage

Did this page help you?