API y scraper de Twitter/X para investigación académica
Busca en todo el archivo hasta 2006, rehidrata IDs de posts de 100 en 100 y obtén cronologías, respuestas y seguidores. El acceso académico se adapta a tu estudio: desde solicitudes otorgadas a tu proyecto hasta grandes descuentos.
Sin tarjeta de crédito y nunca vencen.
Para mi necesito cerca de
El acceso académico va más allá: adaptado a tu estudio, desde solicitudes otorgadas hasta grandes descuentos.
Solicítalo con este planAcceso académico, hecho a la medida de tu estudio
Solicitudes otorgadas para tu estudio
Agregamos a tu cuenta de Sorsa API las solicitudes que necesita tu proyecto.
Un gran descuento en un plan
Para proyectos largos o grandes: cualquier plan a precio académico.
Lo que recibe cada proyecto aprobado
- Todos los endpoints
- 20 solicitudes por segundo
- La misma documentación y la misma API que todos
- Respuestas rápidas del equipo
Quién puede solicitarlo
- Estudiantes de doctorado
- Estudiantes de maestría
- Docentes
- Posdoctorados
- Personal de investigación
- Investigadores de ONG y redacciones
Investigación sin fines comerciales en cualquier disciplina, solicitada desde un correo institucional.
Solicítalo en unos dos minutos. Mientras tanto, tus 100 solicitudes gratis funcionan con todos los endpoints.
Solicita acceso académicoTodos los métodos que necesita tu estudio
Una clave API, los mismos endpoints para 2006 y para esta mañana.
Búsqueda en el archivo
Corpus por palabras clave, ventanas de eventos y series temporales largas.
"heat wave" lang:en since:2022-07-01 until:2022-08-01 -filter:nativeretweetsCerca de 20 posts por solicitud, hasta 2006
Posts por ID
Rehidrata un dataset compartido o replica un corpus publicado.
POST /tweet-info-bulk {"tweet_links": [100 IDs]}100 posts por solicitud, cada uno con su autor
Cronologías de cuentas
Paneles de políticos, periodistas u organizaciones.
from: + fechas, o /user-tweets para todo el historial de una cuentaCerca de 20 posts por solicitud, sin el tope de 3,200 posts
Conversaciones
Árboles de respuestas, cadenas de citas y quiénes hicieron retweet.
/comments, /quotes, /retweetersCerca de 20 por solicitud
Redes
Seguidores y seguidos de cualquier cuenta pública.
/followers?username=…200 perfiles por página
Perfiles y contexto de cuenta
Perfiles de 100 en 100; país, cambios de nombre de usuario y verificación desde Acerca de esta cuenta.
/info-batch, /about100 perfiles por solicitud
Listas, Comunidades, Spaces
Una Lista de X sigue hasta 5,000 cuentas; posts y miembros de comunidades; metadatos de Spaces.
/list-tweets?list_id=…Cerca de 20 posts por solicitud
Los operadores de búsqueda, la paginación y los tamaños de página están en la documentación: Datos históricos, Operadores de búsqueda, Posts por ID.
Cada post llega con sus variables
Respondiendo a @heat_records_archive
Ya está disponible nuestro dataset abierto: 1.2 millones de posts sobre las olas de calor europeas de 2022, con los IDs de los posts y el código para rehidratarlos. #OlaDeCalor
10:42 a. m., 18 ago. 2023
96.4K visualizaciones211 guardados
42 respuestas318 reposts27 citas1.2K me gusta
userusername, followers_count, created_at, verified, locationconversation_id_strin_reply_to_tweet_idSu lugar en un hilofull_textlangCada palabra y su idiomaentitiesMultimedia y enlacescreated_atFecha de publicación, al segundoview_countbookmark_countVisualizaciones y guardadoslikes_countretweet_countreply_countquote_countEngagement, tal como estáPlanifica tu diseño en torno a esto
Los posts borrados y las cuentas protegidas no se devuelven. Una lista rehidratada vuelve más pequeña que la original.
Los contadores son los de hoy. Los me gusta, las visualizaciones y los seguidores son los del momento en que recopilas; para contadores a lo largo del tiempo, recopila de forma programada y guarda cada captura.
Los perfiles son los actuales. Un post de 2014 llega con el perfil de su autor tal como está ahora.
Consultas tú, no hay streaming. Los posts nuevos llegan cuando los pides; una solicitud lee una Lista de X de hasta 5,000 cuentas.
No disponible: quién dio me gusta a un post, los me gusta o guardados de un usuario, mensajes directos y listas de seguidores pasadas.
Prueba tu rango de fechas con las solicitudes gratis antes de planificar la recopilación completa.
De una lista de IDs a un dataset
import csv, json, time, requests
URL = "https://api.sorsa.io/v3/tweet-info-bulk"
KEY = "YOUR_API_KEY"
ids = [row[0] for row in csv.reader(open("tweet_ids.csv"))]
with open("tweets.ndjson", "w") as out:
for i in range(0, len(ids), 100):
while True:
r = requests.post(URL, headers={"ApiKey": KEY},
json={"tweet_links": ids[i:i + 100]})
if r.status_code != 429:
break
time.sleep(1) # 20 requests per second per key
r.raise_for_status()
for tweet in r.json()["tweets"]:
out.write(json.dumps(tweet) + "\n")library(httr2)
library(jsonlite)
ids <- readLines("tweet_ids.txt")
batches <- split(ids, ceiling(seq_along(ids) / 100))
fetch <- function(batch) {
resp <- request("https://api.sorsa.io/v3/tweet-info-bulk") |>
req_headers(ApiKey = Sys.getenv("SORSA_API_KEY")) |>
req_body_json(list(tweet_links = as.list(batch))) |>
req_retry(max_tries = 5) |>
req_perform()
resp_body_json(resp)$tweets
}
tweets <- unlist(lapply(batches, fetch), recursive = FALSE)
write_json(tweets, "tweets.json", auto_unbox = TRUE)- Un millón de IDs toma unos ocho minutos a 20 solicitudes por segundo.
- Las solicitudes fallidas nunca se cobran.
- ¿Lo escribes con un asistente de IA? Dale a Claude Code, Cursor o Codex nuestro archivo de documentación, o conecta el servidor MCP. Crea con IA
Para tu comité de ética y tu sección de métodos
Lo que preguntan los revisores
- ¿Qué datos?
- Solo posts y perfiles públicos. Sin cuentas protegidas ni mensajes directos.
- ¿Alguna interacción?
- Ninguna. Sorsa API es de solo lectura: nunca publica, da like, sigue cuentas ni envía mensajes.
- ¿La cuenta de quién?
- No interviene ninguna cuenta ni credencial de X, ni tuya ni de nadie.
- ¿Qué conserva el proveedor?
- Qué solicitudes hiciste, durante un año; las respuestas completas, durante 30 días.
- ¿Quién sabe del proyecto?
- X nunca sabe quién pregunta: tu clave, tu cuenta y tu identidad se quedan con nosotros.
- ¿Dónde vive tu copia?
- Donde diga tu plan de gestión de datos. Es tuya.
- ¿Papeleo?
- A pedido, escribimos una carta breve sobre la fuente de datos para tu comité de ética.
El párrafo de métodos
2.1 Recopilación de datos
Los posts se recopilaron mediante Sorsa API (https://api.sorsa.io), una API independiente para datos públicos de X (Twitter), con búsqueda de archivo completo del 1 de enero al 31 de marzo de 2024.
¿Compartes tu dataset? Comparte los IDs de los posts y tu código, para que otros puedan rehidratarlos y comprobar tu trabajo.
Solicita acceso académico
Unos dos minutos. Una persona de nuestro equipo lee cada formulario y responde por correo.
Qué pasa después
- 1
Envía el formulario.
- 2
Lo leemos.
Si algo no queda claro, te preguntamos.
- 3
Acordamos tu acceso.
Las solicitudes que necesita tu estudio, o un gran descuento, durante todo el proyecto.
- 4
Recopilas.
El acceso aparece en tu cuenta de Sorsa API; cada clave funciona a 20 solicitudes por segundo.
Mientras tanto, tus 100 solicitudes gratis funcionan con todos los endpoints. Empieza con 100 solicitudes gratis
¿Prefieres el correo? Escribe a contacts@sorsa.io desde tu dirección institucional.
Lo que preguntan los investigadores
Sigue leyendo
API y scraper de Twitter/X para la investigación académica
Acceso académico adaptado a tu estudio, desde solicitudes otorgadas hasta grandes descuentos.
Acceso académico, hecho a la medida de tu estudio
- Solicitudes otorgadas para tu estudioAgregamos a tu cuenta de Sorsa API las solicitudes que necesita tu proyecto.
- Un gran descuento en un planPara proyectos largos o grandes: cualquier plan a precio académico.
Todos los métodos que necesita tu estudio
Una clave API, los mismos endpoints para 2006 y para esta mañana.
Cada post llega con sus variables
userRespondiendo a @heat_records_archive
in_reply_to_tweet_idNuestro conjunto de datos abierto ya está disponible: 1.2 millones de posts sobre las olas de calor europeas de 2022, con los IDs de los posts y el código para rehidratarlos. #heatwave
full_text10:42 a. m., 18 ago. 2023
created_at42 Respuestas318 Reposts27 Citas1.2K Me gusta
likes_count …Los posts antiguos llegan con los mismos campos que los de hoy.
De una lista de IDs a un dataset
import csv, json, time, requests
URL = "https://api.sorsa.io/v3/tweet-info-bulk"
KEY = "YOUR_API_KEY"
ids = [row[0] for row in csv.reader(open("tweet_ids.csv"))]
with open("tweets.ndjson", "w") as out:
for i in range(0, len(ids), 100):
while True:
r = requests.post(URL, headers={"ApiKey": KEY},
json={"tweet_links": ids[i:i + 100]})
if r.status_code != 429:
break
time.sleep(1) # 20 requests per second per key
r.raise_for_status()
for tweet in r.json()["tweets"]:
out.write(json.dumps(tweet) + "\n")library(httr2)
library(jsonlite)
ids <- readLines("tweet_ids.txt")
batches <- split(ids, ceiling(seq_along(ids) / 100))
fetch <- function(batch) {
resp <- request("https://api.sorsa.io/v3/tweet-info-bulk") |>
req_headers(ApiKey = Sys.getenv("SORSA_API_KEY")) |>
req_body_json(list(tweet_links = as.list(batch))) |>
req_retry(max_tries = 5) |>
req_perform()
resp_body_json(resp)$tweets
}
tweets <- unlist(lapply(batches, fetch), recursive = FALSE)
write_json(tweets, "tweets.json", auto_unbox = TRUE)- Un millón de IDs toma unos ocho minutos a 20 solicitudes por segundo.
- Las solicitudes fallidas nunca se cobran.
- ¿La escribes con un asistente de IA? Crea con IA
Para tu comité de ética y tu sección de métodos
¿Qué datos?
Solo posts y perfiles públicos. Sin cuentas protegidas ni mensajes directos.
¿Alguna interacción?
Ninguna. Sorsa API es de solo lectura: nunca publica, da like, sigue cuentas ni envía mensajes.
¿La cuenta de quién?
No interviene ninguna cuenta ni credencial de X, ni tuya ni de nadie.
¿Qué conserva el proveedor?
Qué solicitudes hiciste, durante un año; las respuestas completas, durante 30 días.
¿Quién sabe del proyecto?
X nunca sabe quién pregunta: tu clave, tu cuenta y tu identidad se quedan con nosotros.
¿Dónde vive tu copia?
Donde diga tu plan de gestión de datos. Es tuya.
¿Papeleo?
A pedido, escribimos una carta breve sobre la fuente de datos para tu comité de ética.
Solicita acceso académico
Unos dos minutos. Una persona de nuestro equipo lee cada una.Unos dos minutos. Respondemos por correo.
- 1Enviar
- 2Lo leemos
- 3Coincidimos
- 4Tú recopilas
¿Prefieres el correo? Escribe a contacts@sorsa.io desde tu dirección institucional.
Lo que preguntan los investigadores
Sigue leyendo
Quién puede solicitarlo
- Estudiantes de doctorado
- Estudiantes de maestría
- Docentes
- Posdoctorados
- Personal de investigación
- Investigadores de ONG y redacciones
- Estudiantes de licenciatura que escriben una tesis
- Docentes que dan un curso
Investigación sin fines comerciales en cualquier disciplina, solicitada desde un correo institucional.
Solicita acceso académicoBúsqueda en el archivo
Corpus por palabras clave, ventanas de eventos y series temporales largas.
"heat wave" lang:en since:2022-07-01 until:2022-08-01 -filter:nativeretweetsCerca de 20 posts por solicitud, hasta 2006
Abrir en la documentaciónPosts por ID
Rehidrata un dataset compartido o replica un corpus publicado.
POST /tweet-info-bulk {"tweet_links": [100 IDs]}100 posts por solicitud, cada uno con su autor
Abrir en la documentaciónCronologías de cuentas
Paneles de políticos, periodistas u organizaciones.
from: + fechas, o /user-tweets para todo el historial de una cuentaCerca de 20 posts por solicitud, sin el tope de 3,200 posts
Abrir en la documentaciónConversaciones
Árboles de respuestas, cadenas de citas y quiénes hicieron retweet.
/comments, /quotes, /retweetersCerca de 20 por solicitud
Abrir en la documentaciónRedes
Seguidores y seguidos de cualquier cuenta pública.
/followers?username=…200 perfiles por página
Abrir en la documentaciónPerfiles y contexto de cuenta
Perfiles de 100 en 100; país, cambios de nombre de usuario y verificación desde Acerca de esta cuenta.
/info-batch, /about100 perfiles por solicitud
Abrir en la documentaciónListas, Comunidades, Spaces
Una Lista de X sigue hasta 5,000 cuentas; posts y miembros de comunidades; metadatos de Spaces.
/list-tweets?list_id=…Cerca de 20 posts por solicitud
Abrir en la documentaciónPlanifica tu diseño en torno a esto
Los posts borrados y las cuentas protegidas no se devuelven. Una lista rehidratada vuelve más pequeña que la original.
Los contadores son los de hoy. Los me gusta, las visualizaciones y los seguidores son los del momento en que recopilas; para contadores a lo largo del tiempo, recopila de forma programada y guarda cada captura.
Los perfiles son los actuales. Un post de 2014 llega con el perfil de su autor tal como está ahora.
Consultas tú, no hay streaming. Los posts nuevos llegan cuando los pides; una solicitud lee una Lista de X de hasta 5,000 cuentas.
No disponible: quién dio me gusta a un post, los me gusta o guardados de un usuario, mensajes directos y listas de seguidores pasadas.
Prueba tu rango de fechas con las solicitudes gratis antes de planificar la recopilación completa.
El párrafo de métodos
2.1 Recopilación de datos
Los posts se recopilaron mediante Sorsa API (https://api.sorsa.io), una API independiente de datos públicos de X (Twitter), con búsqueda en el archivo completo del 1 de enero al 31 de marzo de 2024.
¿Compartes tu dataset? Comparte los IDs de los posts y tu código, para que otros puedan rehidratarlos y comprobar tu trabajo.
¿Quién puede solicitarlo?
Estudiantes de doctorado y maestría, docentes, posdoctorados y personal de investigación de universidades e institutos de investigación, para investigación sin fines comerciales en cualquier disciplina.Estudiantes de doctorado y maestría, docentes y posdoctorados de universidades e institutos de investigación, para investigación sin fines comerciales en cualquier disciplina. Solicítalo desde tu correo institucional.
¿Qué incluye el acceso académico?
Acceso a la medida de tu estudio: desde las solicitudes que necesita, otorgadas a tu cuenta, hasta un descuento importante en un plan. Todos los endpoints, 20 solicitudes por segundo, la misma documentación y soporte que cualquier cliente.
¿Qué pasa después de enviar el formulario?
Unos dos minutos. Una persona de nuestro equipo lee cada formulario y responde por correo.Revisamos tu solicitud y respondemos por correo. Una persona de nuestro equipo lo lee y responde por correo. Si algo no queda claro, te preguntamos; luego acordamos contigo el volumen y el periodo y agregamos el acceso a tu cuenta de Sorsa API.
¿Puedo empezar antes de recibir respuesta?
Sí. Cada cuenta incluye 100 solicitudes gratis: sin tarjeta, nunca vencen y funcionan con todos los endpoints. Son hasta 10,000 posts por ID o 20,000 perfiles de seguidores, suficientes para probar tus consultas.
No tengo correo institucional.
Solicítalo con el correo que uses y agrega un enlace a tu página de docente o de laboratorio, ORCID o Google Scholar, para que podamos ver tu afiliación.
¿Hasta qué año llegan los datos?
Hasta 2006. La búsqueda de archivo completo acepta los operadores de X: from:, to:, since:, until:, lang:, frases exactas, hashtags y filtros de engagement. Las cronologías de cuentas se remontan al primer post, sin el tope de 3,200 posts.
¿Puedo rehidratar un dataset de IDs de posts?
Sí: 100 IDs por solicitud, cada post con el perfil completo de su autor. Un millón de IDs requiere 10,000 solicitudes, unos ocho minutos a 20 solicitudes por segundo. Los posts borrados o que pasaron a ser privados desde la recopilación original no vuelven, así que espera menos posts que IDs.
¿Qué no está en los datos?
Posts borrados, cuentas protegidas, mensajes directos, listas de quién dio me gusta a un post, los me gusta y guardados de un usuario, y listas de seguidores tal como eran en el pasado. Los contadores y perfiles son los del momento en que recopilas. No hay streaming: consultas tú, y una solicitud lee una Lista de X de hasta 5,000 cuentas.
¿Qué le digo a mi comité de ética?
Que los datos son posts y perfiles públicos; que Sorsa API es de solo lectura y nunca publica, da Me gusta, sigue ni envía mensajes; que no interviene ninguna cuenta ni inicio de sesión de X; y que no contactas a las personas de los datos. Guardamos un registro de tus solicitudes durante un año y las respuestas completas durante 30 días. Si lo pides, redactamos una carta breve sobre la fuente de datos.
¿Puedo compartir mi dataset?
Comparte los IDs de los posts y tu código de recopilación: cualquiera puede rehidratarlos y comprobar tu trabajo. Cuánto más compartas depende de tu aprobación ética y de tu plan de gestión de datos.
¿Cómo cito Sorsa API?
En tu sección de métodos: “Los datos se recopilaron mediante Sorsa API (https://api.sorsa.io), una API independiente de datos públicos de X (Twitter)”. El BibTeX está en la sección 5 de esta página.
¿Mis coautores pueden usar el mismo acceso?
Sí. Tu cuenta admite varias claves API: dale a cada persona la suya y consulta el uso de cada clave en el panel.
¿Pueden facturar a mi universidad?
Sí. Indícalo en el formulario y prepararemos una factura para tu proyecto.
¿Qué ofrece X a los investigadores ahora?
X cerró su programa Academic Research en 2023. Su API de pago por uso cobra $0.005 por post y $0.010 por perfil; su vía para la UE bajo la Ley de Servicios Digitales cubre solo investigación sobre riesgos sistémicos en la UE, mediante una solicitud aparte. Sorsa API sirve para cualquier disciplina y tema, con una clave y sin cuenta de desarrollador de X.
¿Cómo se compara con otras ofertas académicas?
TwitterAPI.io reembolsa la mitad de lo que gasta un proyecto de investigación, hasta $200, después de que pagas. Sorsa API adapta el acceso a tu estudio antes de que recopiles, desde solicitudes otorgadas hasta grandes descuentos.
Mi proyecto es comercial.
Entonces hay un plan que se ajusta: posts desde $0.014 por 1,000, todos los endpoints en todos los planes. Para volúmenes mayores, habla con ventas.
Las 16 preguntas
Ninguna pregunta coincide. Escribe a contacts@sorsa.io.