Crypto Twitter Tracker avatar

Crypto Twitter Tracker

Pricing

Pay per event + usage

Go to Apify Store
Crypto Twitter Tracker

Crypto Twitter Tracker

Stream real-time Twitter events from 1000+ market-moving accounts, including crypto VCs, traders, tech leaders & news outlets. Get instant social signals and market sentiment via SSE to detect alpha and inform trading strategies. The ultimate tool for real-time crypto intelligence.

Pricing

Pay per event + usage

Rating

4.1

(5)

Developer

Muhammet Akkurt

Muhammet Akkurt

Maintained by Community

Actor stats

5

Bookmarked

114

Total users

8

Monthly active users

0.24 hours

Issues response

10 days ago

Last modified

Share

Crypto Twitter Tracker - Real-Time Twitter Event Streaming

Crypto Twitter Tracker - Real-Time Twitter Event Streaming

A high-performance Apify Standby Actor that streams real-time Twitter events from 1000+ market-moving accounts, including top crypto personalities, news outlets, and tech leaders. Track tweets, profile updates, and social signals via WebSocket (WSS). Get a holistic view of the social landscape influencing crypto markets with coverage of not just crypto-native accounts but also key figures in tech, finance, and media.

πŸš€ Overview

This Standby-only Actor provides real-time access to Twitter events from over 1000 of the most influential accounts in the digital asset space. The service operates as a lightweight, always-on web server delivering instant notifications from a curated list of top crypto traders, VCs, project founders, and developers, alongside major news organizations and public figures whose commentary impacts the market. Events are pushed to your client as they happen via a single WebSocket connection, ensuring you capture every critical social signal.

✨ Key Features

  • πŸ”„ Apify Standby Mode: Always-on, fast-responding web server
  • πŸ”΄ Real-Time Event Streaming: Instant delivery via high-performance WebSocket
  • πŸ‘₯ 1000+ Curated Accounts: Monitors a diverse list of crypto traders, VCs, founders, news outlets, and tech visionaries.
  • πŸ“Š Multiple Event Types:
    • New tweets and tweet updates
    • Following/unfollowing activity
    • Profile updates and changes
    • Pinned tweet changes
  • 🎯 Advanced User Filtering: Filter events by specific Twitter usernames via subscription messages
  • πŸ“‹ Active User List: Access complete list of currently monitored Twitter handles
  • ⚑ High Performance: Sub-second event delivery optimized for Standby mode
  • πŸ’ͺ Scalable: Handles thousands of concurrent connections
  • πŸ›‘οΈ Production Ready: Comprehensive health monitoring and auto-scaling

Filtered Charging Benefits

  • βœ… Pay only for what you receive: Events that don't match your filter are not charged
  • βœ… No charge when idle: If no clients are connected, no data events are charged

Example: If you subscribe with users=["elonmusk", "vitalikbuterin"] and 1000 events come in but only 5 match your filter, you're only charged for those 5 events.

πŸ“¦ Open Source Client & Dashboard

Check out the Crypto Twitter Alpha Stream repository for a production-ready client implementation.

This project demonstrates how to consume the stream effectively, featuring:

  • πŸ“Ί Multiple Output Channels: CLI, Web Dashboard, Telegram, Discord, Webhooks
  • πŸ” Smart Filtering: Filter by users, keywords, and event types
  • 🚫 Deduplication: Prevents redundant notifications
  • πŸ”„ Automatic Reconnection: Robust connection handling
  • πŸ“Š Interactive Dashboard: Visual monitoring of the stream

View Repository β†’

🌐 Available Endpoints

EndpointTypeDescription
/WebSocketMain real-time stream endpoint. Connect here via wss://
/active-usersHTTP GETGet complete list of monitored crypto accounts with real-time tracking status
/healthHTTP GETMonitor service health and connection stats

πŸ”§ Quick Start

Standby Mode Only

This Actor only works in Standby mode. It cannot be run in normal mode. When you run it normally, it will only display a message and exit.

Connecting via WebSocket

Connect to the Actor's Standby URL using the wss:// protocol. Authentication is required using your Apify API Token.

