DIMO gives developers API access to Subaru Forester 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 gives developers API access to vehicle-state data: diagnostics, fault codes, battery and fuel health, odometer, and maintenance signals. For the Subaru Forester, that data comes through a DIMO device, for model years 2011 and newer. Coverage for this vehicle has been tested rather than expected. DIMO adds vehicle-state depth on top of GPS tracking; it doesn't replace it.
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 |
| Distance with MIL On | obdDistanceWithMIL | km |
| DTC Count | obdStatusDTCCount | — |
| Engine runtime | obdRunTime | seconds |
| 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 (2016 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 |
| Commanded EGR | obdCommandedEGR | % |
| 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 |
| Powertrain Type | powertrainType | — |
| Short Term Fuel Trim (Bank 1) | obdShortTermFuelTrim1 | % |
| Supported Fuel Types | powertrainFuelSystemSupportedFuelTypes | — |
| Throttle Position | powertrainCombustionEngineTPS | % |
| Warmups Since DTC Clear | obdWarmupsSinceDTCClear | — |
| Altitude Level | currentLocationAltitude | m |
| Coordinates | currentLocationCoordinates | — |
No factory connectivity?
Subaru Forester 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
Build it
Query the latest Subaru Forester 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 Subaru Forester 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 Subaru Forester?
Yes, with a DIMO device. The record lists fuel percentage and fuel level in liters, and you read them through the GraphQL Telemetry API using a Vehicle JWT. The segments resource can also detect refuel events where fuel level rises significantly.
How do I track a Subaru Forester with no connected services?
Use a DIMO device, which is the connection type listed for the Forester. Once the owner shares the vehicle with your Developer License, exchange your Developer JWT for a Vehicle JWT through the Token Exchange API and query the Telemetry API.
How do I detect idling on a Subaru Forester?
Idling is listed as an event for the Forester's DIMO device coverage. Query the Telemetry API segments resource with the idling detection mechanism, which finds contiguous periods where engine RPM stays in the idle range and requires a DIMO device.
How do I verify Subaru Forester mileage?
The Forester's DIMO device coverage lists the odometer signal. Call the Attestation API odometer-statement endpoint with a Vehicle JWT to generate a verifiable credential, then retrieve it through the Telemetry API.
Which Subaru Forester model years work with DIMO?
DIMO devices have been seen working on Subaru Forester model years 2011 and newer. For older vehicles, contact DIMO for additional support.
Do I need hardware to get Subaru Forester data?
Yes. DIMO lists no OEM cloud connection for the Subaru Forester, so data comes from a DIMO device.
Source: DIMO vehicle compatibility records. Coverage tested on a connected vehicle. Last verified .