Teslita API v1

Teslita API

Die Teslita-API gewährt Drittanbieter-Anwendungen Lesezugriff auf die Fahrzeug-, Fahrt-, Lade- und Akkudaten eines Teslita-Nutzers, sowie eine begrenzte Auswahl an Schreib-Endpunkten zum Auslösen serverseitiger Aktionen wie der Synchronisierung des Supercharger-Verlaufs.

Die API ist nach REST-Prinzipien aufgebaut, verwendet vorhersehbare ressourcenorientierte URLs, akzeptiert und liefert JSON und authentifiziert Anfragen mit Bearer-Tokens. Alle Anfragen laufen über TLS – einfaches HTTP wird abgelehnt.

Basis-URL

https://api.teslita.com

Funktionsweise der Schlüssel

Jeder API-Schlüssel gehört zu genau einem Teslita-Nutzer, und jede damit authentifizierte Anfrage greift auf dessen Daten zu. Es gibt keinen mandantenübergreifenden Schlüssel: Ein Partner, der Zugriff auf mehrere Teslita-Konten benötigt, braucht einen Schlüssel pro Konto. Schlüssel werden vom Kontoinhaber erstellt und nur einmalig bei der Erstellung angezeigt – serverseitig wird nur ein SHA-256-Hash gespeichert, sodass ein verlorener Schlüssel nicht wiederhergestellt werden kann und ersetzt werden muss.

Authentifizierung #

Authentifizieren Sie Anfragen, indem Sie Ihren Schlüssel im Authorization-Header als Bearer-Token mitsenden. Schlüssel haben das Format tsk_ gefolgt von 40 URL-sicheren Zeichen (~230 Bit Entropie). Geben Sie sie niemals in die Versionskontrolle, in Logdateien oder an den Browser weiter – behandeln Sie sie wie ein Datenbank-Passwort.

Geltungsbereiche

Es gibt drei Geltungsbereiche. Ein Schlüssel kann beliebige Kombinationen tragen.

read Alle GET-Endpunkte: Fahrzeuge, Fahrten, Laden, Akkugesundheit, Einstellungen.
write Serverseitige Datenoperationen – etwa das Auslösen einer Supercharger-Verlaufssynchronisation. Umfasst keine physischen Fahrzeugbefehle.
control Physische Befehle an das Fahrzeug: Laden starten/stoppen heute, weitere folgen. Getrennt von write, damit Betreiber Datensynchronisation gewähren können, ohne Fahrzeugkontrolle zu erlauben.

Wird ein Endpunkt mit einem Schlüssel aufgerufen, dem der erforderliche Geltungsbereich fehlt, antwortet die API mit 403 forbidden.

Fehlerfälle

Ein fehlender, fehlerhafter oder widerrufener Schlüssel ergibt 401. Wir unterscheiden in der Fehlermeldung nicht zwischen "nicht gesendet" und "gesendet, aber ungültig", um Credential-Stuffing nicht zu erleichtern.

Konventionen #

Zeitstempel

Jeder Zeitstempel ist im ISO-8601-Format, immer in UTC und immer mit dem Suffix Z. Beispiel: 2026-04-24T17:30:16Z.

Bezeichner

Numerische Datenbank-IDs werden in JSON als Zeichenketten serialisiert, um die 53-Bit-Integer-Grenze in JavaScript zu umgehen. Behandeln Sie sie als opak – führen Sie keine Berechnungen damit durch. VINs (17 Großbuchstaben) sind durchgehend der Geschäftsschlüssel für Fahrzeuge in der API.

Einheiten

Energie in kWh, Leistung in kW, Spannung in V, Temperaturen in °C. Kosten werden in der nativen Währung der Sitzung zurückgegeben; Partner sind selbst für eventuelle Umrechnungen zuständig.

