Felo API PlatformFelo API Platform

Felo APIs

X Search API

Pesquise usuários do X, tweets, timelines e respostas com metadados de paginação.

POST/v2/x/tweet/search

Autenticação

Bearer API key

Tipo de conteúdo

application/json

Notas de limite

1 request per 10 seconds, 3 per minute, 10 per 10 minutes.

A X Search API oferece acesso a dados do X (Twitter), incluindo perfis de usuários, busca de tweets, tweets de usuários e respostas a tweets.

Autenticação

Todas as requisições exigem uma chave de API no cabeçalho Authorization:

Authorization: Bearer YOUR_API_KEY

Uso com agentes de IA

Instale o pacote completo felo-ai para dar a um agente a X Search e todos os demais Felo Skills disponíveis. O instalador descobre dinamicamente todos os diretórios de pacote que contêm SKILL.md, em vez de manter uma lista fixa de Skills. Instale todos os Skills descobertos em ~/.codex/skills para o Codex, ~/.claude/skills para o Claude Code, ~/.agents/skills para o OpenClaw ou ~/.hermes/skills para o Hermes Agent. Consulte o guia de configuração manual de agentes de IA para ver as instruções de instalação, de chave de API e de verificação de cada plataforma.


1. Obter informações de usuário

Recupere perfis de usuários do X em lote por nome de usuário.

Endpoint

POST https://openapi.felo.ai/v2/x/user/info

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
usernamesarray de stringsSimLista de nomes de usuário do X a consultar

Exemplo

curl -X POST 'https://openapi.felo.ai/v2/x/user/info' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "usernames": ["elonmusk", "OpenAI"]
  }'

Resposta de sucesso (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 2,
    "users": [
      {
        "user_id": "44196397",
        "username": "elonmusk",
        "display_name": "Elon Musk",
        "description": "...",
        "followers_count": 100000000,
        "following_count": 500,
        "tweet_count": 30000,
        "verified": true,
        "blue_verified": true,
        "profile_image_url": "https://pbs.twimg.com/...",
        "created_at": "2009-06-02T00:00:00Z",
        "location": "Mars"
      }
    ]
  }
}

Campos do objeto de usuário

CampoTipoDescrição
user_idstringID do usuário no X
usernamestringNome de usuário no X (sem @)
display_namestringNome de exibição
descriptionstringBio do usuário
followers_countintegerNúmero de seguidores
following_countintegerNúmero de contas seguidas
tweet_countintegerTotal de tweets
verifiedbooleanSe a conta é verificada
blue_verifiedbooleanSe a conta tem verificação Blue
verified_typestringTipo de verificação
profile_image_urlstringURL da imagem de perfil
cover_image_urlstringURL da imagem de capa
created_atstringData de criação da conta
locationstringLocalização do usuário
urlstringURL do site do usuário
protectedbooleanSe a conta é protegida
favorites_countintegerNúmero de curtidas
media_countintegerNúmero de publicações com mídia
can_dmbooleanSe a DM está aberta
is_automatedbooleanSe a conta é automatizada
pinned_tweet_idsarray de stringsIDs dos tweets fixados

2. Buscar usuários

Busque usuários do X por palavra-chave.

Endpoint

POST https://openapi.felo.ai/v2/x/user/search

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
querystringSimPalavra-chave de busca
cursorstringNãoCursor de paginação da resposta anterior

Exemplo

curl -X POST 'https://openapi.felo.ai/v2/x/user/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "artificial intelligence"
  }'

Resposta de sucesso (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 50,
    "has_next": true,
    "next_cursor": "cursor_abc123",
    "users": [
      {
        "user_id": "...",
        "username": "...",
        "display_name": "..."
      }
    ]
  }
}

Campos da resposta

CampoTipoDescrição
totalintegerNúmero total de resultados
has_nextbooleanSe há mais resultados disponíveis
next_cursorstringCursor para a próxima página
usersarrayLista de objetos de usuário (veja a seção 1)

3. Obter tweets de um usuário

Recupere tweets de um usuário específico do X.

Endpoint

POST https://openapi.felo.ai/v2/x/user/tweets

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
x_user_idstringNãoID do usuário no X (informe x_user_id ou username)
usernamestringNãoNome de usuário no X (informe x_user_id ou username)
limitintegerNãoNúmero de tweets a retornar
cursorstringNãoCursor de paginação
include_repliesbooleanNãoSe deve incluir respostas

Exemplo

curl -X POST 'https://openapi.felo.ai/v2/x/user/tweets' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "elonmusk",
    "limit": 20
  }'

Resposta de sucesso (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 20,
    "has_next": true,
    "next_cursor": "cursor_def456",
    "tweets": [
      {
        "id": "1234567890",
        "content": "Tweet content here...",
        "author": { "user_id": "...", "username": "elonmusk" },
        "created_at": "2026-03-09T12:00:00Z",
        "metrics": {
          "retweet_count": 1000,
          "favorite_count": 5000,
          "reply_count": 200,
          "quote_count": 100,
          "view_count": 500000,
          "bookmark_count": 50
        },
        "hashtags": ["AI"],
        "mentions": ["OpenAI"],
        "url": "https://x.com/elonmusk/status/1234567890",
        "lang": "en"
      }
    ]
  }
}

Campos do objeto de tweet

