opentwitter
Twitter/X and meme evidence data via the 6551 API. Supports user profiles, tweet search, user tweets, follower events, deleted tweets, KOL followers, meme token evidence, and meme …
infra403
@infra403
Install
$ openclaw skills install @infra403/opentwitter-mcpTwitter/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
Meme Evidence Operations
Get Meme Token Evidence
Get the initial thesis and callout evidence for a meme token from the fomo/pump feeds.
curl -s -X POST "https://ai.6551.io/open/meme/token-evidence" \
-H "Authorization: Bearer $OPENNEWS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"coin": "GADj8JQ8iQLQD5S6ScvncJWmGs7PkwHnXsBrEUns6ue5", "limit": 100}'
Parameters: coin, kind, platform, handle, user, since, and limit.
The default kind is thesis,callout; limit is capped at 1000.
Get Meme Activity
Get later statements and buy/sell evidence for meme tokens.
curl -s -X POST "https://ai.6551.io/open/meme/activity" \
-H "Authorization: Bearer $OPENNEWS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"coin": "GADj8JQ8iQLQD5S6ScvncJWmGs7PkwHnXsBrEUns6ue5", "kind": "trade", "limit": 100}'
Parameters: coin, handle, user, wallet, kind, platform, since, and limit.
kind=trade is an alias for buy and sell.
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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
maxResults | integer | 20 | Max tweets (1-100) |
product | string | "Latest" | "Latest" or "Top" |
includeReplies | boolean | false | Include reply tweets |
includeRetweets | boolean | false | Include retweets |
4. Search Twitter
Search tweets with various filters.
Search with query:
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $OPENNEWS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "from:VitalikButerin bitcoin -filter:replies", "maxResults": 20, "product": "Top"}'
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
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | - | Complete search string; overrides other filters |
keywords | string | - | Search keywords |
fromUser | string | - | Tweets from specific user |
toUser | string | - | Tweets to specific user |
mentionUser | string | - | Tweets mentioning user |
hashtag | string | - | Filter by hashtag (without #) |
excludeReplies | boolean | false | Exclude reply tweets |
excludeRetweets | boolean | false | Exclude retweets |
minLikes | integer | 0 | Minimum likes threshold |
minRetweets | integer | 0 | Minimum retweets threshold |
minReplies | integer | 0 | Minimum replies threshold |
sinceDate | string | - | Start date (YYYY-MM-DD) |
untilDate | string | - | End date (YYYY-MM-DD) |
lang | string | - | Language code (e.g. "en", "zh") |
product | string | "Top" | "Top" or "Latest" |
maxResults | integer | 20 | Max tweets (1-100) |
If query is set, it is passed through as-is and the other search fields are ignored.
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}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
isFollow | boolean | true | true=new followers, false=unfollowers |
maxResults | integer | 20 | Max 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}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
maxResults | integer | 20 | Max 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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter 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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter 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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
twId | string | required | Twitter 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}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter tweet ID (numeric) |
maxResults | integer | 20 | Max 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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
id | string | required | Twitter tweet ID (numeric) |
cursor | string | - | 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", "groupName": "AI", "remark": "Custom note", "newTweetBol": true, "newFlwBol": false}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter username (without @) |
groupName | string | - | Watch group name; an existing matching group is reused, otherwise it is created |
remark | string | - | Custom note for this watch entry |
newTweetBol | boolean | true (server) | Monitor new tweets |
newFlwBol | boolean | false (server) | Monitor new followers |
newUnFlwBol | boolean | false (server) | Monitor unfollowers |
newTweetReplyBol | boolean | true (server) | Monitor tweet replies |
newTweetQuoteBol | boolean | true (server) | Monitor quote tweets |
newRetweetBol | boolean | true (server) | Monitor retweets |
updateNameBol | boolean | true (server) | Monitor username changes |
updateDescBol | boolean | true (server) | Monitor bio/description changes |
updateAvatarBol | boolean | true (server) | Monitor profile picture changes |
updateBannerBol | boolean | true (server) | Monitor banner image changes |
newCaBol | boolean | false (server) | Monitor CA (contract address) events |
tweetToppingBol | boolean | false (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"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
username | string | required | Twitter 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:
```json
{
"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 followerNEW_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 pinnedDELETE- Tweet deletedSYSTEM- System eventTRANSLATE- Tweet translationCA_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}'
Query Search
curl -s -X POST "https://ai.6551.io/open/twitter_search" \
-H "Authorization: Bearer $OPENNEWS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "from:VitalikButerin bitcoin -filter:replies", "maxResults": 20, "product": "Top"}'
Notes
- Get your API token at http://app.newsliquid.com/mcp
- Rate limits apply; max 100 results per request
- Twitter usernames should not include the @ symbol
Top skills in this category
Playwright (Automation + MCP + Scraper)
@ivangdavilaAutomates, tests, and debugs browsers with Playwright: locators, auto-waiting, traces, CI runs, and MCP browser control. Use when a test is flaky, times out, or fails only in CI or headless; when a locator matches multiple elements or the wrong one (strict mode violation); when clicks need force, waits become sleeps, or networkidle never settles; for storageState and login setup, request mocking and HAR replay, uploads and downloads, iframes and shadow DOM, popups and dialogs, screenshot diffs that change per machine, trace and report artifacts, sharding a slow suite, device and permission emulation, accessibility checks, driving a real browser through Playwright MCP, extracting data from JS-rendered pages, or porting a Cypress, Puppeteer, or Selenium suite to Playwright. Not for maintaining an existing Cypress or Puppeteer suite (cypress, puppeteer) or for work a plain HTTP request answers (http).
Scrapling Official Skill
@d4vinciScrape web pages using Scrapling with anti-bot bypass (like Cloudflare Turnstile), stealth headless browsing, spiders framework, adaptive scraping, and JavaScript rendering. Use when asked to scrape, crawl, or extract data from websites; web_fetch fails; the site has anti-bot protections; write Pyth
Agent Browser Core
@codedao12OpenClaw skill for the agent-browser CLI (Rust-based with Node.js fallback) enabling AI-friendly web automation with snapshots, refs, and structured commands.
Polymarket
@mvanhornQuery and trade on Polymarket prediction markets — check odds, trending markets, search events, view order books, place trades, and manage positions. Now ava...
Gifgrep
@steipeteSearch GIF providers with CLI/TUI, download results, and extract stills/sheets.