Strecke, Geschwindigkeit und Reifendruck werden sowohl in metrischen als auch in imperialen Einheiten zurückgegeben – jede Strecke hat sowohl ein _km- als auch ein _mi-Feld, jede Geschwindigkeit _kmh und _mph, jedes Reifendruck-Objekt tpms_bar neben tpms_psi, und kurze Distanzen werden als _m und _ft bereitgestellt. Der metrische Wert ist immer kanonisch (zuerst aus den Quelldaten berechnet); der imperiale Wert wird zur Serialisierungszeit abgeleitet. Partner wählen die gewünschte Einheit und ignorieren die andere.

Einheiten sind in die Feldnamen eingebaut, sodass Partner beim Lesen einer Antwort sofort erkennen, in welcher Einheit ein Wert vorliegt: _kwh, _kmh, _mph, _km, _mi, _bar, _psi, _c.

Paginierung

Listen-Endpunkte paginieren cursorbasiert. Senden Sie ?limit= (Standard 50, Max. 200) und ?cursor=. Die Antwort enthält next_cursor – senden Sie diesen Wert als cursor zurück, um die nächste Seite zu laden. Wenn next_cursor den Wert null hat, ist das Ende erreicht. Cursors sind opak und sollten nicht geparst werden.

Datumsfilter

?from= und ?to= akzeptieren entweder ISO-8601 (2026-04-24T00:00:00Z) oder das kürzere YYYY-MM-DD. Beide Grenzen sind inklusiv und werden als UTC interpretiert.

Fehler #

Fehler werden als JSON mit stabiler Form zurückgegeben, sodass Sie sie verarbeiten können, ohne nur auf den HTTP-Status zu schauen. Der code ist maschinenlesbar und stabil; die message ist menschenlesbar und kann sich ändern.

missing_auth401 Unauthorized Es wurde kein Authorization-Header gesendet.
invalid_auth401 Unauthorized Schlüssel ist unbekannt, fehlerhaft oder widerrufen.
forbidden403 Forbidden Schlüssel verfügt nicht über den erforderlichen Geltungsbereich (z. B. write).
not_found404 Not Found Route existiert nicht oder Ressource gehört nicht diesem Nutzer.
bad_request400 Bad Request Ein Parameter fehlt, ist fehlerhaft oder liegt außerhalb des gültigen Bereichs.
rate_limited429 Too Many Requests Schlüssel-Limit überschritten. Warten Sie 60 Sekunden vor dem nächsten Versuch.
tesla_not_connected409 Conflict Nutzer hat kein verknüpftes Tesla-Konto – erforderlich für Schreibzugriffe, die Tesla weiterleiten.
upstream_error502 Bad Gateway Ein erforderlicher vorgelagerter Dienst (in der Regel Tesla) ist ausgefallen.
internal_error500 Internal Error Unerwarteter serverseitiger Fehler. Ein erneuter Versuch kann helfen; falls er bestehen bleibt, kontaktieren Sie den Support.

Anfragen-Limits #

Jeder Schlüssel hat ein Festzeit-Anfragenlimit, gemessen pro 60-Sekunden-Fenster. Der Standard ist 120 Anfragen pro Minute. Betreiber können bei der Erstellung pro Schlüssel einen abweichenden Wert festlegen, wenn ein Partner einen begründeten Bedarf an einer höheren Obergrenze hat.

Beim Überschreiten des Limits antwortet die API mit 429 rate_limited. Die Obergrenze setzt sich zu Beginn des nächsten Fensters zurück. Wir empfehlen exponentielles Backoff mit Jitter für Wiederholungen; eine enge Wiederholungsschleife trifft einfach wieder auf dieselbe Grenze.

Anfragenzähler werden pro Schlüssel geteilt, nicht pro IP. Wenn Sie Aufrufe über mehrere Server mit demselben Schlüssel verteilen, zählen sie alle in denselben Topf.

Versionierung #

