x-api — for Claude Code everything-claude-code, official, for Claude Code, ide skills, Twitter API integration, OAuth 2.0 Bearer Token, OAuth 1.0a authentication, Twitter posting, Timeline reading, Search API, Claude Code

Verified
v1.0.0
GitHub

About this Skill

Perfect for Social Media Agents needing advanced X/Twitter API integration for posting, reading, and analytics. x-api is a Twitter API integration skill for posting, reading, searching, and analytics, utilizing OAuth auth patterns and rate limits for seamless interactions.

Features

Post tweets using OAuth 1.0a
Read timelines with OAuth 2.0 Bearer Token
Search Twitter content programmatically
Build Twitter integrations and bots
Track analytics and engagement

# Core Topics

affaan-m affaan-m
[116.8k]
[15188]
Updated: 3/30/2026

Agent Capability Analysis

The x-api skill by affaan-m is an open-source official AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance. Optimized for for Claude Code, Twitter API integration, OAuth 2.0 Bearer Token.

Ideal Agent Persona

Perfect for Social Media Agents needing advanced X/Twitter API integration for posting, reading, and analytics.

Core Value

Empowers agents to interact with X programmatically using OAuth 2.0 Bearer Token and OAuth 1.0a, enabling features like posting tweets, threads, reading timelines, search, and analytics, all while handling rate limits and platform-native content posting.

Capabilities Granted for x-api

Posting tweets and threads programmatically using OAuth 1.0a
Reading user timelines and mentions using OAuth 2.0 Bearer Token
Searching X for content, trends, or conversations with specific query parameters
Building X integrations or bots that require analytics and engagement tracking

! Prerequisites & Limits

  • Requires X Bearer Token for read-heavy operations and search
  • Needs X API Key, API Secret, Access Token, and Access Secret for OAuth 1.0a operations like posting tweets
  • Subject to X API rate limits
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

x-api

Unlock Twitter API integration with x-api skill for Claude Code, enabling developers to post tweets, threads, and more programmatically. Discover how to...

SKILL.md
Readonly

X API

Programmatic interaction with X (Twitter) for posting, reading, searching, and analytics.

When to Activate

  • User wants to post tweets or threads programmatically
  • Reading timeline, mentions, or user data from X
  • Searching X for content, trends, or conversations
  • Building X integrations or bots
  • Analytics and engagement tracking
  • User says "post to X", "tweet", "X API", or "Twitter API"

Authentication

OAuth 2.0 Bearer Token (App-Only)

Best for: read-heavy operations, search, public data.

bash
1# Environment setup 2export X_BEARER_TOKEN="your-bearer-token"
python
1import os 2import requests 3 4bearer = os.environ["X_BEARER_TOKEN"] 5headers = {"Authorization": f"Bearer {bearer}"} 6 7# Search recent tweets 8resp = requests.get( 9 "https://api.x.com/2/tweets/search/recent", 10 headers=headers, 11 params={"query": "claude code", "max_results": 10} 12) 13tweets = resp.json()

OAuth 1.0a (User Context)

Required for: posting tweets, managing account, DMs.

bash
1# Environment setup — source before use 2export X_API_KEY="your-api-key" 3export X_API_SECRET="your-api-secret" 4export X_ACCESS_TOKEN="your-access-token" 5export X_ACCESS_SECRET="your-access-secret"
python
1import os 2from requests_oauthlib import OAuth1Session 3 4oauth = OAuth1Session( 5 os.environ["X_API_KEY"], 6 client_secret=os.environ["X_API_SECRET"], 7 resource_owner_key=os.environ["X_ACCESS_TOKEN"], 8 resource_owner_secret=os.environ["X_ACCESS_SECRET"], 9)

Core Operations

Post a Tweet

python
1resp = oauth.post( 2 "https://api.x.com/2/tweets", 3 json={"text": "Hello from Claude Code"} 4) 5resp.raise_for_status() 6tweet_id = resp.json()["data"]["id"]

Post a Thread

python
1def post_thread(oauth, tweets: list[str]) -> list[str]: 2 ids = [] 3 reply_to = None 4 for text in tweets: 5 payload = {"text": text} 6 if reply_to: 7 payload["reply"] = {"in_reply_to_tweet_id": reply_to} 8 resp = oauth.post("https://api.x.com/2/tweets", json=payload) 9 tweet_id = resp.json()["data"]["id"] 10 ids.append(tweet_id) 11 reply_to = tweet_id 12 return ids

Read User Timeline

