Felo APIs
X Search API
X ব্যবহারকারী, tweets, টাইমলাইন ও উত্তর খুঁজুন এবং পেজিনেশন মেটাডেটা নিন।
/v2/x/tweet/searchঅথেন্টিকেশন
Bearer API key
কনটেন্ট টাইপ
application/json
রেট সংক্রান্ত নোট
1 request per 10 seconds, 3 per minute, 10 per 10 minutes.
X Search API X (Twitter) ডেটায় প্রবেশাধিকার দেয়, যার মধ্যে ব্যবহারকারীর প্রোফাইল, টুইট সার্চ, ব্যবহারকারীর টুইট ও টুইটের রিপ্লাই আছে।
প্রমাণীকরণ
সব অনুরোধের Authorization header-এ একটি API Key প্রয়োজন:
Authorization: Bearer YOUR_API_KEYAI এজেন্টের সাথে ব্যবহার
একটি Agent-কে X Search এবং অন্যান্য সব উপলব্ধ Felo Skill দিতে সম্পূর্ণ felo-ai প্যাকেজ ইনস্টল করুন। ইনস্টলার নির্দিষ্ট Skill তালিকা রাখার বদলে গতিশীলভাবে SKILL.md থাকা প্রতিটি প্যাকেজ ডিরেক্টরি আবিষ্কার করে। আবিষ্কৃত সব Skill Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills বা Hermes Agent ~/.hermes/skills-এ ইনস্টল করুন। প্ল্যাটফর্ম-নির্দিষ্ট ইনস্টলেশন, API key ও যাচাইয়ের নির্দেশনার জন্য ম্যানুয়াল AI Agent সেটআপ গাইড দেখুন।
1. ব্যবহারকারীর তথ্য নিন
ইউজারনেম দিয়ে X ব্যবহারকারীর প্রোফাইল ব্যাচে রিট্রিভ করুন।
Endpoint
POST https://openapi.felo.ai/v2/x/user/infoঅনুরোধ বডি
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
usernames | array of strings | হ্যাঁ | খুঁজে দেখার X ইউজারনেমের তালিকা |
উদাহরণ
curl -X POST 'https://openapi.felo.ai/v2/x/user/info' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"usernames": ["elonmusk", "OpenAI"]
}'সফল রেসপন্স (200)
{
"status": "ok",
"message": null,
"data": {
"total": 2,
"users": [
{
"user_id": "44196397",
"username": "elonmusk",
"display_name": "Elon Musk",
"description": "...",
"followers_count": 100000000,
"following_count": 500,
"tweet_count": 30000,
"verified": true,
"blue_verified": true,
"profile_image_url": "https://pbs.twimg.com/...",
"created_at": "2009-06-02T00:00:00Z",
"location": "Mars"
}
]
}
}User অবজেক্ট ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
user_id | string | X ব্যবহারকারী ID |
username | string | X handle (@ ছাড়া) |
display_name | string | প্রদর্শিত নাম |
description | string | ব্যবহারকারীর বায়ো |
followers_count | integer | ফলোয়ারের সংখ্যা |
following_count | integer | ফলোয়িংয়ের সংখ্যা |
tweet_count | integer | মোট টুইট |
verified | boolean | অ্যাকাউন্ট যাচাইকৃত কি না |
blue_verified | boolean | অ্যাকাউন্টে Blue যাচাই আছে কি না |
verified_type | string | যাচাইয়ের ধরন |
profile_image_url | string | প্রোফাইল ছবির URL |
cover_image_url | string | কভার ছবির URL |
created_at | string | অ্যাকাউন্ট তৈরির সময় |
location | string | ব্যবহারকারীর অবস্থান |
url | string | ব্যবহারকারীর ওয়েবসাইট URL |
protected | boolean | অ্যাকাউন্ট সুরক্ষিত কি না |
favorites_count | integer | লাইকের সংখ্যা |
media_count | integer | মিডিয়া পোস্টের সংখ্যা |
can_dm | boolean | DM খোলা কি না |
is_automated | boolean | অ্যাকাউন্ট স্বয়ংক্রিয় কি না |
pinned_tweet_ids | array of strings | পিন করা টুইটের ID |
2. ব্যবহারকারী সার্চ করুন
কীওয়ার্ড দিয়ে X ব্যবহারকারী সার্চ করুন।
Endpoint
POST https://openapi.felo.ai/v2/x/user/searchঅনুরোধ বডি
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
query | string | হ্যাঁ | সার্চ কীওয়ার্ড |
cursor | string | না | আগের রেসপন্সের পেজিনেশন cursor |
উদাহরণ
curl -X POST 'https://openapi.felo.ai/v2/x/user/search' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "artificial intelligence"
}'সফল রেসপন্স (200)
{
"status": "ok",
"message": null,
"data": {
"total": 50,
"has_next": true,
"next_cursor": "cursor_abc123",
"users": [
{
"user_id": "...",
"username": "...",
"display_name": "..."
}
]
}
}রেসপন্স ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
total | integer | ফলাফলের মোট সংখ্যা |
has_next | boolean | আরও ফলাফল আছে কি না |
next_cursor | string | পরবর্তী পেজের cursor |
users | array | user অবজেক্টের তালিকা (বিভাগ 1 দেখুন) |
3. ব্যবহারকারীর টুইট নিন
একজন নির্দিষ্ট X ব্যবহারকারীর টুইট রিট্রিভ করুন।
Endpoint
POST https://openapi.felo.ai/v2/x/user/tweetsঅনুরোধ বডি
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
x_user_id | string | না | X ব্যবহারকারী ID (x_user_id বা username যেকোনো একটি দিন) |
username | string | না | X ইউজারনেম (x_user_id বা username যেকোনো একটি দিন) |
limit | integer | না | ফেরত দেওয়ার টুইট সংখ্যা |
cursor | string | না | পেজিনেশন cursor |
include_replies | boolean | না | রিপ্লাই অন্তর্ভুক্ত করবে কি না |
উদাহরণ
curl -X POST 'https://openapi.felo.ai/v2/x/user/tweets' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"username": "elonmusk",
"limit": 20
}'সফল রেসপন্স (200)
{
"status": "ok",
"message": null,
"data": {
"total": 20,
"has_next": true,
"next_cursor": "cursor_def456",
"tweets": [
{
"id": "1234567890",
"content": "Tweet content here...",
"author": { "user_id": "...", "username": "elonmusk" },
"created_at": "2026-03-09T12:00:00Z",
"metrics": {
"retweet_count": 1000,
"favorite_count": 5000,
"reply_count": 200,
"quote_count": 100,
"view_count": 500000,
"bookmark_count": 50
},
"hashtags": ["AI"],
"mentions": ["OpenAI"],
"url": "https://x.com/elonmusk/status/1234567890",
"lang": "en"
}
]
}
}Tweet অবজেক্ট ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
id | string | টুইট ID |
content | string | টুইটের টেক্সট কনটেন্ট |
author | object | লেখকের user অবজেক্ট (বিভাগ 1 দেখুন) |
created_at | string | টুইট তৈরির সময় |
metrics | object | এনগেজমেন্ট মেট্রিকস (নিচে দেখুন) |
replies | array | রিপ্লাই টুইট (উপলব্ধ হলে) |
conversation_id | string | কথোপকথন থ্রেড ID |
media_urls | array | সংযুক্ত মিডিয়া |
hashtags | array of strings | টুইটের hashtag |
mentions | array of strings | উল্লিখিত ইউজারনেম |
urls | array of strings | টুইটের URL |
url | string | টুইটের পারmalink |
source | string | টুইটের উৎস (যেমন "Twitter Web App") |
lang | string | টুইটের ভাষা কোড |
is_reply | boolean | এটি রিপ্লাই কি না |
in_reply_to_id | string | যে টুইটের রিপ্লাই দেওয়া হচ্ছে তার ID |
in_reply_to_user_id | string | যে টুইটের রিপ্লাই দেওয়া হচ্ছে তার ব্যবহারকারী ID |
in_reply_to_username | string | যে টুইটের রিপ্লাই দেওয়া হচ্ছে তার ইউজারনেম |
quoted_tweet | object | উদ্ধৃত টুইট অবজেক্ট (পুনরাবৃত্ত) |
retweeted_tweet | object | রিটুইট করা টুইট অবজেক্ট (পুনরাবৃত্ত) |
is_limited_reply | boolean | রিপ্লাই সীমিত কি না |
Metrics অবজেক্ট ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
retweet_count | integer | রিটুইটের সংখ্যা |
favorite_count | integer | লাইকের সংখ্যা |
reply_count | integer | রিপ্লাইয়ের সংখ্যা |
quote_count | integer | উদ্ধৃতির সংখ্যা |
view_count | integer | ভিউয়ের সংখ্যা |
bookmark_count | integer | বুকমার্কের সংখ্যা |
4. টুইট সার্চ করুন
উন্নত query সমর্থনসহ কীওয়ার্ড দিয়ে X টুইট সার্চ করুন।
Endpoint
POST https://openapi.felo.ai/v2/x/tweet/searchঅনুরোধ বডি
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
query | string | হ্যাঁ | সার্চ query (উন্নত সার্চ সিনট্যাক্স সমর্থন করে) |
query_type | string | না | query ধরনের ফিল্টার |
since_time | integer | না | শুরুর সময়ের ফিল্টার (সেকেন্ডে Unix টাইমস্ট্যাম্প) |
until_time | integer | না | শেষ সময়ের ফিল্টার (সেকেন্ডে Unix টাইমস্ট্যাম্প) |
limit | integer | না | ফেরত দেওয়ার টুইট সংখ্যা |
cursor | string | না | পেজিনেশন cursor |
উদাহরণ
curl -X POST 'https://openapi.felo.ai/v2/x/tweet/search' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "artificial intelligence",
"limit": 20
}'সফল রেসপন্স (200)
{
"status": "ok",
"message": null,
"data": {
"total": 20,
"has_next": true,
"next_cursor": "cursor_ghi789",
"tweets": [
{
"id": "...",
"content": "...",
"author": { "user_id": "...", "username": "..." },
"created_at": "2026-03-09T12:00:00Z",
"metrics": { "retweet_count": 100, "favorite_count": 500 }
}
]
}
}রেসপন্স ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
total | integer | ফলাফলের মোট সংখ্যা |
has_next | boolean | আরও ফলাফল আছে কি না |
next_cursor | string | পরবর্তী পেজের cursor |
tweets | array | tweet অবজেক্টের তালিকা (বিভাগ 3 দেখুন) |
5. টুইটের রিপ্লাই নিন
নির্দিষ্ট টুইটের রিপ্লাই রিট্রিভ করুন।
Endpoint
POST https://openapi.felo.ai/v2/x/tweet/repliesঅনুরোধ বডি
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
tweet_ids | array of strings | হ্যাঁ | রিপ্লাই নেওয়ার টুইট ID |
cursor | string | না | পেজিনেশন cursor |
since_time | integer | না | শুরুর সময়ের ফিল্টার (Unix টাইমস্ট্যাম্প) |
until_time | integer | না | শেষ সময়ের ফিল্টার (Unix টাইমস্ট্যাম্প) |
উদাহরণ
curl -X POST 'https://openapi.felo.ai/v2/x/tweet/replies' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"tweet_ids": ["1234567890"]
}'সফল রেসপন্স (200)
{
"status": "ok",
"message": null,
"data": {
"results": [
{
"tweet_id": "1234567890",
"total": 10,
"has_next": true,
"next_cursor": "cursor_jkl012",
"replies": [
{
"id": "...",
"content": "Great tweet!",
"author": { "user_id": "...", "username": "..." },
"created_at": "2026-03-09T12:30:00Z"
}
]
}
]
}
}রেসপন্স ফিল্ড
| ফিল্ড | ধরন | বর্ণনা |
|---|---|---|
results | array | reply result অবজেক্টের তালিকা |
results[].tweet_id | string | মূল টুইট ID |
results[].total | integer | রিপ্লাইয়ের মোট সংখ্যা |
results[].has_next | boolean | আরও রিপ্লাই আছে কি না |
results[].next_cursor | string | পরবর্তী পেজের cursor |
results[].replies | array | reply tweet অবজেক্টের তালিকা (বিভাগ 3 দেখুন) |
ত্রুটি কোড
| কোড | HTTP স্ট্যাটাস | বর্ণনা |
|---|---|---|
UNAUTHORIZED | 401 | API Key অবৈধ বা প্রত্যাহৃত |
X_SEARCH_FAILED | 400/500 | X সার্চ অনুরোধ ব্যর্থ (প্যারামিটার বা ডাউনস্ট্রিম ত্রুটি দেখুন) |
RATE_LIMIT_EXCEEDED | 429 | অতিরিক্ত অনুরোধ, অনুগ্রহ করে অল্প বিলম্বের পরে রিট্রাই করুন |
insufficient_credits | 402 | অনুরোধ সম্পূর্ণ করার জন্য অপর্যাপ্ত ক্রেডিট |
ক্রেডিট ও রেট সীমা
ক্রেডিট খরচ
প্রতিটি API কল ফেরত দেওয়া ফলাফলের সংখ্যার ভিত্তিতে ক্রেডিট কাটে:
| Endpoint | ক্রেডিট খরচ |
|---|---|
POST /x/user/info | প্রতি ফেরত দেওয়া ব্যবহারকারীতে 1 ক্রেডিট |
POST /x/user/search | প্রতি ফেরত দেওয়া ব্যবহারকারীতে 1 ক্রেডিট |
POST /x/user/tweets | প্রতি ফেরত দেওয়া টুইটে 1 ক্রেডিট |
POST /x/tweet/search | প্রতি ফেরত দেওয়া টুইটে 1 ক্রেডিট |
POST /x/tweet/replies | প্রতি ফেরত দেওয়া রিপ্লাইয়ে 1 ক্রেডিট |
অনুরোধ সম্পূর্ণ হওয়ার পর ফলাফলের প্রকৃত সংখ্যার ভিত্তিতে ক্রেডিট কাটা হয়। অনুরোধ 0 ফলাফল ফেরত দিলে কোনো ক্রেডিট কাটা হয় না।
ন্যূনতম ব্যালেন্সের প্রয়োজন: যেকোনো X API অনুরোধ করতে আপনার অ্যাকাউন্টে অন্তত 10 ক্রেডিট থাকতে হবে। 10-এর কম ক্রেডিট দিয়ে করা অনুরোধ HTTP 402 দিয়ে প্রত্যাখ্যাত হবে।
রেট সীমা
বর্তমান API সার্ভিস ও অ্যাকাউন্ট নীতির ভিত্তিতে রেট সীমা প্রয়োগ করা হয়। রেট সীমিত হলে API HTTP 429 ফেরত দেয়। Retry-After header সেকেন্ডে প্রস্তাবিত অপেক্ষার সময় নির্দেশ করে। রেট সীমা সামলাতে সর্বশেষ সার্ভিস ডকুমেন্টেশন ও প্রকৃত API রেসপন্স ব্যবহার করুন; প্ল্যাটফর্ম ব্যবহারে কোনো সাবস্ক্রিপশন প্রয়োজন নেই।