Jede Route trägt die API-Version in der URL (/v1/…). Innerhalb einer Version nehmen wir nur additive Änderungen vor: Wir können neue Felder, neue Endpunkte oder neue optionale Parameter hinzufügen, aber keine bestehenden Felder entfernen, umbenennen oder ihre Typen ändern.

Inkompatible Änderungen werden als neues Versionspräfix ausgeliefert (/v2/…). Ältere Versionen werden für ein dokumentiertes Auslaufzeitfenster parallel weiter unterstützt.

Behandeln Sie unbekannte Felder als optional – wenn Sie ein Feld in einer Antwort sehen, das Sie zuvor nicht kannten, können Sie es gefahrlos ignorieren.

GET /v1/health public

Gesundheitscheck #

Liveness-Probe für Uptime-Monitoring. Antwortet schnell, erfordert keine Authentifizierung und greift nicht auf die Datenbank zu. Die Antwortform ist stabil – Monitoring-Tools können auf status === "ok" prüfen.

GET /v1/me read

Aktuellen Nutzer abrufen #

Gibt den Teslita-Nutzer zurück, zu dem Ihr Schlüssel gehört, samt Metadaten zum Schlüssel selbst. Nützlich für die allererste Anfrage – sie bestätigt, dass der Schlüssel gültig ist, zeigt das verknüpfte Konto und die Geltungsbereiche und hilft, einen veralteten oder ausgetauschten Schlüssel zu erkennen.

Rückgabewerte

user.idstring The Teslita user's ID. Opaque — use for equality checks only.
user.emailstring Account email.
user.display_namestring | null Name the user set, if any.
user.languagestring | null Two-letter language code (en, de, …).
key.scopesarray<string> Scopes carried by this key. One or both of read, write.
GET /v1/settings read

Nutzereinstellungen abrufen #

Die Anzeigeeinstellungen, der Heimstandort und die Locale-Konfiguration des Nutzers. Diese Werte steuern, wie die Teslita-Oberfläche selbst Zahlen und Daten darstellt – das Spiegeln dieser Werte in einer Partneranwendung sorgt für ein konsistentes Erlebnis.

Rückgabewerte

languagestring | nullTwo-letter code.
pressure_unitstring | nullbar or psi.
temperature_unitstring | nullcelsius or fahrenheit.
countrystring | nullISO 3166-1 alpha-2 code.
currencystring | nullISO 4217 code (EUR, USD, …).
timezonestring | nullIANA zone name.
home.latitudenumber | nullSigned decimal degrees.
home.longitudenumber | nullSigned decimal degrees.
home_kwh_pricenumber | nullUnit price used to estimate cost of home-charging sessions.
GET /v1/vehicles read

Fahrzeuge auflisten #

Alle Fahrzeuge, die mit dem Tesla-Konto des Nutzers verknüpft sind. Enthält auch archivierte Fahrzeuge, die der Nutzer nicht mehr besitzt – diese haben disconnected_at gesetzt. Ihre historischen Fahrt- und Ladedaten bleiben erhalten und sind weiterhin abfragbar.

Rückgabewerte

data[].vinstring17-character Tesla VIN. Use as the path parameter on vehicle-scoped endpoints.
data[].display_namestring | nullName set in the Tesla app.
data[].custom_namestring | nullNickname set inside Teslita (overrides display_name in UIs).
data[].modelstring | nullModel S, Model 3, Model X, Model Y, Cybertruck, Roadster, Semi.
data[].telemetry_enabledbooleanWhether Fleet Telemetry is provisioned on the vehicle.
data[].disconnected_attimestamp | nullNon-null if Tesla no longer returns this VIN on the user's fleet.
GET /v1/vehicles/{vin} read

Fahrzeug abrufen #

Gleiche Form wie ein Eintrag in Fahrzeuge auflisten, eingebettet in einen data-Umschlag. Liefert 404 not_found, wenn die VIN diesem Nutzer nicht gehört.

