Sommario
- Limiti di velocità di X API v2
- Limiti di velocità di X API Enterprise
- Limiti di velocità e metodo di autenticazione
- Intestazioni HTTP e codici di risposta
- Come riprendersi dai limiti di velocità
- Suggerimenti per evitare di incorrere nei limiti di velocità
Limiti di velocità di X API v2
Endpoint | Limite Pro | Limite Basic | Limite Free |
---|---|---|---|
Tweet | |||
DELETE /2/tweets/:id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 17 richieste / 24 ore PER UTENTE 17 richieste / 24 ore PER APP |
DELETE /2/users/:id/likes/:tweet_id | 50 richieste / 15 min PER UTENTE | 100 richieste / 24 ore PER UTENTE | 1 richiesta / 15 min PER UTENTE |
DELETE /2/users/:id/retweets/:tweet_id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
GET /2/tweets | 900 richieste/15 min PER UTENTE 450 richieste/15 min PER APP | 15 richieste/15 min PER UTENTE 15 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/tweets/:id | 900 richieste/15 min PER UTENTE 450 richieste/15 min PER APP | 15 richieste/15 min PER UTENTE 15 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/tweets/:id/liking_users | 75 richieste/15 min PER UTENTE 75 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 25 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/tweets/:id/quote_tweets | 75 richieste / 15 min PER UTENTE 75 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 5 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/tweets/:id/retweeted_by | 75 richieste/15 min PER UTENTE 75 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 5 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/tweets/counts/all | 300 richieste / 15 min PER APP | ||
GET /2/tweets/counts/recent | 300 richieste/15 min PER APP | 5 richieste/15 min PER APP | 1 richiesta/15 min PER APP |
GET /2/tweets/search/all | 1 richiesta/secondo PER UTENTE 1 richiesta/secondo PER APP | ||
GET /2/tweets/search/recent | 300 richieste/15 min PER UTENTE 450 richieste/15 min PER APP | 60 richieste/15 min PER UTENTE 60 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/tweets/search/stream | 50 richieste/15 min PER APP | ||
GET /2/tweets/search/stream/rules | 450 richieste/15 min PER APP | ||
GET /2/users/:id/liked_tweets | 75 richieste/15 min PER UTENTE 75 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 5 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/users/:id/mentions | 300 richieste/15 min PER UTENTE 450 richieste/15 min PER APP | 10 richieste/15 min PER UTENTE 15 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/users/:id/timelines/reverse_chronological | 180 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
GET /2/users/:id/tweets | 900 richieste/15 min PER UTENTE 1500 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 10 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/users/reposts_of_me | 75 richieste / 15 min PER UTENTE | 75 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
POST /2/tweets | 100 richieste / 15 min PER UTENTE 10.000 richieste / 24 ore PER APP | 100 richieste / 24 ore PER UTENTE 1.667 richieste / 24 ore PER APP | 17 richieste / 24 ore PER UTENTE 17 richieste / 24 ore PER APP |
POST /2/tweets/search/stream/rules | 100 richieste / 15 min PER APP | ||
POST /2/users/:id/likes | 1000 richieste / 24 ore PER UTENTE | 200 richieste / 24 ore PER UTENTE | 1 richiesta / 15 minuti PER UTENTE |
POST /2/users/:id/retweets | 50 richieste/15 min PER UTENTE | 5 richieste/15 min PER UTENTE | 1 richiesta/15 min PER UTENTE |
PUT /2/tweets/:tweet_id/hidden | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
Users | |||
DELETE /2/users/:source_user_id/following/:target_user_id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
DELETE /2/users/:source_user_id/muting/:target_user_id | 50 richieste/15 min PER UTENTE | 5 richieste/15 min PER UTENTE | 1 richiesta/15 min PER UTENTE |
GET /2/users | 900 richieste / 15 min PER UTENTE 300 richieste / 15 min PER APP | 100 richieste / 24 ore PER UTENTE 500 richieste / 24 ore PER APP | 1 richiesta / 24 ore PER UTENTE 1 richiesta / 24 ore PER APP |
GET /2/users/:id | 900 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 100 richieste/24 ore PER UTENTE 500 richieste/24 ore PER APP | 1 richiesta/24 ore PER UTENTE 1 richiesta/24 ore PER APP |
GET /2/users/:id/blocking | 15 richieste/15 min PER UTENTE | 5 richieste/15 min PER UTENTE | 1 richiesta/15 min PER UTENTE |
GET /2/users/:id/muting | 15 richieste / 15 min PER UTENTE | 100 richieste / 24 ore PER UTENTE | 1 richiesta / 24 ore PER UTENTE |
GET /2/users/by | 900 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 100 richieste/24 ore PER UTENTE 500 richieste/24 ore PER APP | 1 richiesta/24 ore PER UTENTE 1 richiesta/24 ore PER APP |
GET /2/users/by/username/:username | 900 richieste / 15 min PER UTENTE 300 richieste / 15 min PER APP | 100 richieste / 24 ore PER UTENTE 500 richieste / 24 ore PER APP | 3 richieste / 15 min PER UTENTE 3 richieste / 15 min PER APP |
GET /2/users/me | 75 richieste / 15 min PER UTENTE | 250 richieste / 24 ore PER UTENTE | 25 richieste / 24 ore PER UTENTE |
GET /2/users/search | 900 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | ||
POST /2/users/:id/following | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
POST /2/users/:id/muting | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
Spaces | |||
GET /2/spaces | 300 richieste / 15 min PER UTENTE 300 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 25 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/spaces/:id | 300 richieste / 15 min PER UTENTE 300 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 25 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/spaces/:id/buyers | 300 richieste / 15 min PER UTENTE 300 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 25 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/spaces/:id/tweets | 300 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 25 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/spaces/by/creator_ids | 300 richieste / 15 min PER UTENTE 1 richiesta/secondo PER APP | 5 richieste / 15 min PER UTENTE 25 richieste/secondo PER APP | 1 richiesta/secondo PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/spaces/search | 300 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 25 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
Messaggi Diretti | |||
DELETE /2/dm_events/:id | 1500 richieste/24 ore PER UTENTE 4000 richieste/24 ore PER APP | 200 richieste/15 minuti PER UTENTE 2500 richieste/24 ore PER APP | |
GET /2/dm_conversations/:dm_conversation_id/dm_events | 15 richieste / 15 min PER UTENTE | 1 richiesta / 24 ore PER UTENTE | |
GET /2/dm_conversations/with/:participant_id/dm_events | 15 richieste / 15 minuti PER UTENTE | 1 richiesta / 24 ore PER UTENTE | |
GET /2/dm_events | 15 richieste / 15 min PER UTENTE | 1 richiesta / 24 ore PER UTENTE | |
GET /2/dm_events/:id | 15 richieste / 15 minuti PER UTENTE | 5 richieste / 24 ore PER UTENTE | |
POST /2/dm_conversations | 15 richieste / 15 min PER UTENTE 1440 richieste / 24 ore PER APP | 1 richiesta / 24 ore PER UTENTE 1 richiesta / 24 ore PER APP | |
POST /2/dm_conversations/:dm_conversation_id/messages | 15 richieste / 15 min PER UTENTE 1440 richieste / 24 ore PER APP | 1 richiesta / 24 ore PER UTENTE 1 richiesta / 24 ore PER APP | |
POST /2/dm_conversations/with/:participant_id/messages | 1440 richieste / 24 ore PER UTENTE 1440 richieste / 24 ore PER APP | 1 richiesta / 24 ore PER UTENTE 1 richiesta / 24 ore PER APP | |
Lists | |||
DELETE /2/lists/:id | 300 richieste/15 min PER UTENTE | 5 richieste/15 min PER UTENTE | 1 richiesta/15 min PER UTENTE |
DELETE /2/lists/:id/members/:user_id | 300 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
DELETE /2/users/:id/followed_lists/:list_id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
DELETE /2/users/:id/pinned_lists/:list_id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
GET /2/lists/:id | 75 richieste / 15 min PER UTENTE 75 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 5 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/lists/:id/members | 900 richieste / 15 min PER UTENTE 900 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 25 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/lists/:id/tweets | 900 richieste/15 min PER UTENTE 900 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 25 richieste/15 min PER APP | |
GET /2/users/:id/list_memberships | 75 richieste / 15 min PER UTENTE 75 richieste / 15 min PER APP | 5 richieste / 15 min PER UTENTE 25 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 15 min PER APP |
GET /2/users/:id/owned_lists | 15 richieste/15 min PER UTENTE 15 richieste/15 min PER APP | 100 richieste/24 ore PER UTENTE 500 richieste/24 ore PER APP | 1 richiesta/24 ore PER UTENTE 1 richiesta/24 ore PER APP |
GET /2/users/:id/pinned_lists | 15 richieste / 15 min PER UTENTE 15 richieste / 15 min PER APP | 100 richieste / 24 ore PER UTENTE 500 richieste / 24 ore PER APP | 1 richiesta / 24 ore PER UTENTE 1 richiesta / 24 ore PER APP |
POST /2/lists | 300 richieste / 15 minuti PER UTENTE | 100 richieste / 24 ore PER UTENTE | 1 richiesta / 24 ore PER UTENTE |
POST /2/lists/:id/members | 300 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
POST /2/users/:id/followed_lists | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
POST /2/users/:id/pinned_lists | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
PUT /2/lists/:id | 300 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
Preferiti | |||
DELETE /2/users/:id/bookmarks/:tweet_id | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
GET /2/users/:id/bookmarks | 180 richieste / 15 min PER UTENTE | 10 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
GET /2/users/:id/bookmarks/folders | 50 richieste/15 min PER UTENTE 50 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 5 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/users/:id/bookmarks/folders/:folder_id | 50 richieste/15 min PER UTENTE 50 richieste/15 min PER APP | 5 richieste/15 min PER UTENTE 5 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
POST /2/users/:id/bookmarks | 50 richieste / 15 min PER UTENTE | 5 richieste / 15 min PER UTENTE | 1 richiesta / 15 min PER UTENTE |
Conformità | |||
GET /2/compliance/jobs | 150 richieste / 15 min PER APP | 5 richieste / 15 min PER APP | 1 richiesta / 15 min PER APP |
GET /2/compliance/jobs/:job_id | 150 richieste/15 minuti PER APP | 5 richieste/15 minuti PER APP | 1 richiesta/15 minuti PER APP |
POST /2/compliance/jobs | 150 richieste / 15 min PER APP | 15 richieste / 15 min PER APP | 1 richiesta / 15 min PER APP |
Uso | |||
GET /2/usage/tweets | 50 richieste / 15 min PER APP | 50 richieste / 15 min PER APP | 1 richiesta / 15 min PER APP |
Tendenze | |||
GET /2/trends/by/woeid/:id | 75 richieste / 15 min PER APP | 15 richieste / 15 min PER APP | |
GET /2/users/personalized_trends | 10 richieste / 15 min PER UTENTE 200 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 20 richieste / 15 min PER APP | 1 richiesta / 15 min PER UTENTE 1 richiesta / 24 ore PER APP |
Comunità | |||
GET /2/communities/:id | 300 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 25 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
GET /2/communities/search | 300 richieste/15 min PER UTENTE 300 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 25 richieste/15 min PER APP | 1 richiesta/15 min PER UTENTE 1 richiesta/15 min PER APP |
Limiti di velocità e metodo di autenticazione
-
OAuth 2.0 Bearer Token: limite di velocità dell’App
Questo metodo consente di effettuare un certo numero di richieste per conto della tua App sviluppatore. Quando utilizzi questo metodo di autenticazione, i limiti sono determinati dalle richieste effettuate con un Bearer Token.
- Esempio: con un limite di 450 richieste per intervallo di 15 minuti, puoi effettuare 450 richieste per conto della tua App entro tale intervallo.
-
OAuth 1.0a User Context: limite di velocità utente
Questo metodo consente di effettuare richieste per conto di un utente di X identificato dall’Access Token utente. Ad esempio, se recuperi metriche private dai Post, esegui l’autenticazione con Access Tokens utente per quell’utente, generati utilizzando il flusso OAuth a 3 vie.
- Esempio: con un limite di 900 richieste per 15 minuti per utente, puoi effettuare fino a 900 richieste per utente in quel periodo di tempo.
Intestazioni HTTP e codici di risposta
x-rate-limit-limit
: limite massimo (rate limit) per l’endpointx-rate-limit-remaining
: richieste rimanenti nella finestra di 15 minutix-rate-limit-reset
: tempo rimanente prima del reset del limite di velocità (in secondi epoch UTC)
Risposte di errore
Ripristinare dopo un limite di velocità
Quando si verifica un errore “Too Many Requests” o di rate limiting, è necessario ridurre la frequenza delle richieste. In caso di errore di limite di velocità, è possibile consultare l’intestazione HTTP
x-rate-limit-reset:
per sapere quando il rate limiting verrà reimpostato.Un altro modello comune è il backoff esponenziale, in cui l’intervallo tra le richieste parte da un valore ridotto (ad esempio, pochi secondi) e raddoppia prima di ogni nuovo tentativo. Si continua così fino a quando una richiesta va a buon fine, oppure si raggiunge un intervallo massimo ragionevole tra le richieste (ad esempio, alcuni minuti).
Idealmente, il client è consapevole dei limiti di velocità esistenti e può mettere in pausa le richieste fino alla scadenza della finestra attualmente ecceduta. Se superi un limite di 15 minuti, ha senso attendere un minuto o due prima di riprovare.
Nota che, oltre a questi limiti sul numero di richieste, il livello di accesso Standard Basic fornisce fino a 500.000 Post al mese dagli endpoint di ricerca recente e filtered stream. Se hai superato il limite mensile sul numero di Post, ha più senso che la tua App generi una notifica, tenga traccia del giorno di attivazione dell’iscrizione mensile e sospenda le richieste fino a quel giorno.
Suggerimenti per evitare di incorrere nel limite di velocità
Caching
Dai priorità agli utenti attivi
Adatta la ricerca ai risultati
Denylist
- Spiega perché ritieni che la tua applicazione sia stata inserita in denylist.
- Se non sei più soggetto a limiti di velocità, descrivi nel dettaglio come hai risolto il problema.