Tradovate API 401 live: Geräte-ID nicht genehmigt
Ihr Bot authentifiziert sich problemlos und handelt im Demokonto ohne Probleme, doch jede Live-Order kommt mit 401 Access is denied zurück. Das ist fast nie ein Fehler im Code, sondern ein fehlender Geräte-Handshake, den nur der Live-Modus erzwingt.
Sie richten einen Tradovate-Bot ein, sehen ihn tagelang tadellos gegen die Demo feuern, richten ihn dann auf Ihr live finanziertes Konto, und jede Order kommt mit einem 401 mit Access is denied zurück. Das ist eine der häufigsten Hürden, an denen API-Trader scheitern, und fast nie ein Fehler in Ihrem Code. Live-Tradovate erzwingt eine Regel, die die Demo stillschweigend ignoriert: Jede Authentifizierungsanfrage muss eine permanente, verifizierte deviceId mitführen, und dieses Gerät muss über einen per E-Mail zugesandten Link genehmigt werden, bevor es echte Orders routen kann. Der Fehler tritt in zwei Formen auf: ein einfaches 401 Access is denied, oder eine 200-Antwort, deren Payload failureReason: UnknownReason, failureText: Access is denied lautet, aber die Ursache ist derselbe fehlende Geräte-Handshake. Hier ist die vollständige Diagnose und Lösung, sowie wie eine Bridge wie PickMyTrade den Geräte-Genehmigungstanz komplett überspringt.
Schnelle Checkliste für einen reinen Live-401
- Richten Sie jeden Aufruf auf den Live-Host, verwenden Sie
https://live.tradovateapi.com/v1, niemalsdemo.tradovateapi.com, sobald Sie live gehen. - Senden Sie eine permanente
deviceId, eine stabile UUID-artige Zeichenfolge, die Sie bei jedem Login von diesem Rechner wiederverwenden, nicht jedes Mal einen neuen Zufallswert. - Genehmigen Sie das Gerät, öffnen Sie die Tradovate-Geräte-Genehmigungs-E-Mail und bestätigen Sie den Link, bevor Sie erwarten, dass Live-Orders geroutet werden.
- Rufen Sie Ihre Live-
accountIderneut ab, Live- und Demokonten tragen unterschiedlicheaccountId-Werte; holen Sie die Live-ID von/account/list. - Verwenden Sie die korrekte
accountSpec, das Live-Format (z. B.Vxxxxx) unterscheidet sich vom Demo-Format (DEMOxxxxx). - Bestätigen Sie die Order-Schreibberechtigung, der API-Schlüssel benötigt vollen Order-Zugriff, nicht nur schreibgeschützte Marktdaten.
Was „Access Is Denied“ bedeutet
Die Antwort Access is denied bedeutet, dass Tradovate Ihnen mitteilt, dass die Sitzung oder das Gerät, das die Anfrage stellt, nicht autorisiert wurde, auf einem Live-Konto zu agieren, obwohl Ihr Benutzername, Passwort und API-Secret alle korrekt sind. Deshalb ist es so verwirrend: Dieselben Anmeldedaten, die in der Demo problemlos authentifizieren und Orders platzieren, schlagen plötzlich fehl, sobald Sie zum Live-Host wechseln.
Sie sehen es vielleicht als sauberen HTTP-401, oder, irreführender, als HTTP-200, dessen JSON-Body eine Fehler-Payload wie [{'s': 200, 'i': 3, 'd': {'failureReason': 'UnknownReason', 'failureText': 'Access is denied'}}] trägt. Nur Live erzwingt verifizierte Geräte-IDs. Das ist einer der ganz wenigen Unterschiede zwischen Sim und Live, und der Hauptgrund, warum 401er bei Live auftauchen, aber nie bei Sim. Mit anderen Worten: Das ist ein Zwei-Faktor-/Geräte-Vertrauens-Gate, kein defekter Order-Body.
Häufigste Ursachen für einen Live-401
1. Sie greifen noch auf den Demo-Host zu
Die trivialste Ursache: Die Basis-URL wurde nie umgestellt. Demo-Token und Demo-Konto-IDs sind gegen den Live-Endpunkt wertlos, und umgekehrt. Wenn Sie nicht von demo.tradovateapi.com zu live.tradovateapi.com gewechselt haben, schlagen Anfragen für Live-Konten schlicht fehl.
2. Sie senden keine permanente deviceId
Die deviceId ist eine Zeichenfolge von bis zu 64 Zeichen, die dazu dient, das physische Gerät, das die Anfrage stellt, eindeutig und dauerhaft zu identifizieren. Die Demo prüft sie nie, deshalb lassen viele Integrationen sie weg oder erzeugen bei jedem Lauf einen Wegwerfwert. Live lehnt das ab. Bei jedem Login eine neue deviceId zu erzeugen, sieht außerdem jedes Mal wie ein brandneues, nicht genehmigtes Gerät aus, sodass der 401 nie verschwindet.
3. Das Gerät wurde nie über den E-Mail-Link genehmigt
Das ist die Ursache, die die meisten übersehen. Da Tradovate die deviceId als Teil seiner Zwei-Faktor-Authentifizierung behandelt, muss ein neues Gerät außerhalb des eigentlichen Kanals bestätigt werden. Sie erhalten eine E-Mail, um die Geräte-ID zu genehmigen, und solange Sie sie auf Live nicht genehmigen, verweigert es weiterhin den Zugriff. Kein Genehmigungsklick, kein Live-Zugriff, Punkt.
4. Sie haben die accountId oder accountSpec aus der Demo mit in Live übernommen
Ihre Live- und Demokonten teilen sich nicht dieselbe numerische accountId, und auch die Zeichenfolge accountSpec unterscheidet sich (eine Live-Spec gegenüber einer mit DEMO-Präfix). Verwenden Sie die Demo-Werte gegen den Live-Host wieder, erhalten Sie denselben Access is denied, selbst wenn das Gerät bereits vertrauenswürdig ist.
5. Dem API-Schlüssel fehlt der Order-Schreibzugriff
Wenn der Schlüssel oder die App nur für schreibgeschützten Zugriff oder Marktdaten bereitgestellt wurde, wird die Live-Order-Platzierung verweigert. Der Schlüssel benötigt vollständige Order-(Schreib-)Berechtigung, die über das API-Access-Add-on von Tradovate und die App-Konfiguration bereitgestellt wird.
So beheben Sie den Live-401: Schritt für Schritt
Eine fehlende oder nicht permanente deviceId beheben
Erzeugen Sie eine stabile deviceId im UUID-Stil
Erstellen Sie eine stabile, UUID-artige Zeichenfolge für die Maschine, auf der Ihr Bot läuft, zum Beispiel 71986488-882c-43db-c345-92a0a2ed9329. Ein strenges UUID-Format ist weniger wichtig, als dass der Wert eindeutig und unveränderlich ist; bis zu 64 Zeichen sind erlaubt.
Speichern Sie sie, erzeugen Sie sie nicht neu
Speichern Sie sie als Konstante, in einer Konfigurationsdatei, als Umgebungsvariable oder in einem Secrets-Store. Randomisieren Sie sie niemals pro Lauf.
Senden Sie sie bei jedem Login
Fügen Sie sie im Access-Token-Request-Body zusammen mit Ihren anderen Anmeldefeldern hinzu, name, password, appId, appVersion, cid, sec und deviceId, und verwenden Sie exakt dieselbe Zeichenfolge bei jedem weiteren Login von diesem Gerät wieder.

