Los límites de tasa controlan la cantidad de solicitudes que puedes hacer a cada endpoint. Si excedes los límites, recibirás un error 429 hasta que la ventana se reinicie.
Cómo funcionan los límites de tasa
Concepto Descripción Ventana de tiempo Normalmente 15 minutos o 24 horas Límites por usuario Se aplican con OAuth 1.0a o tokens de usuario de OAuth 2.0 Límites por App Se aplican con Bearer Token (solo App) Límites por endpoint Cada endpoint tiene sus propios límites
Los encabezados de la respuesta muestran el estado actual de tus límites de frecuencia:
x-rate-limit-limit: 900
x-rate-limit-remaining: 847
x-rate-limit-reset: 1705420800
Encabezado Descripción x-rate-limit-limitLímite máximo de solicitudes permitidas x-rate-limit-remainingSolicitudes restantes en la ventana x-rate-limit-resetMarca de tiempo Unix cuando la ventana se restablece
Consulta el límite de uso para cada endpoint a continuación. También puedes ver estos límites en la Consola de desarrollador .
Los límites se muestran en intervalos de 15 minutos, a menos que se indique lo contrario (por ejemplo, “/24hrs” o “/sec”).
Publicaciones (25 endpoints)
Método Endpoint Por App Por usuario GET /2/tweets3,500/15min 5,000/15min GET /2/tweets/:id450/15min 900/15min
Método Endpoint Por App Por usuario Notas GET /2/tweets/search/recent450/15min 300/15min 10 por defecto, 100 resultados como máximo; longitud de la consulta de 512 caracteres
Búsqueda en el archivo completo
Method Endpoint Per App Per User Notas GET /2/tweets/search/all1/seg, 300/15 min 1/seg 10 por defecto, máximo 500 resultados; longitud máxima de la consulta: 1024 caracteres
Recuento de publicaciones
Método Endpoint Por App Por usuario Notas GET /2/tweets/counts/recent300/15min — longitud de la consulta: 512 GET /2/tweets/counts/all300/15min — longitud de la consulta: 1024
Método Endpoint Por App Por usuario Notas GET /2/tweets/search/stream50/15min — 1 conexión; 1000 reglas; longitud de regla: 1024; 250 publicaciones/seg GET /2/tweets/search/stream/rules450/15min — 1 conexión; 1000 reglas; longitud de regla: 1024 POST /2/tweets/search/stream/rules100/15min — 1 conexión; 1000 reglas; longitud de regla: 1024
Administrar publicaciones
Método Endpoint Por App Por usuario POST /2/tweets10,000/24 h 100/15 min DELETE /2/tweets/:id— 50/15 min
Método Endpoint Por App Por usuario 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étodo Endpoint Por App Por usuario GET /2/tweets/:id/liking_users75/15min 75/15min GET /2/users/:id/liked_tweets75/15min 75/15min
Método Endpoint Por App Por usuario 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étodo Endpoint Por App Por usuario Notas 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 Hasta 100 resultados
Método Endpoint Por aplicación Por usuario POST /2/users/:id/retweets— 50/15min DELETE /2/users/:id/retweets/:tweet_id— 50/15min
Método Endpoint Por App Por usuario PUT /2/tweets/:tweet_id/hidden— 50/15min
Method Endpoint Por App Por usuario 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
Método Endpoint Por App Por usuario GET /2/users/search300/15min 900/15min
Method Endpoint Por App Por usuario GET /2/users/:id/following300/15min 300/15min GET /2/users/:id/followers300/15min 300/15min
Método Endpoint Por App Por usuario POST /2/users/:id/following— 50/15min DELETE /2/users/:source_user_id/following/:target_user_id— 50/15min
Método Endpoint Por App Por usuario GET /2/users/:id/blocking— 15/15min
Consulta de cuentas silenciadas
Método Endpoint Por App Por usuario GET /2/users/:id/muting— 15/15min
Método Endpoint Por aplicación Por usuario POST /2/users/:id/muting— 50/15min DELETE /2/users/:source_user_id/muting/:target_user_id— 50/15min
Method Endpoint Por App Por usuario GET /2/spaces/:id300/15min 300/15min GET /2/spaces300/15min 300/15min GET /2/spaces/:id/tweets300/15min 300/15min GET /2/spaces/by/creator_ids300/15min, 1/sec 300/15min, 1/sec GET /2/spaces/:id/buyers300/15min 300/15min
Método Endpoint Por App Por usuario GET /2/spaces/search300/15min 300/15min
Mensajes Directos (8 endpoints)
Consulta de Mensajes Directos
Método Endpoint Por App Por usuario 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
Administrar Mensajes Directos
Método Endpoint Por App Por usuario POST /2/dm_conversations1,440/24 h 15/15 min, 1,440/24 h POST /2/dm_conversations/with/:participant_id/messages1,440/24 h 15/15 min, 1,440/24 h POST /2/dm_conversations/:dm_conversation_id/messages1,440/24 h 15/15 min, 1,440/24 h DELETE /2/dm_events/:id4,000/24 h 300/15 min, 1,500/24 h
Método Endpoint Por App Por usuario GET /2/lists/:id75/15min 75/15min GET /2/users/:id/owned_lists15/15min 15/15min
Método Endpoint Por App Por usuario GET /2/lists/:id/tweets900/15min 900/15min
Búsqueda de miembros de la lista
Método Endpoint Por App Por usuario GET /2/lists/:id/members900/15min 900/15min GET /2/users/:id/list_memberships75/15min 75/15min
Método Endpoint Por App Por usuario POST /2/lists— 300/15min DELETE /2/lists/:id— 300/15min PUT /2/lists/:id— 300/15min
Gestionar miembros de Listas
Método Endpoint Por App Por usuario POST /2/lists/:id/members— 300/15min DELETE /2/lists/:id/members/:user_id— 300/15min
Administrar seguimientos de Listas
Método Endpoint Por App Por usuario POST /2/users/:id/followed_lists— 50/15min DELETE /2/users/:id/followed_lists/:list_id— 50/15min
Método Endpoint Por App Por usuario GET /2/users/:id/pinned_lists15/15min 15/15min POST /2/users/:id/pinned_lists— 50/15min DELETE /2/users/:id/pinned_lists/:list_id— 50/15min
Method Endpoint Por App Por usuario 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étodo Endpoint Por App Por usuario POST /2/users/:id/bookmarks— 50/15min DELETE /2/users/:id/bookmarks/:tweet_id— 50/15min
Cumplimiento (3 endpoints)
Método Endpoint Por App Por usuario POST /2/compliance/jobs150/15min — GET /2/compliance/jobs/:job_id150/15min — GET /2/compliance/jobs150/15min —
Método Endpoint Por App Por usuario GET /2/usage/tweets50/15min —
Tendencias personalizadas
Método Endpoint Por App Por usuario GET /2/users/personalized_trends200/24hrs, 200/15min 100/24hrs, 10/15min
Método Endpoint Por App Por usuario GET /2/trends/by/woeid/:id75/15min —
Comunidades (2 endpoints)
Método Endpoint Por App Por usuario Notas GET /2/communities/:id300/15min 300/15min — GET /2/communities/search300/15min 300/15min 100 resultados máx.
Método Endpoint Por App Por usuario GET /2/tweets/analytics300/15min 300/15min
Método Endpoint Por App Por usuario POST /2/media/upload50,000/24hrs 500/15min GET /2/media/upload100,000/24hrs 1,000/15min POST /2/media/upload/initialize180,000/24hrs 1,875/15min POST /2/media/upload/:id/append180,000/24hrs 1,875/15min POST /2/media/upload/:id/finalize180,000/24hrs 1,875/15min POST /2/media/metadata50,000/24hrs 500/15min POST /2/media/subtitles10,000/24hrs 100/15min DELETE /2/media/subtitles10,000/24hrs 100/15min
Método Endpoint Por App Por usuario Notas GET /2/activity/stream450/15min — 2 conexiones; 250 publicaciones/s POST /2/activity/subscriptions500/15min — — GET /2/activity/subscriptions500/15min — — PUT /2/activity/subscriptions/:subscription_id500/15min — — DELETE /2/activity/subscriptions/:subscription_id500/15min — — POST /2/webhooks450/15min — — GET /2/webhooks450/15min — — PUT /2/webhooks/:webhook_id450/15min — — DELETE /2/webhooks/:webhook_id450/15min — — POST /2/webhooks/replay100/15min — —
Método Endpoint Por App Por usuario GET /2/tweets/sample10/stream100/15 min — GET /2/news/:id200/15 min — GET /2/news/search200/15 min 200/15 min POST /2/users/:id/dm/block25/15 min, 1,000/24 h 10/15 min, 400/24 h POST /2/users/:id/dm/unblock25/15 min, 1,000/24 h 10/15 min, 400/24 h GET /2/users/by/username/:username/tweets1,500/15 min 900/15 min GET /2/users/by/username/:username/mentions450/15 min 180/15 min GET /2/users/:id/following/spaces300/15 min 300/15 min GET /2/tweets/:id/retweets75/15 min 75/15 min DELETE /2/connections/all25/15 min 25/15 min
Gestión de los límites de tasa
Cuando superes un límite de tasa, recibirás una respuesta 429:
{
"errors" : [{
"code" : 88 ,
"message" : "Rate limit exceeded"
}]
}
Estrategia de recuperación
Comprueba x-rate-limit-reset para saber cuándo se reinicia la ventana
Espera hasta ese momento antes de volver a intentarlo
Utiliza una estrategia de backoff exponencial si es necesario
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
Almacenar en caché las respuestas Almacena los resultados localmente para reducir solicitudes repetidas.
Usar streaming Para datos en tiempo real, usa un stream filtrado en lugar de hacer polling.
Supervisar encabezados Realiza un seguimiento de las solicitudes restantes para evitar alcanzar los límites.
Distribuir solicitudes Distribuye las solicitudes a lo largo del intervalo de tiempo.
Límites de tasa vs. facturación
Los límites de tasa y la facturación son conceptos separados:
Concepto Propósito Límites de tasa Controlan la frecuencia de las solicitudes para mantener la estabilidad del sistema Facturación por uso Cobra por los datos obtenidos (pago por uso)
Puedes estar dentro de los límites de tasa y aun así generar costos de uso, o alcanzar los límites de tasa sin que ello implique un costo adicional.
Límites de tasa de Enterprise
Los clientes de Enterprise tienen límites de tasa personalizados. Póngase en contacto con su representante de cuenta o solicite acceso a Enterprise .
Manejo de errores Gestiona el 429 y otros errores.
Primeros pasos Conoce los niveles de acceso y las funcionalidades.