September 13, 2022

Why we're switching to v2.0 of our API

Winona Rajamohan

Content Marketing Manager

Smartcar is the easiest way to integrate apps with cars, and we're continuously working on improvements to help our customers reimagine automotive services and trailblaze new mobility categories.

Last November, we announced that version 2.0 of the Smartcar API was now available to all Smartcar users. We spent over a year developing and incorporating customer feedback into the latest version of our car API, and version 2.0 delivers our best developer experience for users working with different car brands and models.

📣  So, we’re officially retiring version 1.0 of the Smartcar API at the end of 2022.  

If you’re still using version 1.0 — don’t worry.

We have everything you need for a quick and smooth migration to version 2.0 of our API. But first, let’s dive into what our new Smartcar API is all about and why you’ll benefit most from this change.

Why are we retiring v1.0?

Smartcar API v2.0 was built to accomplish one primary goal: To help developers spend less time addressing errors and more time building cool stuff.

Unlike v1.0, our new API has significant improvements to:

Error responses

We restructured and rewrote our error responses so they’re detailed, and easy to act on even without using our API reference as a guide. With these improvements, your team can spend less time looking for vehicle information and help new developers ramp up quickly with the Smartcar API:

  • Reorganized error types: Consolidated or dropped some v1.0 “error” types and added new types to v2.0. (like “UPSTREAM,” and “VEHICLE_STATE”)
  • Clear error codes and descriptions: More descriptive error code fields that use simple English words instead of numerical codes (like “ASLEEP” instead of “VS_006”). We also rewrote all information in the error description field so they’re more helpful for engineering and support teams involved in the debugging process.
  • Comprehensive API error guides: Revamped our error documentation so developers have an extensive resource to understand, troubleshoot, and test all v2.0 errors. Our error guides are equipped with recommended user-facing messages to display when a particular error impacts vehicle owners.
Smartcar API V2.0 error states

Compatibility API

In v1.0, our Compatibility API was designed to let applications check whether a VIN is capable of Smartcar permissions. We learned from customers that a detailed breakdown of what each VIN supports is more useful.

So, v2.0 gives you the following features:

  • A breakdown of each requested capability.
  • Maps each permission to the endpoint that the permission grants access to A “reason” field that explains why a vehicle does not support a particular feature.
Smartcar Compatibility API v2.0

We’ve also introduced new features that are exclusive to v2.0, like:

  1. Brand-specific endpoints: This allows you to access additional endpoints for specific brands while maintaining the benefits of our Smartcar API, like standardized error codes, permissions, and simple compatibility checks. Brand-specific endpoints are currently available for Cadillac, Chevrolet, and Tesla.
  2. Webhook verification and event payloads: The verification payload includes the ID of the requested webhook and an “eventName” property. The “challenge” and “vehicle”  properties are now nested under a payload property.  

What you need to do about it

We’ve outlined three simple steps for you to migrate to v2.0 of the Smartcar API:

  1. Familiarize yourself with all our new error codes and properties by taking a look at our error guide and API reference.
  2. Visit our API changelog for clear migration steps that help you minimize the work you need to do to support our new responses.
  3. Use our specified code block for each Smartcar SDK or replace /v1.0/ with /v2.0/ in URLs when you make an API request if you’re not using a Smartcar SDK.
// Node.js
const smartcar = require('smartcar');
smartcar.setApiVersion('2.0');
// Python
import smartcar
smartcar.set_api_version("2.0")
// Java
import com.smartcar.sdk.*;
Vehicle.setApiVersion("2.0");
// Go
import smartcar "github.com/smartcar/go-sdk"
client := NewClient()
client.SetAPIVersion("2.0")
// Ruby
require 'smartcar'
Smartcar.set_api_version('2.0')

Subscribe to our newsletter for more Smartcar updates

If you have questions on API v2.0 and how to get started, contact your Customer Success manager or check out our Fall ‘21 Product Showcase for a rundown of new features from our Director of Platform Engineering.

In the meantime, stay updated with more product announcements by subscribing to our monthly newsletter. We’ll share everything you need to know about new brand support, API improvements, and exciting things developers are building with Smartcar — just drop your email below!

New to Smartcar? Schedule a demo today to learn how our car APIs can benefit your application.

Everything you need to know about car APIs. Delivered monthly.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.