Pular para o conteúdo

Como coletar dados políticos do Twitter para pesquisa

Para coletar dados políticos do Twitter, mantenha uma lista de contas de autoridades e uma busca documentada sobre a eleição ou o tema que você estuda, e leia as duas por uma API em intervalos regulares; a API oficial do X cobra US$ 5,00 por 1.000 posts.

Resposta curta: O acesso acadêmico gratuito ao X acabou em 2023, então as coletas de pesquisa agora pagam por leitura: a API oficial do X cobra US$ 0,005 por post e para em 3 milhões de posts por mês. Para as linhas do tempo de políticos e o debate eleitoral, use a Sorsa API, uma API e scraper do Twitter (X): a partir de US$ 0,07 por 1.000 tweets, com 100 requisições grátis para começar.

Endpoint
POST /search-tweets
Tamanho da página
cerca de 20 tweets por requisição
Preço
a partir de US$ 0,07 por 1.000

#Quais dados políticos do Twitter você pode coletar

Hoje dá para coletar três tipos de dados políticos no X: o que as autoridades publicam, o que o público diz sobre uma eleição ou um tema e como as pessoas respondem aos posts das autoridades. Todos são públicos, têm data e hora e estão ligados a um autor, e é por isso que o X continua sendo uma fonte padrão na pesquisa de comunicação política.

  • Posts das próprias autoridades. Parlamentares, ministros, partidos, órgãos públicos e candidatos. É um registro pequeno e limpo: algumas centenas de contas e dezenas de milhares de posts por mês para um legislativo nacional.
  • Debate sobre eleições e temas. Tudo o que o público publica com o nome de um candidato, um projeto de lei, uma hashtag ou um debate. Vai de milhares de posts numa disputa local a milhões numa votação nacional.
  • Reações. As respostas e os quotes sob uma declaração oficial, que mostram como a mensagem foi recebida.

Alguns dados ficam fora do alcance de qualquer API: posts que o autor apagou, contas protegidas, mensagens privadas e a lista de quem curtiu um post. Os datasets de pesquisa antigos não preenchem essa lacuna. A maioria foi publicada como listas de IDs de tweets, porque as regras da plataforma permitiam compartilhar IDs, mas não os textos, e o ID de um tweet apagado hoje não devolve nada. Os pesquisadores perderam o caminho gratuito em 2023, e a história de quem podia buscar no arquivo do Twitter explica o que veio no lugar.

Por isso, um estudo político em 2026 coleta os próprios dados: daqui para a frente, numa campanha em andamento, ou de volta pelo arquivo, numa campanha passada, que chega até março de 2006.

#Colete tweets políticos com a Sorsa API

Para coletar tweets políticos, use a Sorsa API: uma única chave de API lê as linhas do tempo das autoridades e o debate eleitoral a partir de US$ 0,07 por 1.000 tweets, a 20 requisições por segundo em todos os planos, sem conta de desenvolvedor do X e sem OAuth. A API oficial do X cobra US$ 5,00 por 1.000 posts pelas mesmas leituras e para em 3 milhões de posts por mês.

Cada tipo de dado político tem o seu endpoint. Todos devolvem o perfil completo do autor dentro de cada tweet, sem custo extra.

Dado políticoEndpoint da Sorsa APIPor requisiçãoA partir de, por 1.000
Uma lista de autoridades, como um único feedGET /list-tweets (abre em uma nova aba)cerca de 20 tweetsUS$ 0,07
A linha do tempo completa de uma autoridadePOST /user-tweets (abre em uma nova aba)cerca de 20 tweetsUS$ 0,07
Debate sobre eleição ou tema, por consulta e dataPOST /search-tweets (abre em uma nova aba)cerca de 20 tweetsUS$ 0,07
Respostas sob um post de uma autoridadePOST /comments (abre em uma nova aba)cerca de 20 respostasUS$ 0,07
Perfis de todas as contas da sua listaGET /info-batch (abre em uma nova aba)até 100 perfisUS$ 0,014
Posts que você já tem, conferidos de novo por IDPOST /tweet-info-bulk (abre em uma nova aba)até 100 tweetsUS$ 0,014

