Renouveler un jeton API Tradovate avant son expiration
Un jeton d'accès Tradovate ne dure que 90 minutes. Voici comment le renouveler selon un calendrier régulier afin que votre session, et vos ordres automatisés, n'expirent jamais réellement.
Un jeton d'accès Tradovate ne dure pas toute votre journée de trading. Il est valide pendant 90 minutes à partir du moment où vous vous connectez, et une fois cette fenêtre refermée, chaque appel authentifié revient avec une erreur 401. Si un bot détient une position à ce moment-là, il ne peut envoyer ni stop, ni objectif, ni ordre de clôture tant qu'il ne s'est pas réauthentifié. Ce n'est pas une bonne position à occuper.
La solution est ennuyeuse dans le bon sens du terme : renouvelez le jeton pendant qu'il est encore valide, selon un calendrier, afin que la session n'expire jamais réellement. Vous appelez un seul endpoint, vous remplacez le jeton par le nouveau, et vous continuez. Voici la routine complète.
Pourquoi renouveler plutôt que simplement se reconnecter
Vous pourriez intercepter le 401 et appeler une seconde fois le endpoint de connexion (/auth/accessTokenRequest). N'en faites pas votre pratique par défaut. Une nouvelle connexion ouvre une toute nouvelle session, et Tradovate plafonne le nombre de sessions que vous pouvez détenir simultanément ainsi que la fréquence à laquelle vous pouvez demander des jetons. Si vous vous appuyez trop sur de nouvelles connexions, vous finirez par déclencher une limite de requêtes ou une pénalité temporelle. Le renouvellement maintient la même session active, ce qui vous permet d'éviter les deux. Considérez une reconnexion complète comme une sortie de secours, pas comme la routine.
| Renouvellement /auth/renewAccessToken | Nouvelle connexion /auth/accessTokenRequest | |
|---|---|---|
| Session | Conserve votre session actuelle | Démarre une nouvelle session |
| Identifiants | Non nécessaires, utilise votre jeton actuel | Nom d'utilisateur et mot de passe complets |
| Quand l'utiliser | À chaque cycle, avant expiration | Uniquement après l'expiration complète du jeton |
| Risque | Minimal | Peut déclencher des limites de session ou de requêtes |
Avant de commencer
- L'accès API activé pour votre compte et un jeton d'accès fonctionnel.
- Les valeurs
accessTokenetexpirationTimede votre réponse de connexion la plus récente. - N'importe quel mécanisme capable d'exécuter une minuterie : une tâche cron, un
setInterval, un thread en arrière-plan. Le langage n'a pas d'importance.
Renouveler le jeton : étape par étape
Enregistrez l'expirationTime de votre réponse de connexion
Lorsque vous vous authentifiez, le JSON renvoyé contient plus que le jeton. Deux champs comptent ici : accessToken, que vous envoyez à chaque requête, et expirationTime, un horodatage ISO indiquant quand ce jeton expire. Stockez les deux. L'expirationTime est votre horloge de compte à rebours, tout le reste en dépend.
Vérifiez l'horloge toutes les quelques minutes
Ne vous contentez pas d'attendre passivement 75 minutes en espérant que tout ira bien. Exécutez une vérification légère à un intervalle court, toutes les deux minutes suffit amplement, qui compare l'heure actuelle à votre expirationTime stockée. Lorsque l'écart descend sous environ 15 minutes, il est temps de renouveler. Vérifier à intervalles réguliers signifie aussi qu'un processus mis en pause ou redémarré se réévalue par rapport à l'heure réelle plutôt que par rapport à un compte à rebours obsolète.
Appelez le endpoint de renouvellement pendant que le jeton est encore valide
Appelez /auth/renewAccessToken avec votre jeton d'accès actuel, encore valide, dans l'en-tête Authorization: Bearer. Pas de nom d'utilisateur, pas de mot de passe, pas de reconnexion, le endpoint se contente de prolonger la session que vous avez déjà. La seule règle stricte : le jeton que vous envoyez doit encore être valide. Renouvelez-le après son expiration et l'appel échoue, ce qui vous ramène à une connexion complète.
Remplacez par le nouveau jeton et réinitialisez votre horloge
La réponse du renouvellement vous fournit un nouvel accessToken et une nouvelle expirationTime. Écrasez vos valeurs stockées avec les deux, puis laissez votre intervalle continuer à surveiller le nouvel horodatage. Faites cela à chaque cycle et une seule session peut tourner toute la journée, voire toute la semaine, sans interruption. Ratez-le, et vous devrez vous réauthentifier sous pression.



POST /auth/renewAccessTokenAuthorization: Bearer <accessToken>
Si le jeton a déjà expiré
Cela arrive. Un processus est mis en pause, une machine se met en veille, l'appel de renouvellement dépasse l'échéance. Dans ce cas, renouveler ne vous sauvera pas, le endpoint a besoin d'un jeton encore valide. Effectuez à nouveau une connexion complète pour obtenir un nouveau jeton et démarrer une session fraîche, puis reprenez immédiatement la boucle de renouvellement pour que cela ne se reproduise pas. Si vous continuez à voir des erreurs 401 et n'êtes pas sûr qu'il s'agisse d'une expiration ou d'autre chose, la solution pour le 401 Unauthorized (jeton expiré) détaille les causes habituelles.
Une fois votre session maintenue active, l'élément qui déplace réellement du volume est le routage des ordres ; consultez comment passer des ordres via l'API Tradovate.
Automatisez cela avec PickMyTrade
Vous préférez ne pas du tout écrire ni surveiller une boucle de rafraîchissement ? PickMyTrade maintient la session active pour vous, afin que vos alertes TradingView soient acheminées directement vers votre compte sans que vous ayez à gérer les jetons manuellement.
Évitez la boucle de rafraîchissement des jetons
Vous préférez ne pas du tout écrire ni surveiller une boucle de rafraîchissement ? PickMyTrade maintient la session active pour vous, afin que vos alertes TradingView soient acheminées directement sans que vous ayez à gérer les jetons manuellement.
Démarrez votre essai gratuit de 5 joursCe guide est fourni à des fins éducatives et informatives uniquement et ne constitue pas un conseil financier, d'investissement ou de trading. Le trading de contrats à terme et d'autres produits à effet de levier comporte un risque de perte substantiel et ne convient pas à tous les investisseurs. PickMyTrade est une plateforme d'automatisation tierce indépendante et n'est affiliée à, approuvée par, ni sponsorisée par Tradovate, Inc. « Tradovate » et tous les noms, logos et marques associés sont la propriété de leurs détenteurs respectifs. Les fonctionnalités et étapes de la plateforme évoluent avec le temps ; confirmez toujours la procédure actuelle dans la plateforme et la documentation officielles de Tradovate avant d'agir.