Passer au contenu principal
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

ConceptDescription
Fenêtre temporelleGénéralement 15 minutes ou 24 heures
Limites par utilisateurS’appliquent aux jetons utilisateur OAuth 1.0a ou OAuth 2.0
Limites par AppS’appliquent avec un Jeton Bearer (App uniquement)
Par endpointChaque endpoint a ses propres limites

Vérifier vos 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êteDescription
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)

Récupération de Tweets

MéthodeEndpointPar AppPar utilisateur
GET/2/tweets3,500/15min5,000/15min
GET/2/tweets/:id450/15min900/15min
MéthodeEndpointPar AppPar utilisateurRemarques
GET/2/tweets/search/recent450/15min300/15min10 par défaut, 100 résultats max ; longueur de requête 512
MéthodePoint de terminaisonPar AppPar utilisateurRemarques
GET/2/tweets/search/all1/s, 300/15 min1/s10 par défaut, 500 résultats maximum ; longueur de la requête : 1024 caractères

Nombre de publications

MéthodeEndpointPar AppPar utilisateurRemarques
GET/2/tweets/counts/recent300/15minLongueur de requête : 512
GET/2/tweets/counts/all300/15minLongueur de requête : 1024

Flux filtré

MethodEndpointPer AppPar utilisateurRemarques
GET/2/tweets/search/stream50/15min1 connexion ; 1000 règles ; longueur de règle : 1 024 ; 250 publications/s
GET/2/tweets/search/stream/rules450/15min1 connexion ; 1000 règles ; longueur de règle : 1 024
POST/2/tweets/search/stream/rules100/15min1 connexion ; 1000 règles ; longueur de règle : 1 024

Gérer les publications

MéthodeEndpointPar AppPar utilisateur
POST/2/tweets10 000/24 h100/15 min
DELETE/2/tweets/:id50/15 min

Chronologies

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/tweets10,000/15min900/15min
GET/2/users/:id/mentions450/15min300/15min
GET/2/users/:id/timelines/reverse_chronological180/15min

Consultation des J’aime

MéthodeEndpointPar AppPar utilisateur
GET/2/tweets/:id/liking_users75/15min75/15min
GET/2/users/:id/liked_tweets75/15min75/15min

Gérer les mentions J’aime

MéthodePoint de terminaisonPar AppPar utilisateur
POST/2/users/:id/likes50/15 min, 1 000/24 h
DELETE/2/users/:id/likes/:tweet_id50/15 min, 1 000/24 h

Recherche de retweets

MéthodeEndpointPar AppPar utilisateurRemarques
GET/2/tweets/:id/retweeted_by75/15min75/15min
GET/2/tweets/:id/quote_tweets75/15min75/15min
GET/2/users/reposts_of_me75/15min100 résultats maximum

Gérer les retweets

MéthodeEndpointPar AppPar utilisateur
POST/2/users/:id/retweets50/15min
DELETE/2/users/:id/retweets/:tweet_id50/15min

Masquer les réponses

MéthodeEndpointPar applicationPar utilisateur
PUT/2/tweets/:tweet_id/hidden50/15 min

Utilisateurs (14 points de terminaison)

Recherche d’utilisateurs

MéthodePoint de terminaisonPar AppPar utilisateur
GET/2/users300/15min900/15min
GET/2/users/:id300/15min900/15min
GET/2/users/by300/15min900/15min
GET/2/users/by/username/:username300/15min900/15min
GET/2/users/me75/15min

Rechercher des utilisateurs

MéthodeEndpointPar AppPar utilisateur
GET/2/users/search300/15min900/15min

Consultation des abonnements et abonnés

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/following300/15min300/15min
GET/2/users/:id/followers300/15min300/15min

Gérer les abonnements

MéthodeEndpointPar AppPar utilisateur
POST/2/users/:id/following50/15 min
DELETE/2/users/:source_user_id/following/:target_user_id50/15 min

Recherche des comptes bloqués

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/blocking15/15min

Recherche des comptes masqués

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/muting15/15min

Gérer les comptes en sourdine

MethodEndpointPar AppPar utilisateur
POST/2/users/:id/muting50/15 min
DELETE/2/users/:source_user_id/muting/:target_user_id50/15 min

Spaces (6 endpoints)

Recherche de Spaces

MéthodeEndpointPar AppPar utilisateur
GET/2/spaces/:id300/15 min300/15 min
GET/2/spaces300/15 min300/15 min
GET/2/spaces/:id/tweets300/15 min300/15 min
GET/2/spaces/by/creator_ids300/15 min, 1/s300/15 min, 1/s
GET/2/spaces/:id/buyers300/15 min300/15 min

Recherche de Spaces

MéthodeEndpointPar AppPar utilisateur
GET/2/spaces/search300/15min300/15min

Messages privés (8 endpoints)

Recherche de messages privés

MéthodeEndpointPar applicationPar utilisateur
GET/2/dm_events15/15min
GET/2/dm_events/:id15/15min
GET/2/dm_conversations/:dm_conversation_id/dm_events15/15min
GET/2/dm_conversations/with/:participant_id/dm_events15/15min

Gérer les messages privés