A Sorsa API é uma API REST: uma requisição com a sua chave devolve JSON limpo, sem nada para rodar no navegador e sem conta no X. Ela roda em produção desde 2022, com mais de 6 bilhões de requisições atendidas, e, quando o X muda alguma coisa, a correção fica por nossa conta, então uma coleta que atravessa a noite de uma eleição não quebra no meio. Ela nunca pede o login do seu X, então a sua própria conta não corre risco.

#Monte uma lista de monitoramento das contas de políticos

Uma lista de monitoramento é a relação de contas que o seu estudo acompanha, guardadas como IDs numéricos de usuário. Comece por uma fonte pública que alguém já verificou, não por uma busca de selos azuis: desde 2023 o selo é uma assinatura paga, não prova de que a conta é oficial.

Etapa Fonte ou endpoint da Sorsa API 1 Liste as contas 505 handles do Congresso de um arquivo público legislators-social-media.yaml só contas oficiais 2 Fixe os IDs numéricos handles mudam, IDs não GET /info-batch 100 perfis por requisição 3 Leia o feed da lista toda hora, até o último post salvo GET /list-tweets até 5.000 contas em um feed 4 Guarde e reverifique salve quando cada post foi visto, registre os posts que somem POST /tweet-info-bulk 100 IDs salvos por requisição
A lista de monitoramento roda em quatro etapas: listar, resolver, ler, conferir de novo. A última etapa transforma apagamentos em dados.

Para o Congresso dos EUA, o projeto de dados abertos unitedstates/congress-legislators (abre em uma nova aba) mantém um arquivo com as contas oficiais dos membros nas redes sociais. Em 2 de novembro de 2026 ele listava 505 contas do X, 408 delas com IDs numéricos, e a última atualização era de 24 de outubro de 2026. O projeto aceita só contas oficiais, mantidas com dinheiro público, e não contas de campanha ou pessoais, que é a distinção de que um estudo de comunicação oficial precisa. Muitos parlamentos publicam as contas dos membros em seus próprios sites de dados abertos; comece por eles em outros países.

Os handles mudam; os IDs numéricos não. Resolva cada handle para o seu ID uma vez com GET /info-batch, 100 contas por requisição, e use o ID como chave da sua lista. O script abaixo lê o arquivo do Congresso e salva uma linha de perfil por membro.

Python
import csv
import requests
import yaml  # pip install pyyaml requests

URL = "https://api.sorsa.io/v3/info-batch"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
SRC = ("https://raw.githubusercontent.com/unitedstates/"
       "congress-legislators/main/legislators-social-media.yaml")

members = yaml.safe_load(requests.get(SRC, timeout=30).text)
handles = [m["social"]["twitter"] for m in members
           if m["social"].get("twitter")]

rows = []
for i in range(0, len(handles), 100):  # 100 handles per request
    r = requests.get(URL, headers=HEADERS, timeout=30,
                     params={"usernames": handles[i:i + 100]})
    r.raise_for_status()
    rows += r.json().get("users", [])

