openapi: 3.0.1 info: title: Tesla Authentication Vehicles API description: API for controlling Tesla vehicles version: '1.0' servers: - url: https://owner-api.teslamotors.com/ tags: - name: Vehicles paths: /api/1/vehicles: get: tags: - Vehicles summary: Tesla List all Vehicles description: Retrieve a list of your owned vehicles (includes vehicles not yet shipped!) operationId: GetVehicles responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/GetVehiclesResponse' /api/1/vehicles/{vehicle_id}: get: tags: - Vehicles summary: Tesla Retrieve a vehicle description: Retrieve a specific vehicle operationId: GetVehicle parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/VehicleResponse' example: response: id: 321 option_codes: MS01,RENA,TM00,DRLH,PF00,BT85,PBCW,RFPO,WT19,IBMB,IDPB,TR00,SU01,SC01,TP01,AU01,CH00,HP00,PA00,PS00,AD02,X020,X025,X001,X003,X007,X011,X013 user_id: 123 vehicle_id: 1234567890 vin: 5YJSA1CN5CFP01657 tokens: - x - x state: online /api/1/vehicles/{vehicle_id}/mobile_enabled: get: tags: - Vehicles summary: Tesla Mobile Access description: Determines if mobile access to the vehicle is enabled. operationId: GetVehicleMobileEnabled parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/MobileAccessResponse' /api/1/vehicles/{vehicle_id}/data_request/charge_state: get: tags: - Vehicles summary: Tesla Charge State description: Returns the state of charge in the battery. operationId: GetVehicleChargeState parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/ChargeStateResponse' /api/1/vehicles/{vehicle_id}/data_request/climate_state: get: tags: - Vehicles summary: Tesla Climate Settings description: Returns the current temperature and climate control state. operationId: GetVehicleClimateState parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/ClimateSettingsResponse' /api/1/vehicles/{vehicle_id}/data_request/drive_state: get: tags: - Vehicles summary: Tesla Driving and Position description: Returns the driving and position state of the vehicle. operationId: GetVehicleDriveState parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/DriveStateResponse' /api/1/vehicles/{vehicle_id}/data_request/gui_settings: get: tags: - Vehicles summary: Tesla GUI Settings description: Returns various information about the GUI settings of the car, such as unit format and range display. operationId: GetVehilceGuiSettings parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/GuistateResponse' /api/1/vehicles/{vehicle_id}/data_request/vehicle_state: get: tags: - Vehicles summary: Tesla Vehicle State description: Returns the vehicle's physical state, such as which doors are open. operationId: GetVehicleState parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/VehicleStateResponse' /api/1/vehicles/{vehicle_id}/data_request/vehicle_config: get: tags: - Vehicles summary: Tesla Vehicle Config description: Returns the vehicle's configuration operationId: GetVehicleConfig parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/VehicleConfigResponse' /api/1/vehicles/{vehicle_id}/vehicle_data: get: tags: - Vehicles summary: Tesla Vehicle Data description: Returns all vehicle ∂ata, potentially cached operationId: GetVehicleData parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string - name: endpoints in: query schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/VehicleDataResponse' /api/1/vehicles/{vehicle_id}/nearby_charging_sites: get: tags: - Vehicles summary: Tesla Get Nearby Chargers description: Get a list of nearby charging sites operationId: NearbyChargers parameters: - name: vehicle_id in: path description: The id of the Vehicle. required: true schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/NearbyChargerResponse' components: schemas: GuiState: type: object properties: gui_distance_units: type: string gui_temperature_units: type: string gui_charge_rate_units: type: string gui_24_hour_time: type: boolean gui_range_display: type: string gui_tirepressure_units: type: string timestamp: type: number GetVehiclesResponse: title: List all Vehicles response required: - count - response type: object properties: response: type: array items: $ref: '#/components/schemas/Vehicle' count: type: integer description: '' format: int32 example: 1 example: response: - id: 321 option_codes: MS01,RENA,TM00,DRLH,PF00,BT85,PBCW,RFPO,WT19,IBMB,IDPB,TR00,SU01,SC01,TP01,AU01,CH00,HP00,PA00,PS00,AD02,X020,X025,X001,X003,X007,X011,X013 user_id: 123 vehicle_id: 1234567890 vin: 5YJSA1CN5CFP01657 tokens: - x - x state: online count: 1 VehicleStateResponse: title: Vehicle State response required: - response type: object properties: response: $ref: '#/components/schemas/VehicleState' ClimateSettingsResponse: title: Climate Settings response required: - response type: object properties: response: $ref: '#/components/schemas/ClimateState' DestinationCharger: title: DestinationCharger type: object properties: location: type: object properties: lat: type: number format: double long: type: number format: double name: type: string type: type: string default: destination distance_miles: type: number format: double VehicleConfig: type: object properties: can_actuate_trunks: type: boolean can_accept_navigation_requests: type: boolean car_special_type: type: string car_type: type: string charge_port_type: type: string eu_vehicle: type: boolean exterior_color: type: string has_ludicrous_mode: type: boolean motorized_charge_port: type: boolean perf_config: type: string plg: type: boolean rear_seat_heaters: type: number rear_seat_type: type: number rhd: type: boolean roof_color: type: string seat_type: type: number spoiler_type: type: string sun_roof_installed: type: number third_row_seats: type: string timestamp: type: number trim_badging: type: string wheel_type: type: string VehicleResponse: type: object properties: response: $ref: '#/components/schemas/Vehicle' VehicleDataResponse: title: Vehicle Data Response type: object properties: response: type: object properties: color: type: string display_name: type: string id: type: string option_codes: type: string vehicle_id: type: string vin: type: string user_id: type: number tokens: type: array items: type: string state: type: string in_service: type: boolean id_s: type: string calendar_enabled: type: boolean backseat_token: type: string backseat_token_updated_at: type: number gui_settings: $ref: '#/components/schemas/GuiState' climate_state: $ref: '#/components/schemas/ClimateState' drive_state: $ref: '#/components/schemas/DriveState' vehicle_state: $ref: '#/components/schemas/VehicleState' charge_state: $ref: '#/components/schemas/ChargeState' vehicle_config: $ref: '#/components/schemas/VehicleConfig' VehicleState: type: object properties: api_version: type: integer autopark_state: type: string autopark_state_v2: type: string autopark_style: type: string calendar_supported: type: boolean car_version: type: string center_display_state: type: integer df: type: integer dr: type: integer ft: type: integer homelink_nearby: type: boolean last_autopark_error: type: string locked: type: boolean media_state: type: object properties: remote_control_enabled: type: boolean notifications_supported: type: boolean odometer: type: number format: double parsed_calendar_supported: type: boolean pf: type: integer pr: type: integer remote_start: type: boolean remote_start_supported: type: boolean rt: type: integer sentry_mode: type: boolean software_update: type: object properties: expected_duration_sec: type: integer status: type: string download_perc: type: integer install_perc: type: integer version: type: string sun_roof_percent_open: type: integer sun_roof_state: type: string timestamp: type: number valet_mode: type: boolean vehicle_name: type: string speed_limit_mode: type: object properties: active: type: boolean current_limit_mph: type: number format: double max_limit_mph: type: number format: double min_limit_mph: type: number format: double pin_code_set: type: boolean fd_window: type: integer fp_window: type: integer homelink_device_count: type: integer rd_window: type: integer rp_window: type: integer smart_summon_available: type: boolean summon_standby_mode_enabled: type: boolean MobileAccessResponse: title: Mobile Access response required: - response type: object properties: response: type: boolean description: '' example: true example: response: true VehicleConfigResponse: title: Vehicle Config response required: - response type: object properties: response: $ref: '#/components/schemas/VehicleConfig' ChargeStateResponse: title: Charge State response required: - response type: object properties: response: $ref: '#/components/schemas/ChargeState' DriveState: type: object properties: shift_state: type: string speed: type: number format: double power: type: number format: double latitude: type: number format: double longitude: type: number format: double heading: type: integer gps_as_of: type: number native_location_supported: type: integer native_latitude: type: number format: double native_longitude: type: number format: double native_type: type: string timestamp: type: number GuistateResponse: title: GUI Settings response required: - response type: object properties: response: $ref: '#/components/schemas/GuiState' DriveStateResponse: title: Driving and Position response required: - response type: object properties: response: $ref: '#/components/schemas/DriveState' ChargeState: type: object properties: charging_state: type: string fast_charger_type: type: string fast_charger_brand: type: string charge_limit_soc: type: integer charge_limit_soc_std: type: integer charge_limit_soc_min: type: integer charge_limit_soc_max: type: integer charge_to_max_range: type: boolean max_range_charge_counter: type: integer fast_charger_present: type: boolean battery_range: type: number format: double est_battery_range: type: number format: double ideal_battery_range: type: number format: double battery_level: type: integer usable_battery_level: type: integer charge_energy_added: type: number format: double charge_miles_added_rated: type: number format: double charge_miles_added_ideal: type: number format: double charger_voltage: type: integer charger_pilot_current: type: integer charger_actual_current: type: integer charger_power: type: integer time_to_full_charge: type: number format: double trip_charging: type: boolean charge_rate: type: number format: double charge_port_door_open: type: boolean conn_charge_cable: type: string scheduled_charging_start_time: type: string scheduled_charging_pending: type: boolean user_charge_enable_request: type: boolean charge_enable_request: type: boolean charger_phases: type: integer charge_port_latch: type: string charge_current_request: type: integer charge_current_request_max: type: integer managed_charging_active: type: boolean managed_charging_user_canceled: type: boolean managed_charging_start_time: type: number format: long battery_heater_on: type: boolean not_enough_power_to_heat: type: boolean timestamp: type: number ClimateState: type: object properties: inside_temp: type: number format: double outside_temp: type: number format: double driver_temp_setting: type: number format: double passenger_temp_setting: type: number format: double left_temp_direction: type: integer right_temp_direction: type: integer is_front_defroster_on: type: boolean is_rear_defroster_on: type: boolean fan_status: type: integer is_climate_on: type: boolean min_avail_temp: type: integer max_avail_temp: type: integer seat_heater_left: type: string seat_heater_right: type: string seat_heater_rear_left: type: string seat_heater_rear_right: type: string seat_heater_rear_center: type: string seat_heater_rear_right_back: type: string seat_heater_rear_left_back: type: string battery_heater: type: boolean battery_heater_no_power: type: boolean steering_wheel_heater: type: boolean wiper_blade_heater: type: boolean side_mirror_heaters: type: boolean is_preconditioning: type: boolean smart_preconditioning: type: boolean is_auto_conditioning_on: type: boolean defrost_mode: type: integer timestamp: type: number Vehicle: type: object properties: color: type: string display_name: type: string id: type: string option_codes: type: string vehicle_id: type: string vin: type: string tokens: type: array items: type: string state: type: string NearbyChargerResponse: title: NearbyChargerResponse type: object properties: response: type: object properties: congestion_sync_time_utc_secs: type: number destination_charging: type: array items: $ref: '#/components/schemas/DestinationCharger' superchargers: type: array items: $ref: '#/components/schemas/Supercharger' Supercharger: title: Supercharger type: object properties: location: type: object properties: lat: type: number format: double long: type: number format: double name: type: string type: type: string default: supercharger distance_miles: type: number format: double available_stalls: type: number total_stalls: type: number site_closed: type: boolean