Pular para o conteúdo

API de Listas do Twitter: obtenha membros e tweets

Uma API de Listas do Twitter lê uma Lista pública do X pelo ID numérico e retorna os membros, os seguidores e um feed com os posts mais novos deles; a API oficial do X cobra US$ 0,010 por membro e US$ 0,005 por post.

Resposta curta: O ID é o número no fim da URL da Lista, e uma Lista comporta até 5.000 contas. Os endpoints do próprio X retornam 100 por página e exigem uma conta de desenvolvedor. Para ler Listas com uma única chave, use a Sorsa API: o GET /list-members retorna 200 membros por requisição a partir de US$ 0,007 por 1.000, e 100 requisições grátis cobrem 20 mil membros.

Endpoint
GET /list-members
Tamanho da página
200 membros por requisição
Preço
a partir de US$ 0,007 por 1.000

#O que uma API de Listas do Twitter consegue ler

Uma Lista do X é um grupo nomeado de até 5.000 contas, com a própria timeline, e uma API consegue ler três partes de uma Lista pública. Cada parte vem do seu próprio endpoint:

  • Membros: as contas que o dono da Lista adicionou. É o conjunto curado que as pessoas exportam para planilhas e CRMs.
  • Seguidores: as pessoas que seguem a Lista para ler a timeline dela, que o X também chama de assinantes. Não são os seguidores dos próprios membros; para os seguidores de uma conta, veja o guia da API de seguidores do Twitter.
  • O feed: a timeline da Lista, os posts mais novos de todos os membros em um só lugar.

O ID da Lista é o número longo no endereço dela, x.com/i/lists/1234567890123456789. Toda requisição de Lista parte dele.

x.com/i/lists/ 1234567890123456789 o ID da Lista: toda requisição de Lista parte daqui Membros contas que o dono adicionou GET /list-members list_id até 200 membros por requisição Seguidores quem segue a Lista GET /list-followers list_link URL ou ID, até 200 por requisição Feed posts novos de todos os membros GET /list-tweets list_id cerca de 20 posts por requisição
Um ID de Lista abre as três partes dela. Só o /list-followers também aceita a URL completa.

Algumas regras da Central de Ajuda do X (abre em uma nova aba) definem o que você pode ler. As Listas são públicas por padrão, e qualquer pessoa pode seguir uma pública. Uma Lista privada só é visível para a conta que a criou, então nenhuma API a lê. Os nomes vão até 25 caracteres. Ninguém sai da Lista de outra pessoa, a não ser bloqueando o dono dela.

Há dois dados que nenhum endpoint de Lista retorna: quando uma conta foi adicionada e quem saiu. Para acompanhar mudanças, exporte os membros em intervalos regulares e compare os arquivos pelo id. Como o dono escolhe as contas uma vez no app do X e o seu código só precisa do ID, uma Lista também é a unidade mais simples para o monitoramento do Twitter em tempo real.

#Exporte os membros de uma Lista para CSV

Para exportar uma Lista, use a Sorsa API, uma API e scraper do Twitter (X): o GET /list-members (abre em uma nova aba) dela retorna até 200 membros por requisição, então até uma Lista cheia, com 5.000 membros, leva 25 requisições. Os passos abaixo gravam todos os membros em um único arquivo CSV.

  1. Copie o ID da Lista. Abra a Lista no x.com e pegue o número depois de /lists/ na barra de endereço.

  2. Obtenha uma chave. Cadastre-se e copie sua chave de API no painel. Sem cartão, e as primeiras 100 requisições são grátis.

  3. Peça a primeira página. Envie o ID como list_id, com a sua chave no header ApiKey.

    Terminal
    curl -G "https://api.sorsa.io/v3/list-members" \
      -H "ApiKey: YOUR_API_KEY" \
      --data-urlencode "list_id=1234567890123456789"
    
    Resposta200 OK
    {
      "users": [
        {
          "id": "1592041833471827968",
          "username": "dana_tracks_markets",
          "display_name": "Dana Tracks Markets",
          "description": "Rates, FX and the odd chart.",
          "location": "Chicago, IL",
          "followers_count": 48210,
          "followings_count": 612,
          "tweets_count": 15873,
          "verified": true,
          "protected": false,
          "created_at": "2014-03-09T16:22:41Z"
        }
      ],
      "next_cursor": "DAABCgABGc3yPLu__-0KAAIZsbqf"
    }
    
  4. Siga o cursor e grave as linhas. Devolva o next_cursor a cada requisição até ele voltar vazio, e salve cada página assim que chegar.

    import csv
    import requests
    
    URL = "https://api.sorsa.io/v3/list-members"
    HEADERS = {"ApiKey": "YOUR_API_KEY"}
    FIELDS = ["id", "username", "display_name",
              "followers_count", "verified", "created_at"]
    
    
    def export_members(list_id, path="list_members.csv"):
        params = {"list_id": list_id}
        with open(path, "w", newline="", encoding="utf-8") as f:
            out = csv.DictWriter(f, fieldnames=FIELDS,
                                 extrasaction="ignore")
            out.writeheader()
            while True:
                r = requests.get(URL, headers=HEADERS,
                                 params=params, timeout=30)
                r.raise_for_status()
                page = r.json()
                out.writerows(page.get("users", []))
                cursor = page.get("next_cursor")
                if not cursor:
                    break
                params["next_cursor"] = cursor
    
    
    export_members("1234567890123456789")
    

