Por Sorsa Editorial

Publicado em 13 de junho de 2026. Atualizado em 3 de julho de 2026. Os preços refletem as taxas de pagamento por uso da API oficial do X após a atualização de 20 de abril de 2026 e os planos por requisição atuais da Sorsa, verificados em julho de 2026.

Atualizado em julho de 2026: números de custo da API do X e da Sorsa atualizados para o modelo por requisição atual, preço da Sorsa reapresentado por 1.000 tweets e adicionada a oferta inicial de 100 requisições grátis.

Em resumo: Você pode exportar dados do Twitter (X) para o Google Sheets de quatro formas: um conector no-code (IFTTT, Make), um complemento de conexão de API no Sheets, um fluxo low-code (n8n) ou um Google Apps Script em um acionador por tempo. Toda rota, exceto a no-code, precisa de uma chave de API, e paginação, agendamento e deduplicação ficam por sua conta.

A parte difícil raramente é a planilha. É a fonte de dados que a alimenta. A Sorsa API, uma API alternativa do Twitter (X), retorna tweets, perfis e listas de seguidores públicos como JSON puro atrás de um único cabeçalho, então uma exportação para o Sheets são poucas linhas de código. A cobrança é fixa: uma chamada conta como uma requisição, não importa quantos tweets ou perfis voltem, e o perfil do autor vem incluído de graça dentro de cada tweet. Esse modelo fixo é o que permite à Sorsa ler tweets a partir de US$ 0,02 por 1.000 na base de lote e perfis a partir de US$ 0,01 por 1.000 no plano Pro, enquanto a API oficial do X cobra US$ 5,00 por 1.000 leituras de posts (taxas de abril de 2026, verificadas em julho de 2026). Não há medidor por tweet para drenar um trabalho agendado, o limite é fixo em 20 requisições por segundo em todos os planos, e as 100 requisições grátis, concedidas uma única vez, deixam você montar e testar a exportação inteira antes de pagar, sem cartão de crédito.

Índice

