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.
Rede de provedores
Provedores ordenados por tráfego
com teto de US$ 0,0051 por requisição1 resultadoUS$ 0,000225 resultadosUS$ 0,002650 resultadosUS$ 0,0051 (teto)Você paga pelo que volta. Reduza o limite para pagar menos - e nenhuma requisição custa mais que o teto, não importa quanto volte.
com teto de US$ 0,0154 por requisição1 resultadoUS$ 0,0046225 resultadosUS$ 0,009950 resultadosUS$ 0,0154 (teto)Você paga pelo que volta. Reduza o limite para pagar menos - e nenhuma requisição custa mais que o teto, não importa quanto volte.
Teste
Faça sua primeira requisição
{
"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 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 30dcurl -X POST https://api.getanyapi.com/v1/run/twitter.search \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"openai"}'| Campo | Tipo | Valor de exemplo |
|---|---|---|
| Corpo da requisição | ||
| query | string | "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. |
| cursor | string | Cursor 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. |
| limit | integer | Nú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. |
| queryType | enum | Quais 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. |
| requireFields | array | 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. |
| requireSinglePage | boolean | Defina 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 | ||
| data | object | |
| data.authorFollowers | integer | Follower count of the account that posted. |
| data.authorId | string | Numeric X user id of the account that posted, as a string. |
| data.authorImage | string | Avatar image URL of the account that posted. |
| data.items | object[] | Tweet records: text, author profile, timestamp, and engagement metrics (likes, retweets, replies, views). Populated whenever the provider has data for the entity. |
| data.items[].authorName | string | Populated whenever the provider has data for the entity. |
| data.items[].authorUsername | string | Populated whenever the provider has data for the entity. |
| data.items[].authorVerified | boolean | |
| data.items[].bookmarkCount | integer | |
| data.items[].conversationId | string | |
| data.items[].createdUtc | number | UTC 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[].id | string | Populated whenever the provider has data for the entity. |
| data.items[].inReplyToId | string | Id of the post this post directly replies to, as a string, or null when the post is not a reply. |
| data.items[].isReply | boolean | |
| data.items[].lang | string | |
| data.items[].likeCount | integer | |
| data.items[].media | object[] | Photo, video, and GIF attachments on the post. Empty when the post has none. |
| data.items[].media[].height | integer | Pixel height of the media item, when the lane reports it. |
| data.items[].media[].type | string | One of photo, video, or gif. |
| data.items[].media[].url | string | Image 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[].videoUrl | string | Playable video file URL. Present only for video and gif items. |
| data.items[].media[].width | integer | Pixel width of the media item, when the lane reports it. |
| data.items[].quoteCount | integer | |
| data.items[].replyCount | integer | |
| data.items[].retweetCount | integer | |
| data.items[].text | string | Populated whenever the provider has data for the entity. |
| data.items[].url | string | Populated whenever the provider has data for the entity. |
| data.items[].viewCount | integer | Number of views. Null when the source does not report it, as for posts older than X view counts. |
| data.nextCursorpode ser exigido | string | Opaque cursor for the next page of search results, or null when there are no more. Pass it back as cursor to continue. |
| found | boolean | |
| 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ção | USD | US$ 0,00065 |
| Preço /mil req. | USD | US$ 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.