Felo API PlatformFelo API Platform

Felo APIs

X Search API

Cari pengguna X, tweet, linimasa, dan balasan dengan metadata paginasi.

POST/v2/x/tweet/search

Autentikasi

Bearer API key

Tipe konten

application/json

Catatan batas laju

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

X Search API menyediakan akses ke data X (Twitter), termasuk profil pengguna, pencarian tweet, tweet pengguna, dan balasan tweet.

Autentikasi

Semua permintaan memerlukan Kunci API di header Authorization:

Authorization: Bearer YOUR_API_KEY

Penggunaan dengan Agen AI

Pasang paket felo-ai lengkap untuk memberi Agen X Search dan setiap Felo Skill lain yang tersedia. Installer menemukan setiap direktori paket yang berisi SKILL.md secara dinamis, alih-alih mempertahankan daftar Skill yang tetap. Pasang semua Skill yang ditemukan di Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills, atau Hermes Agent ~/.hermes/skills. Lihat panduan penyiapan Agen AI manual untuk instruksi instalasi, kunci API, dan verifikasi yang spesifik per platform.


1. Mendapatkan Info Pengguna

Ambil profil pengguna X secara batch berdasarkan username.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
usernamesarray of stringsYaDaftar username X yang akan dicari

Contoh

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

Respons Berhasil (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"
      }
    ]
  }
}

Field Objek Pengguna

FieldTipeDeskripsi
user_idstringID pengguna X
usernamestringHandle X (tanpa @)
display_namestringNama tampilan
descriptionstringBio pengguna
followers_countintegerJumlah pengikut
following_countintegerJumlah akun yang diikuti
tweet_countintegerTotal tweet
verifiedbooleanApakah akun terverifikasi
blue_verifiedbooleanApakah akun memiliki verifikasi Blue
verified_typestringTipe verifikasi
profile_image_urlstringURL gambar profil
cover_image_urlstringURL gambar sampul
created_atstringWaktu pembuatan akun
locationstringLokasi pengguna
urlstringURL situs web pengguna
protectedbooleanApakah akun dilindungi
favorites_countintegerJumlah suka
media_countintegerJumlah postingan media
can_dmbooleanApakah DM terbuka
is_automatedbooleanApakah akun otomatis
pinned_tweet_idsarray of stringsID tweet yang disematkan

2. Mencari Pengguna

Cari pengguna X berdasarkan kata kunci.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
querystringYaKata kunci pencarian
cursorstringTidakCursor paginasi dari respons sebelumnya

Contoh

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

Respons Berhasil (200)

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

Field Respons

FieldTipeDeskripsi
totalintegerJumlah total hasil
has_nextbooleanApakah ada hasil lain yang tersedia
next_cursorstringCursor untuk halaman berikutnya
usersarrayDaftar objek pengguna (lihat bagian 1)

3. Mendapatkan Tweet Pengguna

Ambil tweet dari pengguna X tertentu.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
x_user_idstringTidakID pengguna X (berikan x_user_id atau username)
usernamestringTidakUsername X (berikan x_user_id atau username)
limitintegerTidakJumlah tweet yang dikembalikan
cursorstringTidakCursor paginasi
include_repliesbooleanTidakApakah balasan disertakan

Contoh

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

Respons Berhasil (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"
      }
    ]
  }
}

Field Objek Tweet

FieldTipeDeskripsi
idstringID tweet
contentstringKonten teks tweet
authorobjectObjek pengguna penulis (lihat bagian 1)
created_atstringWaktu pembuatan tweet
metricsobjectMetrik interaksi (lihat di bawah)
repliesarrayTweet balasan (jika tersedia)
conversation_idstringID thread percakapan
media_urlsarrayMedia yang dilampirkan
hashtagsarray of stringsHashtag dalam tweet
mentionsarray of stringsUsername yang disebut
urlsarray of stringsURL dalam tweet
urlstringTautan permanen ke tweet
sourcestringSumber tweet (mis. "Twitter Web App")
langstringKode bahasa tweet
is_replybooleanApakah ini balasan
in_reply_to_idstringID tweet yang dibalas
in_reply_to_user_idstringID pengguna dari tweet yang dibalas
in_reply_to_usernamestringUsername dari tweet yang dibalas
quoted_tweetobjectObjek tweet yang dikutip (rekursif)
retweeted_tweetobjectObjek tweet yang di-retweet (rekursif)
is_limited_replybooleanApakah balasan dibatasi