You can authenticate by either:

  1. Passing it in the header: Authorization: Bearer YOUR_APIFY_TOKEN (Recommended for server-side clients)
  2. Appending it as a query parameter: ?token=YOUR_APIFY_TOKEN (For browser websockets where custom headers aren't supported)

Endpoint: wss://muhammetakkurtt--crypto-twitter-tracker.apify.actor/

1. Establish Connection

Connect to the WebSocket server. You will immediately receive a connected event.

2. Subscribe to Channels

Send a JSON message to subscribe to specific channels and optionally filter by users.

Request:

{
"op": "subscribe",
"channels": ["tweets", "following", "profile"],
"users": ["elonmusk", "vitalikbuterin"]
}
  • op: Must be "subscribe".
  • channels: Array of channels to listen to. Options:
    • "tweets": New tweets and updates.
    • "following": Follow/unfollow events.
    • "profile": Profile changes (bio, avatar, etc.).
    • "all": All of the above.
  • users (Optional): Array of usernames to filter by. If omitted, you receive events for all 1000+ monitored accounts.

Example Client (Node.js)

1. Install dependencies:

$npm install ws

2. Create client.js and run:

import WebSocket from 'ws';
import https from 'https';
import fs from 'fs';
// Configuration
const CONFIG = {
APIFY_TOKEN: process.env.APIFY_TOKEN || 'YOUR_APIFY_TOKEN', // πŸ‘ˆ Add your token here
ACTOR_URL: 'wss://muhammetakkurtt--crypto-twitter-tracker.apify.actor/',
HEALTH_URL: 'https://muhammetakkurtt--crypto-twitter-tracker.apify.actor/health',
RECONNECT_BASE_DELAY: 1000,
RECONNECT_MAX_DELAY: 30000,
HEALTH_CHECK_INTERVAL: 4 * 60 * 1000 // 4 minutes
};
let reconnectDelay = CONFIG.RECONNECT_BASE_DELAY;
let ws;
let healthCheckInterval;
function connect() {
ws = new WebSocket(CONFIG.ACTOR_URL, {
headers: {
'Authorization': `Bearer ${CONFIG.APIFY_TOKEN}`
}
});
ws.on('open', () => {
console.log('βœ… Connected to Crypto Twitter Tracker');
// Reset reconnection delay on successful connection
reconnectDelay = CONFIG.RECONNECT_BASE_DELAY;
// Subscribe to channels (No user filter = all accounts)
ws.send(JSON.stringify({
op: 'subscribe',
channels: ['tweets']
}));
});
ws.on('message', (data) => {
try {
const event = JSON.parse(data);
console.log('πŸ“© Received:', event.event_type || event.op);
// Save event to local file
if (event.event_type) {
fs.appendFileSync('events.jsonl', JSON.stringify(event) + '\n');
}
} catch (e) {
console.error('⚠️ Failed to parse message:', e.message);
}
});
ws.on('close', (code, reason) => {
console.log(`⚠️ Disconnected (Code: ${code}). Reconnecting in ${reconnectDelay}ms...`);
scheduleReconnect();
});
ws.on('error', (err) => {
console.error('❌ WebSocket error:', err.message);
// Error event often precedes 'close', so logic is handled there
});
}
function scheduleReconnect() {
setTimeout(() => {
connect();
// Exponential Backoff with Max Delay
reconnectDelay = Math.min(reconnectDelay * 2, CONFIG.RECONNECT_MAX_DELAY);
}, reconnectDelay);
}
// Start Keep-Alive (Health Check)
function startHealthCheck() {
healthCheckInterval = setInterval(() => {
const req = https.get(CONFIG.HEALTH_URL, {
headers: { 'Authorization': `Bearer ${CONFIG.APIFY_TOKEN}` }
}, (res) => {
console.log(`πŸ’“ Health Check: ${res.statusCode}`);
// consume response to free memory
res.resume();
});
req.on('error', (e) => {
console.error(`πŸ’“ Health Check Failed: ${e.message}`);
});
req.setTimeout(10000, () => {
req.destroy();
console.error('πŸ’“ Health Check Timeout');
});
}, CONFIG.HEALTH_CHECK_INTERVAL);
}
// Graceful Shutdown
process.on('SIGINT', () => {
console.log('πŸ›‘ Shutting down client...');
clearInterval(healthCheckInterval);
if (ws) ws.close();
process.exit(0);
});
// Initialization
console.log('πŸš€ Starting Twitter Tracker Client...');
connect();
startHealthCheck();

Example Client (Python)

1. Install dependencies:

$pip install websockets aiohttp

2. Create client.py and run:

import asyncio
import websockets
import json
import aiohttp
import logging
import sys
import os
# Configuration
APIFY_TOKEN = os.getenv("APIFY_TOKEN", "YOUR_APIFY_TOKEN") # πŸ‘ˆ Add your token here
ACTOR_WSS_URL = "wss://muhammetakkurtt--crypto-twitter-tracker.apify.actor/"
HEALTH_URL = "https://muhammetakkurtt--crypto-twitter-tracker.apify.actor/health"
RECONNECT_BASE_DELAY = 1.0
RECONNECT_MAX_DELAY = 30.0
HEALTH_CHECK_INTERVAL = 240 # 4 minutes
# Setup Logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%H:%M:%S'
)
logger = logging.getLogger("TwitterTracker")
async def monitor_health():
"""Pings the health endpoint to prevent Actor from sleeping."""
async with aiohttp.ClientSession() as session:
while True:
try:
await asyncio.sleep(HEALTH_CHECK_INTERVAL)
headers = {"Authorization": f"Bearer {APIFY_TOKEN}"}
async with session.get(HEALTH_URL, headers=headers, timeout=10) as response:
logger.info(f"πŸ’“ Health Check: {response.status}")
except Exception as e:
logger.error(f"πŸ’“ Health Check Failed: {e}")
async def listen():
"""Main WebSocket loop with exponential backoff reconnection."""
reconnect_delay = RECONNECT_BASE_DELAY
while True:
try:
logger.info(f"πŸ”Œ Connecting to {ACTOR_WSS_URL}...")
headers = {"Authorization": f"Bearer {APIFY_TOKEN}"}
async with websockets.connect(ACTOR_WSS_URL, additional_headers=headers) as websocket:
logger.info("βœ… Connected!")
reconnect_delay = RECONNECT_BASE_DELAY # Reset delay on success
# Subscribe to channels
subscribe_msg = {
"op": "subscribe",
"channels": ["tweets"]
}
await websocket.send(json.dumps(subscribe_msg))
logger.info("πŸ“‘ Subscribed to 'tweets' channel")
async for message in websocket:
try:
event = json.loads(message)
event_type = event.get('event_type') or event.get('op')
logger.info(f"πŸ“© Received: {event_type}")
# Save event to local file
if event.get('event_type'):
with open('events.jsonl', 'a', encoding='utf-8') as f:
json.dump(event, f, ensure_ascii=False)
f.write('\n')
except json.JSONDecodeError:
logger.warning("Received invalid JSON message")
except (websockets.ConnectionClosed, OSError) as e:
logger.warning(f"⚠️ Connection lost: {e}")
except Exception as e:
logger.error(f"❌ Unexpected error: {e}")
# Exponential Backoff
logger.info(f"⏳ Reconnecting in {reconnect_delay}s...")
await asyncio.sleep(reconnect_delay)
reconnect_delay = min(reconnect_delay * 2, RECONNECT_MAX_DELAY)
async def main():
# Run Listener and Health Monitor concurrently
try:
await asyncio.gather(
listen(),
monitor_health()
)
except asyncio.CancelledError:
logger.info("πŸ›‘ Task cancelled, exiting...")
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
logger.info("πŸ›‘ Exiting due to user interrupt...")
sys.exit(0)

