API Reference
Initialization
init(config: InitConfig)
Initialize the SDK. Must be called before tracking events or fetching traits.
import { init } from '@cruxstack/node-sdk';
init({ clientId: 'cs_demo_client_001' });
- clientId (string, required): Your client identifier.
Tracking Events
cruxTrack(categoryName: string, eventData?: ExtendedEventData)
Track a custom event. Provide tenant context per event.
import { cruxTrack } from '@cruxstack/node-sdk';
await cruxTrack('purchase', {
userId: 'user-8731',
customerId: 'cust-2201',
customerName: 'Acme, Inc.',
eventTime: Date.now(),
amount: 129.99,
currency: 'USD'
});
- categoryName (string, required): Event category (e.g., 'purchase').
- eventData (ExtendedEventData, optional): Event payload, including tenant context.
ExtendedEventData (selected fields)
- userId (string, optional)
- eventTime (number, optional; defaults to
Date.now()
) - customerId (string, optional)
- customerName (string, optional)
- Additional optional fields:
sessionId
,userAgent
,screenHeight
,screenWidth
,language
,platform
,adBlock
,viewportHeight
,viewportWidth
,pageTitle
,pageUrl
,pagePath
,pageDomain
,pageLoadTime
,referrer
,ipAddress
, plus any custom keys
User Traits
getUserTraits(userIds: string | string[], customerId?: string)
Fetch user traits for one or more users. Pass customerId
for the tenant to query.
import { getUserTraits } from '@cruxstack/node-sdk';
const single = await getUserTraits('user-8731', 'cust-2201');
const multiple = await getUserTraits(['user-8731', 'user-9102'], 'cust-2201');
Returns: GetUserTraitsResponse
type GetUserTraitsResponse = {
success: boolean;
data?: any;
message?: string;
error?: string;
}