Como exportar dados do Twitter para o Google Sheets? {#how-do-you-export-twitter-data-to-google-sheets}

Exportar dados do Twitter para o Google Sheets significa puxar tweets, perfis ou listas de seguidores de uma API e gravá-los em linhas. Quatro rotas cobrem todos os casos: um conector no-code para ações simples na sua própria conta, um complemento do Sheets que chama uma API de dentro da planilha, uma ferramenta de fluxo low-code ou um script próprio. A escolha certa depende do volume, do controle de esquema e do seu nível técnico.

Todas as rotas se apoiam na mesma ideia. Algo chama um endpoint, recebe JSON e adiciona uma linha por registro. A diferença está no controle. Um applet no-code esconde a requisição e entrega colunas fixas. Um script expõe a resposta completa, então você decide o esquema, a agenda e como duplicatas são tratadas.

Uma distinção importa antes de escolher. Puxar dados ligados à sua própria conta (seus posts, seus seguidores) é simples em quase qualquer lugar. Puxar palavras-chave arbitrárias, menções ou outras contas em volume exige uma API que retorne dados de busca e timeline diretamente, porque os conectores oficiais embutidos nas ferramentas no-code foram fortemente restringidos após as mudanças de API de 2023.

Qual método de exportação usar? {#which-export-method-should-you-use}

Use Apps Script para exportações de produção com esquema personalizado, um complemento ou o n8n para importações agendadas sem muito código, e um conector no-code apenas para ações simples na sua própria conta. O tempo de configuração vai de menos de dez minutos no no-code a algumas horas para um Apps Script completo, e só as rotas com script dão deduplicação confiável e controle exato das colunas.

MétodoTempo de configuraçãoHabilidadeAgendamentoDeduplicaçãoMelhor para
No-code (IFTTT, Make)Menos de 10 minNenhumaLimitadoNenhumaSua própria conta, ações simples
Complemento de conexão de API no Sheets15 a 30 minBaixaSimManualAcesso à API sem escrever código
Fluxo no n8n30 a 60 minBaixa a médiaSimCom um armazenamento de dadosPipelines visuais, self-hosted
Google Apps Script1 a 2 horasMédiaSimControle totalEsquema personalizado, exportações de produção

A troca é controle contra esforço. Se um conjunto fixo de colunas e um horário aproximado bastam, um conector ou complemento economiza uma tarde. Se um relatório depende do esquema exato, ou se duplicatas corromperiam seus números, as rotas com script valem a configuração extra.

Puxar tweets para o Sheets com Google Apps Script {#pull-tweets-into-sheets-with-google-apps-script}

O Google Apps Script é a rota mais flexível: uma função JavaScript que roda na infraestrutura do Google, chama uma API e grava linhas, presa a um acionador por tempo para rodar sozinha. É a única opção com controle total sobre esquema, deduplicação, tratamento de erros e logs, e não precisa de conector de terceiros.

O exemplo abaixo puxa tweets de uma consulta de busca e adiciona os novos a uma aba. Ele chama o endpoint de busca de tweets da Sorsa, que aceita uma consulta mais uma ordem popular ou latest e retorna até 20 tweets por página com o perfil do autor anexado. Siga estes passos:

  1. Crie uma aba chamada Tweets na sua planilha do Google.
  2. Abra o menu Extensões e escolha Apps Script.
  3. Em Configurações do projeto, adicione uma propriedade de script chamada SORSA_API_KEY com a sua chave.
  4. Cole a função abaixo e defina a sua consulta de busca.
  5. Rode a função uma vez e aprove o pedido de autorização.
  6. Abra Acionadores, adicione um acionador por tempo e escolha o intervalo de execução.
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.');
}

Duas notas práticas. Guarde a chave em uma propriedade do script, nunca no corpo da função, para que ela fique fora do histórico compartilhado do script. E monte a consulta visualmente primeiro se a sintaxe for pouco familiar: o construtor visual de consultas transforma operadores de busca avançada como from:, since: e until: em uma string testada que você cola direto.

Para coletar mais de uma página, leia o campo next_cursor da resposta e chame de novo com ele no corpo até vir nulo. A mecânica é a mesma em todos os endpoints paginados; a referência de paginação por cursor mostra o loop. Para exportar uma lista de seguidores em vez de tweets, chame o endpoint de seguidores com um nome de usuário; cada página retorna até 200 perfis, o que mantém uma exportação grande de seguidores dentro de poucas requisições.

Rotas no-code e low-code {#no-code-and-low-code-routes}

Ferramentas no-code e low-code trocam controle por velocidade. IFTTT e Make conectam o X ao Google Sheets em minutos e servem para ações simples na sua própria conta; o n8n fica um nível acima, com lógica de verdade; complementos do Sheets chamam uma API de dentro da planilha. Nenhuma delas trata deduplicação ou esquemas personalizados com a limpeza de um script.

O limite honesto da rota puramente no-code: depois das mudanças de plataforma de 2023, os conectores nativos de X nessas ferramentas são voltados à sua própria conta e à publicação, não à leitura de resultados de busca arbitrários para um repositório de dados. Para registrar seus próprios posts ou reagir à sua própria atividade, funcionam bem. Para monitorar palavras-chave, menções ou concorrentes em volume, você vai querer uma fonte que retorne resultados de busca e timeline, alimentada por um complemento ou um script.

O n8n é o meio-termo mais forte. Você monta o fluxo visualmente, mas mantém ramificações, transformações, loops de paginação e um acionador de agenda. Um formato típico é um acionador agendado, um nó HTTP Request que chama o endpoint de busca, um nó que divide o array da resposta em itens e um nó do Google Sheets que adiciona cada linha. Como o n8n guarda estado, você pode incluir uma etapa de deduplicação do mesmo modo que o script faz.

Complementos do Sheets, como um conector de API, deixam você configurar URL, cabeçalhos e parâmetros dentro da planilha e atualizar em uma agenda. São uma boa escolha quando você quer importações agendadas sem escrever código. Envie a chave de API no cabeçalho da requisição, e não na URL, para que ela não acabe em logs ou no histórico do navegador.

Quais colunas a exportação deve ter? {#what-columns-should-your-export-have}

Uma exportação limpa dá uma linha por tweet com colunas estáveis e nomeadas. No mínimo, capture o ID do tweet, o timestamp, o @ do autor, o texto e os três contadores centrais de engajamento. O ID é a chave única de deduplicação e deve ser armazenado como texto; o resto mapeia direto da resposta.

ColunaCampo da SorsaObservações
tweet_ididArmazene como texto; a chave única de deduplicação
created_atcreated_atTimestamp ISO 8601
usernameuser.usernameAninhado no objeto do autor
full_textfull_textO texto completo do tweet
likes_countlikes_countInteiro, 0 em vez de vazio
retweet_countretweet_countInteiro
reply_countreply_countInteiro

Trate os cabeçalhos como um contrato: quando um relatório ou fórmula passa a depender deles, renomear uma coluna quebra tudo em silêncio, então defina o esquema uma vez e mantenha. Como o perfil do autor vem dentro de cada tweet, o @ e os contadores de seguidores saem da mesma resposta sem requisição extra, parte do motivo de a conta fixa por requisição ficar baixa aqui.

Armadilhas comuns antes de colocar no ar {#common-gotchas-before-you-ship}

Três problemas pegam a maioria das primeiras exportações: IDs de tweets perdendo precisão, execuções agendadas falhando em silêncio e a paginação parando quieta na primeira página. Cada um tem solução simples, e acertar desde o início evita reconstruir depois, quando um relatório já está ligado à planilha.

IDs de tweets são grandes demais para o Sheets guardar como número. São valores de 18 a 19 dígitos, e o Google Sheets armazena números como ponto flutuante de 64 bits, que preserva só cerca de 15 dígitos significativos. Os últimos dígitos viram zero e o ID deixa de corresponder ao tweet real. Formate a coluna de ID como texto simples, ou grave o valor como string antes de ele chegar à planilha.

A paginação não é automática. Endpoints de busca e timeline retornam cerca de 20 registros por página; endpoints de seguidores retornam até 200. Para passar da primeira página, itere sobre o valor de next_cursor até ele vir nulo. Endpoints em lote ajudam onde os dados cabem neles: quando você já tem até 100 IDs de tweets ou 100 nomes de usuário, uma única chamada bulk retorna todos, a principal alavanca para cortar o volume de requisições.

Execuções agendadas podem falhar sem avisar. Um acionador por tempo que dá erro não notifica você, a menos que você construa o alerta. Adicione uma chamada MailApp.sendEmail em um bloco catch, ou confira os logs de execução do Apps Script com regularidade. Sobre rate limits: um 429 significa apenas esperar um segundo e tentar de novo; com o limite fixo de 20 requisições por segundo em todos os planos, um intervalo sensato raramente o atinge.

Precisa da API oficial do Twitter (X) para isso? {#do-you-need-the-official-twitterx-api-for-this}

Não, não para ler dados em uma planilha. A API oficial do X só é necessária para ações de escrita, como postar ou enviar mensagens diretas. Para ler tweets, perfis e listas de seguidores públicos, uma alternativa somente leitura cobra por requisição em vez de por recurso, que é a diferença entre alguns centavos e alguns dólares na mesma exportação.

A diferença de custo vem de como cada lado mede. A API oficial do X cobra por recurso buscado, a US$ 5,00 por 1.000 leituras de posts mais US$ 10,00 por 1.000 perfis de usuário, com teto rígido de 2 milhões de leituras de posts por mês (taxas de abril de 2026, verificadas em julho de 2026 e detalhadas na nossa análise de preços da API do X). Um modelo fixo por requisição conta uma chamada como uma requisição e embute o perfil do autor de graça, o que coloca as mesmas leituras em cerca de US$ 0,10 por 1.000 tweets na base de busca da Sorsa ou a partir de US$ 0,02 por 1.000 na base de lote.

Tarefa (leitura, para uma planilha)API oficial do X (pagamento por uso)Sorsa (plano Pro)
1.000 tweets, perfil do autor incluído~US$ 5 a US$ 15 (posts mais leituras de usuário)a partir de US$ 0,02 (base de lote)
10.000 perfis de seguidores~US$ 100 (10.000 leituras de usuário)~US$ 0,10 (200 por requisição)
Teto mensal de leitura2.000.000 de leituras de posts, depois bloqueioplano por requisição, sem medidor por tweet

Para postar ou enviar DMs, a API oficial é a única opção, e esse é o território dela. Para ler dados públicos em uma planilha a um preço fixo e previsível, uma API somente leitura é muito mais barata e rápida de ligar, e por isso serve para exportações agendadas e configurações de social listening que rodam o mês inteiro. A mesma fonte alimenta um rastreador de menções de marca na mesma conta fixa.

Uma exportação real {#a-real-export-setup}

Uma equipe de análise com cerca de dez pessoas chegou a isso depois de uma surpresa no orçamento. Eles registravam menções de marca e posts de concorrentes no Sheets pela API oficial e eram cobrados por post e por leitura de autor em cada coleta agendada, o que escalava rápido com vários termos monitorados por dia. Mover as mesmas leituras para uma API fixa por requisição cortou esse custo de dados em até 50x, o resultado esperado para uma carga de leitura intensa saindo da cobrança por recurso, já que o perfil do autor vem de graça e uma chamada em lote conta uma vez. Só as leituras de posts caem de US$ 5,00 por 1.000 nas taxas oficiais para cerca de US$ 0,10 por 1.000 na base de busca da Sorsa, e a coleta em lote por ID de tweet fica perto de US$ 0,02 por 1.000, uma economia de mais de 98% em qualquer um dos caminhos.

A montagem em si continuou pequena: um Apps Script por palavra-chave, um acionador de hora em hora, o ID do tweet como chave de deduplicação e uma aba separada com os IDs já vistos para a consulta continuar rápida com o crescimento da planilha. A lição que levaram foi sobre adequação, não sobre a ferramenta. O Sheets é uma boa camada de relatórios e um péssimo armazém de dados; depois de algumas centenas de milhares de linhas ele fica lento, e esse é o ponto de mover os dados brutos para um banco e deixar o Sheets como a visão por cima.

Perguntas frequentes {#frequently-asked-questions}

Dá para exportar dados do Twitter para o Google Sheets sem programar?

Sim, com limites. Plataformas no-code como IFTTT e Make conectam o X ao Google Sheets e funcionam melhor para ações simples ligadas à sua própria conta. Para ler palavras-chave arbitrárias, menções ou outras contas em volume, um complemento do Sheets ou um Apps Script curto que chame uma API somente leitura como a Sorsa é mais confiável, porque controla a paginação, o agendamento e quais colunas são gravadas.

Por que os IDs de tweets aparecem errados no Google Sheets?

IDs de tweets são números de 18 a 19 dígitos, e o Google Sheets armazena números como ponto flutuante de 64 bits, que só preserva cerca de 15 dígitos significativos. Os dígitos finais viram zero, então o ID deixa de corresponder ao tweet real. Armazene os IDs como texto: formate a coluna de ID como texto simples, ou grave o valor como string antes de ele chegar à planilha.

Como evitar linhas duplicadas em exportações agendadas?

Use o ID do tweet como chave única. Antes de cada execução agendada, leia os IDs que já estão na planilha e pule qualquer tweet cujo ID esteja presente. Em planilhas grandes, mantenha uma aba separada só com os IDs já vistos para a consulta continuar rápida. Como cada ID de tweet é único, isso evita duplicatas mesmo quando execuções se sobrepõem.

Com que frequência uma exportação do Twitter para o Sheets deve rodar?

Ajuste o intervalo à frequência com que os dados sustentam uma decisão. De hora em hora serve para alertas de menção sensíveis ao tempo; diário basta para relatórios de tendência ou resumos de palavras-chave; semanal serve para auditorias lentas. Rodar mais do que o necessário adiciona ruído e, em APIs medidas, gasta dinheiro por pouco ganho. Um acionador agendado permite definir qualquer intervalo e mudar depois.

Precisa da API oficial do Twitter para exportar dados ao Sheets?

Não. A API oficial do X só é necessária para ações de escrita, como postar ou enviar DMs. Para ler tweets, perfis e listas de seguidores públicos em uma planilha, uma alternativa somente leitura como a Sorsa API funciona com um único cabeçalho ApiKey e cobra por requisição, então uma exportação agendada não é medida por tweet. No plano Pro isso sai a partir de US$ 0,02 por 1.000 tweets na base de lote, e as 100 requisições grátis, concedidas uma única vez, deixam você testar a exportação completa antes.

Quantos tweets o Google Sheets aguenta?

Um único arquivo do Google Sheets comporta até 10 milhões de células somando todas as abas, o que limita as linhas conforme o número de colunas usadas. Uma exportação de tweets com sete colunas atinge esse limite por volta de 1,4 milhão de linhas. Desde abril de 2026, o Google iniciou um beta que dobra o teto para 20 milhões de células. Depois de algumas centenas de milhares de linhas, o desempenho cai e um banco de dados é o lar melhor.

Primeiros passos {#getting-started}

A forma mais rápida de ver o formato dos dados é testar uma consulta antes de escrever qualquer código. Abra o playground da API, rode uma busca e leia o JSON que você vai mapear para colunas. Quando o esquema parecer certo, coloque o Apps Script acima na sua planilha e adicione um acionador. As 100 requisições grátis, concedidas uma única vez, cobrem cerca de 10.000 tweets ou 20.000 perfis, o bastante para montar e conferir a exportação de ponta a ponta antes de escolher um plano, e elas nunca expiram.

Quando estiver pronto para escalar, os planos fixos por requisição leem tweets a partir de US$ 0,02 por 1.000 na base de lote e perfis a partir de US$ 0,01 por 1.000, com um limite fixo de 20 requisições por segundo e sem fila de aprovação. O guia de início rápido cobre a autenticação por cabeçalho e a sua primeira chamada.

Revisado por Keksich, fundador da Sorsa, profissional de marketing e pesquisador da API do X.

Este guia se apoia no trabalho prático da nossa equipe operando a Sorsa API e a API ao vivo com sua documentação, além do comportamento oficial do Apps Script do Google para acionadores agendados e requisições com cabeçalho. Os números de capacidade do Google Sheets foram conferidos nas atualizações do Google Workspace de abril de 2026, e os preços por recurso da API do X foram cruzados com análises públicas atuais e com o nosso próprio detalhamento de preços. Quatro rotas de exportação foram comparadas. Mais sobre quem somos está na página sobre a Sorsa. Verificado em 3 de julho de 2026.