Felo Busca de Posts do X
Provedor: Felo · Pago com saldo da plataforma
Escolha a operação para os dados de que você precisa. Os cinco endpoints usam POST e retornam JSON na raiz, sem um wrapper comum data.
Todos os exemplos usam FELO_API_KEY a partir da visão geral. As chamadas usam saldo da plataforma, não créditos Pro da Felo. Os exemplos de resposta são ilustrativos; o conteúdo ao vivo e os campos opcionais variam.
4. Buscar posts
POST /api/v1/data/x/tweet/search
| Campo | Tipo | Obrigatório | Significado |
|---|---|---|---|
query | string | Sim | Texto de busca, 1–1.000 caracteres |
query_type | string | Não | Latest (padrão) ou Top |
limit | integer | Não | 1–1.000; a implementação atual usa no mínimo 20, com padrão 20 |
cursor | string | Não | Cursor de paginação, até 4.000 caracteres |
since_time | integer or string | Não | Hora de início; use segundos Unix para um valor numérico inequívoco |
until_time | integer or string | Não | Hora de término; use segundos Unix, não milissegundos |
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/tweet/search" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"retrieval augmented generation","query_type":"Latest","limit":20}'A resposta contém tweets, total, has_next e next_cursor. Os objetos de post incluem id, content, author, created_at e metrics; respostas e posts citados/retuitados podem estar aninhados. Trate os IDs como strings.
Limites de quantidade de resultados
limit é uma meta, não uma garantia. A implementação atual usa uma meta de no mínimo 20: uma meta de 20 lê uma página upstream; metas maiores buscam automaticamente até 50 páginas. O tempo decorrido é verificado antes de cada página, e nenhuma página adicional é buscada quando ele ultrapassa 60 segundos. Uma solicitação upstream em andamento ainda pode levar tempo, então isso não é um timeout HTTP geral.
A coleta também para quando a meta é atingida, o upstream não tem próxima página, uma página está vazia ou o cursor está ausente. Retornar menos posts do que limit não significa que a solicitação falhou ou que cada post correspondente foi recuperado. Verifique has_next e next_cursor antes de continuar.
{
"tweets": [{
"id":"example-post-id",
"content":"Example post content",
"author":{"user_id":"example-user-id","username":"example","display_name":"Example"},
"created_at":"2026-11-01T00:00:00Z",
"metrics":{},
"replies":[]
}],
"total":1,
"has_next":false,
"next_cursor":null
}Paginação e controle de custo
total conta o array correspondente na resposta atual: posts de nível superior para consultas de post, ou respostas dentro de cada entrada de resultado para consultas de respostas. Ele não é uma contagem global de correspondências, nem a contagem completa de respostas de um post, nem a contagem final cobrável.
- Envie a primeira solicitação sem
cursor. - Leia
has_nextenext_cursorda resposta. Para respostas, leia-os em cada entrada de resultado. - Se houver outra página e o cursor não estiver vazio, envie-o inalterado com a mesma consulta. Para um lote de respostas, continue cada post separadamente.
- Pare quando não houver próxima página, quando um cursor se repetir ou quando seu próprio limite de páginas ou de gastos for atingido.
Os metadados de paginação refletem a última resposta upstream; a coleção retornada pode ser truncada por um limite de resultados. Mesmo has_next=false não é garantia de que todo o histórico do X ou todas as respostas foram recuperados. Exiba a contagem real retornada em vez de rotular um conjunto de resultados limitado como todos os dados disponíveis.
Cada página bem-sucedida pode gerar uma cobrança. Essas cinco operações são cobradas por resultados retornados, não por uma taxa fixa por solicitação. Respostas aninhadas e outros registros retornados podem afetar a contagem cobrada; não estime o custo apenas pelo tamanho do array de nível superior. Consulte os preços atuais e o uso no console. Os campos completos dos objetos estão no esquema OpenAPI.