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 (Twitter)، بما في ذلك ملفات تعريف المستخدمين والبحث عن التغريدات وتغريدات المستخدم وردود التغريدات.

المصادقة

تتطلب كل الطلبات مفتاح API في رأس Authorization:

Authorization: Bearer YOUR_API_KEY

الاستخدام مع وكلاء الذكاء الاصطناعي

ثبّت حزمة felo-ai الكاملة لتزويد وكيل بميزة X Search وكل مهارة Felo Skill أخرى متاحة. يكتشف المثبّت ديناميكيًا كل دليل حزمة يحتوي SKILL.md، بدلًا من الاحتفاظ بقائمة مهارات ثابتة. ثبّت كل المهارات المكتشفة في Codex ~/.codex/skills أو Claude Code ~/.claude/skills أو OpenClaw ~/.agents/skills أو Hermes Agent ~/.hermes/skills. راجع دليل إعداد وكيل الذكاء الاصطناعي اليدوي لتعليمات التثبيت ومفتاح API والتحقق حسب كل منصة.


1. الحصول على معلومات المستخدم

استرجع ملفات تعريف مستخدمي X دفعةً واحدة حسب اسم المستخدم.

Endpoint

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

نص الطلب

المعاملالنوعمطلوبالوصف
usernamesarray 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_idstringمعرّف مستخدم X
usernamestringاسم مستخدم X (دون @)
display_namestringاسم العرض
descriptionstringنبذة المستخدم
followers_countintegerعدد المتابعين
following_countintegerعدد الحسابات المتابَعة
tweet_countintegerإجمالي التغريدات
verifiedbooleanما إذا كان الحساب موثّقًا
blue_verifiedbooleanما إذا كان الحساب لديه توثيق Blue
verified_typestringنوع التوثيق
profile_image_urlstringعنوان URL لصورة الملف الشخصي
cover_image_urlstringعنوان URL لصورة الغلاف
created_atstringوقت إنشاء الحساب
locationstringموقع المستخدم
urlstringعنوان URL لموقع المستخدم
protectedbooleanما إذا كان الحساب محميًا
favorites_countintegerعدد الإعجابات
media_countintegerعدد منشورات الوسائط
can_dmbooleanما إذا كانت الرسائل المباشرة مفتوحة
is_automatedbooleanما إذا كان الحساب آليًا
pinned_tweet_idsarray of stringsمعرّفات التغريدات المثبّتة

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الوسائط المرفقة
hashtagsarray of stringsالوسوم في التغريدة
mentionsarray of stringsأسماء المستخدمين المذكورين
urlsarray of stringsعناوين 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_idsarray of stringsنعممعرّف التغريدة أو التغريدات المطلوب الحصول على ردودها
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/infoرصيد واحد لكل مستخدم مُعاد
POST /x/user/searchرصيد واحد لكل مستخدم مُعاد
POST /x/user/tweetsرصيد واحد لكل تغريدة مُعادة
POST /x/tweet/searchرصيد واحد لكل تغريدة مُعادة
POST /x/tweet/repliesرصيد واحد لكل رد مُعاد

تُخصم الأرصدة بعد اكتمال الطلب، بناءً على العدد الفعلي للنتائج. وإذا أعاد الطلب 0 نتيجة، فلا تُخصم أرصدة.

الحد الأدنى للرصيد: يجب أن يحتوي حسابك على 10 أرصدة على الأقل لإجراء أي طلب إلى X API. وتُرفض الطلبات التي تُجرى بأقل من 10 أرصدة بالاستجابة HTTP 402.

حدود المعدل

تُطبّق حدود المعدل وفق سياسات خدمة API والحساب الحالية. عند تجاوز الحد، يعيد API الاستجابة HTTP 429. ويشير رأس Retry-After إلى مدة الانتظار المقترحة بالثواني. استخدم أحدث مستندات الخدمة والاستجابات الفعلية من API للتعامل مع حدود المعدل؛ ولا يلزم اشتراك لاستخدام المنصة.