Aller au contenu
Twexapi
Français
Esc
↑↓naviguer↵ouvrir⌘Japerçu
Sur cette page

Erreurs 429, 403 et 401 de l'API Twitter : causes et solutions

Corrigez les erreurs 429 Too Many Requests, 403 Forbidden et 401 Unauthorized de l'API X (Twitter) : ce que signifie chaque code sur l'API X officielle et sur TwexAPI, quels en-têtes lire et quand réessayer.

En bref : 429 signifie que vous avez envoyé trop de requêtes et devez attendre. 403 signifie que vos identifiants sont valides, mais qu’ils n’ont pas le droit de faire cette action. 401 signifie que vos identifiants sont absents ou incorrects. Seul un 429 se règle en attendant ; un 403 ou un 401 renverra la même erreur tant que vous ne changez pas la requête, les identifiants ou les accès.

Code Signification À vérifier d’abord Réessayer ?
429 Too Many Requests Limite de débit, plafond d’utilisation ou limite quotidienne du compte atteinte En-tête x-rate-limit-reset ou Retry-After ✅ Après l’attente indiquée
403 Forbidden Authentifié, mais sans autorisation pour cet endpoint, cette action ou ce compte Accès de l’app, type de jeton, permissions, Credits, compte ciblé ❌ Corrigez d’abord l’accès
401 Unauthorized Identifiants absents, invalides, expirés ou mal signés En-tête Authorization et la clé ou le jeton utilisé ❌ Corrigez d’abord les identifiants

Ces solutions s’appliquent que vous appeliez l’API directement ou que l’erreur apparaisse dans un outil. Les messages comme Request failed with status code 401 ou status code 429 viennent du client HTTP (par exemple axios, utilisé par n8n et de nombreux bots Node.js) et reprennent le code renvoyé par l’API appelée : leur sens est le même.

Identifiez d’abord quelle API a renvoyé l’erreur

Un même code n’a pas la même cause selon qui le renvoie :

  • API X officielle (api.x.com ou api.twitter.com) : les erreurs suivent les règles de la plateforme développeurs de X sur les apps, les projets, OAuth et les fenêtres de limite de débit.
  • TwexAPI (api.twexapi.io) : les erreurs concernent votre clé TwexAPI, vos Credits et, pour les écritures, la session X que vous avez fournie. Consultez la référence des codes d’erreur TwexAPI.
  • Le site x.com ou l’app X : un message « Rate limit exceeded » pendant la navigation vient des limites que X applique à votre compte, pas d’une API développeur.

Erreur 429 Too Many Requests de l’API Twitter

Sur l’API X officielle

X applique des limites par endpoint sur des fenêtres généralement de 15 minutes ou de 24 heures, séparément par app et par utilisateur. Chaque réponse contient trois en-têtes :

En-tête Signification
x-rate-limit-limit Requêtes autorisées dans la fenêtre actuelle
x-rate-limit-remaining Requêtes restantes dans la fenêtre actuelle
x-rate-limit-reset Horodatage Unix de réinitialisation de la fenêtre

Quand vous dépassez une limite, X renvoie HTTP 429. Les anciens corps de réponse de type v1.1 affichent le code d’erreur 88 et Rate limit exceeded. Les réponses problem plus récentes utilisent le type rate-limit-exceeded, ou usage-capped si votre compte a atteint un plafond d’utilisation plutôt qu’une fenêtre de débit.

Pour corriger :

  1. Attendez x-rate-limit-reset. Réessayer avant renvoie un nouveau 429.
  2. Surveillez x-rate-limit-remaining. Ralentissez avant qu’il atteigne zéro, pas après.
  3. Vérifiez les limites quotidiennes. Certains endpoints d’écriture, comme publier ou liker, ont des plafonds sur 24 heures par app ou par utilisateur. Attendre quelques minutes ne les réinitialise pas.
  4. Mettez en cache et étalez les requêtes. Évitez de récupérer sans cesse le même profil ou le même tweet, et ne lancez pas toutes vos tâches à l’heure pile.

Sur l’API X facturée à l’usage, limites de débit et facturation sont indépendantes. Une requête peut respecter la limite et s’ajouter quand même à votre facture : le cache vous fait économiser de l’argent autant que du quota.

Sur TwexAPI

