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

deviceIdrequiredstringUnique device identifier with dev_ prefix
timestamprequiredstring (ISO 8601)UTC time the readings were captured
locationoptionalobjectGPS coordinates with accuracy and altitude
readingsrequiredobjectSensor readings, each with value and unit
battery.levelrequirednumberBattery percentage 0–100
connectivity.signalStrengthoptionalnumberRSSI signal strength in dBm (more negative = weaker)
alertsoptionalarrayActive alert objects if any thresholds were exceeded
statusrequiredstringDevice status: online, offline, or maintenance

Variants

Alert TriggeredDevice reporting a high-temperature alert.
{
  "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

One click loads this exact example into the tool — no copy-paste needed. Format it, validate it, explore the tree, or generate TypeScript types instantly.

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