Pfadparameter

vinstringerforderlich 17-stellige Tesla-VIN aus Fahrzeuge auflisten.
GET /v1/vehicles/{vin}/state read

Live-Zustand #

Aktueller Telemetrie-Schnappschuss eines Fahrzeugs aus Tesla Fleet Telemetry, gespeichert vom Teslita-Consumer-Daemon. Erwarten Sie alle paar Sekunden Updates während der Fahrt oder beim Laden, sowie seltene Updates im geparkten Zustand.

Wenn für dieses Fahrzeug noch keine Telemetrie eingegangen ist (z. B. weil die Telemetrie-Bereitstellung noch aussteht), ist data gleich null und ein menschenlesbarer reason wird mitgeliefert.

Rückgabewerte

last_signal_attimestampWhen Tesla last sent us anything for this vehicle.
charging_statestring | nullIdle, Charging, Complete, Stopped, …
battery_levelinteger | nullState of charge, 0–100.
charge_limit_socinteger | nullUser-set charge limit, 0–100.
energy_remaining_kwhnumber | nullBest available estimate of usable battery energy.
odometer_kmnumber | nullFull odometer reading.
location.latitudenumber | nullSigned decimal degrees.
location.longitudenumber | nullSigned decimal degrees.
gearstring | nullShiftStateP, ShiftStateD, ShiftStateR, ShiftStateN.
vehicle_speed_kmhnumber | nullInstantaneous speed in km/h.
GET /v1/vehicles/{vin}/at-home read

Ist das Auto zu Hause? #

Ein Ja/Nein, abgeleitet aus der Haversine-Distanz zwischen der zuletzt bekannten Fahrzeugposition (aus Fleet Telemetry) und den vom Nutzer konfigurierten Heimkoordinaten (aus den Einstellungen). Kein Tesla-Aufruf, kein Aufwecken. Unterliegt dem Standard-Limit pro Schlüssel ohne zusätzliche Endpunkt-Begrenzung.

Schwellenwert ist der vom Nutzer eingestellte home_radius_m oder 150 m als Standard, wenn nichts konfiguriert ist – ausreichend für eine Einfahrt plus GPS-Schwankungen, ohne den Nachbarn zu erfassen. distance_m ist immer enthalten, sodass Sie eine eigene Toleranz anwenden können, falls 150 m nicht passen.

Hat der Nutzer überhaupt keinen Heimstandort gesetzt, ist data gleich null, und reason erklärt warum. Das Gleiche gilt, wenn für das Fahrzeug noch keine Telemetrie eingegangen ist.

Rückgabewerte

at_homebooleantrue when distance_m ≤ home_location.radius_m.
distance_mintegerGreat-circle distance in metres between vehicle and home, rounded to the nearest metre.
vehicle_locationobjectlatitude and longitude from the last telemetry signal.
home_locationobjectConfigured latitude, longitude, radius_m, and radius_source ("configured" or "default").
is_freshbooleantrue when the telemetry position is within 5 minutes old.
GET /v1/vehicles/{vin}/pack-health read

Aktuelle Akkugesundheit #

Letzter Akkugesundheits-Snapshot eines Fahrzeugs: Zellenausgleich, Modultemperaturen, Isolationswiderstand, Antriebszustand und Reifendruck. Wird stündlich abgetastet, wenn das Fahrzeug Daten meldet.

Rückgabewerte (Auswahl)

battery.imbalance_mvinteger | nullMax − min brick voltage, in millivolts. A quick proxy for cell balance — under 30 mV is healthy.
battery.module_temp_max_cnumber | nullHottest module temperature at sampling time.
battery.isolation_resistance_ohminteger | nullHV isolation, ohms. Dropping values can signal insulation degradation.
drive_unitsobjectPer-drive-unit inverter state: front, rear, rear_left, rear_right. Nulls indicate absent units.
tpms_bar / tpms_psiobjectTyre pressure for each corner. Both objects always present, with identical structure (front_left, front_right, rear_left, rear_right) — pick whichever unit fits your UI.
GET /v1/vehicles/{vin}/pack-health/samples read

