Skip to main content
GET
/
v3
/
compatible-vehicles
curl https://compatibility.api.smartcar.com/v3/compatible-vehicles
{
  "data": [
    {
      "id": "TESLA-Model 3-2016-2026-BEV-US",
      "type": "vehicle-model-capability",
      "attributes": {
        "make": "Tesla",
        "model": "Model 3",
        "region": "US",
        "powertrainType": "BEV",
        "years": {
          "start": 2016,
          "end": 2026
        },
        "capabilities": [
          {
            "type": "signal",
            "name": "State Of Charge",
            "group": "TractionBattery",
            "code": "StateOfCharge",
            "capability": "tractionbattery-stateofcharge",
            "permission": "read_battery"
          },
          {
            "type": "signal",
            "name": "Range",
            "group": "TractionBattery",
            "code": "Range",
            "capability": "tractionbattery-range",
            "permission": "read_battery"
          },
          {
            "type": "signal",
            "name": "Location",
            "group": "Location",
            "code": "PreciseLocation",
            "capability": "location-preciselocation",
            "permission": "read_location"
          },
          {
            "type": "command",
            "name": "Start charge",
            "group": "",
            "code": "charge-start",
            "capability": "charge-start",
            "permission": ""
          },
          {
            "type": "command",
            "name": "Lock vehicle",
            "group": "",
            "code": "closure-lock",
            "capability": "closure-lock",
            "permission": ""
          }
        ]
      }
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 1384,
    "totalCount": 1384
  },
  "links": {
    "self": "https://compatibility.api.smartcar.com/v3/compatible-vehicles"
  }
}
Smartcar compatibility reflects which vehicles are compatible with specific signals and commands, updated dynamically based on real activity across the Smartcar platform.

Browsing Compatibility Data

The most convenient way to explore compatibility is through our website, where you can browse and download a CSV of the full dataset:

Compatible Vehicles

Look up which vehicles support which signals and commands, filter by make or region, and export the full matrix as a CSV.

Accessing Compatibility Data Programmatically

If your application needs to consume this data dynamically, use the endpoint above.
Caching is strongly recommended. We recommend caching the results for a minimum of 24 hours. This endpoint is not intended to be queried prior to connecting a vehicle. The data is the same whether you fetch it in advance or at the time of connection, and drivers should not be waiting extra seconds while this data is fetched.Instead, cache the results locally and compute compatibility on your end. You can refresh the cache every 24 hours if desired, as the data changes dynamically each day based on activity across the Smartcar platform.

Query Parameters

filter[region]
string
Filter vehicles by market region. Omit to return all regions.
filter[make]
string
Filter vehicles by manufacturer (case-insensitive). Example: TESLA, BMW, FORD. Omit to return all makes.
filter[powertrainType]
string
Filter vehicles by powertrain type. Omit to return all types.

Response Schema

The response follows JSON:API format with a data array of vehicle compatibility entries, pagination metadata, and a self link.
curl https://compatibility.api.smartcar.com/v3/compatible-vehicles
{
  "data": [
    {
      "id": "TESLA-Model 3-2016-2026-BEV-US",
      "type": "vehicle-model-capability",
      "attributes": {
        "make": "Tesla",
        "model": "Model 3",
        "region": "US",
        "powertrainType": "BEV",
        "years": {
          "start": 2016,
          "end": 2026
        },
        "capabilities": [
          {
            "type": "signal",
            "name": "State Of Charge",
            "group": "TractionBattery",
            "code": "StateOfCharge",
            "capability": "tractionbattery-stateofcharge",
            "permission": "read_battery"
          },
          {
            "type": "signal",
            "name": "Range",
            "group": "TractionBattery",
            "code": "Range",
            "capability": "tractionbattery-range",
            "permission": "read_battery"
          },
          {
            "type": "signal",
            "name": "Location",
            "group": "Location",
            "code": "PreciseLocation",
            "capability": "location-preciselocation",
            "permission": "read_location"
          },
          {
            "type": "command",
            "name": "Start charge",
            "group": "",
            "code": "charge-start",
            "capability": "charge-start",
            "permission": ""
          },
          {
            "type": "command",
            "name": "Lock vehicle",
            "group": "",
            "code": "closure-lock",
            "capability": "closure-lock",
            "permission": ""
          }
        ]
      }
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 1384,
    "totalCount": 1384
  },
  "links": {
    "self": "https://compatibility.api.smartcar.com/v3/compatible-vehicles"
  }
}

Data Item

Each item in the data array represents a unique vehicle make/model/powertrain/region combination.
FieldTypeDescription
idstringDeterministic composite key (e.g., TESLA-Model 3-2016-2026-BEV-US).
typestringAlways vehicle-model-capability.
attributes.makestringVehicle manufacturer display name (e.g., Tesla, Mercedes-Benz).
attributes.modelstringVehicle model name.
attributes.regionstringMarket region: US, CA, or EUROPE.
attributes.powertrainTypestringPowertrain type: ICE, BEV, or PHEV.*
attributes.years.startintegerFirst compatible model year.
attributes.years.endintegerLast compatible model year.
attributes.capabilitiesarrayArray of compatible signal and command objects.
*HEV (Hybrid Electric Vehicle) powertrain types are designated as ICE in Smartcar API responses.

Capability Object

Each capability in attributes.capabilities describes a signal or command the vehicle supports.
FieldTypeDescription
typestringsignal for data signals, command for executable commands.
namestringHuman-readable name (e.g., State Of Charge, Start charge).
groupstringSignal group (e.g., TractionBattery, Charge). Empty for commands.
codestringInternal code (e.g., StateOfCharge, charge-start).
capabilitystringCapability key (e.g., tractionbattery-stateofcharge).
permissionstringRequired Smartcar permission (e.g., read_battery).

Pagination Metadata

FieldTypeDescription
meta.pageintegerAlways 1 (all data returned in a single response).
meta.pageSizeintegerNumber of items returned.
meta.totalCountintegerTotal number of items (equals pageSize).

Error Handling

StatusDescription
200Successful request. If no vehicles match the filters, data will be an empty array — this is not an error.
404Invalid path. Returned when the requested URL does not match any endpoint.
500Server error. Retry with exponential backoff.
Error responses follow the Smartcar error format:
{
  "errors": [
    {
      "status": "500",
      "type": "SERVER",
      "code": "INTERNAL",
      "title": "Internal Server Error",
      "detail": "An unexpected error occurred on the server.",
      "links": {
        "about": "https://smartcar.com/docs/errors/api-errors/v3/server-errors"
      }
    }
  ]
}

How Compatibility is Determined

Smartcar compatibility data is generated dynamically from real vehicle connections and API requests across the platform. When we mark a vehicle as compatible with a specific signal, it means we have confirmed successful requests to that signal on that vehicle. Because this data is based on platform activity:
  • Unlisted vehicles — If a particular make, model, or year is not listed, it may be because we have not yet seen one connected to our platform, or we do not yet have sufficient data to determine compatibility.
  • Dynamic updates — The dataset is updated daily as new vehicles connect and new data flows through the platform.
While we strive for accuracy and comprehensiveness, it is important to acknowledge that the functional capabilities of individual vehicles can exhibit variability. Even if we have confirmed a particular make, model, and year as compatible with a specific signal, a slight trim variation could cause the same vehicle to not be compatible.