with open("watchlist.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.writer(f)
    w.writerow(["id", "username", "display_name", "followers"])
    for u in rows:
        w.writerow([u["id"], u["username"], u["display_name"],
                    u["followers_count"]])
print(len(rows), "accounts saved")

Seis requisições cobrem os 505 handles. As contas que não voltam foram renomeadas, suspensas ou protegidas depois da atualização da lista; confira-as à mão uma vez e corrija o arquivo.

#Colete todos os posts da lista de monitoramento

Para coletar todos os posts que uma lista de monitoramento publica, reúna as contas numa List pública do X e leia-a com GET /list-tweets: um único feed traz os posts de todos os membros, do mais novo para o mais antigo, cerca de 20 por requisição. Uma List do X comporta até 5.000 contas, o bastante para qualquer legislativo nacional, e o guia de Lists mostra como ler Lists do X pela API.

Consulte o feed em intervalos regulares e volte páginas só até chegar a um post que você já salvou. Uma verificação por hora de uma List do Congresso com 505 contas custa então algumas requisições, seja a hora calma ou movimentada.

import json
import time
from datetime import datetime, timezone

import requests

URL = "https://api.sorsa.io/v3/list-tweets"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
LIST_ID = "1720000000000000001"  # your public X List of officials


def check(last_id):
    """Fetch posts newer than last_id, newest first."""
    params, new = {"list_id": LIST_ID}, []
    while True:
        r = requests.get(URL, headers=HEADERS, params=params, timeout=30)
        if r.status_code == 429:  # over 20 requests a second
            time.sleep(1)
            continue
        r.raise_for_status()
        page = r.json()
        for t in page.get("tweets", []):
            if int(t["id"]) <= last_id:
                return new  # reached the last saved post
            new.append(t)
        if not page.get("next_cursor"):
            return new
        params["next_cursor"] = page["next_cursor"]


last_id = 0  # store this between runs
while True:
    seen = datetime.now(timezone.utc).isoformat()
    posts = check(last_id)
    with open("posts.jsonl", "a", encoding="utf-8") as f:
        for t in posts:
            f.write(json.dumps({"first_seen": seen, **t}) + "\n")
    if posts:
        last_id = max(int(t["id"]) for t in posts)
    print(seen, len(posts), "new posts")
    time.sleep(3600)  # one check an hour

Uma resposta 403 significa que a chave está ausente, errada ou sem requisições; uma 429 significa mais de 20 requisições em um segundo, então o script espera um segundo e pede de novo. Os IDs dos tweets crescem com o tempo, e é por isso que compará-los encontra o último post salvo.

Contas na lista de acompanhamento

Posts por dia, cada uma

Você confere o feed

Cerca de 61K posts por mês de 505 contas, conferidas a cada hora

US$ 303

API oficial do X

US$ 0,005 por post

por mês, só os posts

a partir de US$ 5,04

Sorsa API

um feed de Lista, cerca de 20 posts por requisição

por mês, com autores incluídos

Menos de um segundo por verificação na Sorsa API a 20 requisições por segundo, para cerca de 84 posts novos a cada vez.

Defina o tamanho da sua lista, com que frequência as contas postam e com que frequência você confere, para ver um mês de coleta nas duas APIs.

Para puxar uma única vez todo o histórico de uma autoridade, chame POST /user-tweets com o ID de usuário da conta e vá voltando páginas do post mais novo ao mais antigo; o guia para baixar todos os tweets de um usuário cobre essa exportação para CSV.

O debate sobre eleições e temas se coleta com uma consulta de busca: nomes de candidatos e partidos, as hashtags da disputa e as expressões-chave do tema, um idioma e uma janela de datas, enviados ao POST /search-tweets e paginados com next_cursor. A consulta é o desenho da pesquisa, então escreva-a antes de coletar e publique-a junto com os resultados.

Equilibre a consulta. Uma busca pela hashtag de um lado mede um lado só, então cite todos os candidatos e partidos da disputa do mesmo jeito, com os mesmos operadores. Corte períodos longos em janelas de um dia ou de uma semana com since: e until:, para que uma janela que falhou seja repetida sozinha. A sintaxe completa está na lista de operadores de busca do Twitter.

Terminal
curl -X POST "https://api.sorsa.io/v3/search-tweets" \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "(#Measure7 OR \"Measure 7\") since:2026-10-20 until:2026-10-21",
    "order": "latest"
  }'
Response200 OK
{
  "tweets": [
    {
      "id": "1981234567890123456",
      "full_text": "Measure 7 forum tonight: each side got 5 questions.",
      "created_at": "2026-10-20T23:41:07Z",
      "lang": "en",
      "likes_count": 57,
      "retweet_count": 14,
      "reply_count": 9,
      "quote_count": 3,
      "is_reply": false,
      "is_quote_status": false,
      "user": {
        "id": "1590000000000000042",
        "username": "county_civics_desk_demo",
        "display_name": "County Civics Desk",
        "followers_count": 8213
      }
    }
  ],
  "next_cursor": "DAADDAABCgABG4lN0iWAJ8kKAAIbiUY1qZvwRg"
}

Envie o mesmo corpo de novo com next_cursor adicionado e pare quando uma resposta vier sem ele. As páginas trazem cerca de 20 tweets e o tamanho varia, então conte posts, não páginas.

