Introduction
Access private data from the DIMO-connected vehicles.
Overview
The Telemetry API is the entrypoint for getting realtime and historical vehicle data for DIMO-connected vehicles. The DIMO Telemetry API is written in GraphQL, and there is only a single endpoint,/query, which is used for executing queries.Base URL
https://telemetry-api.dimo.zoneEndpoints
Developer Notes
To access the Vehicle data under the Telemetry API, a token exchange transaction is required to obtain a Vehicle JWT with permissions to access a given vehicle. Please review our section on Authentication and the Token Exchange API for more information.
Schema & Types
The Telemetry API displays data in two aggregation types, FloatAggregation & StringAggregation. To specify for each aggregation type, you will need to provide an interval.Interval String
Interval is the time span that is used for aggregating the data with. A duration string is a sequence of decimal numbers, each with optional fraction and a unit suffix, such as300ms, -1.5hor 2h45m.Valid Interval Units
msmilliseconds
sseconds
mminutes
hhours
FloatAggregationType
Aggregation type for floats.AVGReturns the **average** value from the dataset.
MAXReturns the **maximum** value from the dataset.
MEDReturns the **median** value from the dataset.
MINReturns the **minimum** value from the dataset.
RANDReturns a **randomly-selected** value from the dataset.
StringAggregationType
Aggregation type for strings.RANDReturns a **randomly-selected** value from the dataset.
TOPReturns the **most frequently occurring value** in the dataset.
UNIQUEReturn **a list of unique values** in the dataset.
StringValueFilter
Filter type for vehicle events.eqString - Exact string match.
neqString - Not equal.
notin[String!] - Not in the provided array of strings.
in[String!] - In the provided array of strings.
SignalFilter
The SignalFilter filters signals by source type, valid source types are described below:Valid Source Input
autopiSignals from AutoPi aftermarket device.
macaronSignals from Macaron aftermarket device.
ruptelaSignals from R1 LTE aftermarket device.
teslaSignals from Tesla integration.
# Sample Telemetry Query
query {
signals(
tokenId: 12345,
interval: "24h",
from: "2025-09-01T17:00:00Z",
to: "2025-09-30T17:00:00Z"
) {
currentLocationLatitude(agg: AVG)
currentLocationLongitude(agg: AVG)
speed(agg: MAX)
powertrainFuelSystemRelativeLevel(agg: AVG)
powertrainRange(agg: MIN)
timestamp
}
}
Scalars
Scalars are the value types that every field in a GraphQL document eventually resolves to. It can be viewed as the primitive data type that stores a single value. There are 5 built-in scalars:int, float, string, Boolean, and id - we have also defined custom scalars to help define the data we return.BooleanRepresents a boolean value that can be either true or false.
FloatA signed double-precision floating-point value.
IDA unique identifier, often used to refetch an object or as a key for caching.
IntA signed 32-bit integer.
StringA UTF-8 character sequence.
TimeA point in time, encoded per RFC-3999. This is in second precision and in UTC, an example would be 2023-12-04T18:32:12Z.
# Sample Telemetry Query
query {
signals(
tokenId: 12345,
interval: "24h",
from: "2025-09-01T17:00:00Z",
to: "2025-09-30T17:00:00Z"
) {
currentLocationLatitude(agg: AVG)
currentLocationLongitude(agg: AVG)
speed(agg: MAX)
powertrainFuelSystemRelativeLevel(agg: AVG)
powertrainRange(agg: MIN)
timestamp
}
}