Por Sorsa Editorial
Actualizado en julio de 2026: agregada la opción inicial de 100 solicitudes gratis, replanteado el precio por cada 1,000 tweets y 1,000 perfiles, y re-confirmados el arranque del archivo completo en marzo de 2006 y el tope de 3,200 tweets de la cronología.
Conclusión clave: Los datos históricos de Twitter/X, cada tweet público hasta marzo de 2006, se alcanzan de cinco formas: la Búsqueda avanzada gratuita de X, la búsqueda de archivo completo de la API oficial de X, scrapers de código abierto, datasets académicos o una API de datos de terceros. Para acceso programático a escala, una API de datos es la ruta práctica, porque no existe un archivo completo público para descargar.
La vía oficial se estrechó con fuerza en los últimos tres años. X cerró su vía gratuita de Investigación Académica a nuevos solicitantes en 2023, eliminó los planes de nivel fijo para nuevos desarrolladores a inicios de 2026 y hoy cobra por recurso leído, lo que encarece las extracciones históricas grandes. Sorsa API, una API alternativa de Twitter/X, tiene otra forma. Su endpoint /search-tweets corre búsqueda de archivo completo por palabra clave hasta 2006 con los operadores estándar since: y until:, devuelve el objeto completo del tweet con el perfil del autor en una sola llamada y cobra una tarifa plana por solicitud en lugar de por tweet leído. El precio empieza en $0.02 por cada 1,000 tweets y $0.01 por cada 1,000 perfiles en los endpoints por lotes, a 20 solicitudes por segundo en todos los planes y sin aprobación de cuenta de desarrollador. Las cuentas nuevas también reciben 100 solicitudes gratis para probar el archivo primero: por única vez, sin tarjeta, y nunca vencen.
Nosotros construimos y operamos esta API y reconstruimos pipelines históricos fuera de los endpoints oficiales con regularidad, así que las contrapartidas de aquí salen de hacer el trabajo, no de resumir documentación.
Datos históricos de Twitter en un vistazo
Cinco métodos cubren casi todos los casos de uso reales. Se diferencian en profundidad de archivo, costo, esfuerzo de montaje y cuántos datos puedes extraer de forma realista.
| Método | Profundidad de archivo | Costo (2026) | Montaje | Ideal para |
|---|---|---|---|---|
| Búsqueda avanzada de X (web) | Hasta 2006 | Gratis | Ninguno | Encontrar a mano un tweet antiguo concreto |
| Archivo completo de la API oficial de X | Hasta 2006 | Pago por uso, unos $0.005 por lectura de post, tope de 2M/mes | Alto (cuenta de desarrollador, créditos de pago por uso) | Equipos con fondos y volumen bajo |
| Scrapers de código abierto | Varía, normalmente superficial | Gratis (tiempo de ingeniería) | Medio, se rompe seguido | Trabajo puntual con presupuesto ajustado |
| Datasets académicos | Instantáneas por evento | Gratis | Medio (hidratación de IDs de tweets) | Datasets prearmados de eventos conocidos |
| Sorsa API (endpoints de búsqueda) | Hasta 2006 | Planes de tarifa plana desde $0.02 por 1,000 tweets ($49 / $199 / $899 al mes) | Bajo (una clave API) | Pipelines de producción, investigación continua |
Contenido
- ¿Por qué es más difícil conseguir datos históricos de Twitter en 2026?
- Los cinco métodos en detalle
- Qué significa de verdad "archivo completo" (y qué no puedes obtener)
- Cómo buscar tweets históricos con la API
- Estrategias para recolección histórica a gran escala
- Extraer la cronología completa de una cuenta
- En la práctica: reconstruir el histórico fuera de la API oficial
- Preguntas frecuentes
- Cómo empezar
¿Por qué es más difícil conseguir datos históricos de Twitter en 2026? {#why-is-historical-twitter-data-harder-to-get-in-2026}
Los datos históricos de Twitter son más difíciles de conseguir en 2026 porque no hay un archivo completo público para descargar y las rutas programáticas baratas en las que se apoyaba la investigación cerraron. El catálogo completo de tweets públicos existe, desde marzo de 2006, pero solo lo alcanzas por búsqueda o por acceso de pago, y las opciones asequibles se encogieron entre 2023 y 2026.
Tres giros de la plataforma reconfiguraron el acceso. En febrero de 2023, el nivel gratuito de la API quedó reducido a una versión mínima de solo escritura y lo reemplazaron niveles de pago. A mediados de 2023, la vía de Investigación Académica que sostenía la mayoría de la investigación publicada sobre Twitter dejó de aceptar nuevos solicitantes. A inicios de 2026, X movió a los nuevos desarrolladores a créditos de pago por uso, donde las lecturas cuestan aproximadamente $0.005 por recurso y las cuentas de pago por uso tienen tope de dos millones de lecturas al mes. El nivel Pro legado de $5,000 al mes todavía incluye búsqueda de archivo completo pero está cerrado a registros nuevos. Para el panorama nivel por nivel, consulta nuestro desglose de precios de la API de Twitter en 2026.
Tampoco hay atajo institucional. La Biblioteca del Congreso de EE. UU. acordó una vez preservar cada tweet público, tomando el catálogo completo de Twitter desde 2006, pero detuvo el archivado integral a finales de 2017 y hoy recolecta solo de forma selectiva, y esa colección de 2006 a 2017 sigue embargada del acceso público. Ningún organismo externo tiene una copia consultable del archivo. Por eso las APIs de datos de terceros y los scrapers de código abierto absorbieron la mayor parte del volumen desplazado.
Los cinco métodos en detalle {#the-five-methods-in-detail}
Búsqueda avanzada de X
La Búsqueda avanzada de X es la ruta manual y gratuita, y llega hasta 2006 directamente en la interfaz web. Admite los operadores since: y until: y sirve para encontrar un tweet conocido o muestrear una ventana chica. No exporta, no devuelve datos estructurados y es inviable a cualquier escala, porque los resultados vienen paginados y los recorres a mano. Los rangos de fechas viejos además traen resultados ruidosos, porque el ranking de relevancia le baja prioridad al contenido antiguo.
Búsqueda de archivo completo de la API oficial de X
El endpoint oficial search/all ofrece la misma profundidad de archivo que una API de terceros pero con tres fricciones en 2026. Los nuevos desarrolladores deben usar créditos de pago por uso sin costo mensual fijo. La respuesta v2 devuelve campos mínimos por defecto, así que tienes que solicitar explícitamente las métricas de engagement, el perfil del autor y la multimedia que necesites. Y el tope mensual de dos millones de lecturas del pago por uso es un techo duro que los presupuestos reales de investigación tocan rápido. La autenticación es OAuth 2.0 con bearer token, que suma su propio costo de montaje antes de que corra la primera consulta de archivo.
Scrapers de código abierto
Los scrapers de código abierto llegan a los tweets antiguos por ingeniería inversa de los endpoints web de X, lo que los hace gratuitos y frágiles. Los nombres conocidos, snscrape y twint, están efectivamente muertos: snscrape lleva años sin tocarse y twint está archivado. Quedan unas pocas librerías con mantenimiento, pero comparten el mismo modo de falla: un scraper que funciona se rompe en cuanto X rota sus tokens de frontend, sin ruta de migración. Para el estado actual de estas herramientas, consulta nuestro análisis de qué scrapers de Twitter siguen funcionando en 2026.
Datasets académicos
Los archivos prearmados distribuyen IDs de tweets en lugar de tweets completos para eventos concretos. Rehidratas los IDs contra una API para recuperar el contenido actual, lo que significa que con cada año que pasa desde que se construyó un dataset, más tweets se han borrado, suspendido o vuelto privados y se caen. Repositorios como TweetSets de la Universidad George Washington y el catálogo de DocNow cubren eventos mayores, y la base de investigación de Wharton ofrece una muestra de aproximadamente 1% de todos los tweets consultable por SQL. La hidratación igual requiere acceso a una API, lo que regresa a la pregunta del precio; para los equipos que perdieron la vía de Investigación Académica, nuestro acceso para investigación académica cubre las mismas consultas por ventanas de fechas en planes gratuitos o con descuento.
API de datos de terceros
Una API de datos de terceros es la ruta más confiable para el acceso programático: una sola clave, JSON estructurado y paginación sobre el archivo completo. Sorsa es una de esas alternativas a la API de Twitter/X. Su endpoint /search-tweets cubre el archivo desde marzo de 2006, devuelve todos los campos por defecto incluyendo el perfil del autor incrustado en cada tweet, y cobra una tarifa plana por solicitud en lugar de por tweet leído. Ese modelo de tarifa plana es la razón principal de que un backfill grande que en la API oficial se va a los miles de dólares aterrice aquí en unos cientos.
Qué significa de verdad "archivo completo" (y qué no puedes obtener) {#what-full-archive-actually-means-and-what-you-cannot-get}
"Archivo completo" es la frase más abusada de este espacio. Todos los proveedores la reclaman, y ninguno, incluida la propia API oficial, puede devolver cuatro categorías de datos. Son límites a nivel de plataforma, no huecos de una herramienta concreta, y aplican por igual a la API oficial de X, a Sorsa API y a cualquier otro proveedor.
Tweets borrados. Una vez que un tweet se borra, sale del índice de búsqueda de X y ninguna API puede recuperarlo. La Wayback Machine a veces guarda una captura de una página de perfil con mucho tráfico, pero eso es una imagen, no el tweet.
Tweets de cuentas protegidas. Las cuentas con posts protegidos quedan excluidas de los endpoints públicos de búsqueda y cronología. La única forma de leer esos tweets es ser un seguidor aprobado y autenticado.
Instantáneas históricas de perfil. Los datos de perfil reflejan el estado actual. Un tweet de 2014 devuelto hoy muestra el nombre de usuario y la bio de 2026 del autor, no lo que tenía en 2014. Si el nombre cambió tres veces desde entonces, ves el actual.
Instantáneas históricas de engagement. Esta es la que tropieza a la investigación de sentimiento e influencia. Un tweet de 2018 recuperado hoy muestra su número de likes actual, no el que tenía en 2018. No existe un endpoint de máquina del tiempo en ningún lugar del ecosistema de X. Si necesitas engagement en un punto del tiempo, ingiere los tweets cuando se publican y guarda las métricas por tu cuenta. Los patrones para eso están en la documentación de monitoreo en tiempo real.
Cómo buscar tweets históricos con la API {#how-to-search-historical-tweets-with-the-api}
Dos endpoints cubren el trabajo histórico, según busques por palabra clave entre usuarios o extraigas la cronología completa de una cuenta.
| Endpoint | Qué hace | Paginación | Tamaño de página |
|---|---|---|---|
POST /v3/search-tweets | Búsqueda por palabra clave en el archivo completo con operadores de X incluyendo since:, until:, from:, min_faves: | next_cursor | ~20 tweets |
POST /v3/user-tweets | El historial completo de publicaciones de un usuario, de más nuevo a más viejo | next_cursor | ~20 tweets |
La autenticación es un único encabezado ApiKey. Cada respuesta es JSON plano con el objeto completo del tweet, incluyendo el perfil del autor incrustado, las entidades multimedia y las métricas de engagement. Una solicitud mínima:
curl -X POST https://api.sorsa.io/v3/search-tweets \
-H "ApiKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "\"climate change\" since:2015-06-01 until:2015-12-31 lang:en min_faves:10",
"order": "latest"
}'
Eso devuelve tweets en inglés que coinciden con la frase "climate change" entre junio y diciembre de 2015 con al menos 10 likes, en orden cronológico. El conjunto completo de operadores (from:, to:, filter:, min_retweets:, frases exactas, lógica booleana) vive en nuestra referencia de operadores de búsqueda de Twitter, que cubre la sintaxis necesaria para acotar cualquier consulta de archivo.
Buscar un rango de fechas con paginación (Python)
El flujo histórico más común es el análisis de eventos: extraer cada tweet en inglés que coincida con un tema en una ventana definida. Itera sobre next_cursor hasta que regrese vacío.
import requests
import time
API_KEY = "YOUR_API_KEY"
URL = "https://api.sorsa.io/v3/search-tweets"
def search_historical(query, max_pages=50):
"""Search the full tweet archive with automatic pagination."""
all_tweets = []
next_cursor = None
for page in range(max_pages):
body = {"query": query, "order": "latest"}
if next_cursor:
body["next_cursor"] = next_cursor
resp = requests.post(
URL,
headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
json=body,
)
resp.raise_for_status()
data = resp.json()
tweets = data.get("tweets", [])
all_tweets.extend(tweets)
print(f"Page {page + 1}: {len(tweets)} tweets (total: {len(all_tweets)})")
next_cursor = data.get("next_cursor")
if not next_cursor:
break
time.sleep(0.1)
return all_tweets
tweets = search_historical("SpaceX since:2015-06-01 until:2015-07-01 lang:en")
Cada objeto de tweet incluye el texto completo sin truncado a 140 caracteres, el código de idioma, el ID de conversación para reconstruir hilos, los seis conteos de engagement, las URLs de entidades multimedia y el perfil completo del autor. Nunca necesitas una segunda llamada para obtener el usuario. Para más patrones de Python, incluyendo reintentos y detalles a escala, consulta nuestra guía de la API de Twitter con Python.
Encontrar contenido histórico de alto engagement (JavaScript)
Para investigación de contenido, ordena por popularidad en lugar de cronología. Combina order: "popular" con min_retweets: y -filter:nativeretweets para sacar a la superficie los tweets originales que de verdad se movieron en un periodo, en lugar de una avalancha de retweets.
const API_KEY = "YOUR_API_KEY";
const URL = "https://api.sorsa.io/v3/search-tweets";
async function searchHistorical(query, maxPages = 10) {
const allTweets = [];
let nextCursor = null;
for (let page = 0; page < maxPages; page++) {
const body = { query, order: "popular" };
if (nextCursor) body.next_cursor = nextCursor;
const resp = await fetch(URL, {
method: "POST",
headers: { "ApiKey": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify(body),
});
if (!resp.ok) throw new Error(`API error: ${resp.status}`);
const data = await resp.json();
const tweets = data.tweets || [];
allTweets.push(...tweets);
nextCursor = data.next_cursor;
if (!nextCursor) break;
await new Promise((r) => setTimeout(r, 100));
}
return allTweets;
}
// Viral Tesla tweets from 2019, originals only
searchHistorical(
'Tesla since:2019-01-01 until:2019-12-31 min_retweets:1000 -filter:nativeretweets lang:en'
).then((t) => console.log(`Collected ${t.length} tweets`));
La bandera -filter:nativeretweets importa aquí. Sin ella, las búsquedas por popularidad devuelven el mismo tweet viral docenas de veces como retweets y entierran el original debajo.
Exportar a CSV y Pandas
Un pipeline de producción recolecta tweets, los escribe a CSV y luego los carga para análisis. La misma estructura de respuesta cae directo en un DataFrame:
import pandas as pd
def to_dataframe(tweets):
rows = []
for t in tweets:
u = t.get("user", {})
rows.append({
"created_at": pd.to_datetime(t["created_at"]),
"username": u.get("username"),
"followers": u.get("followers_count", 0),
"text": t["full_text"],
"likes": t.get("likes_count", 0),
"retweets": t.get("retweet_count", 0),
"views": t.get("view_count", 0),
"lang": t.get("lang"),
})
return pd.DataFrame(rows)
df = to_dataframe(tweets)
df.to_csv("historical_tweets.csv", index=False)
Desde ahí tienes un frame limpio para series de tasa de engagement, puntuación de sentimiento o regresión. Para un flujo completo de sentimiento, consulta nuestra guía complementaria de análisis de sentimientos en Twitter, y para armar un corpus etiquetado, cómo construir un dataset de Twitter para machine learning.
Estrategias para recolección histórica a gran escala {#strategies-for-large-scale-historical-collection}
Unos pocos patrones aguantan para cualquier backfill por encima de unos miles de tweets.
Divide los rangos grandes en ventanas mensuales. Una sola consulta sobre un año entero no te da control del tamaño de lote ni un punto limpio de reanudación si una solicitud falla a la mitad. Partir por mes te deja paralelizar, reintentar y auditar con limpieza, y bajas a ventanas semanales o diarias para periodos volátiles como una elección o un desplome de mercado.
Filtra el ruido de retweets. Las búsquedas históricas por popularidad devuelven una avalancha de retweets. Agrega -filter:nativeretweets cuando quieras contenido original, o -filter:retweets para descartar también los reposts viejos estilo "RT @user".
Cruza filtros de engagement con rangos de fechas. Combinar since: y until: con min_faves: o min_retweets: saca solo los tweets que ganaron tracción en tu ventana, lo que recorta ruido y volumen de solicitudes a la vez. Para consejos sobre recortar llamadas innecesarias y manejar la mecánica del cursor con limpieza, consulta cómo optimizar el uso de la API.
Haz el backfill una vez y luego monitorea hacia adelante. Los conteos de engagement son totales actuales, no instantáneas de un punto del tiempo, así que para investigación continua el patrón más fuerte es hacer el backfill de la ventana histórica una vez y conectar un monitor en tiempo real de ahí en adelante. Eso te da la línea base histórica y métricas precisas en el momento para todo lo nuevo.
Extraer la cronología completa de una cuenta {#scraping-a-full-account-timeline}
Si tu objetivo es el historial completo de publicaciones de una cuenta y no una búsqueda por palabra clave entre usuarios, usa /user-tweets. Recorre la cronología de más nuevo a más viejo hasta que el cursor quede vacío, sin equivalente del tope de 3,200 tweets que limita el endpoint de cronología de la API oficial.
import requests
resp = requests.post(
"https://api.sorsa.io/v3/user-tweets",
headers={"ApiKey": "YOUR_API_KEY", "Content-Type": "application/json"},
json={"username": "naval"},
)
Ese es un flujo distinto de la búsqueda de archivo, con su propio cálculo de costos y una comparación contra herramientas con interfaz y scrapers. Nuestra guía dedicada de cómo descargar todos los tweets de un usuario lo cubre de principio a fin. El resto de este artículo se queda en la búsqueda histórica entre usuarios.
En la práctica: reconstruir el histórico fuera de la API oficial {#in-practice-rebuilding-history-off-the-official-api}
Los equipos que más sienten el apretón de 2026 son los que rellenan años de datos con presupuesto. Un fondo cuantitativo con el que trabajamos quería una señal de momentum de sentimiento a partir de tweets cripto, con backtesting contra cinco años de precios. El paso uno era un backfill de cada tweet de una lista curada de unas 400 cuentas más los tweets en inglés de 30 palabras clave, de 2019 a 2024. En los niveles oficiales, el tope de lecturas era la restricción vinculante, y la factura proyectada se iba con holgura a las cinco cifras. Reconstruido contra una API de archivo de tarifa plana, el mismo backfill terminó en tres días de paginación por unos cientos de dólares, y la estrategia corre en vivo desde entonces.
Otra forma, misma lección: un grupo académico con un estudio longitudinal de discurso había construido toda su metodología alrededor de la vía de Investigación Académica. Cuando la vía cerró a nuevos solicitantes, el reemplazo corrió las mismas consultas de from: y palabras clave contra un plan de tarifa plana y re-validó los resultados contra el dataset más chico recolectado durante el acceso original. La reconstrucción costó un solo mes de Starter. En ambos casos el bloqueo era la economía del acceso, no los datos en sí, y un modelo de tarifa plana por solicitud lo eliminó.
Preguntas frecuentes {#frequently-asked-questions}
¿Hasta cuándo llega hacia atrás la búsqueda del archivo de Twitter/X?
Hasta el 21 de marzo de 2006, la fecha del primer tweet público. Tanto la búsqueda de archivo completo de la API oficial de X como el endpoint /search-tweets de Sorsa API cubren el archivo público completo desde esa fecha en adelante. Los tweets que desde entonces fueron borrados o vueltos privados por sus autores quedan excluidos de cualquier resultado, porque ya no existen en el índice de búsqueda de la plataforma.
¿Se pueden obtener tweets borrados con alguna API?
No. Una vez que un tweet se borra, se elimina del índice de búsqueda de X y ninguna API pública puede recuperarlo. Tus únicas opciones son capturas externas hechas antes del borrado, como capturas de la Wayback Machine o un servicio de monitoreo que haya ingerido el tweet en tiempo real. Si preservar contenido borrable importa, ingiere los tweets cuando se publican y guárdalos de tu lado.
¿La API de Investigación Académica de Twitter sigue siendo gratis?
No para nuevos solicitantes. X dejó de aceptar solicitudes nuevas a la vía de Investigación Académica en 2023. Quienes tenían acceso antes lo conservan por ahora, pero no se emiten plazas académicas nuevas. La mayoría de los proyectos académicos en 2026 usa una plaza restante, trabaja con datasets prearmados o migra a una API de archivo de terceros de tarifa plana para correr las mismas consultas por ventanas de fechas.
¿Cuánto cuesta buscar en el archivo completo en 2026?
En el modelo de pago por uso de la API oficial de X, las lecturas salen en unos $0.005 cada una con un tope mensual de dos millones de lecturas, y el nivel Pro legado que incluía búsqueda de archivo completo a $5,000 al mes está cerrado a registros nuevos. Sorsa API usa planes mensuales de tarifa plana: $49 por 10,000 solicitudes, $199 por 100,000 y $899 por 500,000, con cada solicitud de búsqueda devolviendo hasta 20 tweets.
¿Se pueden obtener las métricas de engagement de un tweet en una fecha pasada concreta?
No. Los conteos de engagement de cualquier tweet devuelto, los likes, retweets, respuestas, visualizaciones, citas y marcadores, reflejan totales actuales, no los totales de una fecha pasada concreta. La plataforma no guarda instantáneas históricas de engagement. Si necesitas métricas de un punto del tiempo, tienes que ingerir el tweet en tiempo real y registrar los números por tu cuenta en ese momento.
¿Cómo se buscan tweets entre dos fechas concretas?
Usa los operadores since:YYYY-MM-DD y until:YYYY-MM-DD en tu consulta. since incluye la fecha de inicio y until excluye la fecha de fin, así que since:2020-01-01 until:2020-02-01 devuelve el mes completo de enero de 2020. Combínalos con lang:, min_faves: y -filter:retweets para resultados más limpios en el archivo.
¿Existe una API asequible para datos históricos de Twitter sin cobro por tweet?
Sí. Sorsa API cobra una tarifa plana por solicitud en lugar de por tweet leído, así que una búsqueda que devuelve 20 tweets cuesta lo mismo sean tweets de 2024 o de 2009. A $199 al mes por 100,000 solicitudes en el plan Pro, eso son aproximadamente dos millones de tweets, así que un backfill histórico grande cuesta unos dólares en lugar de los miles que cobra un modelo por recurso.
Cómo empezar {#getting-started}
Para probar la búsqueda de archivo antes de escribir código, el Sorsa API Playground dispara solicitudes contra /search-tweets y /user-tweets desde el navegador sin necesidad de clave, y el constructor visual de consultas te deja armar operadores a mano. Cuando estés para integrar, toma una clave desde el panel y sigue el inicio rápido: sin aprobación, sin OAuth, una sola clave API y 20 solicitudes por segundo en todos los planes. Cada cuenta nueva incluye 100 solicitudes gratis, por única vez y sin tarjeta, que nunca vencen y cubren los 40 endpoints, suficiente para validar una consulta por ventana de fechas antes de comprometerte. El plan Starter de $49 por 10,000 solicitudes cubre la mayoría de los backfills puntuales, incluyendo análisis de eventos o un estudio de un solo tema sobre una ventana de un año.
Revisado por Keksich, fundador de Sorsa, especialista en marketing e investigador de la API de X.
Esta guía se apoya en nuestro propio trabajo operando una API alternativa de Twitter/X desde 2022 y reconstruyendo pipelines históricos fuera de los endpoints oficiales. Verificamos el arranque del archivo completo en marzo de 2006 y los límites de la recolección integral contra el relato de la Biblioteca del Congreso sobre su archivo de Twitter, re-revisamos las tarifas de pago por uso de la API oficial de X contra los precios de desarrollador publicados por X, y tomamos el comportamiento de los endpoints, los operadores y los costos por solicitud de la documentación de Sorsa API y de nuestro desglose de precios de 2026. Comparamos cinco métodos de acceso para esta pieza. Más sobre el equipo en nuestra página Acerca de. Última verificación: 4 de julio de 2026.