# Felo X পোস্ট অনুসন্ধান

POST /api/v1/data/x/tweet/search

আপনার প্রয়োজনীয় ডেটার জন্য উপযুক্ত operation বেছে নিন। পাঁচটি endpoint-ই POST ব্যবহার করে এবং কোনো common `data` wrapper ছাড়া root-এ JSON ফেরত দেয়।

সব example-ই [overview](https://openapi.felo.ai/bn/docs/data-api/guides/felo-overview.md) থেকে `FELO_API_KEY` ব্যবহার করে। Call-গুলো **platform balance** ব্যবহার করে, Felo Pro credits নয়। Response example-গুলো illustrative; live content এবং optional field ভিন্ন হতে পারে।





## 4. পোস্ট অনুসন্ধান করুন

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

| ক্ষেত্র | ধরন | প্রয়োজনীয় | অর্থ |
| --- | --- | --- | --- |
| `query` | string | হ্যাঁ | অনুসন্ধান পাঠ্য, 1–1,000 অক্ষর |
| `query_type` | string | না | `Latest` (ডিফল্ট) অথবা `Top` |
| `limit` | integer | না | 1–1,000; বর্তমান বাস্তবায়নে অন্তত 20 ব্যবহার হয়, ডিফল্ট 20 |
| `cursor` | string | না | পেজিনেশন কার্সর, সর্বোচ্চ 4,000 অক্ষর |
| `since_time` | পূর্ণসংখ্যা অথবা স্ট্রিং | না | শুরুর সময়; দ্ব্যর্থহীন সংখ্যামূলক মানের জন্য Unix সেকেন্ড ব্যবহার করুন |
| `until_time` | পূর্ণসংখ্যা অথবা স্ট্রিং | না | শেষ সময়; মিলিসেকেন্ড নয়, Unix সেকেন্ড ব্যবহার করুন |

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

Response-এ `tweets`, `total`, `has_next` এবং `next_cursor` থাকে। Post object-এ `id`, `content`, `author`, `created_at` এবং `metrics` থাকে; reply এবং quoted/retweeted post nested থাকতে পারে। ID-গুলোকে string হিসেবে বিবেচনা করুন।

### ফলাফলের সংখ্যা সীমা

`limit` একটি target, guarantee নয়। বর্তমান implementation কমপক্ষে 20-এর target ব্যবহার করে: 20-এর target একটি upstream page পড়ে; বড় target-এ স্বয়ংক্রিয়ভাবে সর্বোচ্চ 50 page fetch করে। প্রতিটি page-এর আগে elapsed time পরীক্ষা করা হয়, এবং 60 second অতিক্রম করলে আর কোনো page fetch করা হয় না। চলমান upstream request এখনও সময় নিতে পারে, তাই এটি সামগ্রিক HTTP timeout নয়।

Target পূরণ হলে, upstream-এ next page না থাকলে, page ফাঁকা হলে, বা cursor অনুপস্থিত থাকলে collection-ও থেমে যায়। `limit`-এর চেয়ে কম post ফেরত আসা মানে request ব্যর্থ হয়েছে বা প্রতিটি matching post আহরণ হয়েছে—এমন নয়। চালিয়ে যাওয়ার আগে `has_next` এবং `next_cursor` পরীক্ষা করুন।

```json
{
  "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
}
```



## পেজিনেশন এবং খরচ নিয়ন্ত্রণ

`total` বর্তমান response-এর সংশ্লিষ্ট array গণনা করে: post query-র জন্য top-level post, অথবা reply query-র জন্য প্রতিটি result entry-র মধ্যে reply। এটি global match count, কোনো post-এর সম্পূর্ণ reply count, বা চূড়ান্ত billable count নয়।

1. `cursor` ছাড়া প্রথম request পাঠান।
2. Response থেকে `has_next` এবং `next_cursor` পড়ুন। Reply-এর ক্ষেত্রে, প্রতিটি result entry-তে এগুলো পড়ুন।
3. যদি আরেকটি page থাকে এবং cursor খালি না হয়, একই query-সহ অপরিবর্তিত অবস্থায় তা পাঠান। Reply batch-এর জন্য, প্রতিটি post আলাদাভাবে চালিয়ে যান।
4. Next page না থাকলে, cursor পুনরাবৃত্ত হলে, বা আপনার নিজস্ব page বা spending limit-এ পৌঁছালে থামুন।

Pagination metadata শেষ upstream response প্রতিফলিত করে; ফেরত আসা collection result cap-এ truncate হতে পারে। এমনকি `has_next=false`-ও সব X history বা reply আহরণ হয়েছে—এমন নিশ্চয়তা নয়। সীমাবদ্ধ result set-কে all available data বলে label না করে প্রকৃত ফেরত আসা count প্রদর্শন করুন।

প্রতিটি successful page-এ চার্জ হতে পারে। এই পাঁচটি operation flat request fee নয়, ফেরত আসা result অনুযায়ী বিল হয়। Nested reply এবং অন্যান্য ফেরত আসা record bill করা count-এ প্রভাব ফেলতে পারে; কেবল top-level array length থেকে খরচ অনুমান করবেন না। [current prices](https://openapi.felo.ai/api/v1/data/prices) এবং console-এ usage পরীক্ষা করুন। সম্পূর্ণ object field [OpenAPI schema](https://openapi.felo.ai/api/v1/data/openapi.json)-এ রয়েছে।