Decida sobre os retweets antes de coletar

Os retweets carregam muito mais política do que os posts originais, então descartá-los muda o que o seu dataset diz. No estudo do Pew Research Center sobre um ano de tweets de adultos dos EUA, 44% dos retweets e 42% dos quotes eram políticos, contra 26% das respostas e 8% dos tweets originais.

Parcela de tweets políticos, por tipo Retweets 44% Quote tweets 42% Respostas 26% Tweets originais 8% 0% 25% 50%
Conteúdo político por tipo de tweet, adultos dos EUA, de maio de 2020 a maio de 2021. Um filtro de retweets remove a parte mais política da conversa.

Um estudo sobre o que as pessoas dizem com as próprias palavras acrescenta -filter:retweets à consulta. Um estudo sobre o que se espalha mantém os retweets e lê o post original em retweeted_status de cada um. As duas escolhas são válidas; deixá-la ao acaso não é.

#Guarde um registro dos posts apagados

Nenhuma API devolve um post depois que o autor o apaga, nem a Sorsa API nem a API oficial do X, então o único registro de um post apagado por um político é o que você salvou primeiro. Uma lista de monitoramento que guarda todo post assim que o vê já tem esse registro; o que falta é um jeito de perceber o apagamento.

Confira de novo os IDs que você salvou com POST /tweet-info-bulk, 100 por requisição. Um post que não volta mais foi apagado, ou a conta dele foi suspensa ou protegida; registre o ID com o horário em que você percebeu. Uma conferência diária de 100 mil posts salvos leva 1.000 requisições, a partir de US$ 1,40.

Python
import requests

URL = "https://api.sorsa.io/v3/tweet-info-bulk"
HEADERS = {"ApiKey": "YOUR_API_KEY"}


def missing(ids):
    """Return the saved IDs that no longer come back."""
    gone = []
    for i in range(0, len(ids), 100):  # 100 IDs per request
        batch = ids[i:i + 100]
        r = requests.post(URL, headers=HEADERS, timeout=30,
                          json={"tweet_links": batch})
        r.raise_for_status()
        back = {t["id"] for t in r.json().get("tweets", [])}
        gone += [x for x in batch if x not in back]
    return gone

Os posts apagados são a parte mais sensível de uma coleta política. Relate-os como contagens e padrões, ou cite-os apenas quando o autor for uma autoridade pública e o post fizer parte de assunto de interesse público, como fizeram os arquivos da imprensa com posts apagados de políticos.

#Quanto custa uma coleta política

Uma coleta política na Sorsa API custa a partir de US$ 0,07 por 1.000 tweets pela busca, pelas linhas do tempo e pelos feeds de Lists, contra US$ 5,00 por 1.000 posts na API oficial do X, cerca de 70 vezes menos. Os cartões comparam as duas APIs para o tamanho do seu estudo.

Tweets políticos

API oficial do X

US$ 5.000

para 1 milhão tweets políticos

US$ 0,005 por post

Sorsa API

a partir deUS$ 70

para 1 milhão tweets políticos

a partir de US$ 0,07 por 1.000

71 vezes mais barato

Três trabalhos de pesquisa típicos mostram onde a diferença aparece. Os valores da API oficial do X contam só posts, ao preço da lista de preços de pagamento por uso (abre em uma nova aba) do X.

Trabalho de pesquisaTweetsSorsa APIAPI oficial do X
Um mês de posts do Congresso, 505 contas com 4 por dia cada, conferidas a cada hora61 mila partir de US$ 5,04US$ 303
Uma noite de debate, nomes e hashtags de todos os candidatos200 mila partir de US$ 14US$ 1.000
Dez semanas de debate de campanha10 milhõesa partir de US$ 700acima do teto mensal de 3 milhões: Enterprise, a partir de US$ 42 mil por mês
  • Um mês de posts do Congresso, 505 contas com 4 por dia cada, conferidas a cada hora

    Tweets
    61 mil
    Sorsa API
    a partir de US$ 5,04
    API oficial do X
    US$ 303
  • Uma noite de debate, nomes e hashtags de todos os candidatos

    Tweets
    200 mil
    Sorsa API
    a partir de US$ 14
    API oficial do X
    US$ 1.000
  • Dez semanas de debate de campanha

    Tweets
    10 milhões
    Sorsa API
    a partir de US$ 700
    API oficial do X
    acima do teto mensal de 3 milhões: Enterprise, a partir de US$ 42 mil por mês