HTTP Endpoints Usage

# Set your Apify API token
export APIFY_TOKEN="YOUR_APIFY_TOKEN"
# Check service health and connection stats
curl -H "Authorization: Bearer $APIFY_TOKEN" https://muhammetakkurtt--crypto-twitter-tracker.apify.actor/health
# Get complete list of 1000+ monitored crypto Twitter accounts
curl -H "Authorization: Bearer $APIFY_TOKEN" https://muhammetakkurtt--crypto-twitter-tracker.apify.actor/active-users

πŸ” Health Monitoring & Service Status

Health Endpoint Response (GET /health)

{
"status": "ok",
"timestamp": "2026-02-14T10:30:45.000Z",
"connections": {
"total": 42,
"by_channel": {
"tweets": 15,
"following": 8,
"profile": 5,
"all": 14
}
},
"events": {
"processed": 125847,
"delivered": 3420
}
}

Active Users Endpoint Response (GET /active-users)

Complete list of 1000+ monitored crypto accounts:

{
"status": "success",
"timestamp": "2026-02-14T10:30:45.000Z",
"last_update": "2026-02-14T10:29:12.000Z",
"total_users": 1450,
"usernames": [
"elonmusk",
"pmarca",
"naval",
"vitalikbuterin",
"cz_binance",
"justinsuntron",
"..."
]
}

