Les limites de taux définissent le nombre de requêtes que vous pouvez effectuer pour chaque endpoint. Le dépassement de ces limites entraîne une erreur 429 jusqu’à la réinitialisation de la fenêtre.
Fonctionnement des limites de taux
Concept Description Fenêtre temporelle Généralement 15 minutes ou 24 heures Limites par utilisateur S’appliquent aux jetons utilisateur OAuth 1.0a ou OAuth 2.0 Limites par App S’appliquent avec un Jeton Bearer (App uniquement) Par endpoint Chaque endpoint a ses propres limites
Les en-têtes de réponse indiquent vos limites de débit actuelles :
x-rate-limit-limit: 900
x-rate-limit-remaining: 847
x-rate-limit-reset: 1705420800
En-tête Description x-rate-limit-limitNombre maximal de requêtes autorisées x-rate-limit-remainingNombre de requêtes restantes dans la fenêtre x-rate-limit-resetHorodatage Unix de réinitialisation de la fenêtre
Tableaux des limites de débit
Consultez ci-dessous la limite de débit pour chaque endpoint. Vous pouvez également retrouver ces limites dans la Console de développement .
Les limites sont indiquées par période de 15 minutes, sauf indication contraire (par exemple « /24hrs » ou « /sec »).
Publications (25 endpoints)
Méthode Endpoint Par App Par utilisateur GET /2/tweets3,500/15min 5,000/15min GET /2/tweets/:id450/15min 900/15min
Méthode Endpoint Par App Par utilisateur Remarques GET /2/tweets/search/recent450/15min 300/15min 10 par défaut, 100 résultats max ; longueur de requête 512
Recherche dans l’intégralité des archives
Méthode Point de terminaison Par App Par utilisateur Remarques GET /2/tweets/search/all1/s, 300/15 min 1/s 10 par défaut, 500 résultats maximum ; longueur de la requête : 1024 caractères
Méthode Endpoint Par App Par utilisateur Remarques GET /2/tweets/counts/recent300/15min — Longueur de requête : 512 GET /2/tweets/counts/all300/15min — Longueur de requête : 1024
Method Endpoint Per App Par utilisateur Remarques GET /2/tweets/search/stream50/15min — 1 connexion ; 1000 règles ; longueur de règle : 1 024 ; 250 publications/s GET /2/tweets/search/stream/rules450/15min — 1 connexion ; 1000 règles ; longueur de règle : 1 024 POST /2/tweets/search/stream/rules100/15min — 1 connexion ; 1000 règles ; longueur de règle : 1 024
Méthode Endpoint Par App Par utilisateur POST /2/tweets10 000/24 h 100/15 min DELETE /2/tweets/:id— 50/15 min
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/tweets10,000/15min 900/15min GET /2/users/:id/mentions450/15min 300/15min GET /2/users/:id/timelines/reverse_chronological— 180/15min
Méthode Endpoint Par App Par utilisateur GET /2/tweets/:id/liking_users75/15min 75/15min GET /2/users/:id/liked_tweets75/15min 75/15min
Gérer les mentions J’aime
Méthode Point de terminaison Par App Par utilisateur POST /2/users/:id/likes— 50/15 min, 1 000/24 h DELETE /2/users/:id/likes/:tweet_id— 50/15 min, 1 000/24 h
Méthode Endpoint Par App Par utilisateur Remarques GET /2/tweets/:id/retweeted_by75/15min 75/15min — GET /2/tweets/:id/quote_tweets75/15min 75/15min — GET /2/users/reposts_of_me— 75/15min 100 résultats maximum
Méthode Endpoint Par App Par utilisateur POST /2/users/:id/retweets— 50/15min DELETE /2/users/:id/retweets/:tweet_id— 50/15min
Méthode Endpoint Par application Par utilisateur PUT /2/tweets/:tweet_id/hidden— 50/15 min
Utilisateurs (14 points de terminaison)
Méthode Point de terminaison Par App Par utilisateur GET /2/users300/15min 900/15min GET /2/users/:id300/15min 900/15min GET /2/users/by300/15min 900/15min GET /2/users/by/username/:username300/15min 900/15min GET /2/users/me— 75/15min
Rechercher des utilisateurs
Méthode Endpoint Par App Par utilisateur GET /2/users/search300/15min 900/15min
Consultation des abonnements et abonnés
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/following300/15min 300/15min GET /2/users/:id/followers300/15min 300/15min
Méthode Endpoint Par App Par utilisateur POST /2/users/:id/following— 50/15 min DELETE /2/users/:source_user_id/following/:target_user_id— 50/15 min
Recherche des comptes bloqués
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/blocking— 15/15min
Recherche des comptes masqués
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/muting— 15/15min
Gérer les comptes en sourdine
Method Endpoint Par App Par utilisateur POST /2/users/:id/muting— 50/15 min DELETE /2/users/:source_user_id/muting/:target_user_id— 50/15 min
Méthode Endpoint Par App Par utilisateur GET /2/spaces/:id300/15 min 300/15 min GET /2/spaces300/15 min 300/15 min GET /2/spaces/:id/tweets300/15 min 300/15 min GET /2/spaces/by/creator_ids300/15 min, 1/s 300/15 min, 1/s GET /2/spaces/:id/buyers300/15 min 300/15 min
Méthode Endpoint Par App Par utilisateur GET /2/spaces/search300/15min 300/15min
Messages privés (8 endpoints)
Recherche de messages privés
Méthode Endpoint Par application Par utilisateur GET /2/dm_events— 15/15min GET /2/dm_events/:id— 15/15min GET /2/dm_conversations/:dm_conversation_id/dm_events— 15/15min GET /2/dm_conversations/with/:participant_id/dm_events— 15/15min
Gérer les messages privés
Méthode Endpoint Par App Par utilisateur POST /2/dm_conversations1,440/24hrs 15/15min, 1,440/24hrs POST /2/dm_conversations/with/:participant_id/messages1,440/24hrs 15/15min, 1,440/24hrs POST /2/dm_conversations/:dm_conversation_id/messages1,440/24hrs 15/15min, 1,440/24hrs DELETE /2/dm_events/:id4,000/24hrs 300/15min, 1,500/24hrs
Listes (14 points de terminaison)
Méthode Endpoint Par App Par utilisateur GET /2/lists/:id75/15min 75/15min GET /2/users/:id/owned_lists15/15min 15/15min
Méthode Endpoint Par App Par utilisateur GET /2/lists/:id/tweets900/15min 900/15min
Recherche des membres de Liste
Méthode Endpoint Par App Par utilisateur GET /2/lists/:id/members900/15min 900/15min GET /2/users/:id/list_memberships75/15min 75/15min
Méthode Endpoint Par App Par utilisateur POST /2/lists— 300/15min DELETE /2/lists/:id— 300/15min PUT /2/lists/:id— 300/15min
Gérer les membres des Listes
Méthode Endpoint Par App Par utilisateur POST /2/lists/:id/members— 300/15min DELETE /2/lists/:id/members/:user_id— 300/15min
Gérer les abonnements aux listes
Méthode Endpoint Par App Par utilisateur POST /2/users/:id/followed_lists— 50/15min DELETE /2/users/:id/followed_lists/:list_id— 50/15min
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/pinned_lists15/15 min 15/15 min POST /2/users/:id/pinned_lists— 50/15 min DELETE /2/users/:id/pinned_lists/:list_id— 50/15 min
Méthode Endpoint Par App Par utilisateur GET /2/users/:id/bookmarks— 180/15 min GET /2/users/:id/bookmarks/folders50/15 min 50/15 min GET /2/users/:id/bookmarks/folders/:folder_id50/15 min 50/15 min
Méthode Point de terminaison Par App Par utilisateur POST /2/users/:id/bookmarks— 50/15min DELETE /2/users/:id/bookmarks/:tweet_id— 50/15min
Méthode Point de terminaison Par App Par utilisateur POST /2/compliance/jobs150/15min — GET /2/compliance/jobs/:job_id150/15min — GET /2/compliance/jobs150/15min —
Méthode Endpoint Par App Par utilisateur GET /2/usage/tweets50/15min —
Méthode Endpoint Par App Par utilisateur GET /2/users/personalized_trends200/24 h, 200/15 min 100/24 h, 10/15 min
Méthode Endpoint Par App Par utilisateur GET /2/trends/by/woeid/:id75/15min —
Communautés (2 endpoints)
Méthode Endpoint Par App Par utilisateur Remarques GET /2/communities/:id300/15min 300/15min — GET /2/communities/search300/15min 300/15min 100 résultats maximum
Method Endpoint Par App Par utilisateur GET /2/tweets/analytics300/15min 300/15min
Méthode Endpoint Par application Par utilisateur POST /2/media/upload50,000/24 h 500/15 min GET /2/media/upload100,000/24 h 1,000/15 min POST /2/media/upload/initialize180,000/24 h 1,875/15 min POST /2/media/upload/:id/append180,000/24 h 1,875/15 min POST /2/media/upload/:id/finalize180,000/24 h 1,875/15 min POST /2/media/metadata50,000/24 h 500/15 min POST /2/media/subtitles10,000/24 h 100/15 min DELETE /2/media/subtitles10,000/24 h 100/15 min
Méthode Endpoint Par App Par utilisateur Remarques GET /2/activity/stream450/15 min — 2 connexions ; 250 publications/s POST /2/activity/subscriptions500/15 min — — GET /2/activity/subscriptions500/15 min — — PUT /2/activity/subscriptions/:subscription_id500/15 min — — DELETE /2/activity/subscriptions/:subscription_id500/15 min — — POST /2/webhooks450/15 min — — GET /2/webhooks450/15 min — — PUT /2/webhooks/:webhook_id450/15 min — — DELETE /2/webhooks/:webhook_id450/15 min — — POST /2/webhooks/replay100/15 min — —
Méthode Endpoint Par App Par utilisateur GET /2/tweets/sample10/stream100/15min — GET /2/news/:id200/15min — GET /2/news/search200/15min 200/15min POST /2/users/:id/dm/block25/15min, 1,000/24hrs 10/15min, 400/24hrs POST /2/users/:id/dm/unblock25/15min, 1,000/24hrs 10/15min, 400/24hrs GET /2/users/by/username/:username/tweets1,500/15min 900/15min GET /2/users/by/username/:username/mentions450/15min 180/15min GET /2/users/:id/following/spaces300/15min 300/15min GET /2/tweets/:id/retweets75/15min 75/15min DELETE /2/connections/all25/15min 25/15min
Gestion des limites de taux
Lorsque vous atteignez la limite de taux, vous recevrez une réponse 429 :
{
"errors" : [{
"code" : 88 ,
"message" : "Rate limit exceeded"
}]
}
Vérifiez x-rate-limit-reset pour savoir quand la fenêtre sera réinitialisée
Attendez ce moment-là avant de réessayer
Utilisez une temporisation exponentielle si nécessaire
import time
def make_request_with_backoff ( url , headers ):
response = requests.get(url, headers = headers)
if response.status_code == 429 :
reset_time = int (response.headers.get( 'x-rate-limit-reset' , 0 ))
wait_time = max (reset_time - time.time(), 60 )
time.sleep(wait_time)
return make_request_with_backoff(url, headers)
return response
Mettre en cache les réponses Stockez les résultats localement pour réduire les requêtes répétées.
Utiliser le streaming Pour les données en temps réel, utilisez un flux filtré plutôt que d’interroger l’API à intervalles réguliers.
Surveiller les en-têtes Suivez le nombre de requêtes restantes afin d’éviter d’atteindre les limites.
Échelonner les requêtes Répartissez les requêtes sur la fenêtre de temps autorisée.
Limites de taux et facturation
Les limites de taux et la facturation sont distinctes :
Concept Objectif Limites de taux Contrôler la fréquence des requêtes afin d’assurer la stabilité du système Facturation à l’usage Facturer les données récupérées (paiement à l’usage)
Vous pouvez rester dans les limites de taux tout en encourant des coûts d’utilisation, ou atteindre les limites de taux sans coût supplémentaire.
Limites de taux pour Enterprise
Les clients Enterprise bénéficient de limites de taux personnalisées. Contactez votre responsable de compte ou faites une demande d’accès Enterprise .
Gestion des erreurs Gérez les erreurs 429 et les autres codes d’erreur.
Premiers pas En savoir plus sur les niveaux d’accès et les fonctionnalités.