Das Gerät über den per E-Mail zugesandten Link genehmigen
Beobachten Sie Ihren Posteingang nach dem ersten Live-Versuch
Beobachten Sie nach Ihrem ersten Live-Authentifizierungsversuch mit einer neuen deviceId den Posteingang, der mit Ihrem Tradovate-Konto verknüpft ist, auf eine Geräte-Genehmigungsnachricht.
Prüfen Sie Spam, Junk und Werbung
Prüfen Sie die Ordner für Spam, Junk und Werbung, die Genehmigungs-E-Mail wird ständig herausgefiltert.
Bestätigen Sie den Genehmigungslink
Öffnen Sie die E-Mail und bestätigen Sie den Genehmigungslink. Das ist es, was das Gerät in der Live-Umgebung von „unbekannt“ auf „vertrauenswürdig“ umschaltet.
Führen Sie die Live-Authentifizierung erneut aus
Führen Sie Ihre Live-Authentifizierung erneut aus. Orders, die zuvor Access is denied zurückgegeben haben, sollten jetzt geroutet werden.

Den Host wechseln und Live-Kontowerte erneut abrufen
Richten Sie die Basis-URL auf Live
Ändern Sie Ihre Basis-URL für jede Anfrage in https://live.tradovateapi.com/v1, sobald Sie live sind.
Fordern Sie ein neues Live-Access-Token an
Fordern Sie ein neues Live-Access-Token vom Live-Host an.
Rufen Sie die Live-accountId erneut ab
Rufen Sie /account/list mit diesem Live-Token auf und lesen Sie die tatsächliche numerische accountId aus der Antwort.
Setzen Sie die Live-accountSpec
Setzen Sie accountSpec auf den für das Live-Konto angezeigten Wert (die Live-Format-Spec, nicht die mit DEMO-Präfix) und verwenden Sie die passende accountId in Ihrem Order-Body.
API-Access-Berechtigung bestätigen
Öffnen Sie die API-Access-Einstellungen
Melden Sie sich bei der Tradovate-Webplattform an und öffnen Sie den Einstellungsbereich, der API Access / verbundene Anwendungen regelt.
Überprüfen Sie die vollständigen Order-Berechtigungen
Überprüfen Sie, ob das API-Access-Add-on aktiviert ist und Ihre App über vollständige Order-Berechtigungen verfügt, nicht nur schreibgeschützt.
Überlegen Sie es sich zweimal, bevor Sie 2FA deaktivieren
Wenn Sie die Zwei-Faktor-Authentifizierung als Abkürzung deaktiviert haben, sollten Sie den Kompromiss kennen: Das Ausschalten von 2FA vermeidet den E-Mail-Schritt pro Gerät, schwächt aber die Kontosicherheit und lohnt sich bei einem finanzierten Live-Konto nicht. Das einmalige Genehmigen des Geräts ist der sicherere Weg.

