Read bucketed telemetry history
const url = 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/telemetry/history?parameter_uuid=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0&from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/telemetry/history?parameter_uuid=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0&from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z' \ --header 'Authorization: Bearer <token>'Requires: telemetry:read
Rate limits: 240 a minute per address, 60 a minute per application
Readings of one parameter selected and bucketed by receipt time, inclusive bounds, at most 31 days and max_points 10 to 1000 (default 500). Bounds are clipped to the organization’s retention and reported back. 422 for an invalid window, or (under errors.runtime) when the runtime rejects the range, for example more than 2000 resulting points; 503 when the runtime is unavailable; 504 when the range takes longer than the runtime’s limit.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The organization UUID. A value that does not match returns 404.
A value that does not match returns 404.
Query Parameters
Section titled “Query Parameters”The parameter to read.
Start of the window: RFC 3339 with seconds and Z or a ±hh:mm offset.
End of the window, after from and at most 31 days later: RFC 3339 with seconds and Z or a ±hh:mm offset.
Responses
Section titled “Responses”telemetry-history.v1.
telemetry-history.v1: readings bucketed by receipt time, one series per configuration, data type and unit. Empty means no observations, not zero.
object
The window actually read, clipped to retention; null when the clipped window is empty.
object
object
Start of the bucket, by receipt time.
A reading’s value; its type follows the parameter’s data_type.
Example
{ "schema_version": "telemetry-history.v1", "device_uuid": "3f8a1c2e-5b6d-4e7f-8a9b-0c1d2e3f4a5b", "parameter_uuid": "6d2e3f4a-5b6c-4d7e-8f9a-0b1c2d3e4f5a", "retention_days": 30, "from": "2026-10-11T00:00:00Z", "to": "2026-10-12T00:00:00Z", "data": [ { "configuration_uuid": "8e7d6c5b-4a39-4281-9f0e-1d2c3b4a5968", "unit": "%", "data_type": "number", "points": [ { "at": "2026-10-11T00:00:00Z", "value": 91.2, "min": 90.8, "max": 91.5, "count": 12 } ] } ]}Headers
Section titled “Headers”Responses to authenticated integration requests are never cached. The header also carries private.
Example
no-store, privateNo valid credentials: no session (first-party API), or a missing, invalid, expired or revoked application token (integration API).
The body of most error responses.
object
Example generated
{ "message": "example"}The caller is not allowed: not a member of the organization, missing a tenant or platform permission, or (integration API) an ability not granted on both the application and the token.
The body of most error responses.
object
Example generated
{ "message": "example"}Not found: an unknown organization or resource, a resource in another organization or not granted to the application, or a malformed identifier (the route does not match).
The body of most error responses.
object
Example generated
{ "message": "example"}The input failed validation.
422 for input that failed validation.
object
The first error, followed by a count of the others.
Messages per field, keyed by the field’s dotted path. A rejection by the device runtime appears under runtime.
object
Example generated
{ "message": "example", "errors": { "runtime": [ "example" ] }}A rate limit was reached; see x-rate-limits on the operation.
The body of most error responses.
object
Example generated
{ "message": "example"}Headers
Section titled “Headers”Seconds to wait before retrying.
The device runtime is not configured, unavailable, or could not complete the request.
The body of most error responses.
object
Example generated
{ "message": "example"}A range read took longer than the runtime’s limit. Choose a shorter range.
The body of most error responses.
object
Example generated
{ "message": "example"}