openapi: 3.0.1
info:
title: Tesla Motors Owner Authentication API
description: The Tesla Motors Owner API provides programmatic access to Tesla vehicles for monitoring state data (charge, climate, drive, vehicle config) and executing remote commands (wake up, lock/unlock doors, control climate, manage charging, control trunk, media playback, and more).
version: '1.0'
contact:
name: Tesla Developer Support
url: https://developer.tesla.com
servers:
- url: https://owner-api.teslamotors.com/
description: Tesla Owner API
tags:
- name: Authentication
paths:
/oauth/token:
post:
tags:
- Authentication
summary: Tesla Get an Access Token
description: 'Performs the login. Takes in an plain text email and password, matching the owner''s login information for [https://my.teslamotors.com/user/login](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](http://pastebin.com/YiLPDggh)'
operationId: CreateOauthToken
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAccessTokenRequest'
required: true
responses:
200:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAccessTokenResponse'
x-codegen-request-body-name: body
components:
schemas:
CreateAccessTokenResponse:
title: Get an Access Token response
required:
- access_token
- created_at
- expires_in
- refresh_token
- token_type
type: object
properties:
access_token:
type: string
description: ''
example: abc123
token_type:
type: string
description: ''
example: bearer
expires_in:
type: integer
description: ''
format: int32
example: 7776000
created_at:
type: integer
description: ''
format: int32
example: 1457385291
refresh_token:
type: string
description: ''
example: cba321
example:
access_token: abc123
token_type: bearer
expires_in: 7776000
created_at: 1457385291
refresh_token: cba321
CreateAccessTokenRequest:
title: Get an Access Token request
type: object
properties:
grant_type:
type: string
description: The type of oAuth grant. "password" or "refresh_token"
example: password
client_id:
type: string
description: The oAuth client ID
example: abc
client_secret:
type: string
description: The oAuth client secret
example: '123'
email:
type: string
description: The email for my.teslamotors.com. Only used with "password" grant type.
example: elon@teslamotors.com
password:
type: string
description: The password for my.teslamotors.com. Only used with "password" grant type.
example: edisonsux
refresh_token:
type: string
description: A refresh token from a previous CreateAccessTokenResponse
example: 0f0f0f0f0f0ff0f0f0f0f0f0f0f0f0f0f0f0f0f0f0ff0f0f0f0f0f0f0f0f0f