Easiest way to integrate apps with cars
Smartcar’s vehicle API enables you to verify mileage, manage EV charging, issue digital car keys, track fleets, and much more.
![All logos and brand names are property of their respective owners and the use does not imply endorsement of or affiliation with Smartcar.](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/66db5f3d7bddc39a0e373a84_landing_compatibility.avif)
![Uber logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f41c82fb4cdea7c79_uber.webp)
![Turo logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653a59b93b0859b92a088482_turo.webp)
![Recurrent logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5fac8570ba5eb21588_recurrent.webp)
![Rolling Energy Resources logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f9e40d833a608a8e7_rolling_energy_resources.webp)
![The Floow logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5e7d5690a9bc390a8c_the_floow.webp)
![Oati logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/65d79ac97df54a574a00220c_oati.webp)
![Optiwatt logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f77eb726198cbb884_optiwatt.webp)
![Emovis logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f0c3591cb5d3a74a3_emovis.webp)
![Amp Energy logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5e70f3a68e7e6900eb_amp.webp)
![Cafu logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f635ca589a6d1d102_cafu.webp)
![BluWave-ai logo](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653bdd5f118e7725c93f9fc4_bluwave_ai.webp)
Powering mobility worldwide
Smartcar enables mobility businesses to integrate their apps and services with connected cars. Easily retrieve vehicle data and trigger actions with our simple and secure car API. Track a vehicle’s location, verify mileage, charge an EV, share a virtual key, and more.
Onboard users in seconds
With our Smartcar Connect flow, your customers can instantly and effortlessly link their cars to your app. All it takes is four clicks directly from your mobile application or web portal.
- Works with your web or mobile app
- Simple and elegant user interface
- Supports OAuth2 authorization
- Available in multiple languages
![Turo mobile app prompting the user to connect their car, allowing approved guests to unlock the vehicle from the Turo app](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/65393585c4c4e43f4acae8e6_1_turo.webp)
![Pop-up window in the Turo app communicating that Turo uses Smartcar to connect to the user’s car](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/6539378dc576a2e4d898e0d9_2_turo.webp)
![Pop-up window in the Turo app prompting the user to select their car brand](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653937b29ed4d696440c2331_3_turo.webp)
![Pop-up window in the Turo app prompting the user to sign in with their Tesla username and password](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653937d5a4940a23bd80d4d2_4_turo_disclaimer.webp)
![Pop-up window in the Turo app requesting the odometer, location, and lock/unlock permissions to the user’s 2020 Tesla Model S](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/653937fef4d2509aab4e2683_5_turo.webp)
![Turo app telling the user that guests can now unlock their 2020 Tesla Model S from the Turo app](https://cdn.prod.website-files.com/651f1f10260bafeeb322049f/65393818aebc48f7dd118638_6_turo.webp)
A stellar developer experience
Our friendly documentation and SDKs allow you to quickly integrate our car API with every tech stack.
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 location
const location = await vehicle.location();
// Example http response from Smartcar
{
"latitude": 37.4292,
"longitude": 122.1381
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 location
location = vehicle.location()
// Example http response from Smartcar
{
"latitude": 37.4292,
"longitude": 122.1381
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's location
VehicleLocation location = vehicle.location();
// Example http response from Smartcar
{
"latitude": 37.4292,
"longitude": 122.1381
}
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 location
var fuel, resErr = vehicle.GetLocation(context.TODO());
// Example http response from Smartcar
{
"latitude": 37.4292,
"longitude": 122.1381
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's location
location = vehicle.location()
// Example http response from Smartcar
{
"latitude": 37.4292,
"longitude": 122.1381
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 odometer
const odometer = await vehicle.odometer();
// Example http response from Smartcar
{
"distance": 104.32
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 odometer
odometer = vehicle.odometer()
// Example http response from Smartcar
{
"distance": 104.32
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's odometer
VehicleOdometer odometer = vehicle.odometer();
// Example http response from Smartcar
{
"distance": 104.32
}
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 odometer
var odometer, resErr = vehicle.GetOdometer(context.TODO());
// Example http response from Smartcar
{
"distance": 104.32
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's odometer
odometer = vehicle.odometer()
// Example http response from Smartcar
{
"distance": 104.32
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<access-token>");
// Construct a new vehicle instance using the first vehicle's id
const vehicle = new smartcar.Vehicle(vehicles[0], "<access-token>");
// Lock the vehicle
await vehicle.lock();
// Unlock the vehicle
await vehicle.unlock();
// Example http response from Smartcar
{
"status": "success"
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<access-token>")
# Construct a new vehicle instance using the first vehicle's id
vehicle = smartcar.Vehicle(response.vehicles[0], "<access-token>")
# Lock the vehicle
vehicle.lock()
# Unlock the vehicle
vehicle.unlock()
// Example http response from Smartcar
{
"status": "success"
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Lock the vehicle
vehicle.lock();
// Unlock the vehicle
vehicle.unlock();
// Example http response from Smartcar
{
"status": "success"
}
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>"},
);
// Lock the vehicle
var lock, resErr = vehicle.Lock(context.TODO());
// Unlock the vehicle
var unlock, resErr = vehicle.Unlock(context.TODO());
// Example http response from Smartcar
{
"status": "success"
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Lock the vehicle
vehicle.lock!
# Unlock the vehicle
vehicle.unlock!
// Example http response from Smartcar
{
"status": "success"
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 battery level
const battery = await vehicle.battery();
// Fetch the vehicle's battery capacity
const batteryCapacity = await vehicle.batteryCapacity();
// Example http response from Smartcar (battery level)
{
"percentRemaining": 0.3,
"range": 40.5,
}
// Example http response from Smartcar (battery capacity)
{
"capacity": 28.7,
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 battery level
battery = vehicle.battery()
# Fetch the vehicle's battery capacity
battery_capacity = vehicle.battery_capacity()
// Example http response from Smartcar (battery level)
{
"percentRemaining": 0.3,
"range": 40.5,
}
// Example http response from Smartcar (battery capacity)
{
"capacity": 28.7,
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's battery level
VehicleBattery battery = vehicle.battery();
// Fetch the vehicle's battery capacity
VehicleBatteryCapacity batteryCapacity = vehicle.batteryCapacity();
// Example http response from Smartcar (battery level)
{
"percentRemaining": 0.3,
"range": 40.5,
}
// Example http response from Smartcar (battery capacity)
{
"capacity": 28.7,
}
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 battery level
var battery, resErr = vehicle.GetBattery(context.TODO());
// Fetch the vehicle's battery capacity
var batteryCapacity, resErr = vehicle.GetBatteryCapacity(context.TODO());
// Example http response from Smartcar (battery level)
{
"percentRemaining": 0.3,
"range": 40.5,
}
// Example http response from Smartcar (battery capacity)
{
"capacity": 28.7,
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's battery level
battery = vehicle.battery()
# Fetch the vehicle's battery capacity
battery_capacity = vehicle.battery_capacity()
// Example http response from Smartcar (battery level)
{
"percentRemaining": 0.3,
"range": 40.5,
}
// Example http response from Smartcar (battery capacity)
{
"capacity": 28.7,
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 charging status
const charge = await vehicle.charge();
// Start the vehicle's charging session
await vehicle.startCharge();
// Set the vehicle's charge limit
await vehicle.setChargeLimit(0.8);
// Example http response from Smartcar (charging status)
{
"isPluggedIn": true,
"state":"FULLY_CHARGED"
}
// Example http response from Smartcar (start charge)
{
"status": "success"
}
// Example http response from Smartcar (set charge limit)
{
"status": "success"
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 charging status
charge = vehicle.charge()
# Start the vehicle's charging session
vehicle.start_charge()
# Set the vehicle's charge limit
vehicle.set_charge_limit(0.8)
// Example http response from Smartcar (charging status)
{
"isPluggedIn": true,
"state":"FULLY_CHARGED"
}
// Example http response from Smartcar (start charge)
{
"status": "success"
}
// Example http response from Smartcar (set charge limit)
{
"status": "success"
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's charging status
VehicleCharge charge = vehicle.charge();
// Start the vehicle's charging session
vehicle.startCharge();
// Set the vehicle's charge limit
vehicle.setChargeLimit(0.8)
// Example http response from Smartcar (charging status)
{
"isPluggedIn": true,
"state":"FULLY_CHARGED"
}
// Example http response from Smartcar (start charge)
{
"status": "success"
}
// Example http response from Smartcar (set charge limit)
{
"status": "success"
}
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 charging status
var charge, resErr = vehicle.GetCharge(context.TODO());
// Start the vehicle's charging session
var startCharge, resErr = vehicle.StartCharge(context.TODO());
// Example http response from Smartcar (charging status)
{
"isPluggedIn": true,
"state":"FULLY_CHARGED"
}
// Example http response from Smartcar (start charge)
{
"status": "success"
}
// Example http response from Smartcar (set charge limit)
{
"status": "success"
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's charging status
charge = vehicle.charge()
# Start the vehicle's charging session
vehicle.startCharge!
# Set the vehicle's charge limit
vehicle.set_charge_limit!(0.8)
// Example http response from Smartcar (charging status)
{
"isPluggedIn": true,
"state":"FULLY_CHARGED"
}
// Example http response from Smartcar (start charge)
{
"status": "success"
}
// Example http response from Smartcar (set charge limit)
{
"status": "success"
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 fuel tank level
const fuel = await vehicle.fuel();
// Example http response from Smartcar
{
"amountRemaining": 53.2,
"percentRemaining": 0.3,
"range": 40.5
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 fuel tank level
fuel = vehicle.fuel()
// Example http response from Smartcar
{
"amountRemaining": 53.2,
"percentRemaining": 0.3,
"range": 40.5
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's fuel tank level
VehicleFuel fuel = vehicle.fuel();
// Example http response from Smartcar
{
"amountRemaining": 53.2,
"percentRemaining": 0.3,
"range": 40.5
}
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 fuel tank level
var fuel, resErr = vehicle.GetFuel(context.TODO());
// Example http response from Smartcar
{
"amountRemaining": 53.2,
"percentRemaining": 0.3,
"range": 40.5
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's fuel tank level
fuel = vehicle.fuel()
// Example http response from Smartcar
{
"amountRemaining": 53.2,
"percentRemaining": 0.3,
"range": 40.5
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 tire pressure
const tirePressure = await vehicle.tirePressure();
// Example http response from Smartcar
{
"backLeft": 219.3,
"backRight": 219.3,
"frontLeft": 219.3,
"frontRight": 219.3,
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 tire pressure
tire_pressure = vehicle.tirePressure()
// Example http response from Smartcar
{
"backLeft": 219.3,
"backRight": 219.3,
"frontLeft": 219.3,
"frontRight": 219.3,
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's attributes
VehicleTirePressure tirePressure = vehicle.tirePressure();
// Example http response from Smartcar
{
"backLeft": 219.3,
"backRight": 219.3,
"frontLeft": 219.3,
"frontRight": 219.3,
}
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 tire pressure
var tirePressure, resErr = vehicle.GetTirePressure(context.TODO());
// Example http response from Smartcar
{
"backLeft": 219.3,
"backRight": 219.3,
"frontLeft": 219.3,
"frontRight": 219.3,
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's tire pressure
tire_pressure = vehicle.tire_pressure()
// Example http response from Smartcar
{
"backLeft": 219.3,
"backRight": 219.3,
"frontLeft": 219.3,
"frontRight": 219.3,
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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();
// Example http response from Smartcar
{
"lifeRemaining": 0.35
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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()
// Example http response from Smartcar
{
"lifeRemaining": 0.35
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.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
VehicleEngineOil oil = vehicle.oil();
// Example http response from Smartcar
{
"lifeRemaining": 0.35
}
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());
// Example http response from Smartcar
{
"lifeRemaining": 0.35
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's engine oil life
engine_oil = vehicle.engine_oil()
// Example http response from Smartcar
{
"lifeRemaining": 0.35
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 attributes
const vehicleAttributes = await vehicle.attributes();
// Example http response from Smartcar
{
"id": "36ab27d0-fd9d-4455-823a-ce30af709ffc",
"make": "TESLA",
"model": "Model S",
"year": 2014
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 attributes
vehicle_attributes = vehicle.attributes()
// Example http response from Smartcar
{
"id": "36ab27d0-fd9d-4455-823a-ce30af709ffc",
"make": "TESLA",
"model": "Model S",
"year": 2014
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's attributes
VehicleAttributes vehicleAttributes = vehicle.attributes();
// Example http response from Smartcar
{
"id": "36ab27d0-fd9d-4455-823a-ce30af709ffc",
"make": "TESLA",
"model": "Model S",
"year": 2014
}
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 attributes
var info, resErr = vehicle.GetInfo(context.TODO());
// Example http response from Smartcar
{
"id": "36ab27d0-fd9d-4455-823a-ce30af709ffc",
"make": "TESLA",
"model": "Model S",
"year": 2014
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's attributes
vehicle_attributes = vehicle.attributes()
// Example http response from Smartcar
{
"id": "36ab27d0-fd9d-4455-823a-ce30af709ffc",
"make": "TESLA",
"model": "Model S",
"year": 2014
}
const smartcar = require('smartcar');
// Get all vehicles associated with this access token
const {vehicles} = await smartcar.getVehicles("<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 VIN
const vin = await vehicle.vin();
// Example http response from Smartcar
{
"vin": "1234A67Q90F2T4567"
}
import smartcar
# Get all vehicles associated with this access token
response = smartcar.get_vehicles("<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 VIN
vin = vehicle.vin()
// Example http response from Smartcar
{
"vin": "1234A67Q90F2T4567"
}
import com.smartcar.sdk.*;
// Get all vehicles associated with this access token
VehicleIds response = Smartcar.getVehicles("<access-token>");
String[] vehicleIds = response.getVehicleIds();
// Construct a new vehicle instance using the first vehicle's id
Vehicle vehicle = new Vehicle(vehicleIds[0], "<access-token>");
// Fetch the vehicle's VIN
VehicleVin vin = vehicle.vin();
// Example http response from Smartcar
{
"vin": "1234A67Q90F2T4567"
}
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 VIN
var VIN, resErr = vehicle.GetVIN(context.TODO());
// Example http response from Smartcar
{
"vin": "1234A67Q90F2T4567"
}
require 'smartcar'
# Get all vehicles associated with this access token
all_vehicles = Smartcar.get_vehicles(token: token)
# Construct a new vehicle instance using the first vehicle's id
vehicle = Smartcar::Vehicle.new(
token: "<access-token>",
id: all_vehicles.vehicles.first
)
# Fetch the vehicle's VIN
vin = vehicle.vin()
// Example http response from Smartcar
{
"vin": "1234A67Q90F2T4567"
}
XX
XX
XX
XX
More than just a car data API
With our unified developer platform, building and scaling mobility services is a breeze.
One car API for XX brands
Our car API is compatible with XX makes, allowing your app or service to connect to over XXM vehicles with a single integration.
Put your customers in control
Smartcar Connect allows your customers to link their cars to your web or mobile app in just a few clicks. Connect is the fastest and most transparent way to collect user consent.
Hardware-free
Our APIs communicate directly with the embedded cellular modem built into most vehicles—no need for aftermarket hardware like OBD-II dongles.
Trusted & secure
Smartcar is GDPR, ISO 27001, ISO 27701, and SOC 2 Type 2 compliant. Our car API is encrypted with bank-grade SSL/TLS 1.2 and compliant with the OAuth2 authorization protocol.
What our customers say
“Thanks to Smartcar's integration, our smart energy management app, ALICE, can seamlessly support over 60 EV models.”
“Smartcar is making it easier than ever for us to build new and innovative mobility experiences with connected vehicles.”
“We chose Smartcar’s vehicle APIs to augment our EV Everywhere product capabilities, advancing our mission of promoting sustainable energy solutions for the energy and transportation sectors.”
“When looking for an electric vehicle API provider, Smartcar was the only option to fit the bill. Instead of calling out to tons of different vehicle APIs, we only need to call out to one.”
“Smartcar has enabled us to level up our EV Managed Charging platform for electric utilities by filling an important technology gap — connecting to the vehicle.”
“Not only does the Smartcar platform provide amazing technology, but their team also helped us integrate in just a few weeks, which enabled us to scale incredibly fast!”