Building Third-Party Apps
You can build your own app, including a commercial one, on top of Teslemetry. Your users sign in with their own Teslemetry account and keep their own Teslemetry subscription, and your app reads their vehicle data and sends commands through the Teslemetry API.
Sign in with Teslemetry OAuth
Use Teslemetry OAuth to connect a user's account. Never ask users for their Tesla credentials or to paste an access token into your app.
Teslemetry supports OAuth with PKCE, so native mobile and desktop apps can sign in without a client secret. The authorization server metadata, including the authorization and token endpoints, is published at https://api.teslemetry.com/.well-known/oauth-authorization-server.
Become a trusted OAuth client
When a user signs in, Teslemetry shows a consent screen that names the app asking for access. To show your app as a trusted connection on that screen, email support with:
- Your app's logo.
- Every redirect URL your app uses.
Commercial apps
Commercial apps built on Teslemetry are permitted, including free apps with paid upgrades. Teslemetry does not ask for a revenue share or a license fee.
If you need written confirmation that your app is authorized to use the Teslemetry service, for example for App Store review, email support.
This permission is not exclusive. Teslemetry can authorize other developers to build similar apps, and Teslemetry may build its own app in the future.
If you want to sell your own subscription and own the customer relationship yourself, look at Teslemetry Pro instead.
Branding
Describe your app as "Works with Teslemetry".
To use the Teslemetry wordmark or brandmark inside your app, see the Teslemetry brand page. Teslemetry can share these assets, or create versions to suit your requirements. Please send a screenshot of how your app uses them to support.
Beta testing
Beta invites are welcome. When your app is in TestFlight or another beta program, send an invite to support.
Commands cost credits
Vehicle commands use your user's credits, and so does waking a sleeping vehicle. See Handling Sleep for command and wake-up costs, and Polling and Credits for what data requests cost.
Reading vehicle data
Prefer streaming
Read vehicle data from the /sse streaming endpoint where you can. Read the streaming endpoint spec and filter the stream to the data your app actually needs. See Telemetry for how streaming works, and Telemetry Fields for the available fields.
You can change a vehicle's streaming configuration to stream the fields your app needs. Each vehicle has a streaming budget that limits this configuration, and some Teslemetry plans have larger streaming budgets.
Polling fallback
If your app cannot use streaming, use the vehicle telemetry endpoint. It supports a cursor, so each poll returns only the data since your last poll.