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ítico | Endpoint da Sorsa API | Por requisição | A partir de, por 1.000 |
|---|---|---|---|
| Uma lista de autoridades, como um único feed | GET /list-tweets (abre em uma nova aba) | cerca de 20 tweets | US$ 0,07 |
| A linha do tempo completa de uma autoridade | POST /user-tweets (abre em uma nova aba) | cerca de 20 tweets | US$ 0,07 |
| Debate sobre eleição ou tema, por consulta e data | POST /search-tweets (abre em uma nova aba) | cerca de 20 tweets | US$ 0,07 |
| Respostas sob um post de uma autoridade | POST /comments (abre em uma nova aba) | cerca de 20 respostas | US$ 0,07 |
| Perfis de todas as contas da sua lista | GET /info-batch (abre em uma nova aba) | até 100 perfis | US$ 0,014 |
| Posts que você já tem, conferidos de novo por ID | POST /tweet-info-bulk (abre em uma nova aba) | até 100 tweets | US$ 0,014 |
Uma lista de autoridades, como um único feed
- Endpoint da Sorsa API
GET /list-tweets(abre em uma nova aba)- Por requisição
- cerca de 20 tweets
- A partir de, por 1.000
- US$ 0,07
A linha do tempo completa de uma autoridade
- Endpoint da Sorsa API
POST /user-tweets(abre em uma nova aba)- Por requisição
- cerca de 20 tweets
- A partir de, por 1.000
- US$ 0,07
Debate sobre eleição ou tema, por consulta e data
- Endpoint da Sorsa API
POST /search-tweets(abre em uma nova aba)- Por requisição
- cerca de 20 tweets
- A partir de, por 1.000
- US$ 0,07
Respostas sob um post de uma autoridade
- Endpoint da Sorsa API
POST /comments(abre em uma nova aba)- Por requisição
- cerca de 20 respostas
- A partir de, por 1.000
- US$ 0,07
Perfis de todas as contas da sua lista
- Endpoint da Sorsa API
GET /info-batch(abre em uma nova aba)- Por requisição
- até 100 perfis
- A partir de, por 1.000
- US$ 0,014
Posts que você já tem, conferidos de novo por ID
- Endpoint da Sorsa API
POST /tweet-info-bulk(abre em uma nova aba)- Por requisição
- até 100 tweets
- A partir de, por 1.000
- US$ 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.
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.
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.
#Colete o debate sobre eleições e temas por busca
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.
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"
}'
{
"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.
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.
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.
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 pesquisa | Tweets | Sorsa API | API oficial do X |
|---|---|---|---|
| Um mês de posts do Congresso, 505 contas com 4 por dia cada, conferidas a cada hora | 61 mil | a partir de US$ 5,04 | US$ 303 |
| Uma noite de debate, nomes e hashtags de todos os candidatos | 200 mil | a partir de US$ 14 | US$ 1.000 |
| Dez semanas de debate de campanha | 10 milhões | a partir de US$ 700 | acima 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.
Sources
- X API pay-per-usage pricing (abre em uma nova aba)
- X Developers: PPU expansions update (Oct 23, 2026) (abre em uma nova aba)
- X Developer Agreement (April 27, 2026) (abre em uma nova aba)
- unitedstates/congress-legislators: legislators-social-media.yaml (abre em uma nova aba)
- Pew Research Center: Politics on Twitter (June 16, 2022) (abre em uma nova aba)
- European Commission: FAQs on DSA data access for researchers (abre em uma nova aba)
- Sorsa API docs: Lists and Communities (abre em uma nova aba)
- Sorsa API reference (OpenAPI)