Cada linha é um perfil público completo: os mesmos id, handle, bio, localização, contadores e data de criação que os endpoints de perfil retornam. Use o id como chave nos seus arquivos, já que um handle pode mudar e o ID nunca muda. Um 403 significa que a chave está ausente ou sem requisições; um 429 indica mais de 20 requisições em um segundo nessa chave, então espere um segundo e envie de novo.

O mesmo loop exporta os seguidores de uma Lista pelo GET /list-followers (abre em uma nova aba), também com até 200 seguidores por página. Troque o caminho e envie a Lista como list_link em vez de list_id.

Bom saber

Os dois parâmetros são diferentes. O /list-members e o /list-tweets recebem list_id, só o número. O /list-followers recebe list_link, que aceita a URL inteira da Lista ou o número. Colar o endereço completo em list_id é um deslize fácil, então reduza-o aos dígitos antes.

#Leia os tweets de uma Lista como um único feed

O GET /list-tweets (abre em uma nova aba) retorna a timeline da Lista: os posts mais novos de todos os membros, cerca de 20 por requisição, cada um com texto, data, contagens de curtidas, respostas, reposts e visualizações, e o perfil do autor. Uma requisição cobre todas as contas da Lista, seja ela de 12 contas ou de 5.000.

O feed não tem filtro "since", então um monitor lê a partir do topo e para no primeiro post que já guardou. Os IDs snowflake, os números que o X dá a cada post, crescem com o tempo, então o ID mais novo que você salvou marca onde a última checagem terminou.

Feed da Lista, mais novos primeiro 12:04 novo, guarde 12:03 novo, guarde 12:01 novo, guarde pare aqui 12:00 último ID salvo 11:57 já guardado 11:52 já guardado Salve o ID mais novo, 12:04. Cinco minutos depois a próxima checagem lê do topo de novo e para em 12:04: uma requisição cobre todo post novo se chegaram menos de 20.
Leia do topo, guarde o que é novo e pare no primeiro post que você já tem.

Este loop checa uma Lista a cada cinco minutos e imprime cada post novo uma única vez:

Python
import time
import requests

URL = "https://api.sorsa.io/v3/list-tweets"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
LIST_ID = "1234567890123456789"


def new_posts(seen, max_pages=10):
    """Read the feed from the top until a post we already have."""
    fresh, params = [], {"list_id": LIST_ID}
    for _ in range(max_pages):
        r = requests.get(URL, headers=HEADERS,
                         params=params, timeout=30)
        r.raise_for_status()
        page = r.json()
        for tweet in page.get("tweets", []):
            if tweet["id"] in seen:
                return fresh
            fresh.append(tweet)
        cursor = page.get("next_cursor")
        if not cursor:
            break
        params["next_cursor"] = cursor
    return fresh


seen = set()
while True:
    for t in reversed(new_posts(seen)):
        seen.add(t["id"])
        print(t["created_at"], "@" + t["user"]["username"],
              t["full_text"][:80])
    time.sleep(300)  # check again in 5 minutes

Em produção, guarde o seen em um banco de dados e limite-o aos últimos milhares de IDs. O limite max_pages mantém a primeira execução, quando ainda não há nada armazenado, em 200 posts.

O feed foi feito para o que é novo. Para os posts mais antigos de uma Lista, use a busca: coloque os handles dos membros em operadores from: unidos por OR, em lotes, e envie a consulta ao POST /search-tweets (abre em uma nova aba) com um intervalo de datas. O guia da API de busca do Twitter cobre os operadores, e o histórico vai até 2006.

#Por que uma Lista vale mais do que consultar cada conta

O feed de uma Lista custa uma requisição por checagem, não importa quantas contas ela tenha, enquanto ler a timeline de cada conta custa uma requisição por conta a cada checagem. Para 500 contas checadas a cada 5 minutos, são 4,3 milhões de requisições por mês uma a uma e 8.640 por uma Lista, desde que menos de 20 posts novos cheguem entre as checagens.

