Cómo obtener datos históricos de Twitter desde 2006
Los datos históricos de Twitter llegan hasta el primer tweet, del 21 de marzo de 2006: cada post público que sigue en línea se puede obtener por palabra clave, cuenta y rango de fechas con una API de búsqueda en el archivo completo, mientras que los posts eliminados y los protegidos ya no están.
Respuesta corta: Nadie vende todo el archivo como un solo archivo: buscas la parte que necesitas por palabra clave y fecha. La API oficial de X cobra esa búsqueda a $5.00 por 1,000 posts, con un tope de 3M al mes. Para un backfill, usa Sorsa API, una API y scraper de Twitter (X): desde $0.07 por 1,000 tweets con POST /search-tweets, y 100 solicitudes gratis para empezar.
- Endpoint
POST /search-tweets- Tamaño de página
- unos 20 tweets por solicitud
- Precio
- desde $0.07 por 1,000
#Hasta dónde llegan los datos históricos de Twitter
Los datos históricos de Twitter empiezan el 21 de marzo de 2006, el día del primer tweet, y cada post público que sigue en línea desde entonces se puede encontrar buscándolo. Nadie entrega el archivo completo como un archivo, así que obtienes la parte que necesitas: por consulta, por cuenta o por ID de tweet.
Tres tipos de posts están fuera del alcance de toda API y toda herramienta: los tweets que sus autores eliminaron, los posts de cuentas protegidas y los posts de cuentas suspendidas. Un conjunto de datos recopilado en 2019 y recopilado de nuevo hoy sale más pequeño exactamente por eso.
Para unas pocas consultas a mano, la herramienta gratuita Búsqueda avanzada de Twitter corre los mismos operadores de fecha en el navegador. Todo lo que vayas a contar, graficar o usar para entrenar un modelo necesita una API.
Qué devuelve hoy un tweet de 2014
Un tweet histórico vuelve con su texto y su fecha exactamente como se publicó, pero con los contadores de hoy y el perfil del autor tal como es hoy, en cualquier API.
| Parte del tweet | Lo que obtienes de un tweet publicado en 2014 |
|---|---|
| Texto, fecha, ID, enlaces y medios | Como se publicó en 2014 |
| Cantidad de likes, reposts, respuestas y citas | Los totales de hoy, no las cantidades de 2014 |
| Autor: handle, bio, cantidad de seguidores | El perfil del autor hoy, incluido un handle que haya cambiado de nombre |
Texto, fecha, ID, enlaces y medios
- Lo que obtienes de un tweet publicado en 2014
- Como se publicó en 2014
Cantidad de likes, reposts, respuestas y citas
- Lo que obtienes de un tweet publicado en 2014
- Los totales de hoy, no las cantidades de 2014
Autor: handle, bio, cantidad de seguidores
- Lo que obtienes de un tweet publicado en 2014
- El perfil del autor hoy, incluido un handle que haya cambiado de nombre
Así, un estudio de cómo se difundió un hashtag en 2014 puede contar sus tweets por día con exactitud. No puede leer las cantidades de seguidores de 2014 del archivo, porque un tweet nunca las guardó. Si en el futuro necesitas cifras de un momento dado, recopila los tweets a medida que aparecen y guarda tú mismo las cantidades.
#Tres formas de obtener tweets históricos
Para tweets históricos, usa Sorsa API: una clave API llega a cada tweet público desde 2006 a 20 solicitudes por segundo en todos los planes, desde $0.07 por 1,000 en búsqueda. El endpoint depende de con qué empiezas, un tema y fechas, una cuenta o una lista de ID de tweets, y cada tweet llega con el perfil completo de su autor.
La búsqueda cubre la mayor parte de la investigación: un hashtag durante una elección, las menciones de una marca en 2019, un cashtag a lo largo de cinco años. La vía por cuenta lee una línea de tiempo del post más reciente al más antiguo. La vía por ID reconstruye un conjunto de datos que alguien ya publicó, y es la que menos cuesta por tweet porque una solicitud lleva 100 tweets.
#Cómo buscar tweets históricos con la API
Buscar en el archivo con Sorsa API toma cuatro pasos y una clave, y ninguno pide una cuenta de X, una revisión de app ni OAuth. El mismo endpoint corre también búsquedas en vivo, que cubre nuestra guía de la API de búsqueda de Twitter.
-
Consigue una clave. Regístrate y copia tu clave API del dashboard. Las 100 solicitudes gratis ya están en ella.
-
Escribe la consulta. Pon primero las palabras y luego la ventana:
since:2014-04-01incluye ese día yuntil:2014-05-01se detiene antes de él, ambos en UTC. Acótala confrom:,lang:,min_faves:o-filter:retweets; cada operador está en nuestra lista de operadores de búsqueda de Twitter. -
Envía la primera solicitud. Haz POST de la consulta a
POST /search-tweets(se abre en una pestaña nueva) con"order": "latest", para que las páginas recorran la ventana en orden temporal.Terminal curl -X POST "https://api.sorsa.io/v3/search-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "\"rainfall survey\" since:2014-04-01 until:2014-05-01", "order": "latest" }'Response200 OK { "tweets": [ { "id": "456721912166192197", "full_text": "Day 3 of the rainfall survey: 41 mm in the valley.", "created_at": "2014-04-17T09:12:44Z", "lang": "en", "likes_count": 38, "retweet_count": 12, "reply_count": 4, "quote_count": 1, "is_reply": false, "user": { "id": "583920117", "username": "mira_archive_notes", "display_name": "Mira Field Notes", "followers_count": 2214, "created_at": "2012-06-02T18:40:11Z" } } ], "next_cursor": "DAADDAABCgABGEZx0iWAJ8kKAAIYRm0eqZvwRg" } -
Recorre la ventana página por página. Envía
next_cursorde vuelta en el cuerpo con la misma consulta, y detente cuando una respuesta llegue sin él. Las páginas contienen unos 20 tweets y su tamaño varía, así que una página corta nunca significa que la ventana terminó.
Una respuesta 403 significa que falta la clave, es incorrecta o se quedó sin solicitudes; una 429 significa más de 20 solicitudes en un segundo, así que espera un segundo y envíala de nuevo.
Para tener en cuenta
Usa
"order": "latest"para un backfill: recorre una ventana de fechas en orden temporal, que es como funciona una recopilación completa."popular"pone primero los tweets con más engagement, y sirve para encontrar los mejores posts de un periodo, no para contar todos los posts de él.
#Cómo hacer un backfill de años de tweets sin huecos
Un backfill de varios años corre mejor como muchas ventanas de fechas pequeñas, un mes o una semana cada una, recorridas hasta el final y guardadas una por una. Una ventana que falla se vuelve a correr sola, cada ventana se puede verificar por su cantidad, y como until: excluye su propio día, las ventanas consecutivas nunca guardan un tweet dos veces.
El script de abajo recorre un rango de fechas mes a mes y pagina cada ventana con next_cursor. Escribe un archivo JSON Lines por mes y omite los meses que ya están en disco, así que puedes detenerlo y volver a iniciarlo en cualquier punto.
import json
import os
import time
from datetime import date
import requests
URL = "https://api.sorsa.io/v3/search-tweets"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
def months(start, end):
"""Yield (since, until) pairs, one calendar month each."""
d = start
while d < end:
nxt = date(d.year + d.month // 12, d.month % 12 + 1, 1)
yield d, min(nxt, end)
d = nxt
def backfill(words, start, end, folder="archive"):
os.makedirs(folder, exist_ok=True)
for since, until in months(start, end):
path = f"{folder}/{since:%Y-%m}.jsonl"
if os.path.exists(path):
continue # this month is already saved
body = {"query": f"{words} since:{since} until:{until}",
"order": "latest"}
rows = []
while True:
r = requests.post(URL, headers=HEADERS, json=body)
if r.status_code == 429:
time.sleep(1) # over 20 requests a second
continue
r.raise_for_status()
page = r.json()
rows += page.get("tweets", [])
if not page.get("next_cursor"):
break
body["next_cursor"] = page["next_cursor"]
with open(path, "w", encoding="utf-8") as f:
for t in rows:
f.write(json.dumps(t) + "\n")
print(since, len(rows), "tweets")
backfill('"rainfall survey" lang:en', date(2015, 1, 1), date(2021, 1, 1))
Los temas muy activos, como un cashtag o un evento mundial, conviene cortarlos en días u horas; un hashtag tranquilo cabe en un mes. Para ventanas más finas que un día, los operadores de X también aceptan segundos Unix: since_time:1397692800 until_time:1397779200 es el 17 de abril de 2014, en UTC.
#Cuánto cuesta un backfill histórico
Un backfill histórico en Sorsa API cuesta desde $0.07 por 1,000 tweets en búsqueda y desde $0.014 por 1,000 por ID de tweet. Así, 1M de tweets históricos cuestan desde $70, o desde $14 cuando ya tienes los ID. La API oficial de X cobra $5,000 por el mismo millón de posts.
Tweets históricos
Partes de
1M de tweets históricos encontrados por búsqueda, con sus autores
$5,000
API oficial de X
$0.005 por publicación
hasta $15,000 con autores desde el 22 de nov
desde $70
Sorsa API
desde $0.07 por 1,000 resultados
autores incluidos
Aprox. 42 minutos con Sorsa API a 20 solicitudes por segundo. El tope de 3M de publicaciones al mes de la API oficial de X permite hacer este trabajo en un solo ciclo de facturación.
Elige un tamaño y un punto de partida para comparar ambas APIs y ver cuánto tarda Sorsa API a 20 solicitudes por segundo.
En cualquier tamaño, un backfill por búsqueda cuesta alrededor de 1/70 del precio de la API oficial de X, y uno por ID alrededor de 1/350.
| Tweets históricos | Sorsa API, por búsqueda | Sorsa API, por ID de tweet | API oficial de X, solo posts | Ciclos de facturación de X con el tope de 3M |
|---|---|---|---|---|
| 100K | desde $7 | desde $1.40 | $500 | 1 |
| 1M | desde $70 | desde $14 | $5,000 | 1 |
| 10M | desde $700 | desde $140 | $50,000 | 4 |
| 100M | desde $7,000 | desde $1,400 | $500,000 | 34, o Enterprise |
100K
- Sorsa API, por búsqueda
- desde $7
- Sorsa API, por ID de tweet
- desde $1.40
- API oficial de X, solo posts
- $500
- Ciclos de facturación de X con el tope de 3M
- 1
1M
- Sorsa API, por búsqueda
- desde $70
- Sorsa API, por ID de tweet
- desde $14
- API oficial de X, solo posts
- $5,000
- Ciclos de facturación de X con el tope de 3M
- 1
10M
- Sorsa API, por búsqueda
- desde $700
- Sorsa API, por ID de tweet
- desde $140
- API oficial de X, solo posts
- $50,000
- Ciclos de facturación de X con el tope de 3M
- 4
100M
- Sorsa API, por búsqueda
- desde $7,000
- Sorsa API, por ID de tweet
- desde $1,400
- API oficial de X, solo posts
- $500,000
- Ciclos de facturación de X con el tope de 3M
- 34, o Enterprise
Los precios "desde" usan la tarifa más baja por solicitud de Sorsa API; en el plan Pro, los resultados de búsqueda cuestan unos $0.10 por 1,000 y los tweets por ID unos $0.02. Las solicitudes fallidas nunca se cobran, y el perfil del autor dentro de cada tweet no cuesta nada extra.
Para tener en cuenta
Desde el 22 de noviembre de 2026, la API oficial de X cobra cada objeto que devuelve una expansión a su tarifa estándar, como anunció el 23 de octubre (se abre en una pestaña nueva) el equipo de desarrolladores de X. Un post leído con su autor pasa entonces a costar $0.015 en lugar de $0.005. Un conjunto de datos histórico casi siempre necesita a sus autores, así que planea hasta $15.00 por 1,000 posts ahí.
La API oficial de X también detiene el pago por uso en 3M de lecturas de posts por ciclo de facturación. Un backfill de 10M de tweets toma cuatro ciclos de facturación, y la única forma de pasar el tope es un contrato Enterprise desde unos $42,000 al mes. Cada otra tarifa oficial está en nuestro desglose de precios de la API de X.
#Tweets históricos en la API oficial de X
La API oficial de X sirve tweets históricos con la búsqueda en el archivo completo, GET /2/tweets/search/all, que llega hasta marzo de 2006 y devuelve hasta 500 posts por solicitud. Está abierta a clientes de pago por uso y Enterprise, según la documentación de búsqueda de X (se abre en una pestaña nueva). Antes de la primera llamada necesitas una cuenta de desarrollador aprobada, un proyecto y una app en el Developer Console, y las claves y tokens de la app. Cada lectura se descuenta de créditos que compras por adelantado a $0.005 por post, según la lista de precios de X (se abre en una pestaña nueva). Las fechas van en start_time y end_time como marcas de tiempo ISO 8601.
Medida con lo que necesita un backfill, Sorsa API gana en precio, datos del autor, volumen y configuración, y llega al mismo inicio de marzo de 2006.
| API | Precio por 1,000 tweets | Perfil del autor | Volumen al mes | Configuración |
|---|---|---|---|---|
| Sorsa API | desde $0.07 por búsqueda, desde $0.014 por ID | En cada tweet, sin cargo extra | Sin tope de posts, 20 solicitudes por segundo | Una clave API |
| API oficial de X | $5.00 | $10.00 por 1,000 autores desde el 22 de nov. de 2026 | 3M de posts, luego Enterprise | Cuenta de desarrollador, app, token OAuth, créditos prepagados |
Sorsa API
- Precio por 1,000 tweets
- desde $0.07 por búsqueda, desde $0.014 por ID
- Perfil del autor
- En cada tweet, sin cargo extra
- Volumen al mes
- Sin tope de posts, 20 solicitudes por segundo
- Configuración
- Una clave API
API oficial de X
- Precio por 1,000 tweets
- $5.00
- Perfil del autor
- $10.00 por 1,000 autores desde el 22 de nov. de 2026
- Volumen al mes
- 3M de posts, luego Enterprise
- Configuración
- Cuenta de desarrollador, app, token OAuth, créditos prepagados
Escribir es donde la API oficial de X sigue en juego: Sorsa API es de solo lectura por diseño, así que nunca publica y nunca toca tu cuenta de X. Para publicar, combínala con la API oficial de X; para leer, una clave basta, como explica la guía de la API de Twitter sin cuenta de desarrollador.
#Quién podía buscar en el archivo de Twitter, de 2006 a 2026
Durante la mayor parte de la historia de Twitter, el archivo completo estuvo detrás de contratos empresariales. Los investigadores tuvieron acceso gratis durante unos dos años, y desde febrero de 2026 cualquier desarrollador puede comprarlo a X post por post.
La vía Academic Research, abierta el 26 de enero de 2021, dio a los investigadores aprobados búsqueda gratis en el archivo completo. Cuando Twitter anunció sus niveles de pago (se abre en una pestaña nueva) el 30 de marzo de 2023, retiró los niveles de acceso heredados. A los académicos se les remitió a los planes generales mientras la empresa buscaba "nuevas formas de seguir atendiendo a esta comunidad". El acceso académico dejó de funcionar ese verano, y no ha vuelto ningún nivel académico. Los investigadores pueden solicitar el acceso de investigación académica de Sorsa API desde un correo institucional. Cada concesión se adapta al estudio, desde solicitudes al volumen que necesita hasta un descuento profundo.
#El historial de una cuenta, o una lista publicada de ID de tweets
Para obtener todo lo que publicó una cuenta, llama a POST /user-tweets (se abre en una pestaña nueva) con su username, user_id o enlace de perfil y recorre next_cursor del post más reciente al más antiguo. Para un tramo de años, busca from: el handle con since: y until: en su lugar. La guía para descargar todos los tweets de un usuario recorre la exportación a CSV.
La rehidratación consiste en obtener los tweets completos detrás de una lista de ID de tweets, la forma en que se comparte la mayoría de los conjuntos de datos de investigación. POST /tweet-info-bulk (se abre en una pestaña nueva) recibe hasta 100 ID o enlaces por solicitud y devuelve cada tweet con su autor, desde $0.014 por 1,000, así que un conjunto de datos de 1M de ID cuesta desde $14. Los ID de tweets eliminados o protegidos desde su publicación vuelven sin resultado, así que un conjunto rehidratado siempre es un poco más pequeño que el original. Convertir el resto en datos de entrenamiento se cubre en cómo crear un conjunto de datos de Twitter para machine learning.
#Empieza tu backfill con 100 solicitudes gratis
Para datos históricos de Twitter, empieza con Sorsa API: cada tweet público desde 2006 con una clave API, a 20 solicitudes por segundo en todos los planes. La búsqueda cuesta desde $0.07 por 1,000 tweets, y las consultas por ID desde $0.014 por 1,000. Las 100 solicitudes gratis devuelven unos 2,000 tweets de cualquier ventana de fechas, sin tarjeta y sin vencimiento. Obtén un mes de tu tema, revísalo y luego planea el rango completo.
#Preguntas frecuentes
¿Cuál es la mejor API para datos históricos de Twitter?
Usa Sorsa API para datos históricos de Twitter: busca cada tweet público desde 2006 desde $0.07 por 1,000 resultados, frente a $5.00 en la API oficial de X. Acepta los propios operadores de búsqueda de X y devuelve a cada autor dentro del tweet sin cargo extra. No tiene tope mensual de 3M, no necesita cuenta de desarrollador y corre a 20 solicitudes por segundo en todos los planes.
¿Hay una forma gratis de obtener tweets históricos?
Sí, para trabajos pequeños. La búsqueda avanzada de X muestra tweets antiguos una pantalla a la vez a un usuario con sesión iniciada. La herramienta gratuita Buscar tweets por fecha lista lo que una cuenta publicó en un día dado. Para datos que puedas exportar, las 100 solicitudes gratis de Sorsa API devuelven unos 2,000 tweets históricos por búsqueda o 10K por ID, sin tarjeta.
¿Se pueden obtener tweets eliminados del archivo de Twitter?
No. Un tweet que su autor eliminó sale del índice de búsqueda de X, así que ninguna API lo devuelve: ni Sorsa API ni la API oficial de X. Los posts de cuentas protegidas o suspendidas están fuera de alcance de la misma manera. Un tweet eliminado sobrevive solo donde alguien guardó su texto completo antes de que lo quitaran, como una captura de un archivo web.
¿Cómo funcionan since: y until: en la búsqueda de Twitter?
since:2014-04-01 devuelve tweets desde esa fecha en adelante y until:2014-05-01 se detiene antes de esa fecha, ambos contados en UTC, así que el par cubre todo abril de 2014. Combínalos con palabras, from: o lang: en una sola consulta. Para ventanas de horas, since_time: y until_time: aceptan segundos Unix. POST /search-tweets de Sorsa API acepta los cuatro operadores.
¿Puedo descargar todo el archivo de Twitter?
No. Nadie vende todo el archivo de tweets públicos como una sola descarga, y X solo te deja descargar el archivo de tu propia cuenta, desde Configuración y privacidad. Los investigadores obtienen en cambio la parte que necesitan. Sorsa API busca cualquier palabra clave, hashtag o cuenta desde 2006 por fecha, desde $0.07 por 1,000 tweets, y reconstruye listas de ID publicadas desde $0.014 por 1,000.
#Cómo lo verificamos
El 2 de noviembre de 2026 leímos la lista de precios de pago por uso de X, su documentación de búsqueda, su aviso del 23 de octubre de 2026 sobre el cobro de expansiones y su anuncio del 30 de marzo de 2023 de los niveles de pago. Cada precio, límite y fecha de la API oficial de X de esta página sale de ellos. Ese mismo día comprobamos cada endpoint, parámetro y tamaño de página de Sorsa API con nuestra referencia de API en vivo y la documentación de operadores de búsqueda. La solicitud y la respuesta se construyen a partir de esa referencia con una cuenta de demostración, y los costos y tiempos son aritmética a partir de las tarifas publicadas.
Fuentes
- X API pay-per-usage pricing (se abre en una pestaña nueva)
- X API: Search Posts, recent and full-archive (se abre en una pestaña nueva)
- X Developers: PPU expansions update (Oct 23, 2026) (se abre en una pestaña nueva)
- Twitter: announcing new access tiers (Mar 30, 2023) (se abre en una pestaña nueva)
- X Blog: full-archive search API (Aug 11, 2015) (se abre en una pestaña nueva)
- Sorsa API docs: search operators (se abre en una pestaña nueva)
- Sorsa API docs: historical data (se abre en una pestaña nueva)
- Sorsa API reference (OpenAPI)