x-twitter-api

Interact with X (Twitter) API v2. Post tweets, search, engage, moderate, and analyze — all from your AI agent. Full 31-command skill for Twitter/X automation.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "x-twitter-api" with this command: npx skills add tato418/x-twitter-api/tato418-x-twitter-api-x-twitter-api

X (Twitter) API v2 skill using the authenticated user's own developer credentials (OAuth 1.0a, pay-per-use). All commands go through a single entry point: node x.js <command> [flags]. Each command has its its own doc file with the full reference for flags and behavior.

[!SETUP] Before first use, check whether ./node_modules exists. If it does NOT exist, run npm install. Then check whether ./dist/x.js exists. If it does NOT exist, run npm run build. NEVER cd into the skill directory; use relative paths or --prefix to target it without changing your working directory.

[!COMMANDS]

Core: a) me — authenticated user's own account data (profile, metrics, verification). @docs/me.md. b) search — search posts by query (last 7 days or full archive). @docs/search.md. c) get — retrieve one or more posts by ID. @docs/get.md. d) post — create a tweet, reply, or quote tweet. @docs/post.md. e) delete — delete a post owned by the authenticated user. @docs/delete.md.

Engagement: f) like — like a post by tweet ID. @docs/like.md. g) unlike — remove a like from a post. @docs/like.md. h) repost — repost (retweet) a post. @docs/repost.md. i) unrepost — remove a repost. @docs/repost.md.

Social: j) user — look up user(s) by username or ID. @docs/user.md. k) follow — follow a user by username or ID. @docs/follow.md. l) unfollow — unfollow a user. @docs/follow.md. m) followers — list a user's followers. @docs/followers.md. n) following — list accounts a user follows. @docs/followers.md.

Feed: o) timeline — your home timeline (reverse chronological). @docs/timeline.md. p) mentions — posts that mention you. @docs/mentions.md.

Bookmarks: q) bookmark — bookmark a post. @docs/bookmark.md. r) unbookmark — remove a bookmark. @docs/bookmark.md. s) bookmarks — list your bookmarks. @docs/bookmark.md.

Moderation: t) mute — mute a user. @docs/mute.md. u) unmute — unmute a user. @docs/mute.md. v) muted — list muted accounts. @docs/mute.md. w) blocked — list blocked accounts. @docs/blocked.md. x) hide-reply — hide a reply to your post. @docs/hide-reply.md.

Analytics: y) likers — users who liked a post. @docs/likers.md. z) reposters — users who reposted a post. @docs/reposters.md. aa) quotes — quote tweets of a post. @docs/quotes.md. ab) count — count posts matching a query over time. @docs/count.md. ac) reposts-of-me — reposts of your posts by others. @docs/reposts-of-me.md.

Discovery: ad) search-users — search users by query. @docs/search-users.md. ae) trending — trending topics (worldwide or personalized). @docs/trending.md.

[!PARAMETERS]

Core:

  • me: No parameters
  • search: query:string, [max_results?:number, since?:date, until?:date]
  • get: id:string | ids:string[]
  • post: text:string, [reply_to?:string, quote_id?:string]
  • delete: id:string

Engagement:

  • like: id:string
  • unlike: id:string
  • repost: id:string
  • unrepost: id:string

Social:

  • user: user:string, [expansions?:string, tweet_fields?:string, user_fields?:string]
  • follow: user:string
  • unfollow: user:string
  • followers: [user?:string, max_results?:number, pagination_token?:string]
  • following: [user?:string, max_results?:number, pagination_token?:string]

Feed:

  • timeline: [max_results?:number, pagination_token?:string]
  • mentions: [max_results?:number, pagination_token?:string]

Bookmarks:

  • bookmark: id:string
  • unbookmark: id:string
  • bookmarks: [max_results?:number, pagination_token?:string]

Moderation:

  • mute: user:string
  • unmute: user:string
  • muted: [max_results?:number, pagination_token?:string]
  • blocked: [max_results?:number, pagination_token?:string]
  • hide-reply: id:string

Analytics:

  • likers: id:string, [max_results?:number, pagination_token?:string]
  • reposters: id:string, [max_results?:number, pagination_token?:string]
  • quotes: id:string, [max_results?:number, pagination_token?:string]
  • count: query:string, [granularity?:string, start_time?:date, end_time?:date]
  • reposts-of-me: [max_results?:number, pagination_token?:string]

Discovery:

  • search-users: query:string, [max_results?:number]
  • trending: [woeid?:number]

[!OUTPUT]

All commands return JSON with standard structure:

{
  "success": boolean,
  "data": object | array | string,
  "error": string | null
}

Examples:

  • Single object: {"success": true, "data": {...}, "error": null}
  • Array response: {"success": true, "data": [...], "error": null}
  • Error response: {"success": false, "data": null, "error": "Error description"}

[!ERRORS]

Standard error codes:

  • 400 - Bad Request: Invalid parameters or malformed request
  • 401 - Unauthorized: Invalid or expired credentials
  • 403 - Forbidden: Access denied or insufficient permissions
  • 404 - Not Found: Resource does not exist
  • 429 - Too Many Requests: Rate limit exceeded
  • 500 - Internal Server Error: X API server error
  • 502 - Bad Gateway: X API unavailable
  • 503 - Service Unavailable: X API overloaded

Error handling:

  • Rate limit errors include retry-after header
  • Authentication errors require credential refresh
  • Validation errors include specific field issues

[!RATE-LIMITS]

X API v2 rate limits (OAuth 1.0a):

  • User authentication: 50 requests per 15 minutes
  • App authentication: 450 requests per 15 minutes (shared across all users)
  • POST requests (tweets, likes, etc.): 300 requests per 3 hours

Best practices:

  • Implement exponential backoff on 429 errors
  • Cache timeline and search results when possible
  • Batch requests where supported

[!CREDENTIALS]

Four OAuth 1.0a variables are REQUIRED: X_API_KEY, X_API_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET. They resolve from the first source that provides them:

a) .env.local in cwd b) .env in cwd c) .env.local in the plugin directory d) .env in the plugin directory f) Environment variables

Obtain them from the X Developer Console (Apps > Keys and tokens).

Security notes:

  • Never commit credentials to version control
  • Use .env files for local development
  • Rotate credentials if compromised

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Zeelin Twitter Web Autopost

ZeeLin Twitter/X 自动发推 + 回关 — 通过浏览器操作网页版 Twitter/X,无需 API Key。用户自行登录后,Agent 负责撰写推文并发布、以及一键回关粉丝(关注者列表 + 认证关注者列表)。支持定时发推(openclaw cron)。Keywords: Zeelin, ZeeLin...

Registry SourceRecently Updated
1305
Profile unavailable
Automation

Crawl From X

X/Twitter 帖子抓取工具。管理关注用户列表,自动抓取当天最新帖子,导出 Markdown。

Registry SourceRecently Updated
0297
Profile unavailable
Automation

Edison Autopilot Post X

Automatically generates and posts 5 persona-matched tweets daily to X using GPT-5.1, with repetition checks, content filters, and Telegram alerts.

Registry SourceRecently Updated
0119
Profile unavailable