# Felo X ユーザー検索

POST /api/v1/data/x/user/search

必要なデータに応じて操作を選択してください。5 つのエンドポイントはすべて POST を使用し、共通の `data` ラッパーなしで JSON をルートに返します。

すべての例は [概要](https://openapi.felo.ai/ja/docs/data-api/guides/felo-overview.md) の `FELO_API_KEY` を使用します。呼び出しには **プラットフォーム残高** が使われ、Felo Pro クレジットは使われません。レスポンス例は説明用であり、実際の内容や任意フィールドは変動します。





## 2. ユーザーを検索する

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

| フィールド | 型 | 必須 | 意味 |
|---|---|---|---|
| `query` | string | はい | 1〜1,000 文字 |
| `cursor` | string | いいえ | ページ分割用カーソル、最大 4,000 文字 |

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

レスポンスには `users`、`total`、`has_next`、`next_cursor` が含まれます。この操作には `limit` パラメーターはありません。

```json
{"users":[],"total":0,"has_next":false,"next_cursor":null}
```



## ページ分割とコスト制御

`total` は、現在のレスポンス内の対応する配列の件数を数えます。投稿クエリではトップレベル投稿、返信クエリでは各結果エントリ内の返信です。これは、グローバルな一致件数、投稿の完全な返信数、または最終的な課金対象件数ではありません。

1. 最初のリクエストは `cursor` なしで送信します。
2. レスポンスから `has_next` と `next_cursor` を読み取ります。返信については、各結果エントリで読み取ります。
3. さらにページがあり、カーソルが空でない場合は、同じクエリでそのまま送信します。返信のバッチでは、各投稿を個別に続行します。
4. 次のページがない場合、カーソルが繰り返される場合、または自分のページ数や支出上限に達した場合は停止します。

ページ分割のメタデータは最後の上流レスポンスを反映しており、返されたコレクションは結果上限で切り詰められる場合があります。`has_next=false` であっても、すべての X の履歴や返信を取得したことを保証するものではありません。利用可能なデータがすべてであるかのように、制限付きの結果セットを表示しないでください。

成功した各ページには課金が発生する場合があります。これら 5 つの操作は、フラットなリクエスト शुल्कではなく返された結果に基づいて課金されます。ネストされた返信やその他の返されたレコードは課金対象件数に影響する場合があります。トップレベル配列の長さだけでコストを見積もらないでください。[現在の価格](https://openapi.felo.ai/api/v1/data/prices) とコンソールでの使用状況を確認してください。完全なオブジェクトフィールドは [OpenAPI スキーマ](https://openapi.felo.ai/api/v1/data/openapi.json) にあります。
