浏览器

Twitter (X) Scraper API - Tweet Search, Profiles, Followers

试用

Search X, read tweets and their replies and retweeters, pull user profiles and their tweets, replies, media, followers, and followings, find and read X Communities and their posts, and get trending topics as structured JSON. 14 endpoints.

它能做什么

Search X, read a single tweet with its replies and retweeters, pull a user's profile and their tweets, replies, media, followers, and followings, and get trending topics by country. All endpoints return structured JSON.

技能文档

X via Scavio

Search X, read a single tweet with its replies and retweeters, pull a user's profile and their tweets, replies, media, followers, and followings, and get trending topics by country. All endpoints return structured JSON.

When to trigger

Use this skill when the user asks to:

  • Search tweets or people on X for a topic or keyword
  • Read a tweet's full details, its replies, or who retweeted it
  • Look up a user's profile by handle
  • Pull a user's tweets, replies, or media
  • List a user's followers or the accounts they follow
  • Get trending topics for a country
  • Monitor brand, competitor, or campaign mentions
  • Build RAG or sentiment pipelines that need social context

Setup

Get a free API key at scavio.dev (50 free credits to get started, no card required):

export SCAVIO_API_KEY=sk_live_your_key

Every request is a POST with a JSON body and:

Authorization: Bearer $SCAVIO_API_KEY

Endpoints

Base URL: https://api.scavio.dev. All paths are under /api/v1/x. Every endpoint costs 1 credit.

EndpointCreditsDescription
POST /api/v1/x/search1Search tweets and people
POST /api/v1/x/tweet1Full details for a single tweet
POST /api/v1/x/tweet/comments1Replies to a tweet (ranked or chronological)
POST /api/v1/x/tweet/retweeters1Users who retweeted a tweet
POST /api/v1/x/user1Profile details for a user
POST /api/v1/x/user/tweets1A user's tweets
POST /api/v1/x/user/replies1A user's tweets and replies
POST /api/v1/x/user/media1A user's media tweets
POST /api/v1/x/user/followers1A user's followers
POST /api/v1/x/user/followings1Accounts a user follows
POST /api/v1/x/trending1Trending topics for a country

Workflow

  1. Find tweets or people: call /x/search with search. Use search_type to switch category (Top, Latest, People, Photos, Videos). Read timeline[].tweet_id.
  2. Read a tweet: call /x/tweet with tweet_id for full metrics.
  3. Read the conversation: call /x/tweet/comments with tweet_id (set rank: latest for chronological), and /x/tweet/retweeters for who retweeted.
  4. Look up a user: call /x/user with screen_name (a handle without @).
  5. User activity: call /x/user/tweets, /x/user/replies, or /x/user/media with screen_name.
  6. Social graph: call /x/user/followers and /x/user/followings.
  7. Discovery: call /x/trending with a country name.

Paginated endpoints return next_cursor (and often prev_cursor); pass next_cursor back as cursor for the next page. Stop when it is null.

Parameters

ParameterTypeDefaultDescription
searchstringrequiredSearch query (1-500 chars)
search_typestringTopTop, Latest, People, Photos, Videos
cursorstring--Pagination cursor from a prior next_cursor

Tweet (/tweet)

tweet_id* — a tweet id, e.g. 1808168603721650364.

Tweet comments (/tweet/comments)

ParameterTypeDefaultDescription
tweet_idstringrequiredTweet id
rankstringtoptop (ranked) or latest (chronological)
cursorstring--Pagination cursor

Tweet retweeters (/tweet/retweeters)

tweet_id* , cursor (optional).

User (/user)

screen_name* — an X handle without @, e.g. elonmusk.

User tweets / replies / media / followers / followings

ParameterTypeDefaultDescription
screen_namestringrequiredHandle without @
cursorstring--Pagination cursor

country (optional, default UnitedStates) — a country name.

Examples

import requests

BASE = "https://api.scavio.dev"
# Your key from https://scavio.dev. Load it from your environment or secret
# store in real code - keep it out of source control.
API_KEY = "sk_your_key_here"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1. Search — use "search", not "query"
results = requests.post(f"{BASE}/api/v1/x/search", headers=HEADERS,
    json={"search": "AI agents", "search_type": "Latest"}).json()

tweet_id = results["data"]["timeline"][0]["tweet_id"]

# 2. Full tweet + its replies
tweet = requests.post(f"{BASE}/api/v1/x/tweet", headers=HEADERS,
    json={"tweet_id": tweet_id}).json()

