Felo API PlatformFelo API Platform

Felo APIs

X Search API

Cerca utenti X, tweet, timeline e risposte con metadati di paginazione.

POST/v2/x/tweet/search

Autenticazione

Bearer API key

Tipo di contenuto

application/json

Note sui limiti

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

La X Search API dà accesso ai dati di X (Twitter), compresi profili utente, ricerca dei tweet, tweet di un utente e risposte ai tweet.

Autenticazione

Tutte le richieste richiedono una chiave API nell'header Authorization:

Authorization: Bearer YOUR_API_KEY

Uso con agenti IA

Installa il pacchetto completo felo-ai per dare a un agente X Search e ogni altra Felo Skill disponibile. L'installer individua dinamicamente ogni directory del pacchetto che contiene SKILL.md, invece di mantenere un elenco fisso di Skill. Installa tutte le Skill trovate in Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills o Hermes Agent ~/.hermes/skills. Vedi la guida alla configurazione manuale degli agenti IA per le istruzioni di installazione, chiave API e verifica su ogni piattaforma.


1. Ottenere le informazioni di un utente

Recupera in blocco i profili degli utenti X per nome utente.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
usernamesarray di stringheSìElenco dei nomi utente X da cercare

Esempio

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"]
  }'

Risposta di successo (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"
      }
    ]
  }
}

Campi dell'oggetto utente

CampoTipoDescrizione
user_idstringID utente X
usernamestringHandle X (senza @)
display_namestringNome visualizzato
descriptionstringBiografia dell'utente
followers_countintegerNumero di follower
following_countintegerNumero di account seguiti
tweet_countintegerTweet totali
verifiedbooleanSe l'account è verificato
blue_verifiedbooleanSe l'account ha la verifica Blue
verified_typestringTipo di verifica
profile_image_urlstringURL dell'immagine del profilo
cover_image_urlstringURL dell'immagine di copertina
created_atstringData di creazione dell'account
locationstringLocalità dell'utente
urlstringURL del sito web dell'utente
protectedbooleanSe l'account è protetto
favorites_countintegerNumero di like
media_countintegerNumero di post multimediali
can_dmbooleanSe i messaggi diretti sono aperti
is_automatedbooleanSe l'account è automatizzato
pinned_tweet_idsarray di stringheID dei tweet fissati

2. Cercare utenti

Cerca utenti X per parola chiave.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
querystringSìParola chiave di ricerca
cursorstringNoCursore di paginazione dalla risposta precedente

Esempio

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"
  }'

Risposta di successo (200)

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

Campi della risposta

CampoTipoDescrizione
totalintegerNumero totale di risultati
has_nextbooleanSe sono disponibili altri risultati
next_cursorstringCursore per la pagina successiva
usersarrayElenco di oggetti utente (vedi sezione 1)

3. Ottenere i tweet di un utente

Recupera i tweet di un utente X specifico.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
x_user_idstringNoID utente X (fornisci x_user_id o username)
usernamestringNoNome utente X (fornisci x_user_id o username)
limitintegerNoNumero di tweet da restituire
cursorstringNoCursore di paginazione
include_repliesbooleanNoSe includere le risposte

Esempio

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
  }'

Risposta di successo (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"
      }
    ]
  }
}

Campi dell'oggetto tweet

CampoTipoDescrizione
idstringID del tweet
contentstringContenuto testuale del tweet
authorobjectOggetto utente dell'autore (vedi sezione 1)
created_atstringOra di creazione del tweet
metricsobjectMetriche di coinvolgimento (vedi sotto)
repliesarrayTweet di risposta (se disponibili)
conversation_idstringID del thread della conversazione
media_urlsarrayContenuti multimediali allegati
hashtagsarray di stringheHashtag nel tweet
mentionsarray di stringheNomi utente menzionati
urlsarray di stringheURL nel tweet
urlstringPermalink al tweet
sourcestringFonte del tweet (ad es. "Twitter Web App")
langstringCodice lingua del tweet
is_replybooleanSe si tratta di una risposta
in_reply_to_idstringID del tweet a cui si risponde
in_reply_to_user_idstringID utente del tweet a cui si risponde
in_reply_to_usernamestringNome utente del tweet a cui si risponde
quoted_tweetobjectOggetto del tweet citato (ricorsivo)
retweeted_tweetobjectOggetto del tweet ripubblicato (ricorsivo)
is_limited_replybooleanSe le risposte sono limitate

