Felo API PlatformFelo API Platform

Felo APIs

X Search API

Tìm người dùng X, tweet, dòng thời gian và câu trả lời với siêu dữ liệu phân trang.

POST/v2/x/tweet/search

Xác thực

Bearer API key

Loại nội dung

application/json

Ghi chú về giới hạn

1 request per 10 seconds, 3 per minute, 10 per 10 minutes.

X Search API cung cấp quyền truy cập dữ liệu X (Twitter), bao gồm hồ sơ người dùng, tìm kiếm tweet, tweet của người dùng và câu trả lời cho tweet.

Xác thực

Mọi yêu cầu đều cần khóa API trong header Authorization:

Authorization: Bearer YOUR_API_KEY

Dùng với AI Agent

Cài gói felo-ai đầy đủ để cung cấp cho một Agent X Search và mọi Felo Skill khác hiện có. Trình cài đặt tự động khám phá mọi thư mục gói có chứa SKILL.md, thay vì giữ một danh sách Skill cố định. Hãy cài mọi Skill được phát hiện vào Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills hoặc Hermes Agent ~/.hermes/skills. Xem hướng dẫn thiết lập AI Agent thủ công để biết hướng dẫn cài đặt, khóa API và xác minh riêng cho từng nền tảng.


1. Lấy thông tin người dùng

Truy xuất hàng loạt hồ sơ người dùng X theo tên người dùng.

Endpoint

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

Nội dung yêu cầu

Tham sốKiểuBắt buộcMô tả
usernamesarray of stringsCóDanh sách tên người dùng X cần tra cứu

Ví dụ

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

Phản hồi thành công (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"
      }
    ]
  }
}

Các trường của đối tượng người dùng

TrườngKiểuMô tả
user_idstringID người dùng X
usernamestringTên người dùng X (không có @)
display_namestringTên hiển thị
descriptionstringTiểu sử người dùng
followers_countintegerSố người theo dõi
following_countintegerSố tài khoản đang theo dõi
tweet_countintegerTổng số tweet
verifiedbooleanTài khoản có được xác minh hay không
blue_verifiedbooleanTài khoản có xác minh Blue hay không
verified_typestringLoại xác minh
profile_image_urlstringURL ảnh hồ sơ
cover_image_urlstringURL ảnh bìa
created_atstringThời điểm tạo tài khoản
locationstringVị trí người dùng
urlstringURL trang web của người dùng
protectedbooleanTài khoản có được bảo vệ hay không
favorites_countintegerSố lượt thích
media_countintegerSố bài đăng phương tiện
can_dmbooleanTin nhắn trực tiếp có mở hay không
is_automatedbooleanTài khoản có tự động hay không
pinned_tweet_idsarray of stringsCác ID tweet được ghim

2. Tìm kiếm người dùng

Tìm kiếm người dùng X theo từ khóa.

Endpoint

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

Nội dung yêu cầu

Tham sốKiểuBắt buộcMô tả
querystringCóTừ khóa tìm kiếm
cursorstringKhôngCon trỏ phân trang từ phản hồi trước

Ví dụ

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

Phản hồi thành công (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 50,
    "has_next": true,
    "next_cursor": "cursor_abc123",
    "users": [
      {
        "user_id": "...",
        "username": "...",
        "display_name": "..."
      }
    ]
  }
}

Các trường phản hồi

TrườngKiểuMô tả
totalintegerTổng số kết quả
has_nextbooleanCó thêm kết quả hay không
next_cursorstringCon trỏ cho trang tiếp theo
usersarrayDanh sách các đối tượng người dùng (xem phần 1)

3. Lấy tweet của người dùng

Truy xuất tweet từ một người dùng X cụ thể.

Endpoint

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

Nội dung yêu cầu

Tham sốKiểuBắt buộcMô tả
x_user_idstringKhôngID người dùng X (cung cấp x_user_id hoặc username)
usernamestringKhôngTên người dùng X (cung cấp x_user_id hoặc username)
limitintegerKhôngSố tweet cần trả về
cursorstringKhôngCon trỏ phân trang
include_repliesbooleanKhôngCó bao gồm câu trả lời hay không

Ví dụ

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

Phản hồi thành công (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"
      }
    ]
  }
}

Các trường của đối tượng tweet

TrườngKiểuMô tả
idstringID tweet
contentstringNội dung văn bản của tweet
authorobjectĐối tượng người dùng tác giả (xem phần 1)
created_atstringThời điểm tạo tweet
metricsobjectChỉ số tương tác (xem bên dưới)
repliesarrayCác tweet trả lời (nếu có)
conversation_idstringID chuỗi hội thoại
media_urlsarrayPhương tiện đính kèm
hashtagsarray of stringsCác hashtag trong tweet
mentionsarray of stringsCác tên người dùng được nhắc đến
urlsarray of stringsCác URL trong tweet
urlstringLiên kết cố định đến tweet
sourcestringNguồn của tweet (ví dụ "Twitter Web App")
langstringMã ngôn ngữ của tweet
is_replybooleanĐây có phải là câu trả lời hay không
in_reply_to_idstringID của tweet đang được trả lời
in_reply_to_user_idstringID người dùng của tweet đang được trả lời
in_reply_to_usernamestringTên người dùng của tweet đang được trả lời
quoted_tweetobjectĐối tượng tweet được trích dẫn (đệ quy)
retweeted_tweetobjectĐối tượng tweet được đăng lại (đệ quy)
is_limited_replybooleanCâu trả lời có bị giới hạn hay không

