Connection
Connect to CoreTracker’s WebSocket endpoint for real-time data streaming:
wss://api.corebot.app/ws/v1/stream
Authentication
Two methods to authenticate your WebSocket connection:
Method 1: Query Parameter
const ws = new WebSocket ( 'wss://api.corebot.app/ws/v1/stream?apiKey=ct_live_xxxxx' );
Method 2: Authentication Message
const ws = new WebSocket ( 'wss://api.corebot.app/ws/v1/stream' );
ws . onopen = () => {
ws . send ( JSON . stringify ({
type: 'auth' ,
api_key: 'ct_live_xxxxx'
}));
};
You have 5 seconds to authenticate after connecting or the connection will close.
Connection Lifecycle
1. Connect & Authenticate
// Connect and receive confirmation
ws . onmessage = ( event ) => {
const msg = JSON . parse ( event . data );
if ( msg . type === 'connected' ) {
console . log ( 'Connected!' , msg . connection_id );
// Now you can subscribe to streams
}
};
2. Subscribe to Data
ws . send ( JSON . stringify ({
type: 'subscribe' ,
subscription_type: 'user_timeline' ,
params: {
username: 'elonmusk'
}
}));
3. Receive Data
ws . onmessage = ( event ) => {
const msg = JSON . parse ( event . data );
if ( msg . type === 'data' ) {
console . log ( 'New tweet:' , msg . data );
}
};
Message Types
Client → Server
Type Description authAuthenticate with API key subscribeSubscribe to a data stream unsubscribeCancel a subscription pingKeep connection alive
Server → Client
Type Description connectedConnection established dataStream data update errorError occurred pongResponse to ping subscription_confirmedSubscription created subscription_cancelledSubscription removed heartbeatPeriodic keep-alive signal historical_completeHistorical data loading finished user_infoUser details on subscription warningNon-fatal warning message
Rate Limits
Limit Value Description Messages/second 50 Per connection Connections 50 Per API key Subscriptions 20 Per connection Message size 1MB Maximum message size
Quick Start Example
const apiKey = 'ct_live_xxxxx' ;
const ws = new WebSocket ( `wss://api.corebot.app/ws/v1/stream?apiKey= ${ apiKey } ` );
ws . onopen = () => {
console . log ( 'WebSocket connected' );
// Subscribe to Elon Musk's timeline
ws . send ( JSON . stringify ({
type: 'subscribe' ,
subscription_type: 'user_timeline' ,
params: { username: 'elonmusk' }
}));
};
ws . onmessage = ( event ) => {
const message = JSON . parse ( event . data );
switch ( message . type ) {
case 'connected' :
console . log ( 'Connection ID:' , message . connection_id );
break ;
case 'subscription_confirmed' :
console . log ( 'Subscription active:' , message . subscription_id );
break ;
case 'data' :
console . log ( 'New tweet:' , message . data . text );
break ;
case 'error' :
console . error ( 'Error:' , message . message );
break ;
}
};
ws . onerror = ( error ) => {
console . error ( 'WebSocket error:' , error );
};
ws . onclose = ( event ) => {
console . log ( 'Connection closed:' , event . code , event . reason );
};
Next Steps
Subscriptions Learn about all subscription types
Examples See complete code examples
Error Handling Handle errors and reconnection