Felo API PlatformFelo API Platform

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

CampoTipoObrigatórioSignificado
querystringSimTexto de busca, 1–1.000 caracteres
query_typestringNãoLatest (padrão) ou Top
limitintegerNão1–1.000; a implementação atual usa no mínimo 20, com padrão 20
cursorstringNãoCursor de paginação, até 4.000 caracteres
since_timeinteger or stringNãoHora de início; use segundos Unix para um valor numérico inequívoco
until_timeinteger or stringNãoHora 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.

  1. Envie a primeira solicitação sem cursor.
  2. Leia has_next e next_cursor da resposta. Para respostas, leia-os em cada entrada de resultado.
  3. 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.
  4. 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.

Precisa de ajuda?