Tesla Model S JSON API https://owner-api.teslamotors.com

This is unofficial documentation of the Tesla Model S JSON API used by the iOS and Android apps. It features functionality to monitor and control the Model S remotely.

Authentication

Tokens /oauth/token

POST /oauth/token Get an Access Token

Performs the login. Takes in an plain text email and password, matching the owner's login information for https://my.teslamotors.com/user/login.

Returns a access_token which is passed along as a header with all future requests to authenticate the user.

You must provide the Authorization: Bearer {access_token} header in all other requests.

The current client ID and secret are available here

Request

Response 200

Vehicles

A logged in user can have multiple vehicles under their account. This resource is primarily responsible for listing the vehicles and the basic details about them.

Vehicle Collection /api/1/vehicles

GET /api/1/vehicles List all Vehicles

Retrieve a list of your owned vehicles (includes vehicles not yet shipped!)

Request

Response 200

State and Settings /api/1/vehicles/{vehicle_id}

GET /api/1/vehicles/{vehicle_id}/mobile_enabled Mobile Access

Determines if mobile access to the vehicle is enabled.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/mobile_enabled

Request

Response 200

GET /api/1/vehicles/{vehicle_id}/data_request/charge_state Charge State

Returns the state of charge in the battery.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/data_request/charge_state

Request

Response 200

GET /api/1/vehicles/{vehicle_id}/data_request/climate_state Climate Settings

Returns the current temperature and climate control state.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/data_request/climate_state

Request

Response 200

GET /api/1/vehicles/{vehicle_id}/data_request/drive_state Driving and Position

Returns the driving and position state of the vehicle.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/data_request/drive_state

Request

Response 200

GET /api/1/vehicles/{vehicle_id}/data_request/gui_settings GUI Settings

Returns various information about the GUI settings of the car, such as unit format and range display.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/data_request/gui_settings

Request

Response 200

GET /api/1/vehicles/{vehicle_id}/data_request/vehicle_state Vehicle State

Returns the vehicle's physical state, such as which doors are open.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/data_request/vehicle_state

Request

Response 200

Vehicle Commands

These commands alter the vehicles state, and return result (true/false) to indicate success, and if failure reason contains the cause of failure.

Wake Up Car /api/1/vehicles/{vehicle_id}/wake_up

POST /api/1/vehicles/{vehicle_id}/wake_up Wake Up Car

Wakes up the car from the sleep state. Necessary to get some data from the car.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/wake_up

Request

Response 200

Set Valet Mode /api/1/vehicles/{vehicle_id}/command/set_valet_mode

POST /api/1/vehicles/{vehicle_id}/command/set_valet_mode Set Valet Mode

Sets valet mode on or off with a PIN to disable it from within the car. Reuses last PIN from previous valet session. Valet Mode limits the car's top speed to 70MPH and 80kW of acceleration power. It also disables Homelink, Bluetooth and Wifi settings, and the ability to disable mobile access to the car. It also hides your favorites, home, and work locations in navigation.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/set_valet_mode

Request

Response 200

Reset Valet PIN /api/1/vehicles/{vehicle_id}/command/reset_valet_pin

POST /api/1/vehicles/{vehicle_id}/command/reset_valet_pin Reset Valet PIN

Resets the PIN set for valet mode, if set.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/reset_valet_pin

Request

Response 200

Open Charge Port /api/1/vehicles/{vehicle_id}/command/charge_port_door_open

POST /api/1/vehicles/{vehicle_id}/command/charge_port_door_open Open Charge Port

Opens the charge port. Does not close the charge port (for now...)

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/charge_port_door_open

Request

Response 200

Set Charge Limit to Standard /api/1/vehicles/{vehicle_id}/command/charge_standard

POST /api/1/vehicles/{vehicle_id}/command/charge_standard Set Charge Limit to Standard

Set the charge mode to standard (90% under the new percentage system introduced in 4.5).

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/charge_standard

Request

Response 200

Set Charge Limit to Max Range /api/1/vehicles/{vehicle_id}/command/charge_max_range

