Por Sorsa Editorial

Publicado el 13 de junio de 2026. Actualizado el 3 de julio de 2026. Los precios reflejan las tarifas de pago por uso de la API oficial de X tras la actualización del 20 de abril de 2026 y los planes por solicitud vigentes de Sorsa, verificados en julio de 2026.

Actualizado en julio de 2026: refrescadas las cifras de costo de la API de X y de Sorsa al modelo por solicitud vigente, replanteado el precio de Sorsa por cada 1,000 tweets y agregada la oferta inicial de 100 solicitudes gratis.

Conclusión clave: Puedes exportar datos de Twitter (X) a Google Sheets de cuatro formas: un conector sin código (IFTTT, Make), un complemento de Sheets que conecta APIs, un flujo low-code (n8n) o un Google Apps Script con activador de tiempo. Todas las rutas salvo la sin código necesitan una clave API, y la paginación, la programación y la deduplicación corren por tu cuenta.

La parte difícil rara vez es la hoja de cálculo. Es la fuente de datos que la alimenta. Sorsa API, una API alternativa de Twitter/X, devuelve tweets, perfiles y listas de seguidores públicos como JSON plano detrás de un encabezado, así que una exportación a Sheets son unas pocas líneas de código. El cobro es de tarifa plana: una llamada cuenta como una solicitud sin importar cuántos tweets o perfiles regresen, y el perfil del autor viene incluido gratis dentro de cada tweet. Ese modelo de tarifa plana es lo que permite a Sorsa leer tweets desde $0.02 por cada 1,000 en la base por lotes y perfiles desde $0.01 por cada 1,000 en el plan Pro, mientras la API oficial de X cobra $5.00 por cada 1,000 lecturas de posts (tarifas de abril de 2026, verificadas en julio de 2026). No hay medidor por tweet que drene un trabajo programado, el límite es de 20 solicitudes por segundo en todos los planes, y 100 solicitudes gratis por única vez te dejan construir y probar toda la exportación antes de pagar, sin tarjeta de crédito.

Contenido

