# Postingan Pengguna Felo X

POST /api/v1/data/x/user/tweets

Pilih operasi untuk data yang Anda butuhkan. Kelima endpoint menggunakan POST dan mengembalikan JSON di root, tanpa pembungkus `data` bersama.

Semua contoh menggunakan `FELO_API_KEY` dari [gambaran umum](https://openapi.felo.ai/id/docs/data-api/guides/felo-overview.md). Panggilan menggunakan **saldo platform**, bukan kredit Felo Pro. Contoh respons bersifat ilustratif; konten langsung dan bidang opsional bervariasi.





## 3. Dapatkan linimasa pengguna

`POST /api/v1/data/x/user/tweets`

| Bidang | Tipe | Wajib | Arti |
|---|---|---|---|
| `username` | string | Satu pengenal wajib | Handle pengguna, hingga 100 karakter |
| `x_user_id` | string | Satu pengenal wajib | ID pengguna, hingga 100 karakter; didahulukan di atas `username` |
| `limit` | integer | Tidak | 1–1.000; implementasi saat ini menggunakan setidaknya 20, dengan default 20 |
| `cursor` | string | Tidak | Cursor paginasi, hingga 4.000 karakter |
| `include_replies` | boolean | Tidak | Sertakan balasan bertingkat; default `false` |

```bash
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 berisi `tweets`, `total`, `has_next`, dan `next_cursor`. Menetapkan `limit` di bawah 20 tidak menjamin lebih sedikit item yang dikembalikan atau tagihan yang lebih kecil. Menyertakan balasan dapat menambah data yang dikembalikan dan hasil yang dapat ditagihkan.

### Batas hasil dan balasan bertingkat

`limit` adalah jumlah target postingan tingkat atas untuk permintaan ini, bukan jumlah hasil yang dijamin. Implementasi saat ini menggunakan target minimal 20: target 20 membaca satu halaman upstream; target yang lebih besar otomatis mengambil hingga 50 halaman. Sebelum setiap halaman, waktu berlalu diperiksa dan pengambilan halaman berikutnya berhenti setelah melebihi 60 detik. Pemeriksaan ini bukan jaminan bahwa seluruh permintaan HTTP selesai dalam 60 detik.

Pengumpulan juga berhenti ketika target tercapai, upstream tidak memiliki halaman berikutnya, sebuah halaman kosong, atau cursor tidak ada. Karena itu, respons sukses dapat berisi lebih sedikit postingan daripada `limit`. Gunakan `has_next` dan `next_cursor` untuk melanjutkan saat tersedia.

Dengan `include_replies=true`, setiap postingan yang dikembalikan mendapatkan hingga 5 halaman tambahan dan paling banyak 100 balasan bertingkat. Pengumpulan dapat berhenti lebih awal ketika tidak ada halaman berikutnya, sebuah halaman kosong, atau cursor tidak dapat maju. Balasan bertingkat ini berada di luar `limit` dan `total` tingkat atas, tetapi dapat menambah hasil yang dapat ditagihkan.

`replies` bertingkat bukan arsip balasan yang lengkap dan tidak mengekspos cursor kelanjutan terpisah untuk pengumpulan tambahan ini. Untuk melakukan paginasi balasan secara independen, gunakan operasi Baca balasan dan cursor yang dikembalikannya. Jangan gunakan kembali cursor postingan tingkat atas untuk balasan.



## Paginasi dan pengendalian biaya

`total` menghitung array yang bersesuaian dalam respons saat ini: postingan tingkat atas untuk kueri post, atau balasan di dalam setiap entri hasil untuk kueri balasan. Ini bukan jumlah kecocokan global, bukan jumlah balasan lengkap sebuah post, dan bukan jumlah billable final.

1. Kirim permintaan pertama tanpa `cursor`.
2. Baca `has_next` dan `next_cursor` dari respons. Untuk balasan, baca pada setiap entri hasil.
3. Jika ada halaman lain dan cursor tidak kosong, kirim ulang tanpa perubahan dengan kueri yang sama. Untuk batch balasan, lanjutkan setiap post secara terpisah.
4. Hentikan ketika tidak ada halaman berikutnya, ketika cursor berulang, atau ketika batas halaman atau pengeluaran Anda sendiri tercapai.

Metadata paginasi mencerminkan respons upstream terakhir; koleksi yang dikembalikan dapat dipotong pada batas hasil. Bahkan `has_next=false` bukan jaminan bahwa semua histori X atau balasan telah diambil. Tampilkan jumlah aktual yang dikembalikan, bukan memberi label kumpulan hasil terbatas sebagai semua data yang tersedia.

Setiap halaman sukses dapat menimbulkan biaya. Kelima operasi ini ditagihkan berdasarkan hasil yang dikembalikan, bukan biaya permintaan tetap. Balasan bertingkat dan rekaman lain yang dikembalikan dapat memengaruhi jumlah yang ditagihkan; jangan perkirakan biaya hanya dari panjang array tingkat atas. Periksa [harga terkini](https://openapi.felo.ai/api/v1/data/prices) dan penggunaan di konsol. Bidang objek lengkap ada di [skema OpenAPI](https://openapi.felo.ai/api/v1/data/openapi.json).