Fehlerbehebungstabelle
| Fehler / Symptom | Bedeutung | Lösung |
|---|---|---|
| 401 Access is denied nur bei Live | Gerät auf Live nicht verifiziert/genehmigt | Senden Sie eine permanente deviceId und bestätigen Sie den per E-Mail zugesandten Geräte-Genehmigungslink |
| 200 mit failureReason: UnknownReason, failureText: Access is denied | Authentifizierung erfolgreich, aber Gerät/Sitzung ist für Live-Orders nicht vertrauenswürdig | Genehmigen Sie das Gerät per E-Mail; verwenden Sie bei jedem Login dieselbe deviceId wieder |
| Funktioniert in Demo, schlägt bei Live mit identischem Code fehl | Nur der Host/die URL unterscheidet sich | Wechseln Sie die Basis-URL zu https://live.tradovateapi.com/v1 |
| Access is denied, nachdem das Gerät genehmigt wurde | Demo-accountId/-accountSpec bei Live wiederverwendet | Rufen Sie die Live-accountId erneut von /account/list ab; setzen Sie die Live-accountSpec |
| Jeder Login löst eine neue Genehmigungs-E-Mail aus | deviceId wird bei jedem Lauf neu erzeugt | Speichern Sie eine stabile deviceId-Zeichenfolge dauerhaft und verwenden Sie sie wieder |
| Lese-Anfragen funktionieren, Order-Platzierung wird verweigert | API-Schlüssel fehlt der Order-Schreibumfang | Aktivieren Sie das API-Access-Add-on und gewähren Sie vollständige Order-Berechtigungen |
Wo PickMyTrade ins Spiel kommt
Wenn Sie Ihre TradingView-Signale lieber live handeln möchten, ohne Geräte-IDs, Genehmigungs-E-Mails und Endpunkt-Wechsel selbst zu verwalten, übernimmt PickMyTrade den Broker-Handshake für Sie:
- Verwaltete Live-Verbindung die Geräte-Vertrauens- und Endpunkt-Verwaltung, die rohe API-Integrationen zu Fall bringt, läuft im Hintergrund ab, sodass Live-Orders beim ersten Mal geroutet werden.
- Berechtigungs- und Risikofilter berücksichtigt den Datenvereinbarungsstatus Ihres Kontos und Prop-Firm-Limits, bevor überhaupt eine Order gesendet wird.
- Rate-Limit-sicheres Routing staffelt den Order-Flow, sodass Authentifizierungs- und Order-Aufrufe nicht abgewiesen werden.
- Multi-Konto-Synchronisierung spiegelt dasselbe Signal über mehrere Tradovate-Konten hinweg, ohne dass Sie einen separaten Geräte-Handshake pro Bot pflegen müssen.
Überspringen Sie den Geräte-Genehmigungstanz
PickMyTrade übernimmt den Live-Tradovate-Handshake für Sie, sodass Ihre TradingView-Signale beim ersten Mal geroutet werden, ohne deviceId oder Genehmigungs-E-Mails.
Starten Sie Ihre kostenlose 5-Tage-TestversionHäufig gestellte Fragen
Die Demo erzwingt keine Geräteverifizierung, Live hingegen schon. Live benötigt eine permanente, genehmigte deviceId sowie den korrekten Live-Host, die accountId und die accountSpec. Code, der nur bei Live fehlschlägt, ist das klassische Anzeichen einer fehlenden Geräte-Genehmigung.
Es handelt sich um eine Zeichenfolge von bis zu 64 Zeichen, die die anfragende Maschine dauerhaft identifiziert. Ein UUID-artiger Wert wie 71986488-882c-43db-c345-92a0a2ed9329 funktioniert gut. Am wichtigsten ist, dass sie eindeutig für das Gerät ist und bei jedem Login unverändert wiederverwendet wird.
Prüfen Sie zunächst die Ordner für Spam, Junk und Werbung, da die Genehmigungsnachricht oft herausgefiltert wird. Bestätigen Sie, dass die E-Mail-Adresse in Ihrem Tradovate-Konto korrekt ist, versuchen Sie die Live-Authentifizierung erneut, um eine neue E-Mail auszulösen, und klicken Sie auf den Genehmigungslink, sobald er eintrifft.
Manche Trader tun das, weil es den E-Mail-Schritt pro Gerät entfernt, aber es schwächt die Sicherheit eines finanzierten Live-Kontos erheblich. Das einmalige Genehmigen des Geräts ist sicherer und muss nur pro neuer Maschine erfolgen.
Nein. Ein 401 wegen Token-Ablauf tritt nach etwa 90 Minuten auf, wenn Ihr Access-Token abläuft, und Sie beheben ihn, indem Sie das Token erneuern. Der Geräte-Genehmigungs-401 tritt bei Ihrer allerersten Live-Anfrage auf und wird behoben, indem Sie das Gerät als vertrauenswürdig einstufen.
Sie können eine deviceId pro physischem Gerät über mehrere Konten hinweg wiederverwenden, aber jedes eindeutige Gerät, von dem aus Sie sich authentifizieren, muss bei Live genehmigt werden. Wenn Sie viele Bots von vielen Maschinen aus betreiben, bedeutet das, jede Maschine einmal zu genehmigen.
Die häufigste verbleibende Ursache sind veraltete Demo-Werte: die Wiederverwendung der Demo-accountId oder -accountSpec gegen den Live-Host. Rufen Sie die Live-accountId erneut von /account/list ab und setzen Sie die korrekte Live-accountSpec.
Sie übergeben die deviceId in Ihrer Authentifizierungsanfrage. Die Tradovate-Web-App zeigt Geräte- und API-Details außerdem in ihren API- und Verbindungseinstellungen an, sodass Sie genehmigte Geräte dort überprüfen können.
Diese Anleitung dient ausschließlich Bildungs- und Informationszwecken und stellt keine Finanz-, Anlage- oder Handelsberatung dar. Der Handel mit Futures und anderen gehebelten Produkten birgt ein erhebliches Verlustrisiko und ist nicht für jeden Anleger geeignet. PickMyTrade ist eine unabhängige Drittanbieter-Automatisierungsplattform und weder mit Tradovate, Inc. verbunden noch von diesem unterstützt oder gesponsert. Alle zugehörigen Namen, Logos und Marken sind Eigentum ihrer jeweiligen Inhaber. Plattformfunktionen und -schritte ändern sich im Laufe der Zeit, bestätigen Sie daher stets den aktuellen Prozess in der offiziellen Tradovate-Plattform und -Dokumentation, bevor Sie handeln.