Campi dell'oggetto metrics

CampoTipoDescrizione
retweet_countintegerNumero di retweet
favorite_countintegerNumero di like
reply_countintegerNumero di risposte
quote_countintegerNumero di citazioni
view_countintegerNumero di visualizzazioni
bookmark_countintegerNumero di segnalibri

4. Cercare tweet

Cerca tweet di X per parola chiave con supporto per query avanzate.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
querystringSìQuery di ricerca (supporta la sintassi di ricerca avanzata)
query_typestringNoFiltro per tipo di query
since_timeintegerNoFiltro sull'ora di inizio (timestamp Unix in secondi)
until_timeintegerNoFiltro sull'ora di fine (timestamp Unix in secondi)
limitintegerNoNumero di tweet da restituire
cursorstringNoCursore di paginazione

Esempio

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
  }'

Risposta di successo (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 }
      }
    ]
  }
}

Campi della risposta

CampoTipoDescrizione
totalintegerNumero totale di risultati
has_nextbooleanSe sono disponibili altri risultati
next_cursorstringCursore per la pagina successiva
tweetsarrayElenco di oggetti tweet (vedi sezione 3)

5. Ottenere le risposte a un tweet

Recupera le risposte a tweet specifici.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
tweet_idsarray di stringheSìID dei tweet di cui ottenere le risposte
cursorstringNoCursore di paginazione
since_timeintegerNoFiltro sull'ora di inizio (timestamp Unix)
until_timeintegerNoFiltro sull'ora di fine (timestamp Unix)

Esempio

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"]
  }'

Risposta di successo (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"
          }
        ]
      }
    ]
  }
}

Campi della risposta

CampoTipoDescrizione
resultsarrayElenco di oggetti risultato delle risposte
results[].tweet_idstringID del tweet originale
results[].totalintegerNumero totale di risposte
results[].has_nextbooleanSe sono disponibili altre risposte
results[].next_cursorstringCursore per la pagina successiva
results[].repliesarrayElenco di oggetti tweet di risposta (vedi sezione 3)

Codici di errore

CodiceStato HTTPDescrizione
UNAUTHORIZED401La chiave API non è valida o è revocata
X_SEARCH_FAILED400/500Richiesta di ricerca X non riuscita (controlla i parametri o l'errore downstream)
RATE_LIMIT_EXCEEDED429Troppe richieste, riprova dopo un breve ritardo
insufficient_credits402Crediti insufficienti per completare la richiesta

Crediti e rate limit

Costo in crediti

Ogni chiamata API deduce crediti in base al numero di risultati restituiti:

EndpointCosto in crediti
POST /x/user/info1 credito per utente restituito
POST /x/user/search1 credito per utente restituito
POST /x/user/tweets1 credito per tweet restituito
POST /x/tweet/search1 credito per tweet restituito
POST /x/tweet/replies1 credito per risposta restituita

I crediti vengono dedotti al termine della richiesta, in base al numero effettivo di risultati. Se una richiesta restituisce 0 risultati, non vengono dedotti crediti.

Saldo minimo richiesto: il tuo account deve avere almeno 10 crediti per effettuare qualsiasi richiesta all'API X. Le richieste con meno di 10 crediti vengono rifiutate con HTTP 402.

Rate limit

I rate limit sono applicati in base al servizio API e alle politiche dell'account correnti. In caso di rate limit, l'API restituisce HTTP 429. L'header Retry-After indica il tempo di attesa consigliato in secondi. Usa la documentazione del servizio più recente e le risposte API effettive per gestire i rate limit; non è richiesto un abbonamento per usare la piattaforma.