Felo API PlatformFelo API Platform

Felo APIs

X Search API

کاربران X، توییت‌ها، خطوط زمانی و پاسخ‌ها را با فراداده صفحه‌بندی جستجو کنید.

POST/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 (توییتر) را فراهم می‌کند، از جمله نمایه‌های کاربران، جستجوی توییت، توییت‌های کاربر و پاسخ‌های توییت.

احراز هویت

همه درخواست‌ها به یک کلید API در سرآیند Authorization نیاز دارند:

Authorization: Bearer YOUR_API_KEY

استفاده با عامل‌های هوش مصنوعی

بسته کامل felo-ai را نصب کنید تا X Search و هر Felo Skill در دسترس دیگر به یک عامل داده شود. نصب‌کننده به‌صورت پویا هر پوشه بسته شامل SKILL.md را کشف می‌کند، به‌جای نگه‌داشتن فهرست ثابتی از Skill. همه Skillهای کشف‌شده را در ~/.codex/skills مربوط به Codex، ~/.claude/skills مربوط به Claude Code، ~/.agents/skills مربوط به OpenClaw یا ~/.hermes/skills مربوط به Hermes Agent نصب کنید. برای نصب مخصوص هر پلتفرم، کلید API و دستورهای بررسی راهنمای راه‌اندازی دستی عامل هوش مصنوعی را ببینید.


1. دریافت اطلاعات کاربر

نمایه‌های کاربران X را دسته‌ای بر اساس نام کاربری دریافت کنید.

Endpoint

POST https://openapi.felo.ai/v2/x/user/info

بدنه درخواست

پارامترنوعالزامیتوضیح
usernamesآرایه‌ای از رشته‌هابلهفهرست نام‌های کاربری 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_idstringشناسه کاربر X
usernamestringنام کاربری X (بدون @)
display_namestringنام نمایشی
descriptionstringبیوی کاربر
followers_countintegerشمار دنبال‌کنندگان
following_countintegerشمار دنبال‌شده‌ها
tweet_countintegerکل توییت‌ها
verifiedbooleanتأییدشده بودن حساب
blue_verifiedbooleanداشتن تأیید Blue
verified_typestringنوع تأیید
profile_image_urlstringURL تصویر نمایه
cover_image_urlstringURL تصویر کاور
created_atstringزمان ساخت حساب
locationstringموقعیت کاربر
urlstringURL وب‌سایت کاربر
protectedbooleanمحافظت‌شده بودن حساب
favorites_countintegerشمار پسندها
media_countintegerشمار پست‌های رسانه‌ای
can_dmbooleanباز بودن DM
is_automatedbooleanخودکار بودن حساب
pinned_tweet_idsآرایه‌ای از رشته‌هاشناسه توییت‌های پین‌شده

2. جستجوی کاربران

کاربران X را بر اساس کلیدواژه جستجو کنید.

Endpoint

POST https://openapi.felo.ai/v2/x/user/search

بدنه درخواست

پارامترنوعالزامیتوضیح
querystringبلهکلیدواژه جستجو
cursorstringخیرمکان‌نمای صفحه‌بندی از پاسخ پیشین

نمونه

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": "..."
      }
    ]
  }
}

فیلدهای پاسخ

فیلدنوعتوضیح
totalintegerشمار کل نتایج
has_nextbooleanدر دسترس بودن نتایج بیشتر
next_cursorstringمکان‌نمای صفحه بعد
usersarrayفهرست اشیاء کاربر (بخش 1 را ببینید)

3. دریافت توییت‌های کاربر

توییت‌های یک کاربر مشخص X را دریافت کنید.

Endpoint

POST https://openapi.felo.ai/v2/x/user/tweets

بدنه درخواست

پارامترنوعالزامیتوضیح
x_user_idstringخیرشناسه کاربر X (یکی از x_user_id یا username را بدهید)
usernamestringخیرنام کاربری X (یکی از x_user_id یا username را بدهید)
limitintegerخیرشمار توییت‌های برگشتی
cursorstringخیرمکان‌نمای صفحه‌بندی
include_repliesbooleanخیرگنجاندن پاسخ‌ها

نمونه

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"
      }
    ]
  }
}

فیلدهای شیء توییت

فیلدنوعتوضیح
idstringشناسه توییت
contentstringمحتوای متنی توییت
authorobjectشیء کاربر نویسنده (بخش 1 را ببینید)
created_atstringزمان ساخت توییت
metricsobjectمعیارهای تعامل (پایین را ببینید)
repliesarrayتوییت‌های پاسخ (در صورت وجود)
conversation_idstringشناسه رشته گفت‌وگو
media_urlsarrayرسانه پیوست‌شده
hashtagsآرایه‌ای از رشته‌هاهشتگ‌های توییت
mentionsآرایه‌ای از رشته‌هانام‌های کاربری اشاره‌شده
urlsآرایه‌ای از رشته‌هاURLهای داخل توییت
urlstringپیوند دائمی توییت
sourcestringمنبع توییت (مثلاً "Twitter Web App")
langstringکد زبان توییت
is_replybooleanپاسخ بودن این توییت
in_reply_to_idstringشناسه توییتی که به آن پاسخ داده شده
in_reply_to_user_idstringشناسه کاربر توییتی که به آن پاسخ داده شده
in_reply_to_usernamestringنام کاربری توییتی که به آن پاسخ داده شده
quoted_tweetobjectشیء توییت نقل‌شده (بازگشتی)
retweeted_tweetobjectشیء توییت بازتوییت‌شده (بازگشتی)
is_limited_replybooleanمحدود بودن پاسخ‌ها