comments = requests.post(f"{BASE}/api/v1/x/tweet/comments", headers=HEADERS,
    json={"tweet_id": tweet_id, "rank": "latest"}).json()

# 3. A user's recent tweets
user_tweets = requests.post(f"{BASE}/api/v1/x/user/tweets", headers=HEADERS,
    json={"screen_name": "elonmusk"}).json()

# 4. Trending in a country
trending = requests.post(f"{BASE}/api/v1/x/trending", headers=HEADERS,
    json={"country": "UnitedStates"}).json()

Response shapes

Every response uses the envelope { data, response_time, credits_used, credits_remaining }. Key data fields per endpoint:

  • search — timeline[] (type, tweet_id, screen_name, text, lang, created_at, favorites, retweets, replies, quotes, bookmarks, views, source), next_cursor, prev_cursor.
  • tweet — tweet_id, text, display_text, created_at, lang, favorites, retweets, replies, quotes, bookmarks, views, source, reply_to.
  • tweet/comments — timeline[] (tweet_id, screen_name, text, created_at, favorites, ...), next_cursor, prev_cursor.
  • tweet/retweeters — retweeters[] (user_id, screen_name, name, description, followers_count, friends_count, statuses_count, media_count, profile_image), next_cursor.
  • user — rest_id, screen_name, name, description, followers_count, friends_count, statuses_count, media_count, blue_verified, avatar, header_image, created_at, location, website.
  • user/tweets — pinned (a tweet), timeline[] (tweet_id, text, created_at, favorites, retweets, replies, quotes, views, conversation_id), next_cursor.
  • user/replies — timeline[] (same tweet item shape), user, next_cursor.
  • user/media — timeline[] (same tweet item shape), user, next_cursor.
  • user/followers — followers_count, followers[] (user_id, screen_name, name, description, followers_count, blue_verified, location), next_cursor.
  • user/followings — following[] (same user item shape), next_cursor, more_users.
  • trending — trends[] (name, description, context).
{
  "data": {
    "timeline": [
      {
        "type": "tweet",
        "tweet_id": "1808168603721650364",
        "screen_name": "OpenAIDevs",
        "text": "Shipping agent tooling this week.",
        "lang": "en",
        "created_at": "2026-06-30T18:04:11+0000",
        "favorites": 4821,
        "retweets": 902,
        "replies": 311,
        "quotes": 77,
        "views": 512340,
        "source": "Twitter Web App"
      }
    ],
    "next_cursor": "DAADDAABCgAB...",
    "prev_cursor": "DAABCgABCgAB..."
  },
  "credits_used": 1,
  "credits_remaining": 999
}

Guardrails

  • The search field is search, not query — this differs from some other Scavio endpoints.
  • screen_name is a handle without the leading @.
  • Every X endpoint costs 1 credit. Inform the user before paginating through many pages.
  • Never fabricate tweet ids, handles, metrics, or replies. Only return API data.
  • Surface engagement metrics as-is; do not round or invent counts.

Failure handling

  • 400 means an invalid or missing parameter (e.g. no tweet_id or screen_name) — fix and retry.
  • 401 means the API key is invalid or missing. Check SCAVIO_API_KEY.
  • 429 means rate or usage limit exceeded. Wait before retrying. See https://scavio.dev/docs/rate-limits.
  • 502 / 503 mean upstream is temporarily unavailable. Wait a few seconds before retrying.
  • If search returns no results, suggest different keywords or a different search_type.
  • If SCAVIO_API_KEY is not set, prompt the user to export it before continuing.

LangChain

pip install langchain-scavio==4.0.2
from langchain_scavio import ScavioSearchTool
tool = ScavioSearchTool(engine="x")

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

scavio-ai 的更多技能

浏览全部技能

Pull a Facebook page's profile, posts, reels and photos, one post with its comments, a single reel/video with downloadable URLs, a public group and its posts, an event, and hashtag posts. 11 endpoints, 1 credit each, structured JSON.

作者 scavio-ai3 次安装

Search the Meta Ad Library by keyword or Facebook Page id and walk full cursor pagination through every ad, with creative, run dates, platforms and political spend. 3 endpoints, 1 credit per page.

作者 scavio-ai3 次安装

Search live or SOLD eBay listings, read a listing in full, and look up a seller's profile card as structured JSON. 3 endpoints, 1 credit each. Sold-listing search is the price-research feature eBay itself hides.

作者 scavio-ai1 次安装