Bom saber

A partir de 22 de novembro de 2026, a API oficial do X também cobra cada perfil de autor que volta com um post, a US$ 0,010, como a equipe de desenvolvedores do X anunciou em 23 de outubro (abre em uma nova aba). Os resultados de busca vêm de milhares de autores diferentes, então o debate eleitoral lido ali pode custar até US$ 15,00 por 1.000 posts. A Sorsa API inclui todos os autores no próprio tweet.

O plano de pagamento por uso da API oficial do X para em 3 milhões de leituras de posts por ciclo de cobrança, então uma campanha nacional ultrapassa esse teto em poucas semanas, e o degrau seguinte é um contrato Enterprise a partir de cerca de US$ 42 mil por mês. Ele também exige uma conta de desenvolvedor aprovada, um projeto e um app, e tokens OAuth antes da primeira leitura.

#Regras que mantêm a pesquisa política sólida

Os dados políticos do Twitter medem o debate online, não a opinião pública, e as regras abaixo mantêm um estudo dentro do que os dados conseguem mostrar.

  • Usuários do X não são o eleitorado. No estudo do Pew, adultos com 50 anos ou mais eram 24% dos usuários adultos dos EUA e escreveram 78% dos tweets políticos. Trate as contagens como uma medida de quem fala no X, nunca como uma pesquisa de opinião.
  • Bots e contas coordenadas inflam temas políticos. Filtre-os antes de contar e relate o que removeu; o guia de detecção de bots no Twitter lista os sinais.
  • A consulta decide o resultado. Publique a consulta exata, as janelas, o endpoint e as datas da coleta, para que outras pessoas consigam reconstruir o seu dataset.
  • Estude posts e autoridades públicas, não eleitores. Meça o debate em conjunto e cite usuários comuns com moderação. Inferir as opiniões políticas de um indivíduo é proibido pela ética em pesquisa, e o próprio contrato de desenvolvedor (abre em uma nova aba) do X proíbe traçar o perfil de pessoas por filiação política.

Bom saber

Dados políticos servem para entender a política, não para orientar eleitores. Mantenha uma coleta política em pesquisa, jornalismo e trabalho de prestação de contas: sem cadastros de eleitores, sem listas de segmentação e sem mensagens dirigidas a pessoas escolhidas pelos seus posts.

Rotular, remover duplicatas e dividir um corpus para um modelo é igual para tweets políticos e para qualquer outro tipo, e o guia para montar um dataset do Twitter para machine learning cobre isso. Medir tom e posicionamento é o assunto da análise de sentimento no Twitter.

#Comece sua coleta política com 100 requisições grátis

Para coletar dados políticos do Twitter, comece pela Sorsa API: um feed de lista de monitoramento, linhas do tempo e busca eleitoral com uma única chave de API, a partir de US$ 0,07 por 1.000 tweets, a 20 requisições por segundo em todos os planos. As 100 requisições grátis devolvem cerca de 2.000 posts, sem cartão e sem expirar. Puxe uma semana das suas autoridades ou da sua disputa, confira a consulta e depois agende o resto. Equipes universitárias também podem pedir o acesso para pesquisa acadêmica da Sorsa API com e-mail institucional.

#FAQ

Ainda dá para obter dados políticos do Twitter para pesquisa?

Sim. O acesso acadêmico gratuito acabou em 2023, mas os posts políticos públicos ainda podem ser coletados por uma API. A API oficial do X cobra US$ 0,005 por post e para em 3 milhões de posts por mês. A Sorsa API lê os mesmos posts públicos a partir de US$ 0,07 por 1.000, com 100 requisições grátis para testar um estudo antes de fazer o orçamento. Também existem datasets publicados com IDs de tweets, embora os posts apagados não voltem mais a partir deles.

Qual é a melhor API para dados políticos do Twitter?