Akkugesundheits-Verlauf #

Historische Akkugesundheits-Datenpunkte, älteste zuerst innerhalb des Bereichs. Standardmäßig werden bis zu 500 Zeilen zurückgegeben; die harte Obergrenze beträgt 2000. Filtern Sie mit from/to für längere Zeitfenster.

Query-Parameter

fromstringoptionalISO-8601 or YYYY-MM-DD. Inclusive lower bound on sampled_at.
tostringoptionalISO-8601 or YYYY-MM-DD. Inclusive upper bound on sampled_at.
limitintegeroptionalDefault 500, max 2000.
GET /v1/trips read

Fahrten auflisten #

Abgeschlossene Fahrten, neueste zuerst, cursorbasiert paginiert. Aktive (laufende) Fahrten sind hier nicht enthalten – sie erscheinen in Live-Zustand, solange sie laufen, und tauchen hier auf, sobald sie enden.

Query-Parameter

vinstringoptionalRestrict to one vehicle.
fromstringoptionalISO-8601 or YYYY-MM-DD. Inclusive lower bound on started_at.
tostringoptionalISO-8601 or YYYY-MM-DD. Inclusive upper bound.
limitintegeroptionalDefault 50, max 200.
cursorstringoptionalValue of next_cursor from the previous response.

Rückgabewerte (Auswahl)

data[].idstringOpaque trip identifier.
data[].started_attimestampWhen the vehicle shifted out of Park.
data[].ended_attimestampWhen the vehicle returned to Park and stayed there.
data[].distance_kmnumberPath distance, not straight-line.
data[].energy_used_kwhnumber | nullDerived from start/end EnergyRemaining snapshots; null when inputs are unreliable.
data[].efficiency_wh_per_kminteger | nullComputed only when both energy and distance are usable.
next_cursorstring | nullPass back as cursor for the next page. null means you've reached the end.
GET /v1/trips/{id} read

Fahrt abrufen #

Gibt eine einzelne Fahrt zurück. Gleiche Felder wie ein Eintrag aus Fahrten auflisten, eingebettet in einen data-Umschlag. Eine Fahrt eines anderen Nutzers oder eine unbekannte ID liefert 404 not_found.

GET /v1/trips/{id}/route read

Fahrtroute #

GPS-Wegpunkte einer einzelnen Fahrt, sortiert nach recorded_at aufsteigend. Dies sind die Datenpunkte, die Teslita aus Fleet Telemetry sammelt und zu einem Pfad zusammenfügt. Jedes einzelne Feld eines Wegpunkts kann null sein – das Fahrzeug sendet nicht jedes Signal bei jedem Tick.

Punktdichte variiert mit Geschwindigkeit und Signaltyp. Erwarten Sie sub-Sekunden-Abstände während der Fahrt und mehrere zehn Sekunden im Stehen an einer Ampel. Reduzieren Sie clientseitig, wenn Sie eine feste Frequenz benötigen.

GET /v1/charging/sessions read

Ladesitzungen auflisten #

Ladesitzungen aus allen Quellen – zu Hause, am Zielort und Supercharger – zusammengeführt zu einer Zeitleiste, neueste zuerst, cursorbasiert paginiert. Das type-Feld jeder Sitzung gibt an, wo sie stattfand.

Query-Parameter

vinstringoptionalRestrict to one vehicle.
typestringoptionalOne of home, supercharger, other.
fromstringoptionalInclusive lower bound on started_at.
tostringoptionalInclusive upper bound on started_at.
limitintegeroptionalDefault 50, max 200.
cursorstringoptionalFrom previous next_cursor.
GET /v1/charging/sessions/{session_id} read

