REST API
Beacon Tower exposes REST endpoints for querying historical timeseries data, retrieving latest values, and accessing asset state. This is the standard approach for batch analysis, reporting, and applications that don't need real-time push.
Authentication
All API requests require a Bearer token passed via the Authorization header:
curl -H "Authorization: Bearer $TOKEN" https://api.beacontower.ai/...
See Authentication for details on obtaining tokens.
Historical Timeseries
Query historical data with aggregation support using POST /timeseries/get:
curl -X POST https://api.beacontower.ai/timeseries/get \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"assetId": "pump-001",
"timeseriesName": ["pressure", "flow_rate"],
"searchSpanFrom": "2026-02-24T00:00:00Z",
"searchSpanTo": "2026-02-24T23:59:59Z",
"aggregationType": "avg",
"aggregationInterval": "PT15M"
}'
| Field | Type | Required | Description |
|---|---|---|---|
assetId | string | Yes | Asset to query |
timeseriesName | string[] | Yes | Signal names to retrieve |
searchSpanFrom | ISO 8601 | Yes | Start of time range |
searchSpanTo | ISO 8601 | Yes | End of time range |
aggregationType | string | No | avg, min, max, first, last, sum, median |
aggregationInterval | ISO 8601 duration | No | Bucket size: PT1M, PT5M, PT1H, etc. |
whereClause | string | No | SQL-like filter on value, type, or other fields |
Aggregation Intervals
Uses ISO 8601 duration format:
| Interval | Meaning |
|---|---|
PT1M | 1 minute |
PT5M | 5 minutes |
PT15M | 15 minutes |
PT1H | 1 hour |
PT12H | 12 hours |
P1D | 1 day |
Latest Values
Retrieve the most recent value for each signal using POST /timeseries/get/last:
curl -X POST https://api.beacontower.ai/timeseries/get/last \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"assetId": "pump-001",
"timeseries": [
{ "name": "pressure", "type": "telemetry" },
{ "name": "temperature", "type": "telemetry" }
]
}
]
}'
This endpoint is optimized for fetching current asset state without scanning historical data.
Endpoint Summary
| Endpoint | Method | Purpose |
|---|---|---|
/timeseries/get | POST | Query historical timeseries with aggregation |
/timeseries/get/last | POST | Get latest values for specified signals |
/assets | GET | List all assets |
/assets/{assetId} | GET | Get asset details |
/assets/{assetId}/properties/reported | GET | Get current reported properties |
See the full API Specification for all available endpoints.
Next Steps
- MQTT Publishing — Subscribe to asset data over MQTT for real-time integration
- SignalR Streaming — Real-time push notifications over WebSocket
- Telemetry and Timeseries — Detailed timeseries query reference with advanced filtering
- API Specification — Full OpenAPI documentation