MéthodeEndpointPar AppPar utilisateur
POST/2/dm_conversations1,440/24hrs15/15min, 1,440/24hrs
POST/2/dm_conversations/with/:participant_id/messages1,440/24hrs15/15min, 1,440/24hrs
POST/2/dm_conversations/:dm_conversation_id/messages1,440/24hrs15/15min, 1,440/24hrs
DELETE/2/dm_events/:id4,000/24hrs300/15min, 1,500/24hrs

Listes (14 points de terminaison)

Recherche de listes

MéthodeEndpointPar AppPar utilisateur
GET/2/lists/:id75/15min75/15min
GET/2/users/:id/owned_lists15/15min15/15min

Recherche de Tweets d’une Liste

MéthodeEndpointPar AppPar utilisateur
GET/2/lists/:id/tweets900/15min900/15min

Recherche des membres de Liste

MéthodeEndpointPar AppPar utilisateur
GET/2/lists/:id/members900/15min900/15min
GET/2/users/:id/list_memberships75/15min75/15min

Gérer les listes

MéthodeEndpointPar AppPar utilisateur
POST/2/lists300/15min
DELETE/2/lists/:id300/15min
PUT/2/lists/:id300/15min

Gérer les membres des Listes

MéthodeEndpointPar AppPar utilisateur
POST/2/lists/:id/members300/15min
DELETE/2/lists/:id/members/:user_id300/15min

Gérer les abonnements aux listes

MéthodeEndpointPar AppPar utilisateur
POST/2/users/:id/followed_lists50/15min
DELETE/2/users/:id/followed_lists/:list_id50/15min

Listes épinglées

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/pinned_lists15/15 min15/15 min
POST/2/users/:id/pinned_lists50/15 min
DELETE/2/users/:id/pinned_lists/:list_id50/15 min

Signets (5 endpoints)

Consultation des signets

MéthodeEndpointPar AppPar utilisateur
GET/2/users/:id/bookmarks180/15 min
GET/2/users/:id/bookmarks/folders50/15 min50/15 min
GET/2/users/:id/bookmarks/folders/:folder_id50/15 min50/15 min

Gérer les signets

MéthodePoint de terminaisonPar AppPar utilisateur
POST/2/users/:id/bookmarks50/15min
DELETE/2/users/:id/bookmarks/:tweet_id50/15min

Conformité (3 endpoints)

Conformité par lots

MéthodePoint de terminaisonPar AppPar utilisateur
POST/2/compliance/jobs150/15min
GET/2/compliance/jobs/:job_id150/15min
GET/2/compliance/jobs150/15min

Utilisation (1 endpoint)

MéthodeEndpointPar AppPar utilisateur
GET/2/usage/tweets50/15min

MéthodeEndpointPar AppPar utilisateur
GET/2/users/personalized_trends200/24 h, 200/15 min100/24 h, 10/15 min
MéthodeEndpointPar AppPar utilisateur
GET/2/trends/by/woeid/:id75/15min

Communautés (2 endpoints)

MéthodeEndpointPar AppPar utilisateurRemarques
GET/2/communities/:id300/15min300/15min
GET/2/communities/search300/15min300/15min100 résultats maximum

Analytics (1 endpoint)

MethodEndpointPar AppPar utilisateur
GET/2/tweets/analytics300/15min300/15min

Médias (8 endpoints)

MéthodeEndpointPar applicationPar utilisateur
POST/2/media/upload50,000/24 h500/15 min
GET/2/media/upload100,000/24 h1,000/15 min
POST/2/media/upload/initialize180,000/24 h1,875/15 min
POST/2/media/upload/:id/append180,000/24 h1,875/15 min
POST/2/media/upload/:id/finalize180,000/24 h1,875/15 min
POST/2/media/metadata50,000/24 h500/15 min
POST/2/media/subtitles10,000/24 h100/15 min
DELETE/2/media/subtitles10,000/24 h100/15 min

Activité et webhooks

MéthodeEndpointPar AppPar utilisateurRemarques
GET/2/activity/stream450/15 min2 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

Autres endpoints

MéthodeEndpointPar AppPar utilisateur
GET/2/tweets/sample10/stream100/15min
GET/2/news/:id200/15min
GET/2/news/search200/15min200/15min
POST/2/users/:id/dm/block25/15min, 1,000/24hrs10/15min, 400/24hrs
POST/2/users/:id/dm/unblock25/15min, 1,000/24hrs10/15min, 400/24hrs
GET/2/users/by/username/:username/tweets1,500/15min900/15min
GET/2/users/by/username/:username/mentions450/15min180/15min
GET/2/users/:id/following/spaces300/15min300/15min
GET/2/tweets/:id/retweets75/15min75/15min
DELETE/2/connections/all25/15min25/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"
  }]
}

Stratégie de reprise

  1. Vérifiez x-rate-limit-reset pour savoir quand la fenêtre sera réinitialisée
  2. Attendez ce moment-là avant de réessayer
  3. 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

Bonnes pratiques

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 :
ConceptObjectif
Limites de tauxContrôler la fréquence des requêtes afin d’assurer la stabilité du système
Facturation à l’usageFacturer 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.

Prochaines étapes

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.