The Connected Car API for Developers

Smartcar enables apps to easily and securely communicate with vehicles.

Why build on Smartcar?

Our platform makes it easy to read vehicle data and send commands to vehicles of any brand using HTTP requests.

  • Cross-brand compatible

    Communicate with vehicles across brands in a single development effort.

  • No hardware

    Say goodbye to dongles and aftermarket hardware. Smartcar works with hardware that is already built into vehicles.

  • Fully documented

    Get off the ground in minutes with our suite of SDKs and comprehensive docs.

  • Granular permissions

    Designed to put vehicle owner privacy first, our permissioning system authorizes API endpoints based on owner preferences.

  • Help on hand

    Our support team is here to help anytime you need it.

  • Developer insights

    Track detailed usage and performance metrics of your applications.

Meet the Smartcar API

Connect to your first vehicle with just a few lines.

const smartcar = require('smartcar');

// Fetch the set of vehicles associated with this access
const {vehicles} = await client.getVehicles("ACCESS_TOKEN");

// Use the first vehicle
const vehicle = new smartcar.Vehicle(vehicles[0], "ACCESS_TOKEN");

// Unlock the vehicle
await vehicle.unlock();

// Fetch the vehicle's odometer
const odometer = await vehicle.odometer();
console.log(odometer);

// Fetch the vehicle's location
const location = await vehicle.location();
console.log(location);
# Fetch the set of vehicles associated with this access
curl https://api.smartcar.com/v1.0/vehicles \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -X "GET"

# Unlock the vehicle
curl https://api.smartcar.com/v1.0/vehicles/{{id}}/security \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -X "POST" \
  -H "Content-Type: application/json" \
  -d '{"action": "UNLOCK"}'

# Fetch the vehicle's odometer
curl https://api.smartcar.com/v1.0/vehicles/{{id}}/odometer \
  -H "Authorization: Bearer {ACCESS_TOKEN}"\
  -X "GET"

# Fetch the vehicle's location
curl https://api.smartcar.com/v1.0/vehicles/{{id}}/location \
  -H "Authorization: Bearer {ACCESS_TOKEN}"\
  -X "GET"
import smartcar

# Fetch the set of vehicles associated with this access
response = client.get_vehicles("ACCESS_TOKEN")

# Use the first vehicle
vehicle = smartcar.Vehicle(response.vehicles[0], "ACCESS_TOKEN")

# Unlock the vehicle
vehicle.unlock()

# Fetch the vehicle's odometer
odometer = vehicle.odometer()
print odometer

# Fetch the vehicle's location
location = vehicle.location()
print location
import com.smartcar.sdk.Api;

// Fetch the set of vehicles associated with this access
Api.Vehicles response = client.getVehicles("ACCESS_TOKEN");

// Use the first vehicle
Vehicle vehicle = new Vehicle(response.vehicles[0], "ACCESS_TOKEN");

// Unlock the vehicle
vehicle.unlock();

// Fetch the vehicle's odometer
Api.Odometer odometer = vehicle.odometer();
System.out.println(odometer.toString());

// Fetch the vehicle's location
Api.Location location = vehicle.location();
System.out.println(location.toString());

Ready to get started?