python
1resp = requests.get( 2 f"https://api.x.com/2/users/{user_id}/tweets", 3 headers=headers, 4 params={ 5 "max_results": 10, 6 "tweet.fields": "created_at,public_metrics", 7 } 8)

Search Tweets

python
1resp = requests.get( 2 "https://api.x.com/2/tweets/search/recent", 3 headers=headers, 4 params={ 5 "query": "from:affaanmustafa -is:retweet", 6 "max_results": 10, 7 "tweet.fields": "public_metrics,created_at", 8 } 9)

Get User by Username

python
1resp = requests.get( 2 "https://api.x.com/2/users/by/username/affaanmustafa", 3 headers=headers, 4 params={"user.fields": "public_metrics,description,created_at"} 5)

Upload Media and Post

python
1# Media upload uses v1.1 endpoint 2 3# Step 1: Upload media 4media_resp = oauth.post( 5 "https://upload.twitter.com/1.1/media/upload.json", 6 files={"media": open("image.png", "rb")} 7) 8media_id = media_resp.json()["media_id_string"] 9 10# Step 2: Post with media 11resp = oauth.post( 12 "https://api.x.com/2/tweets", 13 json={"text": "Check this out", "media": {"media_ids": [media_id]}} 14)

Rate Limits

X API rate limits vary by endpoint, auth method, and account tier, and they change over time. Always:

  • Check the current X developer docs before hardcoding assumptions
  • Read x-rate-limit-remaining and x-rate-limit-reset headers at runtime
  • Back off automatically instead of relying on static tables in code
python
1import time 2 3remaining = int(resp.headers.get("x-rate-limit-remaining", 0)) 4if remaining < 5: 5 reset = int(resp.headers.get("x-rate-limit-reset", 0)) 6 wait = max(0, reset - int(time.time())) 7 print(f"Rate limit approaching. Resets in {wait}s")

Error Handling

python
1resp = oauth.post("https://api.x.com/2/tweets", json={"text": content}) 2if resp.status_code == 201: 3 return resp.json()["data"]["id"] 4elif resp.status_code == 429: 5 reset = int(resp.headers["x-rate-limit-reset"]) 6 raise Exception(f"Rate limited. Resets at {reset}") 7elif resp.status_code == 403: 8 raise Exception(f"Forbidden: {resp.json().get('detail', 'check permissions')}") 9else: 10 raise Exception(f"X API error {resp.status_code}: {resp.text}")

Security

  • Never hardcode tokens. Use environment variables or .env files.
  • Never commit .env files. Add to .gitignore.
  • Rotate tokens if exposed. Regenerate at developer.x.com.
  • Use read-only tokens when write access is not needed.
  • Store OAuth secrets securely — not in source code or logs.

Integration with Content Engine

Use content-engine skill to generate platform-native content, then post via X API:

  1. Generate content with content-engine (X platform format)
  2. Validate length (280 chars for single tweet)
  3. Post via X API using patterns above
  4. Track engagement via public_metrics
  • content-engine — Generate platform-native content for X
  • crosspost — Distribute content across X, LinkedIn, and other platforms

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is x-api?

Perfect for Social Media Agents needing advanced X/Twitter API integration for posting, reading, and analytics. x-api is a Twitter API integration skill for posting, reading, searching, and analytics, utilizing OAuth auth patterns and rate limits for seamless interactions.

How do I install x-api?

Run the command: npx killer-skills add affaan-m/everything-claude-code/x-api. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for x-api?

Key use cases include: Posting tweets and threads programmatically using OAuth 1.0a, Reading user timelines and mentions using OAuth 2.0 Bearer Token, Searching X for content, trends, or conversations with specific query parameters, Building X integrations or bots that require analytics and engagement tracking.

Which IDEs are compatible with x-api?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for x-api?

Requires X Bearer Token for read-heavy operations and search. Needs X API Key, API Secret, Access Token, and Access Secret for OAuth 1.0a operations like posting tweets. Subject to X API rate limits.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add affaan-m/everything-claude-code/x-api. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use x-api immediately in the current project.

Related Skills

Looking for an alternative to x-api or another official skill for your workflow? Explore these related open-source skills.

View All

flags

Logo of facebook
facebook

Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.

243.6k
0
Developer

extract-errors

Logo of facebook
facebook

Use when adding new error messages to React, or seeing unknown error code warnings.

243.6k
0
Developer

fix

Logo of facebook
facebook

Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.

243.6k
0
Developer

flow

Logo of facebook
facebook

Use when you need to run Flow type checking, or when seeing Flow type errors in React code.

243.6k
0
Developer