πŸ“Š Event Data Structure

1. Tweet Events - post_created / post_update

{
"event_type": "post_created",
"data": {
"tweetId": "1966110583163597267",
"username": "garrytan",
"action": "post_update",
"tweet": {
"id": "1966110583163597267",
"type": "REPLY",
"created_at": "Thu Sep 11 12:04:26 +0000 2025",
"author": {
"handle": "garrytan",
"profile": {
"avatar": "https://pbs.twimg.com/profile_images/1922894268403941377/-dGWAt3N_normal.jpg",
"name": "Garry Tan"
}
},
"body": {
"text": "Mehtani’s policies have been thoroughly implemented in San Francisco to the tune of hundreds of millions of dollars per year and has only resulted in far more death and suffering\n\nWhen might the outcomes change her view? At this point possibly never. https://t.co/NzgcAnN5mj",
"urls": [],
"mentions": []
},
"media": {
"images": [
"https://pbs.twimg.com/media/G0kHJ6OacAA6M2L.jpg"
],
"videos": []
},
"subtweet": {
"id": "1966110576066826246",
"type": "TWEET",
"created_at": "Thu Sep 11 12:04:24 +0000 2025",
"author": {
"handle": "garrytan",
"verified": false,
"profile": {
"avatar": "https://pbs.twimg.com/profile_images/1922894268403941377/-dGWAt3N_normal.jpg",
"name": "Garry Tan"
}
},
"body": {
"text": "Surprisingly rational discussion even if mostly one-sided\n\nWhat started as humane HIV prevention with needles has today evolved into encouraging people to smoke fentanyl https://t.co/BYz1ZruQLQ https://t.co/Lr9g4U8u5H",
"urls": [
{
"name": "x.com/ericajsandberg…",
"url": "https://x.com/ericajsandberg/status/1965797019517333924",
"tco": "https://t.co/BYz1ZruQLQ"
}
],
"mentions": []
},
"media": {
"images": [
"https://pbs.twimg.com/media/G0kHJf0asAAx_ML.jpg"
],
"videos": []
}
}
}
}
}

2. Following Events - follow_created / follow_update

{
"event_type": "follow_created",
"data": {
"username": "polyfactual",
"action": "follow_update",
"user": {
"id": "1847461129582194688",
"handle": "polyfactual",
"jointed_at": "Sat Oct 19 02:14:04 +0000 2024",
"profile": {
"name": "Polyfactual",
"location": "Internet",
"avatar": "https://pbs.twimg.com/profile_images/1944830322077507584/oSNlEgJm_normal.jpg",
"banner": "https://pbs.twimg.com/profile_banners/1847461129582194688/1757479805",
"pinned": [
"1964795835402879282"
],
"url": {
"name": "https://t.co/OZP99G8ee9",
"url": "https://t.co/OZP99G8ee9",
"tco": "https://t.co/OZP99G8ee9"
},
"description": {
"text": "Weekly livestreams on @Polymarket covering political news and world events. \n\nBuilding liquidity infra & tooling for predication markets.",
"urls": [
{
"url": "https://t.co/OZP99G8ee9",
"expanded_url": "https://www.polyfactual.com",
"display_url": "polyfactual.com",
"indices": [
0,
23
]
}
]
}
},
"metrics": {
"media": 66,
"tweets": 598,
"following": 1187,
"followers": 7364
}
},
"following": {
"id": "1965781090573893632",
"handle": "PolymarketBuild",
"jointed_at": "Wed Sep 10 14:16:14 +0000 2025",
"profile": {
"name": "Polymarket Builders",
"avatar": "https://pbs.twimg.com/profile_images/1965853271509073922/N4JUepCQ_normal.jpg",
"banner": "https://pbs.twimg.com/profile_banners/1965781090573893632/1757530937",
"pinned": [],
"url": {
"name": "https://polymarket.com/r/builders",
"url": "https://polymarket.com/r/builders",
"tco": "https://polymarket.com/r/builders"
},
"description": {
"text": "Your official source for updates, news, & events for the @Polymarket Builders program. Featuring the best community projects built on top of Polymarket.",
"urls": []
}
},
"metrics": {
"media": 0,
"tweets": 3,
"following": 61,
"followers": 324
}
}
}
}

3. Profile Events - user_updated / profile_update / pin_update