Ladesitzung abrufen #

Eine einzelne Sitzung. Form entspricht einem Eintrag aus Sitzungen auflisten, eingebettet in einen data-Umschlag. session_id-Werte von Tesla können Zeichen enthalten, die URL-codiert werden müssen – kodieren Sie sie vor dem Einsetzen in den Pfad.

GET /v1/charging/sessions/{session_id}/samples read

Ladesitzungs-Verlauf #

Leistung, Akkustand und hinzugefügte Energie über die Lebensdauer einer Ladesitzung. Die Datenpunkte stammen vom Telemetrie-Consumer-Daemon und sind nach Zeitpunkt aufsteigend sortiert, sodass die Antwort direkt als Diagramm-Eingabe verwendbar ist.

Aus dem Tesla-Verlaufsendpunkt importierte Supercharger-Sitzungen tragen keine pro-Datenpunkt-Telemetrie; dieser Endpunkt liefert für sie ein leeres samples-Array.

GET /v1/charging/invoices read

Rechnungen auflisten #

Supercharger-Sitzungen, für die eine von Tesla ausgestellte PDF-Rechnung verfügbar ist. Nur diese Sitzungen haben abrufbare PDFs – Heim-Sitzungen werden von Teslita geschätzt, nicht von Tesla in Rechnung gestellt. Jeder Eintrag enthält eine pdf_url, die auf den Binär-Download-Endpunkt verweist.

Query-Parameter

vinstringoptionalRestrict to one vehicle.
limitintegeroptionalDefault 50, max 200.
cursorstringoptionalFrom previous next_cursor.
GET /v1/charging/invoices/{session_id}.pdf read

Rechnungs-PDF herunterladen #

Streamt die von Tesla ausgestellte Supercharger-Rechnung als binäres application/pdf. Der erste Abruf kann eine Tesla-Rückfrage zur PDF-Beschaffung auslösen; spätere Abrufe werden in unter 50 ms aus einem lokalen Gzip-Cache ausgeliefert.

Jeder Aufruf hängt eine Zeile an das Rechnungsdownload-Audit-Log an, sodass der Kontoinhaber sehen kann, wer was heruntergeladen hat. Das gilt sowohl für Downloads über API-Schlüssel als auch über die Oberfläche.

Hat die Sitzung keine Tesla-Rechnung, antwortet die API mit 404 not_found.

GET /v1/vehicles/{vin}/charging/status read

Live-Ladezustand #

Eine fokussierte Sicht darauf, was das Fahrzeug gerade jetzt tut: Ladezustand, SoC, Leistung, voraussichtliche Restladezeit. Gestützt auf den lokalen Fleet-Telemetry-Cache – dieser Endpunkt ruft niemals Tesla auf und weckt das Auto niemals auf, daher kann er gefahrlos regelmäßig abgefragt werden.

Unterliegt dem Standard-Limit pro Schlüssel (120/min), ohne zusätzliche Endpunkt-Begrenzung. Wenn das Auto schläft und folglich keine Telemetrie sendet, wird is_fresh zu false und data_age_seconds zeigt, wie veraltet die Sicht ist.

GET /v1/vehicles/{vin}/charging/plugged-in read

Ist das Auto eingesteckt? #

Ein dediziertes Ja/Nein für „Ist das Ladekabel gerade mit dem Auto verbunden?". Berechnet aus demselben Fleet-Telemetry-Cache wie Ladezustand – kein Tesla-Aufruf, kein Aufwecken, gefahrlos abfragbar. Unterliegt dem Standard-Limit pro Schlüssel ohne zusätzliche Endpunkt-Begrenzung.

Intern prüfen wir sowohl charging_state als auch detailed_charge_state auf jede Variante von Disconnected, weil Tesla beim Zustandsübergang manchmal eines der beiden Felder geringfügig später aktualisiert. plugged_in ist nur dann null, wenn beide Statusfelder fehlen (noch keine Telemetrie).