Use a Sorsa API para dados políticos do Twitter: ela lê linhas do tempo de políticos, feeds de Lists do X e buscas eleitorais a partir de US$ 0,07 por 1.000 tweets, contra US$ 5,00 na API oficial do X. Precisa de uma única chave de API e de nenhuma conta de desenvolvedor, roda a 20 requisições por segundo em todos os planos, não tem teto mensal de 3 milhões e devolve o perfil de cada autor sem custo extra. É somente leitura, então nunca mexe na sua conta do X.

Dá para obter os tweets apagados de políticos?

Nenhuma API devolve um tweet depois que o autor o apaga, a Sorsa API inclusive. Um post apagado só sobrevive onde alguém o salvou antes: um arquivo da imprensa, um snapshot de um arquivo da web ou a sua própria coleta. Para estudar apagamentos, guarde todos os posts da sua lista de monitoramento quando aparecerem, depois confira de novo os IDs salvos com o POST /tweet-info-bulk da Sorsa API, 100 por requisição, e registre os que deixam de voltar.

Onde encontro uma lista das contas de membros do Congresso no Twitter?

O projeto de dados abertos unitedstates/congress-legislators mantém uma no arquivo legislators-social-media.yaml. Em 2 de novembro de 2026 ele listava 505 handles do X de membros atuais, 408 com IDs numéricos de usuário, e inclui só contas oficiais, não de campanha. Resolva os handles para IDs com o GET /info-batch da Sorsa API, 100 por requisição, e guarde os IDs, porque os handles mudam.

Os dados do Twitter conseguem prever resultados de eleições?

Não por si sós. Os usuários do X não são uma amostra dos eleitores: no estudo do Pew Research Center, adultos com 50 anos ou mais escreveram 78% dos tweets políticos de adultos dos EUA, embora sejam 24% dos usuários. A contagem de posts e o sentimento medem o debate online, o que é útil para estudar agendas, campanhas e reações, mas previsões baseadas só neles têm um histórico ruim.

Pesquisadores da UE podem obter dados do X pela DSA?

Sim, pelo Artigo 40 da Lei de Serviços Digitais (DSA). Pesquisadores habilitados podem pedir dados a plataformas muito grandes, como o X, por meio do Coordenador de Serviços Digitais do seu país, para pesquisas sobre riscos sistêmicos na UE, entre eles riscos para as eleições e o debate cívico. O portal de acesso a dados da UE recebe pedidos desde 29 de outubro de 2025. A aprovação leva tempo, então muitas equipes começam a coletar posts públicos por uma API enquanto isso.

#Como conferimos

Em 2 de novembro de 2026 lemos a lista de preços de pagamento por uso do X, o contrato de desenvolvedor datado de 27 de abril de 2026 e o aviso de 23 de outubro de 2026 sobre as expansões de cobrança; todo preço e regra da API oficial do X aqui vem deles. No mesmo dia baixamos o arquivo de redes sociais do unitedstates/congress-legislators e contamos as contas, e lemos o relatório de 2022 do Pew Research Center e o FAQ da Comissão Europeia sobre acesso a dados da DSA. Cada endpoint, parâmetro e tamanho de página da Sorsa API foi conferido na nossa referência de API em produção; as requisições e a resposta são montadas a partir dela com contas de demonstração, e os custos são aritmética sobre as tarifas publicadas.

Pela equipe da Sorsa API. Construímos e operamos a Sorsa API, a API e scraper somente leitura do Twitter (X), em produção desde 2022 (antiga TweetScout API), com mais de 6 bilhões de requisições atendidas. Sobre a Sorsa API

O que mudou
  • Reescrito do zero. Preços da API oficial do X, o teto de 3 milhões, a cobrança por autor a partir de 22 de novembro de 2026 e o contrato de desenvolvedor conferidos nas páginas do próprio X. Novidades: uma lista de monitoramento do Congresso a partir de fonte pública, um coletor horário do feed de uma List em Python e Node.js, uma calculadora de custo mensal, um registro de posts apagados, uma busca eleitoral equilibrada com consulta real, os números do Pew sobre retweets e as regras de pesquisa. A tabela de custos antiga e o exemplo de coleta que não dava para verificar foram removidos.
  • Primeira publicação.