Twitter/X Management Expert Knowledge
Twitter API v2 Reference
Authentication
Twitter API v2 uses OAuth 2.0 Bearer Token for app-level access and OAuth 1.0a for user-level actions.
Bearer Token (read-only access + tweet creation):
Authorization: Bearer $TWITTER_BEARER_TOKEN
Environment variable: TWITTER_BEARER_TOKEN
Core Endpoints
Get authenticated user info:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
"https://api.twitter.com/2/users/me"
Response: {"data": {"id": "123", "name": "User", "username": "user"}}
Post a tweet:
curl -s -X POST "https://api.twitter.com/2/tweets"
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
-H "Content-Type: application/json"
-d '{"text": "Hello world!"}'
Response: {"data": {"id": "tweet_id", "text": "Hello world!"}}
Post a reply:
curl -s -X POST "https://api.twitter.com/2/tweets"
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
-H "Content-Type: application/json"
-d '{"text": "Great point!", "reply": {"in_reply_to_tweet_id": "PARENT_TWEET_ID"}}'
Post a thread (chain of replies to yourself):
-
Post first tweet → get tweet_id
-
Post second tweet with reply.in_reply_to_tweet_id = first tweet_id
-
Repeat for each tweet in thread
Delete a tweet:
curl -s -X DELETE "https://api.twitter.com/2/tweets/TWEET_ID"
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
Like a tweet:
curl -s -X POST "https://api.twitter.com/2/users/USER_ID/likes"
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
-H "Content-Type: application/json"
-d '{"tweet_id": "TARGET_TWEET_ID"}'
Get mentions:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
"https://api.twitter.com/2/users/USER_ID/mentions?max_results=10&tweet.fields=public_metrics,created_at,author_id"
Search recent tweets:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
"https://api.twitter.com/2/tweets/search/recent?query=QUERY&max_results=10&tweet.fields=public_metrics"
Get tweet metrics:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
"https://api.twitter.com/2/tweets?ids=ID1,ID2,ID3&tweet.fields=public_metrics"
Response includes: retweet_count , reply_count , like_count , quote_count , bookmark_count , impression_count
Rate Limits
Endpoint Limit Window
POST /tweets 300 tweets 3 hours
DELETE /tweets 50 deletes 15 minutes
POST /likes 50 likes 15 minutes
GET /mentions 180 requests 15 minutes
GET /search/recent 180 requests 15 minutes
Always check response headers:
-
x-rate-limit-limit : Total requests allowed
-
x-rate-limit-remaining : Requests remaining
-
x-rate-limit-reset : Unix timestamp when limit resets
Content Strategy Framework
Content Pillars
Define 3-5 core topics ("pillars") that all content revolves around:
Example for a tech founder: Pillar 1: AI & Machine Learning (40% of content) Pillar 2: Startup Building (30% of content) Pillar 3: Engineering Culture (20% of content) Pillar 4: Personal Growth (10% of content)
Content Mix (7 types)
Type Frequency Purpose Template
Hot take 2-3/week Engagement "Unpopular opinion: [contrarian view]"
Thread 1-2/week Authority "I spent X hours researching Y. Here's what I found:"
Tip/How-to 2-3/week Value "How to [solve problem] in [N] steps:"
Question 1-2/week Engagement "[Interesting question]? I'll go first:"
Curated share 1-2/week Curation "This [article/tool/repo] is a game changer for [audience]:"
Story 1/week Connection "3 years ago I [relatable experience]. Here's what happened:"
Data/Stat 1/week Authority "[Surprising statistic]. Here's why it matters:"
Optimal Posting Times (UTC-based, adjust to audience timezone)
Day Best Times Why
Monday 8-10 AM Start of work week, checking feeds
Tuesday 10 AM, 1 PM Peak engagement day
Wednesday 9 AM, 12 PM Mid-week focus
Thursday 10 AM, 2 PM Second-highest engagement day
Friday 9-11 AM Morning only, engagement drops PM
Saturday 10 AM Casual browsing
Sunday 4-6 PM Pre-work-week planning
Tweet Writing Best Practices
The Hook (first line is everything)
Hooks that work:
-
Contrarian: "Most people think X. They're wrong."
-
Number: "I analyzed 500 [things]. Here's what I found:"
-
Question: "Why do 90% of [things] fail?"
-
Story: "In 2019, I almost [dramatic thing]."
-
How-to: "How to [desirable outcome] without [common pain]:"
-
List: "5 [things] I wish I knew before [milestone]:"
-
Confession: "I used to believe [common thing]. Then I learned..."
Writing Rules
-
One idea per tweet — don't try to cover everything
-
Front-load value — the hook must deliver or promise value
-
Use line breaks — no wall of text, 1-2 sentences per line
-
280 character limit — every word must earn its place
-
Active voice — "We shipped X" not "X was shipped by us"
-
Specific > vague — "3x faster" not "much faster"
-
End with a call to action — "Agree? RT" or "What would you add?"
Thread Structure
Tweet 1 (HOOK): Compelling opening that makes people click "Show this thread"
- Must stand alone as a great tweet
- End with "A thread:" or "Here's what I found:"
Tweet 2-N (BODY): One key point per tweet
- Number them: "1/" or use emoji bullets
- Each tweet should add value independently
- Include specific examples, data, or stories
Tweet N+1 (CLOSING): Summary + call to action
- Restate the key takeaway
- Ask for engagement: "Which resonated most?"
- Self-reference: "If this was useful, follow @handle for more"
Hashtag Strategy
-
0-2 hashtags per tweet (more looks spammy)
-
Use hashtags for discovery, not decoration
-
Mix broad (#AI) and specific (#LangChain)
-
Never use hashtags in threads (except maybe tweet 1)
-
Research trending hashtags in your niche before using them
Engagement Playbook
Replying to Mentions
Rules:
-
Respond within 2 hours during engagement_hours
-
Add value — don't just say "thanks!" — expand on their point
-
Ask a follow-up question — drives conversation
-
Be genuine — match their energy and tone
-
Never argue — if someone is hostile, ignore or block
Reply templates:
-
Agreement: "Great point! I'd also add [related insight]"
-
Question: "Interesting question. The short answer is [X], but [nuance]"
-
Disagreement: "I see it differently — [respectful counterpoint]. What's your experience?"
-
Gratitude: "Appreciate you sharing this! [Specific thing you liked about their tweet]"
When NOT to Engage
-
Trolls or obviously bad-faith arguments
-
Political flame wars (unless that's your content pillar)
-
Personal attacks (block immediately)
-
Spam or bot accounts
-
Tweets that could create legal liability
Auto-Like Strategy
Like tweets from:
-
People who regularly engage with your content (reciprocity)
-
Influencers in your niche (visibility)
-
Thoughtful content related to your pillars (curation signal)
-
Replies to your tweets (encourages more replies)
Do NOT auto-like:
-
Controversial or political content
-
Content you haven't actually read
-
Spam or low-quality threads
-
Competitor criticism (looks petty)
Content Calendar Template
WEEK OF [DATE]
Monday:
- 8 AM: [Tip/How-to] about [Pillar 1]
- 12 PM: [Curated share] related to [Pillar 2]
Tuesday:
- 10 AM: [Thread] deep dive on [Pillar 1]
- 2 PM: [Hot take] about [trending topic]
Wednesday:
- 9 AM: [Question] to audience about [Pillar 3]
- 1 PM: [Data/Stat] about [Pillar 2]
Thursday:
- 10 AM: [Story] about [personal experience in Pillar 3]
- 3 PM: [Tip/How-to] about [Pillar 1]
Friday:
- 9 AM: [Hot take] about [week's trending topic]
- 11 AM: [Curated share] — best thing I read this week
Performance Metrics
Key Metrics
Metric What It Measures Good Benchmark
Impressions How many people saw the tweet Varies by follower count
Engagement rate (likes+RTs+replies)/impressions
2% is good, >5% is great
Reply rate replies/impressions
0.5% is good
Retweet rate RTs/impressions
1% is good
Profile visits People checking your profile after tweet Track trend
Follower growth Net new followers per period Track trend
Engagement Rate Formula
engagement_rate = (likes + retweets + replies + quotes) / impressions * 100
Example: 50 likes + 10 RTs + 5 replies + 2 quotes = 67 engagements 67 / 2000 impressions = 3.35% engagement rate
Content Performance Analysis
Track which content types and topics perform best:
| Content Type | Avg Impressions | Avg Engagement Rate | Best Performing |
|---|---|---|---|
| Hot take | 2500 | 4.2% | "Unpopular opinion: ..." |
| Thread | 5000 | 3.1% | "I analyzed 500 ..." |
| Tip | 1800 | 5.5% | "How to ... in 3 steps" |
Use this data to optimize future content mix.
Brand Voice Guide
Voice Dimensions
Dimension Range Description
Formal ↔ Casual 1-5 1=corporate, 5=texting a friend
Serious ↔ Humorous 1-5 1=all business, 5=comedy account
Reserved ↔ Bold 1-5 1=diplomatic, 5=no-filter
General ↔ Technical 1-5 1=anyone can understand, 5=deep expert
Consistency Rules
-
Use the same voice across ALL tweets (hot takes and how-tos)
-
Develop 3-5 "signature phrases" you reuse naturally
-
If the brand voice says "casual," don't suddenly write a formal thread
-
Read tweets aloud — does it sound like the same person?
Safety & Compliance
Content Guidelines
NEVER post:
-
Discriminatory content (race, gender, religion, sexuality, disability)
-
Defamatory claims about real people or companies
-
Private or confidential information
-
Threats, harassment, or incitement to violence
-
Impersonation of other accounts
-
Misleading claims presented as fact
-
Content that violates Twitter Terms of Service
Approval Mode Queue Format
[ { "id": "q_001", "content": "Tweet text here", "type": "hot_take", "pillar": "AI", "scheduled_for": "2025-01-15T10:00:00Z", "created": "2025-01-14T20:00:00Z", "status": "pending", "notes": "Based on trending discussion about LLM pricing" } ]
Preview file for human review:
Tweet Queue Preview
Generated: YYYY-MM-DD
Pending Tweets (N total)
1. [Hot Take] — Scheduled: Mon 10 AM
Tweet text here
Notes: Based on trending discussion about LLM pricing Pillar: AI | Status: Pending approval
2. [Thread] — Scheduled: Tue 10 AM
Tweet 1/5: Hook text here Tweet 2/5: Point one ...
Notes: Deep dive on new benchmark results Pillar: AI | Status: Pending approval
Risk Assessment
Before posting, evaluate each tweet:
-
Could this be misinterpreted? → Rephrase for clarity
-
Does this punch down? → Don't post
-
Would you be comfortable seeing this attributed to the user in a news article? → If no, don't post
-
Is this verifiably true? → If not sure, add hedging language or don't post