opentwitter

Twitter/X data via the 6551 API. Supports user profiles, tweet search, user tweets, follower events, deleted tweets, and KOL followers.

INSTALLATION
npx skills add https://github.com/6551team/opentwitter-mcp --skill opentwitter
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Twitter/X Data Skill

Query Twitter/X data from the 6551 platform REST API. All endpoints require a Bearer token via $OPENNEWS_TOKEN.

Get your token: http://app.newsliquid.com/mcp

Base URL: https://ai.6551.io

Authentication

All requests require the header:

Authorization: Bearer $OPENNEWS_TOKEN

Twitter Operations

1. Get Twitter User Info

Get user profile by username.

curl -s -X POST "https://ai.6551.io/open/twitter_user_info" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk"}'

2. Get Twitter User by ID

Get user profile by numeric ID.

curl -s -X POST "https://ai.6551.io/open/twitter_user_by_id" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"userId": "44196397"}'

3. Get User Tweets

Get recent tweets from a user.

curl -s -X POST "https://ai.6551.io/open/twitter_user_tweets" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk", "maxResults": 20, "product": "Latest"}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username (without @)
maxResultsinteger20Max tweets (1-100)
productstring"Latest""Latest" or "Top"
includeRepliesbooleanfalseInclude reply tweets
includeRetweetsbooleanfalseInclude retweets

4. Search Twitter

Search tweets with various filters.

curl -s -X POST "https://ai.6551.io/open/twitter_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"keywords": "bitcoin", "maxResults": 20, "product": "Top"}'

Search from specific user:

curl -s -X POST "https://ai.6551.io/open/twitter_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"fromUser": "VitalikButerin", "maxResults": 20}'

Search by hashtag:

curl -s -X POST "https://ai.6551.io/open/twitter_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"hashtag": "crypto", "minLikes": 100, "maxResults": 20}'

Twitter Search Parameters

ParameterTypeDefaultDescription
keywordsstring-Search keywords
fromUserstring-Tweets from specific user
toUserstring-Tweets to specific user
mentionUserstring-Tweets mentioning user
hashtagstring-Filter by hashtag (without #)
excludeRepliesbooleanfalseExclude reply tweets
excludeRetweetsbooleanfalseExclude retweets
minLikesinteger0Minimum likes threshold
minRetweetsinteger0Minimum retweets threshold
minRepliesinteger0Minimum replies threshold
sinceDatestring-Start date (YYYY-MM-DD)
untilDatestring-End date (YYYY-MM-DD)
langstring-Language code (e.g. "en", "zh")
productstring"Top""Top" or "Latest"
maxResultsinteger20Max tweets (1-100)

5. Get Follower Events

Get new followers or unfollowers for a user.

# Get new followers

curl -s -X POST "https://ai.6551.io/open/twitter_follower_events" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk", "isFollow": true, "maxResults": 20}'

# Get unfollowers

curl -s -X POST "https://ai.6551.io/open/twitter_follower_events" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk", "isFollow": false, "maxResults": 20}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username (without @)
isFollowbooleantruetrue=new followers, false=unfollowers
maxResultsinteger20Max events (1-100)

6. Get Deleted Tweets

Get deleted tweets from a user.

curl -s -X POST "https://ai.6551.io/open/twitter_deleted_tweets" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk", "maxResults": 20}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username (without @)
maxResultsinteger20Max tweets (1-100)

7. Get KOL Followers

Get which KOLs (Key Opinion Leaders) are following a user.

curl -s -X POST "https://ai.6551.io/open/twitter_kol_followers" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk"}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username (without @)

8. Get Twitter Article by ID

Get Twitter article by ID.

curl -s -X POST "https://ai.6551.io/open/twitter_article_by_id" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"id": "article_id"}'
ParameterTypeDefaultDescription
idstringrequiredTwitter article ID

9. Get Tweet by ID

Get a specific tweet by its ID, including nested reply/quote tweets.

This endpoint retrieves a tweet by ID and automatically fetches any tweets it replies to or quotes, providing complete context.

curl -s -X POST "https://ai.6551.io/open/twitter_tweet_by_id" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"twId": "2030318958512164966"}'
ParameterTypeDefaultDescription
twIdstringrequiredTwitter tweet ID (numeric)

Response includes:

  • Main tweet data
  • replyStatus: The tweet being replied to (if applicable)
  • quotedStatus: The tweet being quoted (if applicable)

10. Get Quote Tweets by ID

Get tweets that quote a specific tweet.

curl -s -X POST "https://ai.6551.io/open/twitter_quote_tweets_by_id" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"id": "2030318958512164966", "maxResults": 20}'
ParameterTypeDefaultDescription
idstringrequiredTwitter tweet ID (numeric)
maxResultsinteger20Max tweets (1-100)

11. Get Retweet Users by ID

Get users who retweeted a specific tweet.

curl -s -X POST "https://ai.6551.io/open/twitter_retweet_users_by_id" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"id": "2030318958512164966"}'
ParameterTypeDefaultDescription
idstringrequiredTwitter tweet ID (numeric)
cursorstring-Pagination cursor for next page

12. Get Twitter Watch List

Get all Twitter monitoring users for the current user.

curl -s -X POST "https://ai.6551.io/open/twitter_watch" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{}'

13. Add Twitter Watch

Add a Twitter user to monitoring list.

