# Felo X 使用者貼文

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

請選擇你需要資料所對應的操作。這五個端點都使用 POST，並且在 JSON 根層回傳，不使用共通的 `data` 包裝層。

所有範例都使用來自[總覽](https://openapi.felo.ai/zh-TW/docs/data-api/guides/felo-overview.md)的 `FELO_API_KEY`。呼叫會使用 **平台餘額**，不是 Felo Pro 點數。回應範例僅供說明；實際內容與可選欄位會有所不同。





## 3. 取得使用者時間軸

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

| 欄位 | 類型 | 必填 | 意義 |
|---|---|---|---|
| `username` | string | 需要一個識別碼 | 使用者帳號，最多 100 個字元 |
| `x_user_id` | string | 需要一個識別碼 | 使用者 ID，最多 100 個字元；優先於 `username` |
| `limit` | integer | 否 | 1–1,000；目前實作至少使用 20，預設 20 |
| `cursor` | string | 否 | 分頁游標，最多 4,000 個字元 |
| `include_replies` | boolean | 否 | 包含巢狀回覆；預設 `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}'
```

回應包含 `tweets`、`total`、`has_next` 與 `next_cursor`。將 `limit` 設得低於 20，並不能保證回傳項目會更少或費用更低。包含回覆可能增加回傳資料與可計費結果。

### 結果與巢狀回覆限制

`limit` 是這次請求的頂層貼文目標數量，不是保證回傳的結果數。現行實作使用至少 20 的目標：目標為 20 時會讀取一個上游頁面；更大的目標會自動抓取最多 50 個頁面。每讀取一個頁面之前，系統會檢查經過時間，當超過 60 秒時就停止進一步抓取頁面。這項檢查不能保證整個 HTTP 請求會在 60 秒內完成。

當達到目標、上游沒有下一頁、頁面為空，或游標缺失時，收集也會停止。因此，一個成功回應可能包含少於 `limit` 的貼文。當可用時，請使用 `has_next` 與 `next_cursor` 繼續。

在 `include_replies=true` 時，每個回傳貼文最多會再取得 5 個額外頁面，且最多 100 則巢狀回覆。當沒有下一頁、頁面為空，或游標無法前進時，收集可能更早停止。這些巢狀回覆不屬於頂層 `limit` 與 `total`，但可能增加可計費結果。

巢狀 `replies` 不是完整的回覆封存，也不會為這些額外收集曝光獨立的延續游標。若要獨立分頁回覆，請使用 Read replies 操作及其回傳的游標。不要把頂層貼文游標重用於回覆。



## 分頁與成本控制

`total` 會計算目前回應中的對應陣列：對貼文查詢而言是頂層貼文，對回覆查詢而言則是每個結果項目內的回覆。它不是全域比對數、貼文的完整回覆總數，或最終可計費數量。

1. 先送出不含 `cursor` 的第一個請求。
2. 從回應讀取 `has_next` 與 `next_cursor`。對回覆而言，請在每個結果項目上分別讀取。
3. 如果還有下一頁且 cursor 非空，請以相同查詢原樣送出。對回覆批次而言，請分別繼續每個貼文。
4. 當沒有下一頁、cursor 重複，或你自己的頁面／支出上限已達到時就停止。

分頁中繼資料反映的是最後一個上游回應；回傳的集合可能在結果上限處被截斷。即使 `has_next=false`，也不能保證所有 X 歷史或回覆都已擷取。請顯示實際回傳數量，不要把有上限的結果集標示為所有可用資料。

每個成功頁面都可能產生費用。這五個操作依回傳結果計費，而不是固定請求費。巢狀回覆與其他回傳記錄都可能影響計費數量；不要只根據頂層陣列長度估算成本。請查看[目前價格](https://openapi.felo.ai/api/v1/data/prices)與控制台中的用量。完整物件欄位請參閱 [OpenAPI schema](https://openapi.felo.ai/api/v1/data/openapi.json)。