POST /api/1/vehicles/{vehicle_id}/command/charge_max_range Set Charge Limit to Max Range

Set the charge mode to max range (100% under the new percentage system introduced in 4.5). Use sparingly!

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/charge_max_range

Request

Response 200

Set Charge Limit /api/1/vehicles/{vehicle_id}/command/set_charge_limit?percent={limit_value}

POST /api/1/vehicles/{vehicle_id}/command/set_charge_limit?percent={limit_value} Set Charge Limit

Set the charge limit to a custom percentage.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/set_charge_limit?percent=75

Request

Response 200

Start Charging /api/1/vehicles/{vehicle_id}/command/charge_start

POST /api/1/vehicles/{vehicle_id}/command/charge_start Start Charging

Start charging. Must be plugged in, have power available, and not have reached your charge limit.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/charge_start

Request

Response 200

Stop Charging /api/1/vehicles/{vehicle_id}/command/charge_stop

POST /api/1/vehicles/{vehicle_id}/command/charge_stop Stop Charging

Stop charging. Must already be charging.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/charge_stop

Request

Response 200

Flash Lights /api/1/vehicles/{vehicle_id}/command/flash_lights

POST /api/1/vehicles/{vehicle_id}/command/flash_lights Flash Lights

Flash the lights once.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/flash_lights

Request

Response 200

Honk Horn /api/1/vehicles/{vehicle_id}/command/honk_horn

POST /api/1/vehicles/{vehicle_id}/command/honk_horn Honk Horn

Honk the horn once.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/honk_horn

Request

Response 200

Unlock Doors /api/1/vehicles/{vehicle_id}/command/door_unlock

POST /api/1/vehicles/{vehicle_id}/command/door_unlock Unlock Doors

Unlock the car's doors.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/door_unlock

Request

Response 200

Lock Doors /api/1/vehicles/{vehicle_id}/command/door_lock

POST /api/1/vehicles/{vehicle_id}/command/door_lock Lock Doors

Lock the car's doors.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/door_lock

Request

Response 200

Set Temperature /api/1/vehicles/{vehicle_id}/command/set_temps?driver_temp={driver_degC}&passenger_temp={pass_degC}

POST /api/1/vehicles/{vehicle_id}/command/set_temps?driver_temp={driver_degC}&passenger_temp={pass_degC} Set Temperature

Set the temperature target for the HVAC system.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/set_temps?driver_temp=23.7&passenger_temp=18.1

Request

Response 200

Start HVAC System /api/1/vehicles/{vehicle_id}/command/auto_conditioning_start

POST /api/1/vehicles/{vehicle_id}/command/auto_conditioning_start Start HVAC System

Start the climate control system. Will cool or heat automatically, depending on set temperature.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/auto_conditioning_start

Request

Response 200

Stop HVAC System /api/1/vehicles/{vehicle_id}/command/auto_conditioning_stop

POST /api/1/vehicles/{vehicle_id}/command/auto_conditioning_stop Stop HVAC System

Stop the climate control system.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/auto_conditioning_stop

Request

Response 200

Move Pano Roof /api/1/vehicles/{vehicle_id}/command/sun_roof_control?state={state}&percent={percent}

POST /api/1/vehicles/{vehicle_id}/command/sun_roof_control?state={state}&percent={percent} Move Pano Roof

Controls the car's panoramic roof, if installed.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/sun_roof_control?state=open&percent=50

Request

Response 200

Remote Start /api/1/vehicles/{vehicle_id}/command/remote_start_drive?password={password}

POST /api/1/vehicles/{vehicle_id}/command/remote_start_drive?password={password} Remote Start

Start the car for keyless driving. Must start driving within 2 minutes of issuing this request.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/remote_start_drive?password=edisonsux

Request

Response 200

Open Trunk/Frunk /api/1/vehicles/{vehicle_id}/command/trunk_open

POST /api/1/vehicles/{vehicle_id}/command/trunk_open Open Trunk/Frunk

Open the trunk or frunk. Currently inoperable.

Example URI

https://owner-api.teslamotors.com /api/1/vehicles/1/command/trunk_open

Request

Response 200