API para X / Twitter

API para X / Twitter: Buscar

Busque no X (Twitter) com a sintaxe completa de busca avançada (operadores como from:, since:, until:, min_faves: funcionam direto na consulta) e receba tweets estruturados com texto, autor, engajamento e paginação por cursor. O limit é um máximo por página; as páginas nativas têm cerca de 20 tweets, a menos que requireSinglePage selecione uma fonte em lote.

POST/v1/run/twitter.search
Disponibilidade
99,99%
30d · 99.938 chamadas
Requisições
99.971
30d · semanal, últimas 12 sem.
Resposta
1,5s
mediana · 30d

Teste

Faça sua primeira requisição

requireFieldsarray
Opcional; se omitido, o roteamento não muda e a fonte mais barata atende. Informe os campos de saída que esta requisição precisa poder retornar, por exemplo `nextCursor`, e ela só será atendida por uma fonte que retorne todos eles. Os campos que você não informar continuam sendo retornados sempre que a fonte que atende os tiver. Isso pode aumentar o seu preço: quando a fonte mais barata não consegue retornar um campo informado, uma fonte mais cara atende, e você recebe a cotação e é cobrado pelo preço dela. Um campo informado ainda pode vir ausente em um post que realmente não o tenha. Se você informar uma combinação de campos que nenhuma fonte retorna sozinha, a requisição é recusada como entrada inválida, sem cobrança. Ao paginar, vale só para a primeira página; as páginas seguintes continuam na fonte que a primeira página escolheu, pelo preço cotado.
Abrir em
Obter chave grátis
Resposta de exemplo
Execuções grátis retornam só os primeiros 3 resultados. Recarregue uma chave para receber a resposta completa.
{
  "data": {
    "authorFollowers": 12500,
    "authorId": "Alex Rivera",
    "authorImage": "https://example.com/image.jpg",
    "items": [
      {
        "authorName": "Alex Rivera",
        "authorUsername": "alex_rivera",
        "authorVerified": true,
        "bookmarkCount": 12500,
        "conversationId": "a1b2c3d4",
        "createdUtc": 12.5,
        "id": "a1b2c3d4",
        "inReplyToId": "a1b2c3d4",
        "isReply": true,
        "lang": "en",
        "likeCount": 12500,
        "media": [
          {
            "height": 42,
            "type": "general",
            "url": "https://example.com/page",
            "videoUrl": "https://example.com/page",
            "width": 1024
          }
        ],
        "quoteCount": 12500,
        "replyCount": 12500,
        "retweetCount": 12500,
        "text": "A short example description of this item.",
        "url": "https://example.com/page",
        "viewCount": 12500
      }
    ],
    "nextCursor": "example"
  },
  "found": true,
  "reason": "not_found"
}
Interface da resposta
interface TwitterSearchResponse {
  data: {
    authorFollowers?: number;
    authorId?: string;
    authorImage?: string;
    items: {
      authorName?: string;
      authorUsername?: string;
      authorVerified?: boolean;
      bookmarkCount?: number;
      conversationId?: string;
      createdUtc?: number;
      id: string;
      inReplyToId?: string | null;
      isReply?: boolean;
      lang?: string;
      likeCount?: number;
      media?: {
        height?: number;
        type: string;
        url: string;
        videoUrl?: string;
        width?: number;
      }[];
      quoteCount?: number;
      replyCount?: number;
      retweetCount?: number;
      text: string;
      url: string;
      viewCount?: number | null;
    }[];
    nextCursor?: string | null;
  } | null;
  found: boolean;
  reason?: "not_found";
}

Referência completa de parâmetros e resposta - todos os campos, tipos e exemplos deste endpoint.

Referência

Requisição, resposta e preço

