Twitter Send Tool
Post and interact with tweets on Twitter/X via X API v2.
How It Works
This skill provides instructions for the Twitter Send tool node. Connect the Twitter Send node to an AI Agent's input-tools handle to enable posting and interactions.
All actions use OAuth 2.0 user context with automatic token refresh on expiry (tokens last 2 hours).
twitter_send Tool
Send tweets, replies, retweets, likes, and deletions.
Schema Fields
| Field | Type | Required | Description |
|---|---|---|---|
| action | string | Yes | Action type: tweet, reply, retweet, like, unlike, delete |
| text | string | If tweet/reply | Tweet text content (max 280 characters) |
| tweet_id | string | If retweet/like/unlike/delete | Target tweet ID |
| reply_to_id | string | If reply | Tweet ID to reply to |
Actions
| Action | Required Fields | Description | Rate Limit Notes |
|---|---|---|---|
tweet | text | Post a new tweet | 200 tweets/15min (app), 300/3hr (user) |
reply | text, reply_to_id | Reply to an existing tweet | Same as tweet limits |
retweet | tweet_id | Retweet an existing tweet | 5 retweets/15min (free tier) |
like | tweet_id | Like a tweet | 200 likes/24hr (free tier) |
unlike | tweet_id | Remove like from a tweet | 50 unlikes/15min |
delete | tweet_id | Delete your own tweet | 50 deletes/15min |
Examples
Post a tweet:
json{ "action": "tweet", "text": "Hello Twitter! This is my first automated tweet." }
Reply to a tweet:
json{ "action": "reply", "text": "Thanks for sharing this!", "reply_to_id": "1234567890123456789" }
Create a thread (chain of replies): First post:
json{ "action": "tweet", "text": "Thread: Here are 3 tips for better code (1/3)" }
Then reply to the returned tweet ID for each subsequent post:
json{ "action": "reply", "text": "Tip 1: Write tests first (2/3)", "reply_to_id": "<id_from_first_tweet>" }
Retweet:
json{ "action": "retweet", "tweet_id": "1234567890123456789" }
Like a tweet:
json{ "action": "like", "tweet_id": "1234567890123456789" }
Unlike a tweet:
json{ "action": "unlike", "tweet_id": "1234567890123456789" }
Delete a tweet:
json{ "action": "delete", "tweet_id": "1234567890123456789" }
Response Format
Tweet/Reply:
json{ "success": true, "result": { "id": "1234567890123456789", "text": "Hello Twitter!" }, "execution_time": 0.45 }
Retweet:
json{ "success": true, "result": { "retweeted": true }, "execution_time": 0.3 }
Like:
json{ "success": true, "result": { "liked": true }, "execution_time": 0.25 }
Delete:
json{ "success": true, "result": { "deleted": true }, "execution_time": 0.3 }
Error Response
json{ "success": false, "error": "Tweet text is required", "execution_time": 0.01 }
Guidelines
- Character limit: Tweets are limited to 280 characters. The API will reject longer text.
- Tweet IDs: Use the numeric ID string (e.g.,
1234567890123456789). Get these from search results or user timelines. - Rate limits: X API has strict rate limits (see table above). Space out rapid actions.
- Content policy: Follow X's content policies and terms of service.
- Threading: Use reply action with
reply_to_idset to the previous tweet's ID to create threads. - Token refresh: If a 401/403 error occurs, the system automatically refreshes the OAuth token and retries.
- Retweet vs Quote: This tool only supports native retweets. For quote tweets, use
tweetaction and include the tweet URL in the text.
Common Use Cases
- Post automated updates and announcements
- Reply to mentions or specific tweets
- Like tweets matching certain criteria (found via twitter_search)
- Create tweet threads by chaining replies using returned IDs
- Engage with followers programmatically
- Delete tweets that match certain conditions
Setup Requirements
- Connect the Twitter Send node to an AI Agent's
input-toolshandle - Ensure Twitter is connected (authenticated via OAuth in Credentials Modal)
- Your X Developer account must have appropriate API access level
- Required OAuth scopes:
tweet.read,tweet.write,like.read,like.write,users.read,offline.access