¿Cómo exportar datos de Twitter a Google Sheets? {#how-do-you-export-twitter-data-to-google-sheets}

Exportar datos de Twitter a Google Sheets significa extraer tweets, perfiles o listas de seguidores desde una API y escribirlos en filas. Cuatro rutas cubren todos los casos: un conector sin código para acciones simples sobre tu propia cuenta, un complemento de Sheets que llama a una API desde dentro de la hoja, una herramienta de flujos low-code o un script propio. La correcta depende del volumen, del control del esquema y de qué tan técnico seas.

Todas las rutas se apoyan en la misma idea. Algo llama a un endpoint, recibe JSON y agrega una fila por registro. Donde difieren es en el control. Un applet sin código esconde la solicitud y te da columnas fijas. Un script expone la respuesta completa, así que tú decides el esquema, el calendario y cómo se manejan los duplicados.

Hay una distinción que importa antes de elegir. Extraer datos ligados a tu propia cuenta (tus posts, tus seguidores) es sencillo casi en cualquier lado. Extraer palabras clave arbitrarias, menciones u otras cuentas a volumen necesita una API que devuelva datos de búsqueda y de cronología directamente, porque los conectores oficiales de la plataforma integrados en las herramientas sin código quedaron muy restringidos tras los cambios de la API de 2023.

¿Qué método de exportación deberías usar? {#which-export-method-should-you-use}

Usa Apps Script para exportaciones de producción con esquema propio, un complemento o n8n para importaciones programadas sin mucho código y un conector sin código solo para acciones simples sobre tu propia cuenta. El tiempo de montaje va de menos de diez minutos para la ruta sin código a un par de horas para un Apps Script completo, y solo las rutas con script te dan deduplicación confiable y control exacto de columnas.

MétodoTiempo de montajeNivel técnicoProgramaciónDeduplicaciónIdeal para
Sin código (IFTTT, Make)Menos de 10 minNingunoLimitadaNingunaTu propia cuenta, acciones simples
Complemento conector de APIs para Sheets15 a 30 minBajoManualAcceso a APIs sin escribir código
Flujo en n8n30 a 60 minBajo a medioCon un almacén de datosPipelines visuales, autoalojado
Google Apps Script1 a 2 horasMedioControl totalEsquema propio, exportaciones de producción

El intercambio es control contra esfuerzo. Si te basta un conjunto fijo de columnas y tiempos aproximados, un conector o complemento te ahorra una tarde. Si un reporte río abajo depende del esquema exacto, o los duplicados corromperían tus números, las rutas con script valen el montaje extra.

Lleva tweets a Sheets con Google Apps Script {#pull-tweets-into-sheets-with-google-apps-script}

Google Apps Script es la ruta más flexible: una función JavaScript que corre dentro de la infraestructura de Google, llama a una API y escribe filas, unida a un activador de tiempo para que corra sola. Es la única opción que da control total sobre el esquema, la deduplicación, el manejo de errores y el logging, y no necesita conectores de terceros.

El ejemplo de abajo extrae tweets para una consulta de búsqueda y agrega los nuevos a una pestaña. Llama al endpoint de búsqueda de tweets de Sorsa, que acepta una consulta más un orden popular o latest y devuelve hasta 20 tweets por página con el perfil del autor adjunto. Sigue estos pasos:

  1. Crea una pestaña llamada Tweets en tu hoja de Google.
  2. Abre el menú Extensiones y elige Apps Script.
  3. En Configuración del proyecto, agrega una propiedad del script llamada SORSA_API_KEY con tu clave.
  4. Pega la función de abajo y define tu consulta de búsqueda.
  5. Ejecuta la función una vez y aprueba el aviso de autorización.
  6. Abre Activadores, agrega un activador de tiempo y elige un intervalo de ejecución.
javascript
function exportTweetsToSheet() {
  var apiKey = PropertiesService.getScriptProperties().getProperty('SORSA_API_KEY');
  var query = 'your search query here';

  var response = UrlFetchApp.fetch('https://api.sorsa.io/v3/search-tweets', {
    method: 'post',
    contentType: 'application/json',
    headers: { 'ApiKey': apiKey },
    payload: JSON.stringify({ query: query, order: 'latest' }),
    muteHttpExceptions: true
  });

  var status = response.getResponseCode();
  if (status === 401) { Logger.log('Unauthorized: check the ApiKey value'); return; }
  if (status === 429) { Logger.log('Rate limited: wait one second, then retry'); return; }
  if (status !== 200) { Logger.log('Unexpected status: ' + status); return; }

  var tweets = (JSON.parse(response.getContentText()).tweets) || [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Tweets');

  // Keep the ID column as text so 19-digit IDs do not lose precision
  sheet.getRange('A:A').setNumberFormat('@');

  if (sheet.getLastRow() === 0) {
    sheet.appendRow(['tweet_id', 'created_at', 'username', 'full_text',
                     'likes_count', 'retweet_count', 'reply_count']);
  }

  var lastRow = sheet.getLastRow();
  var seen = lastRow > 1
    ? sheet.getRange(2, 1, lastRow - 1, 1).getValues().flat().map(String)
    : [];

  var added = 0;
  tweets.forEach(function (t) {
    var id = String(t.id || '');
    if (!id || seen.indexOf(id) !== -1) return;
    var user = t.user || {};
    sheet.appendRow([id, t.created_at || '', user.username || '', t.full_text || '',
                     t.likes_count || 0, t.retweet_count || 0, t.reply_count || 0]);
    added++;
  });

  Logger.log('Done. Added ' + added + ' new tweets.');
}

Dos notas prácticas. Guarda la clave en una propiedad del script, nunca escrita en el cuerpo de la función, para que quede fuera del historial de scripts compartidos. Y arma la consulta de forma visual primero si la sintaxis te resulta ajena: el constructor visual de consultas convierte operadores de búsqueda avanzada como from:, since: y until: en una cadena probada que puedes pegar.

Para recolectar más de una página, lee el campo next_cursor de la respuesta y vuelve a llamar con él en el cuerpo hasta que devuelva null. La mecánica es la misma en todos los endpoints paginados; la referencia de paginación por cursor muestra el bucle. Para exportar una lista de seguidores en lugar de tweets, llama al endpoint de seguidores con un nombre de usuario; cada página devuelve hasta 200 perfiles, lo que deja una exportación grande de seguidores en un puñado de solicitudes.

Rutas sin código y low-code {#no-code-and-low-code-routes}

Las herramientas sin código y low-code cambian control por velocidad. IFTTT y Make conectan X con Google Sheets en minutos y convienen para acciones simples ligadas a tu propia cuenta; n8n está un nivel arriba con lógica real; los complementos de Sheets llaman a una API directamente desde la hoja. Ninguna maneja la deduplicación ni los esquemas propios tan limpio como un script.

El límite honesto de la ruta puramente sin código: tras los cambios de plataforma de 2023, los conectores de X integrados en estas herramientas están orientados a tu propia cuenta y a publicar, no a leer resultados de búsqueda arbitrarios hacia un almacén de datos. Para registrar tus propios posts o reaccionar a tu propia actividad, funcionan bien. Para monitorear palabras clave, menciones o competidores a volumen, vas a querer una fuente que devuelva resultados de búsqueda y de cronología, alimentada por un complemento o un script.

n8n es el punto medio más fuerte. Armas el flujo de forma visual pero conservas ramas, transformaciones, bucles de paginación y un activador de calendario. Una forma típica es un activador programado, un nodo HTTP Request que llama al endpoint de búsqueda, un nodo que divide el array de la respuesta en elementos y un nodo de Google Sheets que agrega cada fila. Como n8n puede guardar estado, puedes sumar un paso de deduplicación igual que lo hace el script.

Los complementos de Sheets tipo conector de APIs te dejan configurar una URL, encabezados y parámetros dentro de la hoja, y luego refrescar con calendario. Encajan bien cuando quieres importaciones programadas sin escribir código. Envía la clave API en el encabezado de la solicitud y no en la URL, para que no termine en logs ni en el historial del navegador.

¿Qué columnas debe tener tu exportación? {#what-columns-should-your-export-have}

Una exportación limpia te da una fila por tweet con columnas estables y con nombre. Como mínimo, captura el ID del tweet, la marca de tiempo, el nombre de usuario del autor, el texto y los tres conteos centrales de engagement. El ID es la clave única para la deduplicación y debe guardarse como texto; todo lo demás mapea directo desde la respuesta.

ColumnaCampo de SorsaNotas
tweet_ididGuardar como texto; la clave única para deduplicar
created_atcreated_atMarca de tiempo ISO 8601
usernameuser.usernameAnidado bajo el objeto del autor
full_textfull_textEl texto completo del tweet
likes_countlikes_countEntero, 0 en lugar de vacío
retweet_countretweet_countEntero
reply_countreply_countEntero

Trata los encabezados como un contrato: en cuanto un reporte o una fórmula depende de ellos, renombrar una columna rompe cosas en silencio, así que define el esquema una vez y consérvalo. Como el perfil del autor se devuelve dentro de cada tweet, el nombre de usuario y los conteos de seguidores salen de la misma respuesta sin solicitudes extra, que es parte de por qué una factura de tarifa plana por solicitud se mantiene baja aquí.

Tropiezos comunes antes de publicar {#common-gotchas-before-you-ship}

Tres problemas atrapan a la mayoría de las primeras exportaciones: IDs de tweets que pierden precisión, ejecuciones programadas que fallan en silencio y una paginación que se detiene calladamente en una página. Cada uno tiene arreglo simple, y resolverlos desde el inicio te ahorra reconstruir después, cuando un reporte ya está conectado a la hoja.

Los IDs de tweets son demasiado grandes para que Sheets los guarde como números. Son valores de 18 a 19 dígitos, y Google Sheets guarda los números como punto flotante de 64 bits, que solo conserva unos 15 dígitos significativos. Los últimos dígitos se redondean a cero y el ID deja de coincidir con el tweet real. Formatea la columna de ID como texto plano, o escribe el valor como cadena antes de que llegue a la hoja.

La paginación no es automática. Los endpoints de búsqueda y cronología devuelven unos 20 registros por página; los de seguidores devuelven hasta 200. Para pasar de una página, itera sobre el valor next_cursor hasta que regrese null. Los endpoints por lotes ayudan donde los datos encajan: cuando ya tienes hasta 100 IDs de tweets o 100 nombres de usuario, una sola llamada por lotes los devuelve todos, la palanca principal para recortar el volumen de solicitudes.

Las ejecuciones programadas pueden fallar sin avisarte. Un activador de tiempo que da error no te notifica salvo que construyas alertas. Agrega una llamada a MailApp.sendEmail en un bloque catch, o revisa los registros de ejecución de Apps Script con calendario. Sobre límites de tasa, un 429 significa simplemente esperar un segundo y reintentar; con 20 solicitudes por segundo en todos los planes, un intervalo sensato rara vez lo toca.

¿Necesitas la API oficial de Twitter/X para esto? {#do-you-need-the-official-twitterx-api-for-this}

No, no para leer datos hacia una hoja. La API oficial de X solo es necesaria para acciones de escritura como publicar o enviar mensajes directos. Para leer tweets, perfiles y listas de seguidores públicos, una alternativa de solo lectura cobra por solicitud y no por recurso, que es la diferencia entre unos centavos y unos dólares en la misma exportación.

La brecha de costo viene de cómo mide cada lado. La API oficial de X cobra por recurso consultado, a $5.00 por cada 1,000 lecturas de posts más $10.00 por cada 1,000 perfiles de usuario, con un techo duro de 2 millones de lecturas de posts al mes (tarifas de abril de 2026, verificadas en julio de 2026 y detalladas en nuestro desglose de precios de la API de X). Un modelo de tarifa plana por solicitud cuenta una llamada como una solicitud e incluye gratis el perfil del autor, lo que deja las mismas lecturas en unos $0.10 por cada 1,000 tweets en la base de búsqueda de Sorsa o desde $0.02 por cada 1,000 en su base por lotes.

Tarea (lectura, hacia una hoja)API oficial de X (pago por uso)Sorsa (plan Pro)
1,000 tweets con el perfil del autor incluido~$5 a $15 (posts más lecturas de usuario)desde $0.02 (base por lotes)
10,000 perfiles de seguidores~$100 (10,000 lecturas de usuario)~$0.10 (200 por solicitud)
Techo mensual de lectura2,000,000 de lecturas de posts, luego bloqueoplan por solicitudes, sin medidor por tweet

Para publicar o enviar DMs, la API oficial es la única opción, y ese es su territorio. Para leer datos públicos hacia una hoja a un precio de tarifa plana y predecible, una API de solo lectura es mucho más barata y rápida de conectar, por eso encaja con exportaciones programadas y montajes de social listening que corren todo el mes. La misma fuente alimenta un rastreador de menciones de marca con la misma factura de tarifa plana.

Una exportación real montada {#a-real-export-setup}

Un equipo de analítica de unas diez personas llegó a esto tras una sorpresa de presupuesto. Registraban menciones de marca y posts de competidores en Sheets a través de la API oficial y les cobraban por post y por lectura de autor en cada extracción programada, lo que subía rápido al rastrear varias palabras clave a diario. Mover las mismas lecturas a una API de tarifa plana por solicitud recortó ese costo de datos hasta 50 veces, el resultado esperado para una carga intensiva en lecturas que deja el cobro por recurso, porque el perfil del autor viaja gratis y una llamada por lotes cuenta una vez. Solo las lecturas de posts bajan de $5.00 por cada 1,000 en las tarifas oficiales a unos $0.10 por cada 1,000 en la base de búsqueda de Sorsa, y la recolección por lotes por ID de tweet aterriza cerca de $0.02 por cada 1,000, un ahorro de más de un 98% por cualquiera de las dos vías.

El montaje en sí se mantuvo pequeño: un Apps Script por palabra clave, un activador cada hora, el ID del tweet como clave de deduplicación y una pestaña separada de IDs vistos para que la búsqueda siguiera rápida al crecer la hoja. La lección que se llevaron fue de encaje, no de herramientas. Sheets es una buena superficie de reporte y un mal almacén: pasadas unos cientos de miles de filas se vuelve lento, y ese es el punto para mover los datos crudos a una base de datos y dejar Sheets como la vista de encima.

Preguntas frecuentes {#frequently-asked-questions}

¿Se pueden exportar datos de Twitter a Google Sheets sin programar?

Sí, con límites. Las plataformas sin código como IFTTT y Make conectan X con Google Sheets y funcionan mejor para acciones simples ligadas a tu propia cuenta. Para leer palabras clave arbitrarias, menciones u otras cuentas a volumen, un complemento de Sheets o un Apps Script corto que llame a una API de solo lectura como Sorsa es más confiable, porque controla la paginación, la programación y qué columnas se escriben.

¿Por qué los IDs de tweets se ven mal en Google Sheets?

Los IDs de tweets son números de 18 a 19 dígitos, y Google Sheets guarda los números como punto flotante de 64 bits, que solo conserva unos 15 dígitos significativos. Los dígitos finales se redondean a cero, así que el ID deja de coincidir con el tweet real. Guarda los IDs como texto: formatea la columna de ID como texto plano, o escribe el valor como cadena antes de que llegue a la hoja.

¿Cómo evitar filas duplicadas en exportaciones programadas?

Usa el ID del tweet como clave única. Antes de cada ejecución programada, lee los IDs que ya están en la hoja y salta cualquier tweet cuyo ID esté presente. Para hojas grandes, mantén una pestaña separada solo con los IDs vistos hasta ahora para que la búsqueda siga rápida. Como cada ID de tweet es único, esto evita duplicados incluso cuando las ejecuciones se traslapan.

¿Cada cuánto debería correr una exportación de Twitter a Sheets?

Ajusta el intervalo a la frecuencia con la que los datos alimentan una decisión. Cada hora conviene para alertas de menciones sensibles al tiempo; a diario basta para reportes de tendencias o resúmenes de palabras clave; semanal encaja con auditorías lentas. Correr más seguido de lo necesario agrega ruido y, en APIs con medidor, gasta dinero a cambio de poco. Un activador programado te deja fijar cualquier intervalo y cambiarlo después.

¿Necesitas la API oficial de Twitter para exportar datos a Sheets?

No. La API oficial de X solo es necesaria para acciones de escritura como publicar o enviar DMs. Para leer tweets, perfiles y listas de seguidores públicos hacia una hoja, una alternativa de solo lectura como Sorsa API funciona con un único encabezado ApiKey y cobra por solicitud, así que una exportación programada no se mide por tweet. En el plan Pro eso es desde $0.02 por cada 1,000 tweets en la base por lotes, y 100 solicitudes gratis por única vez te dejan probar antes la exportación completa.

¿Cuántos tweets puede contener Google Sheets?

Un solo archivo de Google Sheets admite hasta 10 millones de celdas entre todas las pestañas, lo que limita las filas según cuántas columnas uses. Una exportación de tweets de siete columnas llega a ese límite alrededor de 1.4 millones de filas. Desde abril de 2026, Google inició una beta que duplica el techo a 20 millones de celdas. Pasadas unos cientos de miles de filas, el rendimiento cae y una base de datos es el mejor hogar.

Cómo empezar {#getting-started}

La forma más rápida de ver la forma de los datos es probar una consulta antes de escribir código. Abre el playground de la API, corre una búsqueda y lee el JSON que vas a mapear a columnas. Cuando el esquema se vea bien, lleva el Apps Script de arriba a tu hoja y agrega un activador. Las 100 solicitudes gratis por única vez cubren aproximadamente 10,000 tweets o 20,000 perfiles, suficiente para construir y verificar la exportación de principio a fin antes de elegir plan, y nunca vencen.

Cuando estés para escalar, los planes de tarifa plana por solicitud leen tweets desde $0.02 por cada 1,000 en la base por lotes y perfiles desde $0.01 por cada 1,000, con 20 solicitudes por segundo y sin cola de aprobación. La guía de inicio rápido cubre la autenticación por encabezado y tu primera llamada.

Revisado por Keksich, fundador de Sorsa, especialista en marketing e investigador de la API de X.

Esta guía se apoya en el trabajo directo de nuestro equipo operando la Sorsa API y la API en vivo con su documentación, más el comportamiento oficial de Google Apps Script para activadores programados y solicitudes con encabezados. Las cifras de capacidad de Google Sheets se contrastaron con las actualizaciones de Google Workspace de abril de 2026, y el precio por recurso de la API de X se cruzó con los desgloses públicos vigentes y nuestro propio análisis de precios. Se compararon cuatro rutas de exportación. Más sobre quiénes somos en la página Acerca de. Verificado el 3 de julio de 2026.