{
"event_type": "user_updated",
"data": {
"username": "Neuro_0xy",
"action": "pin_update",
"user": {
"id": "1712372633688313857",
"handle": "Neuro_0xy",
"jointed_at": "Thu Oct 12 07:40:43 +0000 2023",
"profile": {
"name": "0xytocin",
"location": "Dubai ",
"avatar": "https://pbs.twimg.com/profile_images/1966073243812413440/lyJ0PoDg_normal.png",
"banner": "https://pbs.twimg.com/profile_banners/1712372633688313857/1757424592",
"pinned": [
"1966072356499054858"
],
"url": {
"name": "https://t.co/c4dswjsPe5",
"url": "https://t.co/c4dswjsPe5",
"tco": "https://t.co/c4dswjsPe5"
},
"description": {
"text": "0xy symbol of all neurodivergent\n\n@8A05_AI – Tourette syndrome\n@6A05_AI – Attention deficit hyperactivity disorder\n@6A02_AI – Autism spectrum disorder",
"urls": [
{
"url": "https://t.co/c4dswjsPe5",
"expanded_url": "https://linktr.ee/neuro_0xy",
"display_url": "linktr.ee/neuro_0xy",
"indices": [
0,
23
]
}
]
}
},
"metrics": {
"media": 44,
"tweets": 51,
"following": 113,
"followers": 5322
}
},
"pinned": [
{
"id": "1966072356499054858",
"type": "TWEET",
"created_at": "Thu Sep 11 09:32:32 +0000 2025",
"author": {
"handle": "Neuro_0xy",
"profile": {
"avatar": "https://pbs.twimg.com/profile_images/1966073243812413440/lyJ0PoDg_normal.png",
"name": "0xytocin"
}
},
"body": {
"text": "$0xy oxynABVJXUEc9PLNx4m1XVdiFtRhStzRXG1G6qosni1",
"urls": [],
"mentions": []
},
"media": {
"images": [],
"videos": []
}
}
]
}
}

Error

Sent when an error occurs (e.g., invalid subscription).

{
"event_type": "error",
"data": {
"code": "INVALID_SUBSCRIPTION",
"message": "Unsupported channels: ..."
}
}

🎯 Use Cases

πŸ’Ή Trading & Investment

  • Holistic Market Sentiment: Analyze sentiment from a wide spectrum of accounts, including crypto insiders, financial news outlets, and tech leaders.
  • Signal & Alpha Detection: Capture early signals from crypto traders, VCs, and developers while also monitoring commentary from influential public figures.
  • Market-Moving News: Get real-time alerts on tweets from both crypto-native and mainstream sources that can impact market dynamics.
  • Cross-Disciplinary Insights: Track how developments in tech (e.g., AI, venture capital) and world events are discussed in relation to the crypto market.
  • FOMO & Trend Detection: Monitor viral crypto content and emerging trends from top accounts

πŸ“Š Analytics & Research

  • Large-Scale Social Impact Analysis: Correlate Twitter activity from 1000+ accounts with price movements
  • Influence Network Mapping: Analyze relationships between key accounts across crypto, tech, and media to understand how narratives are formed and spread.
  • Comprehensive Content Analysis: Study messaging patterns and themes across the complete crypto Twitter landscape
  • Cross-Platform Engagement Tracking: Monitor engagement metrics from all major crypto accounts
  • Macro Trend Detection: Identify emerging narratives and topics from comprehensive account coverage

πŸ”” Monitoring & Alerts

  • Targeted Notifications: Get alerted on specific keywords or users from 1000+ tracked accounts
  • Comprehensive Portfolio Mentions: Monitor when your holdings are discussed across all major crypto accounts
  • Breaking News Coverage: Instant notifications on important announcements from verified crypto sources
  • Complete Market Dashboards: Build live Twitter monitoring interfaces with full ecosystem coverage
  • Enterprise Compliance: Track mentions across the entire crypto Twitter landscape for regulatory compliance

πŸ› οΈ Development & Integration

  • Advanced Trading Bots: Integrate comprehensive social signals from 1000+ accounts into trading algorithms
  • Enterprise Social Trading: Build social-first trading experiences with complete market coverage
  • Academic Research Tools: Create large-scale research on social media impact with extensive data coverage
  • Comprehensive News Aggregation: Build crypto news platforms with complete crypto Twitter context
  • Enhanced Community Tools: Power crypto communities with real-time feeds from all major accounts