You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TeslaSync exposes 65 unique Tesla Fleet API command endpoints plus a set of
convenience aliases. This page is the user-facing reference. The implementation
source of truth is internal/tesla/client_commands.go.
How a command is sent
Frontend β POST /api/v1/vehicles/{vin}/command
{ "command": "<name>", "params": { ... } }
β
βΌ
internal/tesla/client_commands.go::SendCommand
β
ββββββββ΄βββββββ
β β
noProxy=true noProxy=false AND commandProxyURL is set
β β
βΌ βΌ
Fleet API Vehicle Command Proxy ββ signs ββΊ Fleet API
(wake_up)
wake_up always goes directly to Fleet API β it does not require signing.
Every other command is routed through the Vehicle Command Proxy when
one is configured (set VEHICLE_COMMAND_PROXY_URL). The proxy signs the
request with your partner key for vehicles that require it (Model 3/Y from
2021+, Model S/X refresh, Cybertruck).
If no proxy is configured, the command is sent directly. This works only for
vehicles that don't require signing.
Successful responses return the Tesla envelope {"response": {"result": true}}
verbatim. On failure, the API returns a non-2xx with {"error": "...", "details": "..."}.
The automation action executor uses tesla.IsKnownCommand(name) at parse time
to reject unknown commands before saving the rule. This means a typo in an
automation surfaces immediately, not at firing time.
Where commands appear in the UI
Vehicle Detail β single-vehicle action bar (most common commands)
Command palette (Cmd/Ctrl+K) β search by command name
Alert Studio β alert rules can trigger commands as a response
Automations β multi-step automations chain commands together
Admin β Dev Tools β Fleet API β raw command sender + history
Notes
Rate limits. Tesla applies per-vehicle rate limits. TeslaSync's client
obeys a local rate-limiter; rejected requests get back pressure with a
clear error rather than silent drops.
Tracing. Every command emits an OpenTelemetry span with
tesla.vehicle.vin and tesla.command attributes. View in Jaeger
when the tracing profile is enabled.
Audit. Every command goes through logCallback, which writes to the
API logs table β visible at Admin β API Logs.
Adding a new command. Add an entry to the commands map in
internal/tesla/client_commands.go and the corresponding Tesla endpoint
becomes available to the rest of the stack (UI, automations, alerts).
IsKnownCommand is the validation surface; no other code needs to change.