curl -s -X POST "https://ai.6551.io/open/twitter_watch_add" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk", "newTweetBol": true, "newFlwBol": false}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username (without @)
newTweetBolbooleantrue (server)Monitor new tweets
newFlwBolbooleanfalse (server)Monitor new followers
newUnFlwBolbooleanfalse (server)Monitor unfollowers
newTweetReplyBolbooleantrue (server)Monitor tweet replies
newTweetQuoteBolbooleantrue (server)Monitor quote tweets
newRetweetBolbooleantrue (server)Monitor retweets
updateNameBolbooleantrue (server)Monitor username changes
updateDescBolbooleantrue (server)Monitor bio/description changes
updateAvatarBolbooleantrue (server)Monitor profile picture changes
updateBannerBolbooleantrue (server)Monitor banner image changes
newCaBolbooleanfalse (server)Monitor CA (contract address) events
tweetToppingBolbooleanfalse (server)Monitor tweet pinning events

14. Delete Twitter Watch

Delete a Twitter user from monitoring list by username.

curl -s -X POST "https://ai.6551.io/open/twitter_watch_delete" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"username": "elonmusk"}'
ParameterTypeDefaultDescription
usernamestringrequiredTwitter username to delete (without @)

WebSocket Real-time Subscriptions

Endpoint: wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN

Subscribe to real-time events from your monitored Twitter accounts.

Heartbeat

To keep the connection alive, the client can send ping, and the server responds with pong.

Subscribe to Twitter Events

{

  "jsonrpc": "2.0",

  "id": 1,

  "method": "twitter.subscribe"

}

Response:

{

  "jsonrpc": "2.0",

  "id": 1,

  "result": {

    "success": true

  }

}

Unsubscribe

{

  "jsonrpc": "2.0",

  "id": 2,

  "method": "twitter.unsubscribe"

}

Server Push - Twitter Event

When a monitored account has activity, the server pushes:

{

  "jsonrpc": "2.0",

  "method": "twitter.event",

  "params": {

    "id": 123456,

    "twAccount": "elonmusk",

    "twUserName": "Elon Musk",

    "profileUrl": "https://twitter.com/elonmusk",

    "eventType": "NEW_TWEET",

    "content": "...",

    "ca": "0x1234...",

    "remark": "Custom note",

    "createdAt": "2026-03-06T10:00:00Z"

  }

}

Note: The content field structure varies by event type (see below).

**Event Types and Content Structure**:

#### Tweet Events

- `NEW_TWEET` - New tweet posted

- `NEW_TWEET_REPLY` - New reply tweet

- `NEW_TWEET_QUOTE` - New quote tweet

- `NEW_RETWEET` - Retweeted

- `CA` - Tweet with CA address

Content structure for tweet events:

{

"id": "1234567890",

"text": "Tweet content...",

"createdAt": "2026-03-06T10:00:00Z",

"language": "en",

"retweetCount": 100,

"favoriteCount": 500,

"replyCount": 20,

"quoteCount": 10,

"viewCount": 10000,

"userScreenName": "elonmusk",

"userName": "Elon Musk",

"userIdStr": "44196397",

"userFollowers": 170000000,

"userVerified": true,

"conversationId": "1234567890",

"isReply": false,

"isQuote": false,

"hashtags": ["crypto", "bitcoin"],

"media": [

{

"type": "photo",

"url": "https://...",

"thumbUrl": "https://..."

}

],

"urls": [

{

"url": "https://...",

"expandedUrl": "https://...",

"displayUrl": "example.com"

}

],

"mentions": [

{

"username": "VitalikButerin",

"name": "Vitalik Buterin"

}

]

}


#### Follower Events

- `NEW_FOLLOWER` - New follower

- `NEW_UNFOLLOWER` - Unfollower event

Content structure for follower events (array):

[

{

"id": 123,

"twId": 44196397,

"twAccount": "elonmusk",

"twUserName": "Elon Musk",

"twUserLabel": "Verified",

"description": "User bio...",

"profileUrl": "https://...",

"bannerUrl": "https://...",

"followerCount": 170000000,

"friendCount": 500,

"createdAt": "2026-03-06T10:00:00Z"

}

]


#### Profile Update Events

- `UPDATE_NAME` - Username changed (content: new name string)

- `UPDATE_DESCRIPTION` - Bio updated (content: new description string)

- `UPDATE_AVATAR` - Profile picture changed (content: new avatar URL string)

- `UPDATE_BANNER` - Banner image changed (content: new banner URL string)

#### Other Events

- `TWEET_TOPPING` - Tweet pinned

- `DELETE` - Tweet deleted

- `SYSTEM` - System event

- `TRANSLATE` - Tweet translation

- `CA_CREATE` - CA token created

## Data Structures

### Twitter User

{

"userId": "44196397",

"screenName": "elonmusk",

"name": "Elon Musk",

"description": "...",

"followersCount": 170000000,

"friendsCount": 500,

"statusesCount": 30000,

"verified": true

}


### Tweet

{

"id": "1234567890",

"text": "Tweet content...",

"createdAt": "2024-02-20T12:00:00Z",

"retweetCount": 1000,

"favoriteCount": 5000,

"replyCount": 200,

"userScreenName": "elonmusk",

"hashtags": ["crypto", "bitcoin"],

"urls": [{"url": "https://..."}]

}


## Common Workflows

### Crypto Twitter KOL Tweets

curl -s -X POST "https://ai.6551.io/open/twitter_user_tweets" \

-H "Authorization: Bearer $OPENNEWS_TOKEN" \

-H "Content-Type: application/json" \

-d '{"username": "VitalikButerin", "maxResults": 10}'


### Trending Crypto Tweets

curl -s -X POST "https://ai.6551.io/open/twitter_search" \

-H "Authorization: Bearer $OPENNEWS_TOKEN" \

-H "Content-Type: application/json" \

-d '{"keywords": "bitcoin", "minLikes": 1000, "product": "Top", "maxResults": 20}'

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card