Updating access with Tesla

You can use either of the following URLs to prompt users for more Tesla permissions in the event you need additional access from the vehicle owner due to:

If one or more of the Smartcar scopes you pass map to a new Tesla permission(s) for the account, the user will be prompted to update access after they log in with Tesla.

This flow sends a new authorization code to your callback URI in order to fetch a new access and refresh token.

    https://connect.smartcar.com/oauth/{path}?
    response_type=code
    &make=TESLA
    &client_id=8229df9f-91a0-4ff0-a1ae-a1f38ee24d07
    &scope=read_odometer control_security
    &redirect_uri=https://example.com
nametyperequireddescription
response_typestringtrueThis should be set to code.
makestringtrueSpecifies the brand to update access to. Currently, the only make available for this flow is TESLA.
client_idstringtrueThe application’s unique identifier. This is available on the credentials tab of the Smartcar Dashboard.
scope[permissions]trueA space-separated list of permissions that your application is requesting access to. The valid permission names can be found in the permissions section. When reauthenticating, the user will be required to grant the corresponding OEM permissions before being able to exit the flow.
redirect_uristringtrueRequired if using the /authorize route for Smartcar to return an authorization code.

Requiring Tesla Permissions

To ensure users select the necessary permissions with Tesla before being able to connect their vehicle via Smartcar, please append the required: prefix to Smartcar scopes in your Connect URL e.g. required:read_location.

As a result if they do not select the necessary permissions with Tesla, they will see the following screen and be prompted to return to Tesla to update their permissions.

Permission Mappings

Tesla provides a limited set of permissions. To ensure vehicle data is shared only with explicit consent, Smartcar has mapped Tesla’s permissions into its existing more granular options. For example, granting access to “vehicle commands” in a Tesla account allows an application to start or stop charging, lock or unlock doors, enable or disable Sentry Mode, and more. Smartcar separates these permissions so that applications must request access to control charging separately from access to vehicle security, control navigation, etc. Smartcar does not use or share vehicle data beyond the permissions listed in this table. An application with the ability to control the charge status of a vehicle, does not have access to control other aspects of the car unless explictly requested and granted by a vehicle owner.

Smartcar PermissionTesla Permission
control_chargeVehicle Charge Management (vehicle_charging_cmds)
control_climateVehicle Commands (vehicle_cmds)
control_navigationVehicle Commands (vehicle_cmds)
control_pinVehicle Commands (vehicle_cmds)
control_securityVehicle Commands (vehicle_cmds)
control_trunkVehicle Commands (vehicle_cmds)
read_batteryVehicle Information (vehicle_device_data)
read_charge_recordsVehicle Charge Management (vehicle_charging_cmds)
read_chargeVehicle Information (vehicle_device_data)
read_climateVehicle Information (vehicle_device_data)
read_compassVehicle Information (vehicle_device_data)
read_engine_oilVehicle Information (vehicle_device_data)
read_extended_vehicle_infoVehicle Information (vehicle_device_data)
read_fuelVehicle Information (vehicle_device_data)
read_locationVehicle Location (vehicle_location)
read_odometerVehicle Information (vehicle_device_data)
read_securityVehicle Information (vehicle_device_data)
read_speedometerVehicle Information (vehicle_device_data)
read_thermometerVehicle Information (vehicle_device_data)
read_tiresVehicle Information (vehicle_device_data)
read_user_profileProfile Information (user_data)
read_vehicle_infoVehicle Information (vehicle_device_data)
read_vinVehicle Information (vehicle_device_data)