Última verificação em 2026-09-29 · disponibilidade e latência medidas em 30d
POST /v1/run/twitter.search
curl -X POST https://api.getanyapi.com/v1/run/twitter.search \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"openai"}'
CampoTipoValor de exemplo
Corpo da requisição
querystring"openai"Consulta de busca na sintaxe de busca avançada do X (Twitter). IMPORTANTE: termos soltos são combinados com AND, ou seja, um tweet precisa conter TODAS as palavras, então uma lista de palavras-chave pouco relacionadas não encontra nada; use uma frase curta ou OR entre as alternativas (ex.: 'anyapi OR getanyapi'). Quando um operador vem depois de uma lista com OR, coloque a lista entre parênteses, ex.: '(anyapi OR getanyapi) -filter:replies': sem eles o X aplica o operador só à última alternativa, por isso essa consulta é recusada sem cobrança, com a consulta corrigida. Você pode incluir operadores de busca avançada do X direto na consulta para filtrar resultados: from:username e to:username (autor ou destinatário), since:YYYY-MM-DD e until:YYYY-MM-DD (intervalo de datas), min_faves:N, min_retweets:N, min_replies:N (mínimos de engajamento), "exact phrase", -term para excluir, filter:media, filter:links e -filter:replies (filtros de conteúdo), lang:en, near:city e geocode:lat,long,radius. Exemplos: 'from:OpenAI', 'AI agents min_faves:500 -filter:replies', 'nvidia since:2026-01-01 until:2026-03-01'. Uma consulta sem correspondências retorna um array items vazio; prefira o menor número de palavras que identifique o assunto.
cursorstringCursor de paginação opaco vindo do nextCursor da resposta anterior. Omita na primeira página; envie-o para buscar a próxima página de resultados de busca.
limitintegerNúmero máximo de resultados a retornar por página (1-50, padrão 20). Um provedor pode retornar uma página nativa menor; siga o nextCursor para obter mais.
queryTypeenumQuais posts retornar: 'Latest' (mais recentes primeiro, o padrão), 'Top' (mais populares), 'Photos' (posts recentes com imagens) ou 'Videos' (posts recentes com vídeo). Photos e Videos buscam sua consulta como escrita, com filter:images ou filter:videos adicionado depois, então custam o mesmo que uma busca Latest.
requireFieldsarrayOpcional; se omitido, o roteamento não muda e a fonte mais barata atende. Informe os campos de saída que esta requisição precisa poder retornar, por exemplo `nextCursor`, e ela só será atendida por uma fonte que retorne todos eles. Os campos que você não informar continuam sendo retornados sempre que a fonte que atende os tiver. Isso pode aumentar o seu preço: quando a fonte mais barata não consegue retornar um campo informado, uma fonte mais cara atende, e você recebe a cotação e é cobrado pelo preço dela. Um campo informado ainda pode vir ausente em um post que realmente não o tenha. Se você informar uma combinação de campos que nenhuma fonte retorna sozinha, a requisição é recusada como entrada inválida, sem cobrança. Ao paginar, vale só para a primeira página; as páginas seguintes continuam na fonte que a primeira página escolheu, pelo preço cotado.
requireSinglePagebooleanDefina true para receber até limit resultados em uma única resposta, em vez das páginas nativas do provedor, atendida por um provedor em lote quando necessário.
Resposta
dataobject
data.authorFollowersintegerFollower count of the account that posted.
data.authorIdstringNumeric X user id of the account that posted, as a string.
data.authorImagestringAvatar image URL of the account that posted.
data.itemsobject[]Tweet records: text, author profile, timestamp, and engagement metrics (likes, retweets, replies, views). Populated whenever the provider has data for the entity.
data.items[].authorNamestringPopulated whenever the provider has data for the entity.
data.items[].authorUsernamestringPopulated whenever the provider has data for the entity.
data.items[].authorVerifiedboolean
data.items[].bookmarkCountinteger
data.items[].conversationIdstring
data.items[].createdUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.
data.items[].idstringPopulated whenever the provider has data for the entity.
data.items[].inReplyToIdstringId of the post this post directly replies to, as a string, or null when the post is not a reply.
data.items[].isReplyboolean
data.items[].langstring
data.items[].likeCountinteger
data.items[].mediaobject[]Photo, video, and GIF attachments on the post. Empty when the post has none.
data.items[].media[].heightintegerPixel height of the media item, when the lane reports it.
data.items[].media[].typestringOne of photo, video, or gif.
data.items[].media[].urlstringImage URL. For a video or GIF this is the poster/thumbnail frame. X media URLs on pbs.twimg.com are publicly fetchable without authentication; append ?name=orig for the full-resolution original.
data.items[].media[].videoUrlstringPlayable video file URL. Present only for video and gif items.
data.items[].media[].widthintegerPixel width of the media item, when the lane reports it.
data.items[].quoteCountinteger
data.items[].replyCountinteger
data.items[].retweetCountinteger
data.items[].textstringPopulated whenever the provider has data for the entity.
data.items[].urlstringPopulated whenever the provider has data for the entity.
data.items[].viewCountintegerNumber of views. Null when the source does not report it, as for posts older than X view counts.
data.nextCursorpode ser exigidostringOpaque cursor for the next page of search results, or null when there are no more. Pass it back as cursor to continue.
foundboolean
reason"not_found"Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
Preço
Preço por requisiçãoUSDUS$ 0,00065
Preço /mil req.USDUS$ 0,65

Dúvidas frequentes

Sobre o endpoint Buscar da API para X / Twitter

O endpoint Buscar da AnyAPI para X / Twitter retorna dados de X / Twitter em JSON normalizado com uma chamada POST para /v1/run/twitter.search. Busque no X (Twitter) com a sintaxe completa de busca avançada (operadores como from:, since:, until:, min_faves: funcionam direto na consulta) e receba tweets estruturados com texto, autor, engajamento e paginação por cursor. O limit é um máximo por página; as páginas nativas têm cerca de 20 tweets, a menos que requireSinglePage selecione uma fonte em lote. A AnyAPI distribui cada requisição entre 4 fontes, com failover automático quando uma falha. Custa a partir de US$ 0,65 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Nos últimos 30 dias, 100,0% das chamadas ao endpoint Buscar da API para X / Twitter feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 1,5 segundos, em 99.938 chamadas medidas.

Custa a partir de US$ 0,65 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Você recarrega uma carteira em dólares e cada chamada desconta dela. Algumas requisições pagas pela carteira que falham geram cobranças de processamento, que repassamos pelo custo, sem margem; a resposta de erro mostra o valor cobrado.

Busque no X (Twitter) com a sintaxe completa de busca avançada (operadores como from:, since:, until:, min_faves: funcionam direto na consulta) e receba tweets estruturados com texto, autor, engajamento e paginação por cursor. O limit é um máximo por página; as páginas nativas têm cerca de 20 tweets, a menos que requireSinglePage selecione uma fonte em lote. A resposta é JSON normalizado, com o mesmo envelope que todo endpoint da AnyAPI retorna, então processar um segundo endpoint é só trocar a URL, e nada mais.

Nos últimos 30 dias, 100,0% das chamadas ao endpoint Buscar da API para X / Twitter feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 1,5 segundos, em 99.938 chamadas medidas. Estas são medições da própria AnyAPI sobre o tráfego que passa pelo gateway, recalculadas continuamente, e não uma meta de nível de serviço publicada.