Engine Oil Life API

Never miss an oil change

Check the status of a vehicle’s engine oil life using Smartcar’s APIs.

Engine oil life

Retrieve the remaining life span of a vehicle’s engine oil.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicleIds("<access-token>");
// Construct a new vehicle instance using the first vehicle's id
const vehicle = new smartcar.Vehicle(vehicles[0], "<access-token>");
// Fetch the vehicle's engine oil life
const oil = await vehicle.oil();
console.log(oil);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicle_ids("<access-token>")
# Construct a new vehicle instance using the first vehicle's id
vehicle = smartcar.Vehicle(response["vehicles"][0], "<access-token>")
# Fetch the vehicle's engine oil life
oil = vehicle.oil()
print(oil)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
SmartcarResponse<VehicleIds> response = AuthClient.getVehicleIds("<access-token>");
String[] vehicleIds = response.getData().getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's engine oil life
SmartcarResponse<VehicleOil> oil = vehicle.oil();
System.out.println(oil.getData().getLifeRemaining());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
import (
  "context"
  smartcar "github.com/smartcar/go-sdk"
)
// Create a smartcar client
var smartcarClient = smartcar.NewClient()
// Get all vehicles associated with this access token
var vehicleIDs, resErr = smartcarClient.GetVehicleIDs(
  context.TODO(),
  &smartcar.VehicleIDsParams{Access: "<access-token>"},
);
// Construct a new vehicle instance using the first vehicle's id
var vehicle = smartcarClient.NewVehicle(&smartcar.VehicleParams{
  ID: vehicleIDs.VehicleIDs[0],
  AccessToken: "<access-token>"},
);
// Fetch the vehicle's engine oil life
var oil, resErr = vehicle.GetOil(context.TODO());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
require 'smartcar'
# Get all vehicles associated with this access token
vehicle_ids =  Smartcar::Vehicle.all_vehicle_ids(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
  token: "<access-token>",
  id: vehicle_ids.first
)
# Fetch the vehicle's engine oil life
engine_oil = vehicle.engine_oil()
puts engine_oil.to_hash.slice(*%I(lifeRemaining))
// Example response from Smartcar
{
  "lifeRemaining": 0.35
}
See the API docs

Product features

Compatible with 20 car brands

Compatible with 20 car brands

Friendly user consent flow

Friendly user consent flow

Works on 2015 and newer vehicles

Works on 2015 and newer vehicles

Trusted & secure

Trusted & secure

Access to real telematics data

Access to real telematics data

SDKs for Go, Java, Node.js, Python, and Ruby

SDKs for Go, Java, Node.js, Python, and Ruby

Learn more about Smartcar’s APIs

Related industries

Fleet management

Offer automatic engine oil life checks as part of your fleet management software and predictive maintenance products.

Learn more about fleet management

On-demand services

Invite customers to schedule a maintenance visit when their vehicle’s engine oil reaches the end of its recommended life span.

Learn more about on-demand services

What we’re building

Latency and frequency of data availability may vary between makes and models.