DIMO gives developers API access to BMW X3 vehicle data. Model years 2011 and newer connect with a DIMO device (DIMO LTE R1 or AutoPi). Headline signals include odometer, fuel percentage and vehicle speed.
DIMO provides a BMW X3 vehicle data API for 2011 and newer model years, connected through a DIMO device, and this coverage has been tested. DIMO gives developers API access to vehicle-state data: diagnostics, fault codes, battery and fuel health, odometer, and maintenance signals. Developers read that data through the Telemetry API using a Vehicle JWT. Vehicle owners consent to and control sharing, so builders get data with clear provenance.
Signals by connection type
DIMO device — DIMO LTE R1 (2011 and newer)
| Signal | DIMO name | Unit |
|---|---|---|
| Odometer | powertrainTransmissionTravelledDistance | km |
| Fuel Percentage | powertrainFuelSystemRelativeLevel | % |
| Vehicle Speed | speed | km/h |
| Vehicle Ignition Status | isIgnitionOn | — |
| Engine RPM | powertrainCombustionEngineSpeed | rpm |
| Coolant Temperature | powertrainCombustionEngineECT | °C |
| Air Temperature | exteriorAirTemperature | °C |
| Back Left Wheel | chassisAxleRow2WheelLeftTirePressure | kPa |
| Back Right Wheel | chassisAxleRow2WheelRightTirePressure | kPa |
| Battery Range | powertrainTractionBatteryRange | km |
| Diagnostic Trouble Codes | obdDTCList | — |
| Distance with MIL On | obdDistanceWithMIL | km |
| DTC Count | obdStatusDTCCount | — |
| Engine runtime | obdRunTime | seconds |
| Front Left Wheel | chassisAxleRow1WheelLeftTirePressure | kPa |
| Front Right Wheel | chassisAxleRow1WheelRightTirePressure | kPa |
| Fuel Level | powertrainFuelSystemAbsoluteLevel | liters |
| Fuel Type | obdFuelTypeName | — |
| Low Voltage Battery | lowVoltageBatteryCurrentVoltage | volts |
| OBD Device Plugged In | obdIsPluggedIn | — |
| Powertrain Type | powertrainType | — |
| Throttle Position | powertrainCombustionEngineTPS | % |
| Altitude Level | currentLocationAltitude | m |
| Coordinates | currentLocationCoordinates | — |
| Heading | currentLocationHeading | degrees |
DIMO device — AutoPi (2017 and newer)
| Signal | DIMO name | Unit |
|---|---|---|
| Odometer | powertrainTransmissionTravelledDistance | km |
| Fuel Percentage | powertrainFuelSystemRelativeLevel | % |
| Vehicle Speed | speed | km/h |
| Engine RPM | powertrainCombustionEngineSpeed | rpm |
| Coolant Temperature | powertrainCombustionEngineECT | °C |
| Air Temperature | exteriorAirTemperature | °C |
| Barometric Pressure | obdBarometricPressure | kPa |
| Distance Since DTC Clear | obdDistanceSinceDTCClear | km |
| Distance with MIL On | obdDistanceWithMIL | km |
| Engine Air Intake | powertrainCombustionEngineMAF | grams/second |
| Engine Load | obdEngineLoad | % |
| Engine runtime | obdRunTime | seconds |
| Intake temperature | obdIntakeTemp | °C |
| Long Term Fuel Trim (Bank 1) | obdLongTermFuelTrim1 | % |
| Low Voltage Battery | lowVoltageBatteryCurrentVoltage | volts |
| Manifold Absolute Pressure | obdMAP | kPa |
| Short Term Fuel Trim (Bank 1) | obdShortTermFuelTrim1 | % |
| Throttle Position | powertrainCombustionEngineTPS | % |
| Warmups Since DTC Clear | obdWarmupsSinceDTCClear | — |
| Altitude Level | currentLocationAltitude | m |
| Coordinates | currentLocationCoordinates | — |
No factory connectivity?
BMW X3 model years 2011 and newer have no OEM cloud connection listed. For these years, a DIMO device (DIMO LTE R1 or AutoPi) plugs into the OBD-II port and streams vehicle signals once the owner connects it and consents to sharing.
See the developer quickstart for how owners connect vehicles and grant access.
Events available
- Idling
- Refuel
- Harsh braking
- New diagnostic trouble code
Build it
Query the latest BMW X3 signals with the DIMO TypeScript SDK. The vehicle owner must first share access with your app through DIMO Connect.
import { DIMO } from '@dimo-network/data-sdk';
const dimo = new DIMO('Production');const tokenId = Number(process.env.DIMO_TOKEN_ID); // from DIMO Connect
const developerJwt = await dimo.auth.getDeveloperJwt({ client_id: process.env.DIMO_CLIENT_ID, domain: process.env.DIMO_REDIRECT_URI, private_key: process.env.DIMO_API_KEY,});const vehicleJwt = await dimo.tokenexchange.getVehicleJwt({ ...developerJwt, tokenId,});
// Latest BMW X3 signalsconst data = await dimo.telemetry.query({ ...vehicleJwt, query: ` query { signalsLatest(tokenId: ${tokenId}) { powertrainTransmissionTravelledDistance { value timestamp } powertrainFuelSystemRelativeLevel { value timestamp } speed { value timestamp } } }`,});console.log(JSON.stringify(data, null, 2));Full walkthrough: Developer quickstart.
FAQ
Can I read fuel level remotely on a BMW X3?
Yes, with a DIMO device. It reports fuel percentage, and the DIMO LTE R1 also lists fuel level in liters. Query the Telemetry API with a Vehicle JWT, or use refuel segments to find where the fuel level rises significantly.
How do I track a BMW X3 with no connected services?
Install a DIMO device, then have the owner share the vehicle with your Developer License. Exchange your Developer JWT for a Vehicle JWT through the Token Exchange API and query the vehicle in the Telemetry API.
Can I get check-engine light alerts for a BMW X3?
Yes, the DIMO LTE R1 device lists the dtc event, along with DTC list and DTC count signals. To get pushed alerts instead of polling, configure a webhook with the Vehicle Triggers API and subscribe the vehicle to it.
How do I detect idling on a BMW X3?
Both DIMO devices listed for this vehicle support the idling event. Query the Telemetry API segments resource with the idling detection mechanism, which finds periods where engine RPM stays in the idle range (the maxIdleRpm default is 1000).
How do I verify BMW X3 mileage?
A DIMO device reports the odometer signal in km. To get verifiable proof, request an odometer statement through the Attestation API, then retrieve the resulting credential from the Telemetry API.
Which BMW X3 model years work with DIMO?
DIMO devices have been seen working on BMW X3 model years 2011 and newer. For older vehicles, contact DIMO for additional support.
Do I need hardware to get BMW X3 data?
Yes. DIMO lists no OEM cloud connection for the BMW X3, so data comes from a DIMO device.
Source: DIMO vehicle compatibility records. Coverage tested on a connected vehicle. Last verified .