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.zone
Endpoints
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.5h
or 2h45m
.Valid Interval Units
ms
milliseconds
s
seconds
m
minutes
h
hours
FloatAggregationType
Aggregation type for floats.AVG
Returns the **average** value from the dataset.
MAX
Returns the **maximum** value from the dataset.
MED
Returns the **median** value from the dataset.
MIN
Returns the **minimum** value from the dataset.
RAND
Returns a **randomly-selected** value from the dataset.
StringAggregationType
Aggregation type for strings.RAND
Returns a **randomly-selected** value from the dataset.
TOP
Returns the **most frequently occurring value** in the dataset.
UNIQUE
Return **a list of unique values** in the dataset.
StringValueFilter
Filter type for vehicle events.eq
String - Exact string match.
neq
String - 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
autopi
Signals from AutoPi aftermarket device.
macaron
Signals from Macaron aftermarket device.
ruptela
Signals from R1 LTE aftermarket device.
tesla
Signals 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.Boolean
Represents a boolean value that can be either true or false.
Float
A signed double-precision floating-point value.
ID
A unique identifier, often used to refetch an object or as a key for caching.
Int
A signed 32-bit integer.
String
A UTF-8 character sequence.
Time
A 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
}
}