Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntarEvery thing you always wanted to know about the Twitter API but were afraid to ask

Se recomienda leer la versión actualizada a 2017

Actualmente Twitter es una de las mayores fuentes de información en tiempo real de Internet alimentada por millones de usuarios. Durante el último mes he intentado buscar respuestas estas preguntas:

  • ¿Cuál es la cantidad de tweets?
  • ¿Qué se puede obtener con los APIs de Twitter?
  • ¿Cuáles son las limitaciones del API de Twitter?
  • ¿Qué persistencia tienen los tweets?

Lo que he averiguado lo he  representarlo en una infografía para los muy ocupados y en modo textual para los que su curiosidad sea aún mayor.

¿Cuál es la cantidad de tweets?

El número de usuarios de Twitter  y por tanto el de tweets generados tiene un crecimiento espectacular.  El despegue comenzó en el 2009 y en un año se ha multiplicado por 25.  Con este tráfico de entrada cualquier evento global es una prueba de fuego para Twitter, como ha sido el caso de la Wold Cup que nos ha traído de nuevo a la ballena azul. Durante la segunda semana de la World Cup se ha alcanzado el record de  3.283 TPS (Tweets Per Second) y la media actual es de 750 TPS.  Esto hace casi inalcanzable obtener tal cantidad  de información (y almacenarla) por lo que habrá que pensar en  soluciones creativas para poder obtener los datos que se deseen.

¿Qué se puede obtener con los APIs de Twitter?