Un 429 de TwexAPI peut venir d’une limitation des requêtes ou d’une limite du compte X atteinte pendant une écriture (par exemple le code X 344 pour les publications ou 502 pour la limite quotidienne de DM). Respectez l’en-tête Retry-After ou le champ retry_after lorsqu’ils sont présents. Les limites quotidiennes du compte exigent d’attendre leur réinitialisation, pas un court délai. Consultez Limites de débit pour le backoff et une reprise compatible avec la pagination.

Sur x.com dans un navigateur ou dans l’app X

X limite la quantité de contenu que chaque compte peut charger. Si « Rate limit exceeded » s’affiche pendant que vous faites défiler, patientez avant de recharger, fermez les onglets inutiles et les extensions qui actualisent automatiquement, et évitez les réseaux partagés ou les sorties VPN utilisées par beaucoup de monde. Pour simplement consulter un profil public sans compte, vous pouvez utiliser le visualiseur Twitter gratuit.

Erreur 403 Forbidden de l’API Twitter

Un 403 signifie que X ou TwexAPI a reconnu vos identifiants mais refuse la requête. Répéter la même requête renvoie le même 403.

Sur l’API X officielle

Cause Symptôme Solution
App non inscrite ou sans accès Type de problème client-forbidden ; les anciennes réponses utilisent le code 453 (« You currently have access to a subset of… ») Utilisez les clés d’une app rattachée à un Project et vérifiez que l’accès de votre compte inclut cet endpoint
Mauvais type de jeton Publier, liker, suivre ou envoyer un DM avec un Bearer Token app-only Utilisez un jeton en contexte utilisateur : access token et secret OAuth 1.0a, ou jeton utilisateur OAuth 2.0
Permissions ou scopes manquants Jeton utilisateur d’une app en Read only, ou jeton OAuth 2.0 sans scopes comme tweet.write Passez l’app en Read and write (et Direct Messages si besoin), puis régénérez l’access token et le secret ou faites réautoriser l’utilisateur
Ressource protégée ou indisponible Type de problème not-authorized-for-resource Le compte ciblé est privé ou le contenu restreint ; demandez un contenu visible par votre utilisateur
Action en double ou restreinte Texte de publication identique, tweets aux réponses restreintes, tweets déjà likés Modifiez le contenu ou vérifiez l’état actuel avant de réessayer

Modifier les permissions de l’app ne met pas à jour les jetons existants. Après le passage en Read and write, générez de nouveaux jetons utilisateur ; sinon, la publication continuera de renvoyer 403.

Sur TwexAPI

Un 403 de TwexAPI signifie généralement l’un des cas suivants :

  • Credits épuisés : vérifiez votre solde avec Get Balance et rechargez depuis le tableau de bord.
  • Compte ciblé protégé ou suspendu : seuls ses abonnés approuvés peuvent lire ses publications. Ciblez un compte public.
  • Restriction du compte ou de l’action : le compte X fourni pour l’écriture est suspendu ou verrouillé, le tweet restreint les réponses (code X 433), ou l’action nécessite X Premium.

Chaque message et sa solution figurent dans la référence des codes d’erreur.

Erreur 401 Unauthorized de l’API Twitter

Un 401 signifie que la requête n’a pas pu prouver votre identité. Corrigez les identifiants : réessayer sans rien changer ne fonctionne jamais.

Sur l’API X officielle

  • En-tête mal formé : les requêtes app-only exigent exactement Authorization: Bearer <token>. Un préfixe Bearer manquant, des guillemets en trop ou un retour à la ligne en fin de variable d’environnement renvoient 401.
  • Identifiants régénérés ou révoqués : régénérer des clés dans le portail développeurs invalide immédiatement les anciennes. Mettez à jour tous les endroits où elles sont stockées.
  • Mauvaise combinaison d’identifiants : OAuth 1.0a nécessite la consumer key et son secret plus l’access token et le secret de l’utilisateur. Mélanger les clés de deux apps, ou utiliser une clé d’API à la place d’un jeton, renvoie 401.
  • Erreurs de signature OAuth 1.0a : le code 32 (Could not authenticate you) indique le plus souvent une mauvaise signature. Vérifiez l’encodage URL des paramètres et l’exactitude de l’horloge du serveur ; un horodatage décalé invalide la signature.
  • Jeton utilisateur OAuth 2.0 expiré : les jetons d’accès utilisateur expirent. Demandez le scope offline.access et utilisez le refresh token pour en obtenir un nouveau.

