Felo API PlatformFelo API Platform

Felo APIs

X Search API

Cari pengguna X, tweet, garis masa dan balasan dengan metadata penomboran halaman.

POST/v2/x/tweet/search

Pengesahan

Bearer API key

Jenis kandungan

application/json

Nota had kadar

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

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

Pengesahan

Semua permintaan memerlukan Kunci API dalam pengepala Authorization:

Authorization: Bearer YOUR_API_KEY

Guna dengan Ejen AI

Pasang pakej lengkap felo-ai untuk memberikan Ejen X Search dan setiap Felo Skill lain yang tersedia. Pemasang menemui secara dinamik setiap direktori pakej yang mengandungi SKILL.md, dan bukannya menyimpan senarai Skill tetap. Pasang semua Skill yang ditemui dalam ~/.codex/skills Codex, ~/.claude/skills Claude Code, ~/.agents/skills OpenClaw, atau ~/.hermes/skills Hermes Agent. Lihat panduan persediaan Ejen AI manual untuk arahan pemasangan, kunci API, dan pengesahan khusus platform.


1. Dapatkan Maklumat Pengguna

Ambil profil pengguna X secara berkumpulan mengikut nama pengguna.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
usernamesarray of stringsYaSenarai nama pengguna X untuk 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 Berjaya (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"
      }
    ]
  }
}

Medan Objek Pengguna

MedanJenisPenerangan
user_idstringID pengguna X
usernamestringNama pengguna X (tanpa @)
display_namestringNama paparan
descriptionstringBio pengguna
followers_countintegerBilangan pengikut
following_countintegerBilangan yang diikuti
tweet_countintegerJumlah tweet
verifiedbooleanSama ada akaun disahkan
blue_verifiedbooleanSama ada akaun mempunyai pengesahan Blue
verified_typestringJenis pengesahan
profile_image_urlstringURL imej profil
cover_image_urlstringURL imej muka depan
created_atstringMasa penciptaan akaun
locationstringLokasi pengguna
urlstringURL laman web pengguna
protectedbooleanSama ada akaun dilindungi
favorites_countintegerBilangan suka
media_countintegerBilangan siaran media
can_dmbooleanSama ada DM dibuka
is_automatedbooleanSama ada akaun automatik
pinned_tweet_idsarray of stringsID tweet yang disematkan

2. Cari Pengguna

Cari pengguna X mengikut kata kunci.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
querystringYaKata kunci carian
cursorstringTidakKursor penomboran halaman daripada 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 Berjaya (200)

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

Medan Respons

MedanJenisPenerangan
totalintegerJumlah bilangan hasil
has_nextbooleanSama ada lebih banyak hasil tersedia
next_cursorstringKursor untuk halaman seterusnya
usersarraySenarai objek pengguna (lihat bahagian 1)

3. Dapatkan Tweet Pengguna

Ambil tweet daripada pengguna X tertentu.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
x_user_idstringTidakID pengguna X (berikan sama ada x_user_id atau username)
usernamestringTidakNama pengguna X (berikan sama ada x_user_id atau username)
limitintegerTidakBilangan tweet untuk dikembalikan
cursorstringTidakKursor penomboran halaman
include_repliesbooleanTidakSama ada untuk menyertakan balasan

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

Medan Objek Tweet

MedanJenisPenerangan
idstringID tweet
contentstringKandungan teks tweet
authorobjectObjek pengguna penulis (lihat bahagian 1)
created_atstringMasa penciptaan tweet
metricsobjectMetrik penglibatan (lihat di bawah)
repliesarrayTweet balasan (jika tersedia)
conversation_idstringID benang perbualan
media_urlsarrayMedia yang dilampirkan
hashtagsarray of stringsHashtag dalam tweet
mentionsarray of stringsNama pengguna yang disebut
urlsarray of stringsURL dalam tweet
urlstringPautan kekal ke tweet
sourcestringSumber tweet (contohnya "Twitter Web App")
langstringKod bahasa tweet
is_replybooleanSama ada ini balasan
in_reply_to_idstringID tweet yang dibalas
in_reply_to_user_idstringID pengguna tweet yang dibalas
in_reply_to_usernamestringNama pengguna tweet yang dibalas
quoted_tweetobjectObjek tweet yang dipetik (rekursif)
retweeted_tweetobjectObjek tweet yang di-retweet (rekursif)
is_limited_replybooleanSama ada balasan dihadkan