Twitter ofrece tres APIs:   Streaming API REST APISearch API aplicables a necesidades diferentes. El Streaming API proporciona un subset de tweets en casi tiempo real. Se establece una conexión permanente por usuario con los servidores de Twitter y mediante una petición http  se recibe un flujo continúo de tweets en formato json.  Se puede obtener una muestra aleatoria (statuses/sample), un filtrado (statuses/filter) por palabras claves o por usuarios. Sin embargo, los métodos más interesantes cómo obtener todo el caudal de tweets (statuses/firehose) o sólo los tweets que tienen enlaces (statuses/links) o los tweets con retweets (statuses/retweet) «Is not a generally available resource» :-( El Search API suministra los tweets con una profundidad en el tiempo de 7 días que se ajustan a la query solicitada. Es posible filtrar por, cliente utilizado, lenguaje y localización. No requiere autenticación y los tweets se obtienen en formato jsonatom. El REST API ofrece a los desarrolladores el acceso al core de los datos de Twitter. Todas las operaciones que se pueden hacer vía web son posibles realizarlas desde el API.  Dependiendo de la operación requiere o no autenticación, con el mismo criterio que en el acceso web. Sopota los formatos: xml, json, rss, atom. El Search API ofrece una información más limitada del tweet,  en concreto sobre los datos del autor en el que solo indica el Id,  el screen_name y la url de su avatar. Los otros dos APIs si ofrecen el perfil completo del autor en el momento de la escritura del tweet.

¿Cuáles son las limitaciones de  los APIs de Twitter?

En el Streaming API el flujo es continuo y la velocidad de recepción de tweets tendrá fluctuaciones que dependerán del ancho de banda de los dos extremos de la conexión y la sobrecarga de los servidores de Twitter. Actualmente estoy haciendo medidas en dos servidores y publicaré los resultados tan pronto como estén disponibles. En el Search API y en el REST API existe una limitación de 150 peticiones a la hora por usuario o por IP si la llamada no está autenticada. Es importante saber cómo realizar la  paginación de las  peticiones de una manera óptima para sacarle el  máximo partido.

API Petición Max. Tamaño Pagina Max. Total
Search search 200 tweets 1500 tweets
REST statuses 200 tweets 3200 tweets
REST friends/ids 5.000 id users Los que haya (*)
REST followers/ids 5.000 id users Los que haya (*)

(*) hemos obtenido los seguidores de Barack Obama que sobrepasa los 4,5 millones de followers

¿Qué persistencia tienen los tweets?

Aunque todos los tweets residan en las BB.DD. de Twitter hay una limitación temporal para obtenerlos.

API Limitación temporal Limitación tamaño
Streaming Solo tiempo real
Search -7 días 1500 últimos tweets
REST NO 3200 últimos tweets

Nowadays Twitter, feeding from million of users, is one of the largest real time information sources on the Internet For the last month I’ve been trying to find the answers for these questions:

  • How many tweets are created per day?
  • What data can be obtained from the Twitter API?
  • What limits does the Twitter API have?
  • What persistence do tweets have?

I created an infography asking this questions and a textual explanation for people to read.

The growth of Twitter users as well as the number of tweets is amazing. The tweets explosion started in 2009 and a year later the number of tweets per day has multiplied by 25. Due to this input traffic every global event is a huge test for Twitter, as happened with the World Cup a record of 3,283 TPS (Tweets Per Second) was reached, the average being 750 TPS. This amount of data makes it almost impossible for us to get this information (and to store it). We’ll need to think of some creative solutions to get the data needed.

What data can be obtained from the Twitter API?

Twitter provide three APIs: Streaming API,  REST API and the Search API, each one applied to different needs.

The Streaming API allows near-real time access to various subsets of Twitter public statuses. A permanent connexion is established between a user and the Twitter servers and through an http request a continuous tweets flow is received in json format.  It is possible to get some random tweets (statuses/simple) or some filter tweets by key words or by users (statuses/filter).  However, the most interesting methods to get all statuses (statuses/firehose) or all statuses containing http: and https: (statuses/links) or all retweets (statuses/retweet) «is not a generally available resource»

The Search API returns tweets that match a specified query. Its depth is 7 days before. It allows filtering by source, language and location. Authentication is not required and formats provided are json o  atom.

The REST API allows to access core Twitter data. This includes update timelines, status data, and user information. What ever you do on the Twitter web you could do it using the REST API. It requires authentication or not depending on type operation. It provides xml, json, rss, atom formats.

The Search API returns less information by tweet that the other two API’s. Only Id, screen_name and avatar url are given by each author.

What limits does the Twitter API have?

The streaming API is a continuous tweets flow from Twitter serves to user. The rate is conditioned by the broadband connection and the twitter server’s overload. Right now I’m receiving two streaming on two different servers at the Carlos III University and  I’m measuring the rate. When I have results I’ll publish them.

In the Search API and in the REST API there is a limit of 150 requests per hour by user or by IP if the call is unauthenticated. It is important to know how to make pagination in the optimal way.

API Request Maximum size per page Total data
Search search 200 tweets 1,500 tweets
REST statuses 200 tweets 3,200 tweets
REST friends/ids 5,000 id users All (*)
REST followers/ids 5,000 id users All (*)

(*) It was tested with up to 4.5 million followers of Barack Obama

What persistence do tweets have?

Despite Tweets being stored at Twitter BB.DD. there is a temporal limitation to get them.

API Temporal limitation Size limitation
Streaming Only real time
Search -7 days 1,500 last tweets
REST NO 3,200 last tweets

 

También te podría gustar...

9 Respuestas

  1. jose dice:

    Hola. En mi twitter me sale una leyenda que dice: »se ha superado el limite de la API de twitter para esta cuenta» Que significa eso??

  2. Juanma dice:

    Buenas de nuevo Mari Luz!! sigo leyendo y estudiando sobre el tema de la minería de datos en Twitter. Me surge una preguntilla, los métodos (statuses/firehose) (statuses/links) o (statuses/retweet) nos son disponibles porque Twitter no los proporciona? o porque simplemente no hay máquina que ahora mismo por ejemplo no pueda procesar todos los twitts en tiempo real?

    Muchas gracias por tu atención.

  3. Juanma:

    El oauth no es un API, es un método para identificarse y lo necesitas para el REST API. El oauth es para controlar las aplicaciones que se montan sobre twitter.

    El Streaming API necesita usuario Password de twiter

    El API del search, no necesita autentificación. Si lo usas en modo anínimo te cuenta los accesos por la IP y si te autentificas con usuario/password te los cuenta por usuario

  4. Juanma dice:

    Hola Mari Luz de nuevo, ante mi desconocimiento en la API´s de Twitter me surge una duda, aqui hablas de 3 API´s distintas, pero ahora se utiliza OAuth, verdad? la API´s de Twitter OAuth sustituye a estas 3?

    Gracias ;)

  5. @isolMAC Gracias por la informción en la dioumentación del API no lo habían actualizado cuando hice la infografía. Habrá que probar lo límites de forma empirica portque he visto que otros límites tambien han cambiado.

  6. isolMAC dice:

    Muy buena infografia y muy buen resumen. Solo una cosita: creo que ahora el límite de peticiones/hora es de 350, al menos con OAuth

  1. julio 12, 2010

    […] Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntar – Actualmente Twitter es una de las mayores fuentes de información en tiempo real de Internet alimentada por millones de usuarios. Durante el último mes he intentado buscar respuestas estas preguntas: ¿Cuál es la cantidad de tweets? ¿Qué se puede obtener con los APIs de Twitter? ¿Cuáles son las limitaciones del API de Twitter? ¿Qué persistencia tienen los tweets? […]

  2. agosto 13, 2010

    […] original en: Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntar […]

  3. octubre 9, 2017

    […] de los post más populares de barriblog es Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntar. Es una entrada de utilidad para los que tienen curiosidad sobre esta API pero los cambios que va […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *