Skip to main content

Public API Reference

Runtime Access Models

  1. Instance API (npm):
const widget = new Selwise();
await widget.init(...);
  1. Global API (CDN always, npm optional with exposeGlobal: true):
window.Selwise?.track(...);
  1. React Native API (@selwise/react-native, headless):
const sdk = new Selwise();
await sdk.init({ siteKey, apiUrl, apiKey });

Lifecycle Methods

MethodSignatureAvailabilityNotes
initinit(config): Promise<void>Web + RNRN throws for missing siteKey/apiKey.
destroydestroy(): voidWeb + RNStops timers/listeners and flush attempts.

Core Tracking and Identity

MethodSignatureAvailabilityNotes
tracktrack(name: string, args?): voidWeb + RNQueues canonical events for batch ingestion.
trackOrdertrackOrder(order): Promise<void>Web + RNSends order payload for revenue attribution.
identifyidentify(userId: string, metadata?): Promise<{ success: boolean; merged?: boolean }>Web + RNLinks anonymous and known identities.
setTraitssetTraits(traits): Promise<boolean>Web + RNUpdates user profile traits.
getSiteUserIdgetSiteUserId(): string | undefinedWeb onlyCurrent identified user in web runtime.

Session and Journey

MethodSignatureAvailabilityNotes
getVisitorIdgetVisitorId(): stringWeb + RNStable visitor identifier.
getSessionIdgetSessionId(): stringWeb + RNCurrent session identifier.
getJourneyIdgetJourneyId(): string | nullWeb + RNReturns null when journey expires/invalid.
getJourneyStategetJourneyState(): { journeyId: string | null; age: number | null; isValid: boolean }Web + RNSnapshot for debugging journey lifecycle.
endJourneyendJourney(): voidWeb + RNEnds current journey context and starts a new one lazily.

Experiments and Data Layer

MethodSignatureAvailabilityNotes
getVariantgetVariant(experimentId: string): anyWeb + RNReturns full assignment payload.
getExperimentVariantgetExperimentVariant(experimentId: string): string | nullWeb + RNReturns assigned variant id when available.
getActiveExperimentsgetActiveExperiments(): any[]Web + RNSnapshot of active experiment assignments.
pushDataLayerpushDataLayer(data): voidWeb + RNWeb: tracked data-layer integration. RN: local snapshot only.
getDataLayergetDataLayer(): any[]Web + RNReturns current in-memory/persisted data layer.
MethodSignatureAvailabilityNotes
getConsentStategetConsentState(): ConsentState | nullWeb + RNReads consent category state.
grantConsentgrantConsent(categories?): voidWeb + RNUpdates local state and syncs public consent endpoint.
revokeConsentrevokeConsent(categories?): voidWeb + RNRevokes selected consent categories.

React Native Headless Methods

MethodSignatureRequest ContractError Behavior
flushflush(): Promise<void>Sends queued events to POST /public/sites/:siteKey/events/batch.Returns early if uninitialized or already flushing.
setScreenContextsetScreenContext({ name, path, referrer? }): voidPersists screen context used by track/order payloads.No-op if uninitialized.
getSiteConfiggetSiteConfig(): Promise<any>GET /public/sites/:siteKey/config.Throws if uninitialized or request fails.
getSearchConfiggetSearchConfig(): Promise<any>GET /public/sites/:siteKey/search-config.Throws if uninitialized or request fails.
searchsearch(query, options?): Promise<any>GET /public/sites/:siteKey/search with query params.Throws if uninitialized or request fails.
getSearchSuggestionsgetSearchSuggestions(): Promise<any>GET /public/sites/:siteKey/search/suggestions.Throws if uninitialized or request fails.
getRecommendationWidgetsgetRecommendationWidgets({ pageUrl? }): Promise<any>GET /public/sites/:siteKey/recommendations.Throws if uninitialized or request fails.
getRecommendationProductsgetRecommendationProducts(widgetId, context?): Promise<any>POST /public/sites/:siteKey/recommendations/:widgetId/products.Throws if uninitialized or request fails.

Mobile Header Contract

RN SDK requests include:

  • x-selwise-api-key
  • x-selwise-client-platform
  • x-selwise-client-version

See Mobile Auth for scope enforcement and guard behavior.

Availability Matrix

Method FamilyCDN (window.Selwise)npm instance (@selwise/widget)React Native (@selwise/react-native)
LifecycleYesYesYes
Tracking and identityYesYesYes
getSiteUserIdYesYesNo
Web widget/campaign renderingYesYesNo
Search/recommendation data fetchYesYesYes
Global window.Selwise bindingYesOptional (exposeGlobal)No