Medan Objek Metrik

MedanJenisPenerangan
retweet_countintegerBilangan retweet
favorite_countintegerBilangan suka
reply_countintegerBilangan balasan
quote_countintegerBilangan petikan
view_countintegerBilangan paparan
bookmark_countintegerBilangan penanda buku

4. Cari Tweet

Cari tweet X mengikut kata kunci dengan sokongan pertanyaan lanjutan.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
querystringYaPertanyaan carian (menyokong sintaks carian lanjutan)
query_typestringTidakPenapis jenis pertanyaan
since_timeintegerTidakPenapis masa mula (cap masa Unix dalam saat)
until_timeintegerTidakPenapis masa tamat (cap masa Unix dalam saat)
limitintegerTidakBilangan tweet untuk dikembalikan
cursorstringTidakKursor penomboran halaman

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 Berjaya (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 }
      }
    ]
  }
}

Medan Respons

MedanJenisPenerangan
totalintegerJumlah bilangan hasil
has_nextbooleanSama ada lebih banyak hasil tersedia
next_cursorstringKursor untuk halaman seterusnya
tweetsarraySenarai objek tweet (lihat bahagian 3)

5. Dapatkan Balasan Tweet

Ambil balasan untuk tweet tertentu.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
tweet_idsarray of stringsYaID tweet untuk mendapatkan balasan
cursorstringTidakKursor penomboran halaman
since_timeintegerTidakPenapis masa mula (cap masa Unix)
until_timeintegerTidakPenapis masa tamat (cap masa Unix)

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

Medan Respons

MedanJenisPenerangan
resultsarraySenarai objek hasil balasan
results[].tweet_idstringID tweet asal
results[].totalintegerJumlah bilangan balasan
results[].has_nextbooleanSama ada lebih banyak balasan tersedia
results[].next_cursorstringKursor untuk halaman seterusnya
results[].repliesarraySenarai objek tweet balasan (lihat bahagian 3)

Kod Ralat

KodStatus HTTPPenerangan
UNAUTHORIZED401Kunci API tidak sah atau telah dibatalkan
X_SEARCH_FAILED400/500Permintaan carian X gagal (semak parameter atau ralat hiliran)
RATE_LIMIT_EXCEEDED429Terlalu banyak permintaan, sila cuba semula selepas kelewatan singkat
insufficient_credits402Kredit tidak mencukupi untuk menyelesaikan permintaan

Kredit & Had Kadar

Kos Kredit

Setiap panggilan API menolak kredit berdasarkan bilangan hasil yang dikembalikan:

EndpointKos Kredit
POST /x/user/info1 kredit setiap pengguna yang dikembalikan
POST /x/user/search1 kredit setiap pengguna yang dikembalikan
POST /x/user/tweets1 kredit setiap tweet yang dikembalikan
POST /x/tweet/search1 kredit setiap tweet yang dikembalikan
POST /x/tweet/replies1 kredit setiap balasan yang dikembalikan

Kredit ditolak selepas permintaan selesai, berdasarkan bilangan hasil sebenar. Jika permintaan mengembalikan 0 hasil, tiada kredit ditolak.

Keperluan baki minimum: Akaun anda mesti mempunyai sekurang-kurangnya 10 kredit untuk membuat sebarang permintaan X API. Permintaan yang dibuat dengan kurang daripada 10 kredit akan ditolak dengan HTTP 402.

Had Kadar

Had kadar dikuatkuasakan mengikut perkhidmatan API semasa dan dasar akaun. Apabila terhad kadar, API mengembalikan HTTP 429. Pengepala Retry-After menunjukkan masa tunggu yang disyorkan dalam saat. Gunakan dokumentasi perkhidmatan terkini dan respons API sebenar untuk mengendalikan had kadar; langganan tidak diperlukan untuk menggunakan platform.