Sur TwexAPI

  • Clé d’API absente ou incorrecte : envoyez Authorization: Bearer YOUR_API_KEY avec une clé du tableau de bord. Voir Authentification.
  • Session X expirée sur les endpoints d’écriture : Invalid auth_token ou le code X 32 lors d’une publication, d’un like ou d’un DM signifie que les identifiants de session X fournis dans cookie ont expiré. Renouvelez-les ; votre clé d’API est correcte.

Ne réessayez que ce qui peut réussir

Ce helper Python réessaie les réponses 429 et 5xx transitoires et renvoie immédiatement tous les autres statuts. Il respecte Retry-After (TwexAPI et la plupart des API HTTP) et x-rate-limit-reset (API X officielle) :

import random
import time

import requests


def request_with_retry(method, url, max_attempts=5, **kwargs):
    for attempt in range(max_attempts):
        response = requests.request(method, url, timeout=30, **kwargs)
        if response.status_code != 429 and response.status_code < 500:
            return response  # success, or a 4xx that waiting won't fix

        wait = None
        retry_after = response.headers.get("Retry-After", "")
        reset_at = response.headers.get("x-rate-limit-reset", "")
        if retry_after.isdigit():
            wait = int(retry_after)
        elif reset_at.isdigit():
            wait = max(0, int(reset_at) - time.time()) + 1
        if wait is None:
            wait = min(300, 5 * 2 ** attempt) + random.uniform(0, 1)

        time.sleep(wait)

    return response

Pour les lectures paginées, réessayez avec le même curseur après un 429, pas le suivant. Pour les écritures, vérifiez si la publication, le like ou le DM a déjà été appliqué avant de le renvoyer ; un timeout ne prouve pas que l’action a échoué.

Quand les limites officielles sont le vrai problème

Si votre app se heurte sans cesse à des 429 en lecture, ou si la facture à la requête augmente plus vite que les données dont vous avez besoin, comparez le coût d’une API tierce facturée à l’usage. Les lectures TwexAPI coûtent environ 0,05 $ pour 1 000 tweets, avec une clé d’API et sans configuration OAuth, contre 5 $ pour 1 000 publications lues sur l’API X officielle. Voir TwexAPI vs l’API X officielle et le calculateur de prix de l’API X. TwexAPI n’est ni affiliée à X Corp. ni approuvée par elle.

Questions sur les erreurs 429, 403 et 401 de l’API Twitter

Combien de temps dure une erreur 429 de l’API Twitter ?

Jusqu’à l’heure indiquée par x-rate-limit-reset, en général moins de 15 minutes. Les endpoints soumis à des limites sur 24 heures, comme la publication, restent bloqués jusqu’à la réinitialisation de la fenêtre quotidienne. Sur TwexAPI, attendez la durée indiquée par Retry-After ou retry_after.

Pourquoi j’obtiens 403 Forbidden en publiant un tweet avec l’API X ?

Généralement parce que le jeton ne peut pas écrire. Vous utilisez peut-être un Bearer Token app-only, l’app est en Read only, ou le jeton utilisateur a été créé avant l’activation de Read and write. Activez l’écriture, régénérez les jetons de l’utilisateur et publiez avec une authentification en contexte utilisateur.

Que signifie « Request failed with status code 401 » dans n8n ?

Que l’API X ou TwexAPI a rejeté les identifiants de ce nœud HTTP. Vérifiez que l’en-tête Authorization contient Bearer suivi d’une clé ou d’un jeton valide, que l’identifiant n’a pas été régénéré et que les écritures utilisent des identifiants en contexte utilisateur. Consultez le guide n8n pour une configuration TwexAPI fonctionnelle.

Quelle est la différence entre une erreur 403 et une erreur 429 ?

429 signifie que vous avez envoyé trop de requêtes et devez attendre. 403 signifie que vous n’avez pas le droit de faire cette requête. Attendre règle un 429 ; un 403 nécessite de changer les accès, les permissions, les Credits ou la cible.

Que signifie le code d’erreur 88 de Twitter ?

Le code d’erreur X 88 signifie Rate limit exceeded et accompagne un HTTP 429. Attendez x-rate-limit-reset avant la requête suivante.

Que signifie le code d’erreur 32 de Twitter ?

Le code d’erreur X 32 signifie Could not authenticate you et accompagne un HTTP 401. Sur l’API officielle, il indique le plus souvent une signature OAuth 1.0a ou des jetons incorrects. Sur les endpoints d’écriture de TwexAPI, il signifie que les identifiants de session X fournis ont expiré.

Pages associées

Dernière mise à jour le 19 octobre 2026

Cette page vous a-t-elle été utile ?