Skip to main content

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;
}