← All docs

API Reference

Query your devices and telemetry data programmatically with the read-only REST API.

Overview

The Dasberry Cloud REST API provides read-only access to your devices and telemetry data. Use it to build custom integrations, pull data into external systems, or power your own dashboards.

Base URL

https://api.dasberry.ai/public/api/v1/

Available Endpoints

GET
/devices

List all devices

GET
/devices/{id}

Get a single device

GET
/devices/{id}/data-points

List available data keys for a device

GET
/telemetry/latest

Get the most recent value for a data key

GET
/telemetry

Query historical telemetry with time range, aggregation, and pagination

Authentication

All API requests require an API key passed in the X-API-Key header. Create API keys in Settings > API in the dashboard.

bash
curl -H "X-API-Key: iot_your_api_key_here" \
  https://api.dasberry.ai/public/api/v1/devices

Key details

  • Keys are prefixed with iot_
  • Each team can have up to 5 API keys
  • The full key is shown only once at creation. Store it securely.
  • Keys provide read-only access scoped to your team

Devices

List devices

Returns all devices belonging to your team.

bash
curl -H "X-API-Key: iot_your_key" \
  https://api.dasberry.ai/public/api/v1/devices
json
{
  "data": [
    {
      "id": "91c2f609-5df8-4021-91a8-c6a1905b28a3",
      "name": "Chiller Unit 4",
      "description": "Building A rooftop",
      "is_online": true,
      "last_seen_at": "2026-05-05T14:32:10Z"
    }
  ]
}

Get a single device

bash
curl -H "X-API-Key: iot_your_key" \
  https://api.dasberry.ai/public/api/v1/devices/91c2f609-...

List data keys

Returns all data keys a device has reported.

bash
curl -H "X-API-Key: iot_your_key" \
  https://api.dasberry.ai/public/api/v1/devices/91c2f609-.../data-points
json
{
  "data": ["supply_temp", "return_temp", "discharge_pressure", "run_status"]
}

Telemetry

Get latest value

Returns the most recent data point for a given device and key.

bash
curl -H "X-API-Key: iot_your_key" \
  "https://api.dasberry.ai/public/api/v1/telemetry/latest?device_id=91c2f609-...&key=supply_temp"
json
{
  "device_id": "91c2f609-5df8-4021-91a8-c6a1905b28a3",
  "key": "supply_temp",
  "time": "2026-05-05T14:32:10Z",
  "value": 44.2
}

Query historical data

Retrieve time-series data with optional aggregation and pagination.

Query parameters

device_idDevice UUID (required)keyData key name (required)fromStart time, RFC3339 (default: 1 hour ago)toEnd time, RFC3339 (default: now)bucketTime bucket: raw, 1m, 5m, 15m, 1h, 12h, 1d, 1w, 1MaggAggregation: avg, min, max, last, sum, countlimitMax rows returned (default: 1000, max: 10000)offsetPagination offset (default: 0)
bash
curl -H "X-API-Key: iot_your_key" \
  "https://api.dasberry.ai/public/api/v1/telemetry?device_id=91c2f609-...&key=supply_temp&from=2026-05-04T00:00:00Z&to=2026-05-05T00:00:00Z&bucket=1h&agg=avg"
json
{
  "data": [
    { "time": "2026-05-04T00:00:00Z", "value": 43.1 },
    { "time": "2026-05-04T01:00:00Z", "value": 44.8 },
    { "time": "2026-05-04T02:00:00Z", "value": 42.3 }
  ],
  "pagination": {
    "limit": 1000,
    "offset": 0,
    "has_more": false
  }
}

Example: Python

python
import requests

API_KEY = "iot_your_api_key_here"
BASE    = "https://api.dasberry.ai/public/api/v1"

headers = {"X-API-Key": API_KEY}

# Get latest supply temperature
resp = requests.get(f"{BASE}/telemetry/latest", headers=headers, params={
    "device_id": "91c2f609-5df8-4021-91a8-c6a1905b28a3",
    "key": "supply_temp",
})
print(resp.json())

# Query hourly averages for the last 24 hours
resp = requests.get(f"{BASE}/telemetry", headers=headers, params={
    "device_id": "91c2f609-5df8-4021-91a8-c6a1905b28a3",
    "key": "supply_temp",
    "bucket": "1h",
    "agg": "avg",
})
for point in resp.json()["data"]:
    print(f"{point['time']}: {point['value']:.1f}")

Rate Limits

The API enforces rate limiting per API key to ensure fair usage.

Rate60 requests per minuteBurstUp to 60 requests at onceOn limitHTTP 429 with Retry-After: 1 header

There are no rate limits on MQTT data ingestion. Devices can publish as frequently as needed.