Field Objek Metrik

FieldTipeDeskripsi
retweet_countintegerJumlah retweet
favorite_countintegerJumlah suka
reply_countintegerJumlah balasan
quote_countintegerJumlah kutipan
view_countintegerJumlah tampilan
bookmark_countintegerJumlah bookmark

4. Mencari Tweet

Cari tweet X berdasarkan kata kunci dengan dukungan kueri lanjutan.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
querystringYaKueri pencarian (mendukung sintaks pencarian lanjutan)
query_typestringTidakFilter tipe kueri
since_timeintegerTidakFilter waktu mulai (Unix stempel waktu dalam detik)
until_timeintegerTidakFilter waktu selesai (Unix stempel waktu dalam detik)
limitintegerTidakJumlah tweet yang dikembalikan
cursorstringTidakCursor paginasi

Contoh

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

Respons Berhasil (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 }
      }
    ]
  }
}

Field Respons

FieldTipeDeskripsi
totalintegerJumlah total hasil
has_nextbooleanApakah ada hasil lain yang tersedia
next_cursorstringCursor untuk halaman berikutnya
tweetsarrayDaftar objek tweet (lihat bagian 3)

5. Mendapatkan Balasan Tweet

Ambil balasan untuk tweet tertentu.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
tweet_idsarray of stringsYaID tweet yang akan diambil balasannya
cursorstringTidakCursor paginasi
since_timeintegerTidakFilter waktu mulai (Unix stempel waktu)
until_timeintegerTidakFilter waktu selesai (Unix stempel waktu)

Contoh

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

Respons Berhasil (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"
          }
        ]
      }
    ]
  }
}

Field Respons

FieldTipeDeskripsi
resultsarrayDaftar objek hasil balasan
results[].tweet_idstringID tweet asli
results[].totalintegerJumlah total balasan
results[].has_nextbooleanApakah ada balasan lain yang tersedia
results[].next_cursorstringCursor untuk halaman berikutnya
results[].repliesarrayDaftar objek tweet balasan (lihat bagian 3)

Kode Error

KodeStatus HTTPDeskripsi
UNAUTHORIZED401Kunci API tidak valid atau sudah dicabut
X_SEARCH_FAILED400/500Permintaan pencarian X gagal (periksa parameter atau error downstream)
RATE_LIMIT_EXCEEDED429Terlalu banyak permintaan, silakan coba lagi setelah jeda singkat
insufficient_credits402Kredit tidak cukup untuk menyelesaikan permintaan

Kredit & Batas Laju

Biaya Kredit

Setiap panggilan API memotong kredit berdasarkan jumlah hasil yang dikembalikan:

EndpointBiaya Kredit
POST /x/user/info1 kredit per pengguna yang dikembalikan
POST /x/user/search1 kredit per pengguna yang dikembalikan
POST /x/user/tweets1 kredit per tweet yang dikembalikan
POST /x/tweet/search1 kredit per tweet yang dikembalikan
POST /x/tweet/replies1 kredit per balasan yang dikembalikan

Kredit dipotong setelah permintaan selesai, berdasarkan jumlah hasil sebenarnya. Jika permintaan mengembalikan 0 hasil, tidak ada kredit yang dipotong.

Persyaratan saldo minimum: Akun Anda harus memiliki setidaknya 10 kredit untuk melakukan permintaan X API apa pun. Permintaan dengan kurang dari 10 kredit akan ditolak dengan HTTP 402.

Batas Laju

Batas laju diberlakukan sesuai kebijakan layanan API dan akun yang berlaku. Saat terkena batas laju, API mengembalikan HTTP 429. Header Retry-After menunjukkan saran waktu tunggu dalam detik. Gunakan dokumentasi layanan terbaru dan respons API aktual untuk menangani batas laju; langganan tidak diperlukan untuk menggunakan platform.