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 ใน header Authorization:

Authorization: Bearer YOUR_API_KEY

ใช้กับ AI Agent

ติดตั้งแพ็กเกจ felo-ai ที่ครบถ้วนเพื่อให้ Agent ใช้ X Search และ Felo Skill อื่น ๆ ที่มีให้ใช้ทั้งหมด ตัวติดตั้งจะค้นหาไดเรกทอรีแพ็กเกจทุกไดเรกทอรีที่มี SKILL.md แบบไดนามิก แทนการดูแลรายการ Skill แบบตายตัว ให้ติดตั้ง Skill ทั้งหมดที่ค้นพบใน Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills หรือ Hermes Agent ~/.hermes/skills ดูคู่มือการตั้งค่า AI Agent ด้วยตนเองสำหรับการติดตั้ง คีย์ 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_idstringID ผู้ใช้ 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_idsarray of stringsID โพสต์ที่ปักหมุด

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ไม่ID ผู้ใช้ 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"
      }
    ]
  }
}

ฟิลด์ของออบเจกต์โพสต์

ฟิลด์ชนิดคำอธิบาย
idstringID โพสต์
contentstringเนื้อหาข้อความของโพสต์
authorobjectออบเจกต์ผู้ใช้ที่เป็นผู้เขียน (ดูหัวข้อ 1)
created_atstringเวลาสร้างโพสต์
metricsobjectเมตริกการมีส่วนร่วม (ดูด้านล่าง)
repliesarrayโพสต์ตอบกลับ (หากมี)
conversation_idstringID ของเธรดบทสนทนา
media_urlsarrayสื่อที่แนบมา
hashtagsarray of stringsแฮชแท็กในโพสต์
mentionsarray of stringsชื่อผู้ใช้ที่ถูกกล่าวถึง
urlsarray of stringsURL ในโพสต์
urlstringลิงก์ถาวรไปยังโพสต์
sourcestringแหล่งที่มาของโพสต์ (เช่น "Twitter Web App")
langstringรหัสภาษาของโพสต์
is_replybooleanโพสต์นี้เป็นการตอบกลับหรือไม่
in_reply_to_idstringID ของโพสต์ที่ถูกตอบกลับ
in_reply_to_user_idstringID ผู้ใช้ของโพสต์ที่ถูกตอบกลับ
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ใช่ID โพสต์ที่ต้องการดึงการตอบกลับ
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_idstringID โพสต์ต้นฉบับ
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 header Retry-After ระบุเวลาที่แนะนำให้รอเป็นวินาที ใช้เอกสารบริการล่าสุดและการตอบกลับจริงของ API เพื่อจัดการขีดจำกัดอัตรา ไม่จำเป็นต้องสมัครสมาชิกเพื่อใช้แพลตฟอร์ม