GitHub stars

GitHub forks

Code repository: python-my-tesla

The story

I was excited to create a Tesla Python library that would allow others to easily interface with the Tesla API. Finally, I released the library to the public and it was an instant hit! People were able to use it to do all sorts of of stuffs.

Some stories posted by a bloggers on medium:


Download stats as of :

PyPI link
Total downloads
Total downloads - 30 days
Total downloads - 7 days



You can install latest stable version from PyPI:

pip3 install myTesla


import myTesla

my_model_s = myTesla.connect('', 'MySecurePassword')
charge_state = my_model_s.charge_state()
door_lock = my_model_s.door_lock()


This program was build using API documentation listed on The functions closely follow the API documentation. Please see this page for detailed information of the function parameters.

Initiating connection

In order to initiate connection, the following information is needed.

The arguements for initiating the connection is the following:

def __init__(self, email='', password='',

Connection argument description descriptioons:

The details of these parameters can be found on this page See

  • email: Your mytesla username
  • password: Your mytesla password
  • vehicle_index: Index of your vehicle, if you have multiple vehicles
  • access_token: # Access token can be used instead of email and password.
  • tesla_backend_token_response: # A backend response can be used instead of email/password or accesss token. The format of the backend response is documented here
  • base_url: base_url is taken from

Function Descriptions

  • myTesla.connect.get_access_token: Returns access token information that could be used to authenticate instead of email/password.
  • myTesla.connect.select_vehicle: Switches car based on index/vin/or vehicle_id if you have multiple vehicle on your account.
  • myTesla.connect.vehicles: Retrieve a list of your owned vehicles
  • myTesla.connect.mobile_enabled: Determines if mobile access to the vehicle is enabled.
  • myTesla.connect.charge_state: Returns the state of charge in the battery.
  • myTesla.connect.climate_state: Returns the current temperature and climate control state.
  • myTesla.connect.drive_state: Returns the driving and position state of the vehicle.
  • myTesla.connect.gui_settings: Returns various information about the GUI settings of the car, such as unit format and range display.
  • myTesla.connect.vehicle_state: Returns the vehicle’s physical state, such as which doors are open.
  • myTesla.connect.wake_up: Wakes up the car from the sleep state. Necessary to get some data from the car.
  • myTesla.connect.set_valet_mode: Sets valet mode on or off with a PIN to disable it from within the car.
  • myTesla.connect.reset_valet_pin: Resets the PIN set for valet mode, if set.
  • myTesla.connect.charge_port_door_open: Opens the charge port.
  • myTesla.connect.charge_standard: Set the charge mode to standard
  • myTesla.connect.charge_max_range: Set the charge mode to max range
  • myTesla.connect.set_charge_limit:Set the charge limit to a custom percentage.
  • myTesla.connect.charge_start: Start charging. Must be plugged in, have power available, and not have reached your charge limit.
  • myTesla.connect.charge_stop: Stop charging. Must already be charging.
  • myTesla.connect.honk_horn: Honk horn
  • myTesla.connect.door_unlock: Unlock the car’s doors.
  • myTesla.connect.door_lock: Lock the car doors.
  • myTesla.connect.set_temps: Set the temperature target for the HVAC system.
  • myTesla.connect.auto_conditioning_start: Start the climate control system. Will cool or heat automatically, depending on set temperature.
  • myTesla.connect.auto_conditioning_stop: Stop the climate control system.
  • myTesla.connect.sun_roof_control: Controls the car’s panoramic roof, if installed.
  • myTesla.connect.remote_start_drive: Start the car for keyless driving. Must start driving within 2 minutes of issuing this request.
  • myTesla.connect.trunk_open: Open the trunk or frunk. Call the endpoint again to close (this only works on rear powered trunks)

Legal Agreement/ Disclaimer

This program is provided as is. This program is not supported or endorsed by Tesla Motors. By using this software, you agree to not hold me (Zobair Shahadat ) and any of the contributers liable for anything.