A velocidade impõe um segundo limite. A 20 requisições por segundo, uma chave lê 1.200 timelines por minuto, então 5.000 contas levam mais de quatro minutos para uma varredura completa. O feed da Lista responde à mesma pergunta em uma requisição, ou em poucas quando a Lista é movimentada.

Contas na Lista

Verificar a cada

Posts por conta por dia

Uma requisição por conta

4.3M requisições por mês

Cada verificação
500 requisições, 25 s a 20 por segundo
Plano que cobre
Scale, 5M por mês

Um feed de Lista

8,640 requisições por mês

Cada verificação
1 requisição para cerca de 9 posts novos
Plano que cobre
Starter, 10K por mês

O feed da Lista precisa de 500x menos requisições para as mesmas 500 contas.

Escolha o tamanho da Lista, com que frequência você verifica e quanto as contas dela postam. Uma Lista movimentada precisa de páginas extras por verificação; uma tranquila precisa de uma.

As páginas por checagem crescem só com o número de posts novos: cerca de uma requisição para cada 20 posts que chegaram desde a última checagem. Uma Lista acompanha o que contas escolhidas postam. Para captar todo post que cita uma marca, quem quer que o escreva, busque a marca com a API de menções do Twitter.

#Quanto custam os dados de Listas por 1.000

Membros e seguidores de Listas custam a partir de US$ 0,007 por 1.000 na Sorsa API, e os posts de uma Lista, a partir de US$ 0,07 por 1.000. A API oficial do X cobra US$ 10,00 por 1.000 membros ou seguidores e US$ 5,00 por 1.000 posts na lista de preços de pagamento por uso (abre em uma nova aba).

A partir de 22 de novembro de 2026, o X também cobra cada perfil de autor que volta com esses posts, a US$ 0,010 cada (aviso do X de 23 de outubro (abre em uma nova aba)). Na Sorsa API, o perfil do autor faz parte de todo post, sem custo extra.

Membros exportados

API oficial do X

US$ 500

para 50 mil membros de Listas

US$ 0,010 por membro

Sorsa API

a partir deUS$ 0,35

para 50 mil membros de Listas

a partir de US$ 0,007 por 1.000

1.000x mais barato

Cinco fatores decidem uma API de Listas: preço, configuração, taxa de requisições, volume e a segurança da sua conta do X. A Sorsa API sai na frente em todos:

O que importaSorsa APIAPI oficial do X
Membros ou seguidores, por 1.000a partir de US$ 0,007, 200 por requisiçãoUS$ 10,00, 100 por página
Posts da Lista, por 1.000a partir de US$ 0,07, cerca de 20 por requisiçãoUS$ 5,00, mais US$ 0,010 por autor a partir de 22 de nov. de 2026
Uma Lista cheia, de 5.000 membrosa partir de US$ 0,035US$ 50,00
Configuraçãouma chave de APIconta de desenvolvedor, app, bearer token, créditos pré-pagos
Taxa de requisições20 requisições por segundo em todos os planos900 requisições a cada 15 minutos por endpoint de Lista
Teto de volumeplanos de até 10 milhões de requisições por mês, mais sob consulta3 milhões de leituras de posts por ciclo de cobrança, depois Enterprise
Sua conta do Xnunca é tocada: sem login, sem cookiessua conta de desenvolvedor e o app dela
  • Membros ou seguidores, por 1.000

    Sorsa API
    a partir de US$ 0,007, 200 por requisição
    API oficial do X
    US$ 10,00, 100 por página
  • Posts da Lista, por 1.000

    Sorsa API
    a partir de US$ 0,07, cerca de 20 por requisição
    API oficial do X
    US$ 5,00, mais US$ 0,010 por autor a partir de 22 de nov. de 2026
  • Uma Lista cheia, de 5.000 membros

    Sorsa API
    a partir de US$ 0,035
    API oficial do X
    US$ 50,00
  • Configuração

    Sorsa API
    uma chave de API
    API oficial do X
    conta de desenvolvedor, app, bearer token, créditos pré-pagos
  • Taxa de requisições

    Sorsa API
    20 requisições por segundo em todos os planos
    API oficial do X
    900 requisições a cada 15 minutos por endpoint de Lista
  • Teto de volume

    Sorsa API
    planos de até 10 milhões de requisições por mês, mais sob consulta
    API oficial do X
    3 milhões de leituras de posts por ciclo de cobrança, depois Enterprise
  • Sua conta do X

    Sorsa API
    nunca é tocada: sem login, sem cookies
    API oficial do X
    sua conta de desenvolvedor e o app dela

Para dados de Listas, use a Sorsa API: membros a 200 por requisição a partir de US$ 0,007 por 1.000, o feed da Lista inteira a partir de US$ 0,07 por 1.000, e nada para configurar além de uma chave. Requisições com falha nunca são cobradas. A Sorsa API é uma API REST: uma requisição com a sua chave retorna JSON limpo, sem nada para rodar no seu navegador e sem pôr em risco a sua conta do X.

