Skip to main content

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"
}'
FieldTypeRequiredDescription
assetIdstringYesAsset to query
timeseriesNamestring[]YesSignal names to retrieve
searchSpanFromISO 8601YesStart of time range
searchSpanToISO 8601YesEnd of time range
aggregationTypestringNoavg, min, max, first, last, sum, median
aggregationIntervalISO 8601 durationNoBucket size: PT1M, PT5M, PT1H, etc.
whereClausestringNoSQL-like filter on value, type, or other fields

Aggregation Intervals

Uses ISO 8601 duration format:

IntervalMeaning
PT1M1 minute
PT5M5 minutes
PT15M15 minutes
PT1H1 hour
PT12H12 hours
P1D1 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

EndpointMethodPurpose
/timeseries/getPOSTQuery historical timeseries with aggregation
/timeseries/get/lastPOSTGet latest values for specified signals
/assetsGETList all assets
/assets/{assetId}GETGet asset details
/assets/{assetId}/properties/reportedGETGet current reported properties

See the full API Specification for all available endpoints.

Next Steps