IoT & Sensors

IoT Device Telemetry JSON Example

A JSON example for IoT sensor telemetry data — includes device ID, sensor readings, battery level, GPS location, and alert flags. Copy-ready for IoT platforms and time-series data pipelines.

{
  "deviceId": "dev_3xKQ7mNpWr",
  "deviceType": "environmental-sensor",
  "firmwareVersion": "2.4.1",
  "timestamp": "2025-06-01T09:15:32Z",
  "location": {
    "latitude": 21.1702,
    "longitude": 72.8311,
    "altitude": 14.2,
    "accuracy": 3.5,
    "source": "gps"
  },
  "readings": {
    "temperature": {
      "value": 34.7,
      "unit": "celsius"
    },
    "humidity": {
      "value": 62.3,
      "unit": "percent"
    },
    "pressure": {
      "value": 1013.25,
      "unit": "hPa"
    },
    "co2": {
      "value": 420,
      "unit": "ppm"
    },
    "pm25": {
      "value": 18.4,
      "unit": "μg/m³"
    }
  },
  "battery": {
    "level": 78,
    "voltage": 3.82,
    "isCharging": false
  },
  "connectivity": {
    "network": "4G",
    "signalStrength": -72,
    "packetLoss": 0.1
  },
  "alerts": [],
  "status": "online"
}

Field Reference

deviceIdstringrequiredUnique device identifier with dev_ prefix
timestampstring (ISO 8601)requiredUTC time the readings were captured
locationobjectoptionalGPS coordinates with accuracy and altitude
readingsobjectrequiredSensor readings, each with value and unit
battery.levelnumberrequiredBattery percentage 0–100
connectivity.signalStrengthnumberoptionalRSSI signal strength in dBm (more negative = weaker)
alertsarrayoptionalActive alert objects if any thresholds were exceeded
statusstringrequiredDevice status: online, offline, or maintenance

Variants

Alert TriggeredDevice reporting a high-temperature alert.
Alert Triggered
{
  "deviceId": "dev_3xKQ7mNpWr",
  "deviceType": "environmental-sensor",
  "timestamp": "2025-06-01T12:44:00Z",
  "readings": {
    "temperature": {
      "value": 48.2,
      "unit": "celsius"
    },
    "humidity": {
      "value": 38.1,
      "unit": "percent"
    }
  },
  "battery": {
    "level": 62,
    "voltage": 3.71,
    "isCharging": false
  },
  "alerts": [
    {
      "id": "alert_001",
      "type": "THRESHOLD_EXCEEDED",
      "field": "temperature",
      "threshold": 45,
      "actual": 48.2,
      "severity": "high",
      "triggeredAt": "2025-06-01T12:44:00Z"
    }
  ],
  "status": "alert"
}
MinimalMinimal heartbeat ping with only essential fields.
{
  "deviceId": "dev_3xKQ7mNpWr",
  "timestamp": "2025-06-01T09:15:32Z",
  "battery": {
    "level": 78,
    "isCharging": false
  },
  "status": "online"
}

Common Use Cases

  • Ingesting sensor data into InfluxDB, TimescaleDB, or AWS Timestream
  • Publishing telemetry to MQTT broker (AWS IoT Core, HiveMQ)
  • Triggering serverless functions on threshold breaches via AWS Lambda or Azure Functions
iotsensortelemetrydevicetime-series

Validate or format this JSON

Paste the example above into JSONKit's tools to validate, minify, or explore the structure interactively.

Frequently Asked Questions

Always use numbers for machine-readable values like temperature and humidity. Strings add parsing overhead in every consumer. Include the unit as a separate string field so the numeric value stays clean.

For environmental sensors, 1–5 minute intervals are typical. For motion sensors or alerts, send immediately on event. High-frequency data (>1 reading/sec) should be batched into arrays per payload to reduce network overhead.

ISO 8601 UTC strings are the most interoperable. If bandwidth is critical, use Unix epoch milliseconds (integer). Never use local time strings — timezone ambiguity causes incorrect time-series graphs.

Related JSON Examples