#E as Comunidades do X?

O X anunciou em 23 de abril de 2026 que encerraria as Comunidades, primeiro em 6 de maio e depois em 30 de maio, citando pouco uso e spam (TechCrunch (abre em uma nova aba)). O recurso passou das duas datas e ainda estava no ar no fim de julho, sem nova data do X.

A referência da Sorsa API ainda lista cinco endpoints de Comunidades, entre eles o POST /community-tweets (abre em uma nova aba), para os posts de uma Comunidade, e o POST /community-members (abre em uma nova aba), para os membros, além de uma checagem de conta única, o POST /check-community-member (abre em uma nova aba). Nossa documentação pede que você confirme com o suporte quais deles retornam dados antes de montar um fluxo novo sobre eles. As verificações de participação em campanhas estão no guia da API de verificação de engajamento.

Para qualquer coisa que precise continuar funcionando, coloque as contas em uma Lista. As Listas não fazem parte do encerramento, e todos os endpoints de Lista acima as leem hoje.

#Puxe sua primeira Lista

Copie o ID de uma Lista, envie uma requisição ao GET /list-members e até 200 perfis voltam como JSON. A Sorsa API lê os membros e seguidores de uma Lista a 200 por requisição, a partir de US$ 0,007 por 1.000, e o feed inteiro a partir de US$ 0,07 por 1.000, com uma chave e 20 requisições por segundo em todos os planos. Suas 100 requisições grátis exportam 20 mil membros de Listas, quatro Listas cheias, antes de você pagar qualquer coisa.

#FAQ

Qual é a melhor API para dados de Listas do Twitter?

A Sorsa API foi feita para isso. O GET /list-members e o GET /list-followers retornam 200 contas por requisição a partir de US$ 0,007 por 1.000, e o GET /list-tweets retorna os posts mais novos da Lista inteira em um só feed, a partir de US$ 0,07 por 1.000. Ela usa uma chave de API em vez de conta de desenvolvedor e OAuth, roda a 20 requisições por segundo em todos os planos e nunca toca na sua conta do X.

Como encontro o ID de uma Lista do Twitter?

Abra a Lista no x.com e leia a barra de endereço: em x.com/i/lists/1234567890123456789, o número depois de /lists/ é o ID da Lista. O /list-members e o /list-tweets da Sorsa API recebem esse número como list_id. O /list-followers recebe list_link, que aceita a URL inteira ou só o número, então você pode colar o endereço como está.

Dá para obter os membros de uma Lista privada do Twitter?

Não. Uma Lista privada do X só é visível para a conta que a criou, então nenhuma API lê seus membros, seguidores ou posts. As Listas são públicas, a menos que o dono as torne privadas. A Sorsa API lê toda Lista pública pelo ID e não obtém dados de uma privada, e requisições com falha nunca são cobradas.

Quantas contas cabem em uma Lista do Twitter?

Uma Lista do X comporta até 5.000 membros. O GET /list-members da Sorsa API os retorna 200 por requisição, então até uma Lista cheia é exportada em 25 requisições, e as 100 requisições grátis que toda conta recebe cobrem quatro Listas cheias. A Central de Ajuda do X acrescenta que os nomes de Listas vão até 25 caracteres e não podem começar com um número.

Posso adicionar ou remover membros de uma Lista via API?

Sim, pela API oficial do X: o POST /2/lists/{id}/members adiciona uma conta e o DELETE /2/lists/{id}/members/{user_id} remove uma, a US$ 0,005 por requisição e até 300 requisições a cada 15 minutos, com um token do dono da Lista. A Sorsa API é somente leitura por design, então combine as duas: gerencie a Lista com o X e leia-a com a Sorsa API.

#Como verificamos

Conferimos cada endpoint, parâmetro e tamanho de página desta página na referência ao vivo da Sorsa API em 2 de novembro de 2026 e escrevemos as requisições a partir dela; a resposta mostrada segue o formato da referência com dados fictícios, não é saída de uma chamada real. Os preços, tamanhos de página e rate limits da API oficial do X vêm de docs.x.com, lidos no mesmo dia, e a mudança de cobrança de 22 de novembro vem do aviso no fórum de desenvolvedores do X de 23 de outubro. As datas das Comunidades vêm da reportagem do TechCrunch de 23 de abril de 2026 e de uma atualização de status de um criador no fim de julho.

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: membros, seguidores e feed de uma Lista com código novo, preços e limites do X conferidos em docs.x.com, uma calculadora de Lista versus contas e a situação das Comunidades.
  • Primeira publicação.