CampoTipoDescrição
idstringID do tweet
contentstringConteúdo de texto do tweet
authorobjectObjeto de usuário do autor (veja a seção 1)
created_atstringData de criação do tweet
metricsobjectMétricas de engajamento (veja abaixo)
repliesarrayTweets de resposta (se disponíveis)
conversation_idstringID da thread da conversa
media_urlsarrayMídia anexada
hashtagsarray de stringsHashtags no tweet
mentionsarray de stringsNomes de usuário mencionados
urlsarray de stringsURLs no tweet
urlstringLink permanente para o tweet
sourcestringOrigem do tweet (por exemplo, "Twitter Web App")
langstringCódigo de idioma do tweet
is_replybooleanSe este tweet é uma resposta
in_reply_to_idstringID do tweet que está sendo respondido
in_reply_to_user_idstringID do usuário do tweet que está sendo respondido
in_reply_to_usernamestringNome de usuário do tweet que está sendo respondido
quoted_tweetobjectObjeto do tweet citado (recursivo)
retweeted_tweetobjectObjeto do tweet retuitado (recursivo)
is_limited_replybooleanSe as respostas estão limitadas

Campos do objeto de métricas

CampoTipoDescrição
retweet_countintegerNúmero de retuítes
favorite_countintegerNúmero de curtidas
reply_countintegerNúmero de respostas
quote_countintegerNúmero de citações
view_countintegerNúmero de visualizações
bookmark_countintegerNúmero de favoritos salvos

4. Buscar tweets

Busque tweets do X por palavra-chave com suporte a consultas avançadas.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/search

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
querystringSimConsulta de busca (aceita sintaxe de busca avançada)
query_typestringNãoFiltro de tipo de consulta
since_timeintegerNãoFiltro de horário inicial (timestamp Unix em segundos)
until_timeintegerNãoFiltro de horário final (timestamp Unix em segundos)
limitintegerNãoNúmero de tweets a retornar
cursorstringNãoCursor de paginação

Exemplo

curl -X POST 'https://openapi.felo.ai/v2/x/tweet/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "artificial intelligence",
    "limit": 20
  }'

Resposta de sucesso (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 20,
    "has_next": true,
    "next_cursor": "cursor_ghi789",
    "tweets": [
      {
        "id": "...",
        "content": "...",
        "author": { "user_id": "...", "username": "..." },
        "created_at": "2026-03-09T12:00:00Z",
        "metrics": { "retweet_count": 100, "favorite_count": 500 }
      }
    ]
  }
}

Campos da resposta

CampoTipoDescrição
totalintegerNúmero total de resultados
has_nextbooleanSe há mais resultados disponíveis
next_cursorstringCursor para a próxima página
tweetsarrayLista de objetos de tweet (veja a seção 3)

5. Obter respostas a tweets

Recupere respostas para tweets específicos.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/replies

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
tweet_idsarray de stringsSimID(s) de tweet para os quais obter respostas
cursorstringNãoCursor de paginação
since_timeintegerNãoFiltro de horário inicial (timestamp Unix)
until_timeintegerNãoFiltro de horário final (timestamp Unix)

Exemplo

curl -X POST 'https://openapi.felo.ai/v2/x/tweet/replies' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "tweet_ids": ["1234567890"]
  }'

Resposta de sucesso (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "results": [
      {
        "tweet_id": "1234567890",
        "total": 10,
        "has_next": true,
        "next_cursor": "cursor_jkl012",
        "replies": [
          {
            "id": "...",
            "content": "Great tweet!",
            "author": { "user_id": "...", "username": "..." },
            "created_at": "2026-03-09T12:30:00Z"
          }
        ]
      }
    ]
  }
}

Campos da resposta

CampoTipoDescrição
resultsarrayLista de objetos de resultado de respostas
results[].tweet_idstringID do tweet original
results[].totalintegerNúmero total de respostas
results[].has_nextbooleanSe há mais respostas disponíveis
results[].next_cursorstringCursor para a próxima página
results[].repliesarrayLista de objetos de tweet de resposta (veja a seção 3)

Códigos de erro

CódigoStatus HTTPDescrição
UNAUTHORIZED401A chave de API é inválida ou foi revogada
X_SEARCH_FAILED400/500A requisição de busca no X falhou (verifique os parâmetros ou o erro downstream)
RATE_LIMIT_EXCEEDED429Requisições demais; tente novamente após um curto intervalo
insufficient_credits402Créditos de serviço insuficientes para concluir a requisição

Créditos e limites de requisições

Custos em créditos

Cada chamada à API desconta créditos com base no número de resultados retornados:

EndpointCusto em créditos
POST /x/user/info1 crédito por usuário retornado
POST /x/user/search1 crédito por usuário retornado
POST /x/user/tweets1 crédito por tweet retornado
POST /x/tweet/search1 crédito por tweet retornado
POST /x/tweet/replies1 crédito por resposta retornada

Os créditos são descontados após a conclusão da requisição, com base no número real de resultados. Se uma requisição retornar 0 resultados, nenhum crédito é descontado.

Saldo mínimo exigido: sua conta precisa ter pelo menos 10 créditos de serviço para fazer qualquer requisição à API do X. Requisições feitas com menos de 10 créditos serão rejeitadas com HTTP 402.

Limites de requisições

Os limites de requisições são aplicados conforme os serviços de API e as políticas de conta vigentes. Quando o limite é atingido, a API retorna HTTP 429. O cabeçalho Retry-After indica o tempo de espera sugerido em segundos. Use a documentação atualizada do serviço e as respostas reais da API para lidar com os limites; não é preciso assinatura para usar a plataforma.