Data X
Penyedia: Felo · Dibayar dengan baki platform
Pilih operasi untuk data yang anda perlukan. Semua lima titik akhir menggunakan POST dan memulangkan JSON pada akar, tanpa pembungkus data yang umum.
Semua contoh menggunakan FELO_API_KEY daripada gambaran keseluruhan. Panggilan menggunakan baki platform, bukan kredit Felo Pro. Contoh respons adalah ilustratif; kandungan langsung dan medan pilihan berbeza.
Pilih operasi
| Keperluan | Titik akhir |
|---|---|
| Profil untuk nama pengguna yang diketahui | POST /api/v1/data/x/user/info |
| Cari pengguna melalui pertanyaan carian | POST /api/v1/data/x/user/search |
| Catatan daripada seorang pengguna | POST /api/v1/data/x/user/tweets |
| Catatan yang sepadan dengan pertanyaan | POST /api/v1/data/x/tweet/search |
| Balasan kepada catatan yang diketahui | POST /api/v1/data/x/tweet/replies |
1. Dapatkan profil pengguna
POST /api/v1/data/x/user/info
| Medan | Jenis | Diperlukan | Makna |
|---|---|---|---|
usernames | tatasusunan string | Ya | 1–100 nama pengguna; hantar handle tanpa @ |
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/user/info" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"usernames":["OpenAI"]}'Respons mengandungi users dan total. Setiap pengguna merangkumi user_id, username dan display_name; teks profil, kiraan pengikut, pengesahan dan metadata lain juga mungkin hadir. Satu kelompok boleh memulangkan lebih sedikit profil daripada yang diminta. Padankan mengikut nama pengguna atau ID, bukan mengikut kedudukan tatasusunan.
{"users":[{"user_id":"example-user-id","username":"example","display_name":"Example"}],"total":1}2. Cari pengguna
POST /api/v1/data/x/user/search
| Medan | Jenis | Diperlukan | Makna |
|---|---|---|---|
query | string | Ya | 1–1,000 aksara |
cursor | string | Tidak | Cursor paginasi, sehingga 4,000 aksara |
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/user/search" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"AI research"}'Respons mengandungi users, total, has_next dan next_cursor. Tiada parameter limit pada operasi ini.
{"users":[],"total":0,"has_next":false,"next_cursor":null}3. Dapatkan garis masa pengguna
POST /api/v1/data/x/user/tweets
| Medan | Jenis | Diperlukan | Makna |
|---|---|---|---|
username | string | Satu pengecam diperlukan | Handle pengguna, sehingga 100 aksara |
x_user_id | string | Satu pengecam diperlukan | ID pengguna, sehingga 100 aksara; diutamakan berbanding username |
limit | integer | Tidak | 1–1,000; pelaksanaan semasa menggunakan sekurang-kurangnya 20, dengan lalai 20 |
cursor | string | Tidak | Cursor paginasi, sehingga 4,000 aksara |
include_replies | boolean | Tidak | Sertakan balasan bersarang; lalai false |
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/user/tweets" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"OpenAI","limit":20,"include_replies":false}'Respons mengandungi tweets, total, has_next dan next_cursor. Menetapkan limit di bawah 20 tidak menjamin item yang dipulangkan lebih sedikit atau bil yang lebih kecil. Menyertakan balasan boleh menambah data yang dipulangkan dan hasil yang boleh dibilkan.
Had hasil dan balasan bersarang
limit ialah bilangan sasaran catatan aras atas untuk permintaan ini, bukan kiraan hasil yang dijamin. Pelaksanaan semasa menggunakan sasaran sekurang-kurangnya 20: sasaran 20 membaca satu halaman huluan; sasaran yang lebih besar secara automatik mengambil sehingga 50 halaman. Sebelum setiap halaman, ia menyemak masa berlalu dan berhenti mengambil halaman seterusnya apabila ia melebihi 60 saat. Semakan ini bukan jaminan bahawa keseluruhan permintaan HTTP selesai dalam 60 saat.
Pengumpulan juga berhenti apabila sasaran dicapai, huluan tiada halaman seterusnya, halaman kosong, atau cursor hilang. Respons berjaya oleh itu boleh mengandungi lebih sedikit catatan daripada limit. Gunakan has_next dan next_cursor untuk meneruskan apabila tersedia.
Dengan include_replies=true, setiap catatan yang dipulangkan mendapat sehingga 5 halaman tambahan dan paling banyak 100 balasan bersarang. Pengumpulan boleh berhenti lebih awal apabila tiada halaman seterusnya, halaman kosong, atau cursor tidak boleh bergerak. Balasan bersarang ini berada di luar limit dan total aras atas, tetapi boleh menambah hasil yang boleh dibilkan.
Balasan bersarang replies bukan arkib balasan yang lengkap dan tidak mendedahkan cursor penerusan berasingan untuk pengumpulan tambahan ini. Untuk paginasi balasan secara bebas, gunakan operasi Baca balasan dan cursor yang dipulangkan. Jangan guna semula cursor catatan aras atas untuk balasan.
4. Cari catatan
POST /api/v1/data/x/tweet/search
| Medan | Jenis | Diperlukan | Makna |
|---|---|---|---|
query | string | Ya | Teks carian, 1–1,000 aksara |
query_type | string | Tidak | Latest (lalai) atau Top |
limit | integer | Tidak | 1–1,000; pelaksanaan semasa menggunakan sekurang-kurangnya 20, dengan lalai 20 |
cursor | string | Tidak | Cursor paginasi, sehingga 4,000 aksara |
since_time | integer or string | Tidak | Masa mula; gunakan saat Unix untuk nilai angka yang tidak samar |
until_time | integer or string | Tidak | Masa tamat; gunakan saat Unix, bukan milisaat |
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}'Respons mengandungi tweets, total, has_next dan next_cursor. Objek catatan merangkumi id, content, author, created_at dan metrics; balasan dan catatan petikan/ulang siar mungkin bersarang. Perlakukan ID sebagai string.
Had kiraan hasil
limit ialah sasaran, bukan jaminan. Pelaksanaan semasa menggunakan sasaran sekurang-kurangnya 20: sasaran 20 membaca satu halaman huluan; sasaran yang lebih besar secara automatik mengambil sehingga 50 halaman. Masa berlalu disemak sebelum setiap halaman, dan tiada halaman lanjut diambil sebaik sahaja ia melebihi 60 saat. Permintaan huluan yang sedang berjalan masih boleh mengambil masa, jadi ini bukan tamat masa HTTP keseluruhan.
Pengumpulan juga berhenti apabila sasaran dicapai, huluan tiada halaman seterusnya, halaman kosong, atau cursor hilang. Memulangkan lebih sedikit catatan daripada limit tidak bermaksud permintaan gagal atau bahawa setiap catatan padanan telah diambil. Semak has_next dan next_cursor sebelum meneruskan.
{
"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
}5. Baca balasan
POST /api/v1/data/x/tweet/replies
| Medan | Jenis | Diperlukan | Makna |
|---|---|---|---|
tweet_ids | string or string array | Ya | Satu ID catatan atau kelompok sehingga 20 ID |
cursor | string | Tidak | Sehingga 4,000 aksara; gunakan dengan satu ID catatan |
since_time | integer | Tidak | Masa mula dalam saat Unix |
until_time | integer | Tidak | Masa tamat dalam saat Unix |
Gantikan ruang letak dengan ID catatan sebenar:
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/tweet/replies" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tweet_ids":["POST_ID"]}'Tidak seperti garis masa dan carian catatan, balasan dikumpulkan di bawah results. Setiap entri mempunyai keadaan paginasi sendiri:
{"results":[{"tweet_id":"POST_ID","replies":[],"total":0,"has_next":false,"next_cursor":null}]}Had balasan bagi setiap permintaan
Setiap permintaan membaca satu halaman balasan huluan bagi setiap tweet_id dan mengekalkan paling banyak 100 balasan; ia tidak secara automatik mengambil setiap halaman balasan. Dalam kelompok sehingga 20 ID, had 100 balasan terpakai secara berasingan pada setiap entri results. Kiraan sebenar boleh jadi lebih rendah.
total bagi setiap entri ialah bilangan balasan yang dipulangkan dalam entri itu, bukan kiraan balasan lengkap catatan tersebut. Untuk meneruskan, gunakan next_cursor bagi entri itu dan hantar hanya satu ID catatan tunggalnya dalam permintaan seterusnya. Tiada parameter limit untuk menambah had bagi setiap permintaan.
Paginasi dan kawalan kos
total mengira tatasusunan yang sepadan dalam respons semasa: catatan aras atas untuk pertanyaan catatan, atau balasan dalam setiap entri hasil untuk pertanyaan balasan. Ia bukan kiraan padanan global, bukan kiraan balasan lengkap catatan, dan bukan kiraan boleh dibilkan akhir.
- Hantar permintaan pertama tanpa
cursor. - Baca
has_nextdannext_cursordaripada respons. Untuk balasan, baca pada setiap entri hasil. - Jika ada halaman lain dan cursor tidak kosong, hantar semula tanpa perubahan dengan pertanyaan yang sama. Untuk kelompok balasan, teruskan setiap catatan secara berasingan.
- Berhenti apabila tiada halaman seterusnya, apabila cursor berulang, atau apabila had halaman atau perbelanjaan anda dicapai.
Metadata paginasi mencerminkan respons huluan terakhir; koleksi yang dipulangkan boleh dipotong pada had hasil. Malah has_next=false bukan jaminan bahawa semua sejarah X atau balasan telah diambil. Paparkan kiraan sebenar yang dipulangkan dan bukannya melabelkan set hasil terhad sebagai semua data yang tersedia.
Setiap halaman berjaya boleh menanggung caj. Lima operasi ini dibilkan mengikut hasil yang dipulangkan, bukan yuran permintaan tetap. Balasan bersarang dan rekod lain yang dipulangkan boleh mempengaruhi kiraan yang dibilkan; jangan anggarkan kos semata-mata berdasarkan panjang tatasusunan aras atas. Semak harga semasa dan penggunaan dalam konsol. Medan objek lengkap ada dalam skema OpenAPI.