Các trường của đối tượng chỉ số

TrườngKiểuMô tả
retweet_countintegerSố lần đăng lại
favorite_countintegerSố lượt thích
reply_countintegerSố câu trả lời
quote_countintegerSố lần trích dẫn
view_countintegerSố lượt xem
bookmark_countintegerSố lượt lưu

4. Tìm kiếm tweet

Tìm kiếm tweet X theo từ khóa với hỗ trợ truy vấn nâng cao.

Endpoint

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

Nội dung yêu cầu

Tham sốKiểuBắt buộcMô tả
querystringCóTruy vấn tìm kiếm (hỗ trợ cú pháp tìm kiếm nâng cao)
query_typestringKhôngBộ lọc loại truy vấn
since_timeintegerKhôngBộ lọc thời gian bắt đầu (dấu thời gian Unix tính bằng giây)
until_timeintegerKhôngBộ lọc thời gian kết thúc (dấu thời gian Unix tính bằng giây)
limitintegerKhôngSố tweet cần trả về
cursorstringKhôngCon trỏ phân trang

Ví dụ

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

Phản hồi thành công (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 }
      }
    ]
  }
}

Các trường phản hồi

TrườngKiểuMô tả
totalintegerTổng số kết quả
has_nextbooleanCó thêm kết quả hay không
next_cursorstringCon trỏ cho trang tiếp theo
tweetsarrayDanh sách các đối tượng tweet (xem phần 3)

5. Lấy câu trả lời cho tweet

Truy xuất câu trả lời cho các tweet cụ thể.

Endpoint

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

Nội dung yêu cầu

Tham sốKiểuBắt buộcMô tả
tweet_idsarray of stringsCó(Các) ID tweet cần lấy câu trả lời
cursorstringKhôngCon trỏ phân trang
since_timeintegerKhôngBộ lọc thời gian bắt đầu (dấu thời gian Unix)
until_timeintegerKhôngBộ lọc thời gian kết thúc (dấu thời gian Unix)

Ví dụ

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

Phản hồi thành công (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"
          }
        ]
      }
    ]
  }
}

Các trường phản hồi

TrườngKiểuMô tả
resultsarrayDanh sách các đối tượng kết quả câu trả lời
results[].tweet_idstringID tweet gốc
results[].totalintegerTổng số câu trả lời
results[].has_nextbooleanCó thêm câu trả lời hay không
results[].next_cursorstringCon trỏ cho trang tiếp theo
results[].repliesarrayDanh sách các đối tượng tweet trả lời (xem phần 3)

Mã lỗi

MãTrạng thái HTTPMô tả
UNAUTHORIZED401Khóa API không hợp lệ hoặc đã bị thu hồi
X_SEARCH_FAILED400/500Yêu cầu tìm kiếm X thất bại (kiểm tra tham số hoặc lỗi hạ nguồn)
RATE_LIMIT_EXCEEDED429Quá nhiều yêu cầu, vui lòng thử lại sau một khoảng ngắn
insufficient_credits402Không đủ tín dụng để hoàn tất yêu cầu

Tín dụng và giới hạn tần suất

Chi phí tín dụng

Mỗi lệnh gọi API trừ tín dụng dựa trên số kết quả được trả về:

EndpointChi phí tín dụng
POST /x/user/info1 tín dụng mỗi người dùng được trả về
POST /x/user/search1 tín dụng mỗi người dùng được trả về
POST /x/user/tweets1 tín dụng mỗi tweet được trả về
POST /x/tweet/search1 tín dụng mỗi tweet được trả về
POST /x/tweet/replies1 tín dụng mỗi câu trả lời được trả về

Tín dụng được trừ sau khi yêu cầu hoàn tất, dựa trên số kết quả thực tế. Nếu một yêu cầu trả về 0 kết quả, không có tín dụng nào bị trừ.

Yêu cầu số dư tối thiểu: Tài khoản của bạn phải có ít nhất 10 tín dụng để thực hiện bất kỳ yêu cầu X API nào. Các yêu cầu thực hiện với ít hơn 10 tín dụng sẽ bị từ chối với HTTP 402.

Giới hạn tần suất

Giới hạn tần suất được áp dụng theo dịch vụ API hiện tại và chính sách tài khoản. Khi bị giới hạn tần suất, API trả về HTTP 429. Header Retry-After cho biết thời gian chờ được đề xuất tính bằng giây. Hãy dùng tài liệu dịch vụ mới nhất và phản hồi API thực tế để xử lý giới hạn tần suất; không bắt buộc phải có gói đăng ký để sử dụng nền tảng.