Table des matières
- Limites de taux de X API v2
- Limites de taux de X API Enterprise
- Limites de taux et méthode d’authentification
- En-têtes HTTP et codes de réponse
- Récupérer après un dépassement de limite de taux
- Conseils pour éviter d’être soumis à des limites de taux
Limites de taux de l’X API v2
Endpoint | Limite Pro | Limite Basic | Limite Free |
---|---|---|---|
Tweets | |||
DELETE /2/tweets/:id | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 17 requêtes / 24 heures PAR UTILISATEUR 17 requêtes / 24 heures PAR APP |
DELETE /2/users/:id/likes/:tweet_id | 50 requêtes / 15 min PAR UTILISATEUR | 100 requêtes / 24 h PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
DELETE /2/users/:id/retweets/:tweet_id | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
GET /2/tweets | 900 requêtes / 15 min PAR UTILISATEUR 450 requêtes / 15 min PAR APP | 15 requêtes / 15 min PAR UTILISATEUR 15 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/:id | 900 requêtes / 15 min PAR UTILISATEUR 450 requêtes / 15 min PAR APP | 15 requêtes / 15 min PAR UTILISATEUR 15 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/:id/liking_users | 75 requêtes / 15 min PAR UTILISATEUR 75 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/:id/quote_tweets | 75 requêtes / 15 min PAR UTILISATEUR 75 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/:id/retweeted_by | 75 requêtes / 15 min PAR UTILISATEUR 75 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/counts/all | 300 requêtes / 15 min PAR APP | ||
GET /2/tweets/counts/recent | 300 requêtes/15 min PAR APP | 5 requêtes/15 min PAR APP | 1 requête/15 min PAR APP |
GET /2/tweets/search/all | 1 requête/s PAR UTILISATEUR 1 requête/s PAR APP | ||
GET /2/tweets/search/recent | 300 requêtes / 15 min PAR UTILISATEUR 450 requêtes / 15 min PAR APP | 60 requêtes / 15 min PAR UTILISATEUR 60 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/tweets/search/stream | 50 requêtes / 15 min PAR APP | ||
GET /2/tweets/search/stream/rules | 450 requêtes / 15 min PAR APP | ||
GET /2/users/:id/liked_tweets | 75 requêtes / 15 min PAR UTILISATEUR 75 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/users/:id/mentions | 300 requêtes / 15 min PAR UTILISATEUR 450 requêtes / 15 min PAR APP | 10 requêtes / 15 min PAR UTILISATEUR 15 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/users/:id/timelines/reverse_chronological | 180 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
GET /2/users/:id/tweets | 900 requêtes / 15 min PAR UTILISATEUR 1 500 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 10 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/users/reposts_of_me | 75 requêtes / 15 min PAR UTILISATEUR | 75 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
POST /2/tweets | 100 requêtes / 15 min PAR UTILISATEUR 10 000 requêtes / 24 h PAR APP | 100 requêtes / 24 h PAR UTILISATEUR 1 667 requêtes / 24 h PAR APP | 17 requêtes / 24 h PAR UTILISATEUR 17 requêtes / 24 h PAR APP |
POST /2/tweets/search/stream/rules | 100 requêtes/15 min PAR APP | ||
POST /2/users/:id/likes | 1000 requêtes / 24 heures PAR UTILISATEUR | 200 requêtes / 24 heures PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
POST /2/users/:id/retweets | 50 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
PUT /2/tweets/:tweet_id/hidden | 50 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
Utilisateurs | |||
DELETE /2/users/:source_user_id/following/:target_user_id | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
DELETE /2/users/:source_user_id/muting/:target_user_id | 50 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
GET /2/users | 900 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 100 requêtes / 24 h PAR UTILISATEUR 500 requêtes / 24 h PAR APP | 1 requête / 24 h PAR UTILISATEUR 1 requête / 24 h PAR APP |
GET /2/users/:id | 900 requêtes/15 min PAR UTILISATEUR 300 requêtes/15 min PAR APP | 100 requêtes/24 heures PAR UTILISATEUR 500 requêtes/24 heures PAR APP | 1 requête/24 heures PAR UTILISATEUR 1 requête/24 heures PAR APP |
GET /2/users/:id/blocking | 15 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
GET /2/users/:id/muting | 15 requêtes / 15 min PAR UTILISATEUR | 100 requêtes / 24 h PAR UTILISATEUR | 1 requête / 24 h PAR UTILISATEUR |
GET /2/users/by | 900 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 100 requêtes / 24 heures PAR UTILISATEUR 500 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP |
GET /2/users/by/username/:username | 900 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 100 requêtes / 24 h PAR UTILISATEUR 500 requêtes / 24 h PAR APP | 3 requêtes / 15 min PAR UTILISATEUR 3 requêtes / 15 min PAR APP |
GET /2/users/me | 75 requêtes / 15 min PAR UTILISATEUR | 250 requêtes / 24 h PAR UTILISATEUR | 25 requêtes / 24 h PAR UTILISATEUR |
GET /2/users/search | 900 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | ||
POST /2/users/:id/following | 50 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
POST /2/users/:id/muting | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
Spaces | |||
GET /2/spaces | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/spaces/:id | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/spaces/:id/buyers | 300 requêtes/15 min PAR UTILISATEUR 300 requêtes/15 min PAR APP | 5 requêtes/15 min PAR UTILISATEUR 25 requêtes/15 min PAR APP | 1 requête/15 min PAR UTILISATEUR 1 requête/15 min PAR APP |
GET /2/spaces/:id/tweets | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/spaces/by/creator_ids | 300 requêtes / 15 min PAR UTILISATEUR 1 requête/s PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes/s PAR APP | 1 requête/s PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/spaces/search | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
Messages privés | |||
DELETE /2/dm_events/:id | 1500 requêtes / 24 heures PAR UTILISATEUR 4000 requêtes / 24 heures PAR APP | 200 requêtes / 15 min PAR UTILISATEUR 2500 requêtes / 24 heures PAR APP | |
GET /2/dm_conversations/:dm_conversation_id/dm_events | 15 requêtes / 15 min PAR UTILISATEUR | 1 requête / 24 h PAR UTILISATEUR | |
GET /2/dm_conversations/with/:participant_id/dm_events | 15 requêtes / 15 min PAR UTILISATEUR | 1 requête / 24 h PAR UTILISATEUR | |
GET /2/dm_events | 15 requêtes / 15 min PAR UTILISATEUR | 1 requête / 24 heures PAR UTILISATEUR | |
GET /2/dm_events/:id | 15 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 24 h PAR UTILISATEUR | |
POST /2/dm_conversations | 15 requêtes / 15 min PAR UTILISATEUR 1440 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP | |
POST /2/dm_conversations/:dm_conversation_id/messages | 15 requêtes / 15 min PAR UTILISATEUR 1440 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP | |
POST /2/dm_conversations/with/:participant_id/messages | 1440 requêtes / 24 heures PAR UTILISATEUR 1440 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP | |
Lists | |||
DELETE /2/lists/:id | 300 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
DELETE /2/lists/:id/members/:user_id | 300 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
DELETE /2/users/:id/followed_lists/:list_id | 50 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
DELETE /2/users/:id/pinned_lists/:list_id | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
GET /2/lists/:id | 75 requêtes/15 min PAR UTILISATEUR 75 requêtes/15 min PAR APP | 5 requêtes/15 min PAR UTILISATEUR 5 requêtes/15 min PAR APP | 1 requête/15 min PAR UTILISATEUR 1 requête/15 min PAR APP |
GET /2/lists/:id/members | 900 requêtes / 15 min PAR UTILISATEUR 900 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/lists/:id/tweets | 900 requêtes / 15 min PAR UTILISATEUR 900 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | |
GET /2/users/:id/list_memberships | 75 requêtes / 15 min PAR UTILISATEUR 75 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/users/:id/owned_lists | 15 requêtes / 15 min PAR UTILISATEUR 15 requêtes / 15 min PAR APP | 100 requêtes / 24 heures PAR UTILISATEUR 500 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP |
GET /2/users/:id/pinned_lists | 15 requêtes / 15 min PAR UTILISATEUR 15 requêtes / 15 min PAR APP | 100 requêtes / 24 heures PAR UTILISATEUR 500 requêtes / 24 heures PAR APP | 1 requête / 24 heures PAR UTILISATEUR 1 requête / 24 heures PAR APP |
POST /2/lists | 300 requêtes / 15 min PAR UTILISATEUR | 100 requêtes / 24 h PAR UTILISATEUR | 1 requête / 24 h PAR UTILISATEUR |
POST /2/lists/:id/members | 300 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
POST /2/users/:id/followed_lists | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
POST /2/users/:id/pinned_lists | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
PUT /2/lists/:id | 300 requêtes/15 min PAR UTILISATEUR | 5 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
Favoris | |||
DELETE /2/users/:id/bookmarks/:tweet_id | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
GET /2/users/:id/bookmarks | 180 requêtes/15 min PAR UTILISATEUR | 10 requêtes/15 min PAR UTILISATEUR | 1 requête/15 min PAR UTILISATEUR |
GET /2/users/:id/bookmarks/folders | 50 requêtes/15 min PAR UTILISATEUR 50 requêtes/15 min PAR APP | 5 requêtes/15 min PAR UTILISATEUR 5 requêtes/15 min PAR APP | 1 requête/15 min PAR UTILISATEUR 1 requête/15 min PAR APP |
GET /2/users/:id/bookmarks/folders/:folder_id | 50 requêtes / 15 min PAR UTILISATEUR 50 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR UTILISATEUR 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
POST /2/users/:id/bookmarks | 50 requêtes / 15 min PAR UTILISATEUR | 5 requêtes / 15 min PAR UTILISATEUR | 1 requête / 15 min PAR UTILISATEUR |
Conformité | |||
GET /2/compliance/jobs | 150 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR APP |
GET /2/compliance/jobs/:job_id | 150 requêtes / 15 min PAR APP | 5 requêtes / 15 min PAR APP | 1 requête / 15 min PAR APP |
POST /2/compliance/jobs | 150 requêtes / 15 min PAR APP | 15 requêtes / 15 min PAR APP | 1 requête / 15 min PAR APP |
Utilisation | |||
GET /2/usage/tweets | 50 requêtes/15 min PAR APP | 50 requêtes/15 min PAR APP | 1 requête/15 min PAR APP |
Tendances | |||
GET /2/trends/by/woeid/:id | 75 requêtes / 15 min PAR APP | 15 requêtes / 15 min PAR APP | |
GET /2/users/personalized_trends | 10 requêtes / 15 min PAR UTILISATEUR 200 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 20 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 24 h PAR APP |
Communautés | |||
GET /2/communities/:id | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
GET /2/communities/search | 300 requêtes / 15 min PAR UTILISATEUR 300 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 25 requêtes / 15 min PAR APP | 1 requête / 15 min PAR UTILISATEUR 1 requête / 15 min PAR APP |
Limites de taux et méthode d’authentification
-
OAuth 2.0 Bearer Token : Limite de taux de l’App
Cette méthode vous permet d’effectuer un certain nombre de requêtes pour le compte de votre App développeur. Lorsque vous utilisez cette méthode d’authentification, les limites sont déterminées par les requêtes effectuées avec un Jeton Bearer.
- Exemple : Avec une limite de 450 requêtes par intervalle de 15 minutes, vous pouvez effectuer 450 requêtes pour le compte de votre App durant cet intervalle.
-
Contexte utilisateur OAuth 1.0a : Limite de taux par utilisateur
Cette méthode permet d’effectuer des requêtes pour le compte d’un utilisateur X identifié par l’Access Token utilisateur. Par exemple, pour récupérer des métriques privées de Posts, authentifiez-vous avec des Access Tokens utilisateur pour cet utilisateur, générés à l’aide du flux OAuth à 3 étapes.
- Exemple : Avec une limite de 900 requêtes par 15 minutes et par utilisateur, vous pouvez effectuer jusqu’à 900 requêtes par utilisateur sur cette période.
En-têtes HTTP et codes de réponse
x-rate-limit-limit
: plafond de limite de taux pour l’endpointx-rate-limit-remaining
: requêtes restantes sur la fenêtre de 15 minutesx-rate-limit-reset
: temps restant avant la réinitialisation de la limite de taux (en secondes d’époque UTC)
Réponses d’erreur
Récupération après dépassement de limite de taux
Lorsqu’une erreur “Too many requests” ou de limitation de taux survient, il convient de réduire la cadence des requêtes. En cas d’erreur de limite de taux, l’en-tête HTTP
x-rate-limit-reset:
peut être consulté pour connaître le moment où la limitation sera réinitialisée. Un autre schéma courant est le “recul exponentiel” (exponential backoff), où l’intervalle entre les requêtes commence petit (par exemple, quelques secondes), puis double avant chaque nouvelle tentative. Cela se poursuit jusqu’à ce qu’une requête réussisse ou qu’un intervalle maximal raisonnable entre les requêtes soit atteint (par exemple, quelques minutes).
Idéalement, le client est conscient des limites de taux en vigueur et peut suspendre les requêtes jusqu’à l’expiration de la fenêtre actuellement dépassée. Si vous dépassez une limite sur 15 minutes, attendre une minute ou deux avant de réessayer est pertinent.
Notez qu’au-delà de ces limites sur le nombre de requêtes, le niveau d’accès Standard Basic fournit jusqu’à 500 000 Posts par mois via les endpoints de recherche récente et de flux filtré. Si vous avez dépassé la limite mensuelle de Posts, il est alors plus judicieux pour votre App de déclencher une notification, de connaître son jour d’inscription dans le mois et de suspendre les requêtes jusqu’à ce jour.
Conseils pour éviter d’être limité par la limite de taux
Mise en cache
Donner la priorité aux utilisateurs actifs
S’adapter aux résultats de recherche
Liste de refus
- Expliquez pourquoi vous pensez que votre application a été refusée.
- Si vous n’êtes plus soumis aux limites de taux, décrivez en détail comment vous avez résolu le problème.