POST /v1/vehicles/{vin}/charging/sync write

Supercharger-Sitzungen synchronisieren #

Löst eine inkrementelle Supercharger-Verlaufssynchronisation für ein Fahrzeug aus. Teslita fragt Tesla nach Sitzungen, die noch nicht in der eigenen Datenbank vorhanden sind, und speichert sie. Die Operation ist idempotent: Wiederholte Aufrufe gegen ein ruhiges Konto liefern inserted: 0, updated: 0.

Anfragenlimit: 24 Anfragen pro Fahrzeug pro 24 h. Dieses Limit gilt zusätzlich (und unter) dem globalen 120-pro-Minute-Limit pro Schlüssel – jeder Aufruf leitet Teslas Fleet-API weiter, die selbst teuer und limitiert ist. Der Zähler ist auf Nutzer + VIN gebunden, nicht auf den API-Schlüssel, sodass das Wechseln von Schlüsseln ihn nicht zurücksetzt. Im Schnitt sind 24/Tag etwa eine Synchronisation pro Stunde – weit über jeder realistischen Integrationskadenz.

Heim- und Zielort-Ladevorgänge werden live aus Fleet Telemetry zusammengesetzt und laufen nicht über diesen Endpunkt. Nur Supercharger-Sitzungen gehen hier durch.

Pfadparameter

vinstringerforderlich 17-stellige Tesla-VIN.
POST /v1/vehicles/{vin}/charging/start control

Laden starten #

Fordert das Fahrzeug auf, mit dem Laden zu beginnen. Setzt voraus, dass das Auto eingesteckt ist und nicht bereits lädt. Tesla weckt das Auto bei Bedarf automatisch auf – rechnen Sie in diesem Fall mit bis zu ~60 Sekunden für den Aufruf.

Funktionsweise des Kurzschluss-Pfads

Bevor wir Teslas API ansprechen, prüfen wir den lokalen Fleet-Telemetry-Cache. Wenn data_age_seconds ≤ 300 und der gecachte charging_state bereits Charging oder Starting zeigt, antwortet der Endpunkt sofort mit result: "already_charging"kein Tesla-Aufruf, kein Aufwecken, kein Verbrauch des Anfragenlimits. Zeigt der gecachte Zustand Disconnected, schlagen wir aus denselben Gründen schnell mit 409 not_plugged_in fehl.

Nur wenn die Telemetrie veraltet ist oder der Zustand mehrdeutig, fallen wir auf einen signierten Tesla-Befehl durch. Das source-Feld in der Antwort zeigt, welcher Pfad genommen wurde.

Anfragenlimit: 24 Befehle pro Fahrzeug pro 24 h, geteilt mit charging/stop. Nur Aufrufe, die tatsächlich Tesla erreichen, verbrauchen einen Slot – kurzgeschlossene Aufrufe sind kostenlos. Auf user_id + vin gebunden, sodass das Wechseln von API-Schlüsseln den Zähler nicht zurücksetzt.

POST /v1/vehicles/{vin}/charging/stop control

Laden stoppen #

Fordert das Fahrzeug auf, das Laden zu stoppen. Spiegel von charging/start – gleiche Kurzschluss-Strategie, gleiches 24-pro-Tag-Budget, gleiche Antwortform.

Wenn frische lokale Telemetrie zeigt, dass das Auto gerade nicht lädt (jeder Zustand außer Charging oder Starting), antwortet der Endpunkt mit already_stopped, ohne Tesla zu kontaktieren. Andernfalls sendet er einen signierten charge_stop-Befehl.

Anfragenlimit: 24 Befehle pro Fahrzeug pro 24 h, geteilt mit charging/start. Start und Stopp ziehen aus demselben Topf – insgesamt 24 Tesla-Aufrufe pro Fahrzeug pro Tag, nicht 24 pro Befehl.