فیلدهای شیء معیارها

فیلدنوعتوضیح
retweet_countintegerشمار بازتوییت‌ها
favorite_countintegerشمار پسندها
reply_countintegerشمار پاسخ‌ها
quote_countintegerشمار نقل‌قول‌ها
view_countintegerشمار بازدیدها
bookmark_countintegerشمار نشانک‌ها

4. جستجوی توییت‌ها

توییت‌های X را بر اساس کلیدواژه با پشتیبانی از پرس‌وجوهای پیشرفته جستجو کنید.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/search

بدنه درخواست

پارامترنوعالزامیتوضیح
querystringبلهپرس‌وجوی جستجو (از نحو جستجوی پیشرفته پشتیبانی می‌کند)
query_typestringخیرفیلتر نوع پرس‌وجو
since_timeintegerخیرفیلتر زمان شروع (برچسب زمانی Unix به ثانیه)
until_timeintegerخیرفیلتر زمان پایان (برچسب زمانی Unix به ثانیه)
limitintegerخیرشمار توییت‌های برگشتی
cursorstringخیرمکان‌نمای صفحه‌بندی

نمونه

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 }
      }
    ]
  }
}

فیلدهای پاسخ

فیلدنوعتوضیح
totalintegerشمار کل نتایج
has_nextbooleanدر دسترس بودن نتایج بیشتر
next_cursorstringمکان‌نمای صفحه بعد
tweetsarrayفهرست اشیاء توییت (بخش 3 را ببینید)

5. دریافت پاسخ‌های توییت

پاسخ‌های توییت‌های مشخص را دریافت کنید.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/replies

بدنه درخواست

پارامترنوعالزامیتوضیح
tweet_idsآرایه‌ای از رشته‌هابلهشناسه توییت‌ها برای دریافت پاسخ‌ها
cursorstringخیرمکان‌نمای صفحه‌بندی
since_timeintegerخیرفیلتر زمان شروع (برچسب زمانی Unix)
until_timeintegerخیرفیلتر زمان پایان (برچسب زمانی 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"
          }
        ]
      }
    ]
  }
}

فیلدهای پاسخ

فیلدنوعتوضیح
resultsarrayفهرست اشیاء نتیجه پاسخ
results[].tweet_idstringشناسه توییت اصلی
results[].totalintegerشمار کل پاسخ‌ها
results[].has_nextbooleanدر دسترس بودن پاسخ‌های بیشتر
results[].next_cursorstringمکان‌نمای صفحه بعد
results[].repliesarrayفهرست اشیاء توییت پاسخ (بخش 3 را ببینید)

کدهای خطا

کدوضعیت HTTPتوضیح
UNAUTHORIZED401کلید API نامعتبر یا لغوشده است
X_SEARCH_FAILED400/500درخواست جستجوی X شکست خورد (پارامترها یا خطای پایین‌دستی را بررسی کنید)
RATE_LIMIT_EXCEEDED429درخواست‌های بیش از حد؛ لطفاً پس از تأخیری کوتاه دوباره تلاش کنید
insufficient_credits402اعتبار کافی برای تکمیل درخواست نیست

اعتبار و محدودیت نرخ

هزینه اعتبار

هر فراخوانی API بر اساس شمار نتایج برگشتی از اعتبار کسر می‌کند:

Endpointهزینه اعتبار
POST /x/user/info1 اعتبار برای هر کاربر برگشتی
POST /x/user/search1 اعتبار برای هر کاربر برگشتی
POST /x/user/tweets1 اعتبار برای هر توییت برگشتی
POST /x/tweet/search1 اعتبار برای هر توییت برگشتی
POST /x/tweet/replies1 اعتبار برای هر پاسخ برگشتی

اعتبار پس از تکمیل درخواست و بر اساس شمار واقعی نتایج کسر می‌شود. اگر درخواست 0 نتیجه برگرداند، اعتباری کسر نمی‌شود.

الزام کمینه مانده: حساب شما باید دست‌کم 10 اعتبار داشته باشد تا بتواند هر درخواست X API انجام دهد. درخواست‌هایی با کمتر از 10 اعتبار با HTTP 402 رد می‌شوند.

محدودیت نرخ

محدودیت‌های نرخ بر اساس سیاست‌های جاری سرویس API و حساب اعمال می‌شوند. هنگام محدودیت نرخ، API کد HTTP 429 برمی‌گرداند. سرآیند Retry-After زمان انتظار پیشنهادی را به ثانیه نشان می‌دهد. برای مدیریت محدودیت‌های نرخ از آخرین مستندات سرویس و پاسخ‌های واقعی API استفاده کنید؛ برای استفاده از پلتفرم اشتراک لازم نیست.