Skip to content

Configuration Reference

Complete reference for RevTurbineInitOptions and related configuration types.

FieldTypeDescription
tenantIdstringYour RevTurbine tenant identifier
apiKeystringAPI key (rt_live_*, rt_test_*, or 'local' for local mode)
endpointstringRevTurbine API endpoint URL
mode'react' | 'snippet' | 'iframe'SDK integration mode
FieldTypeDefaultDescription
runtimeMode'revturbine_server' | 'custom_endpoints' | 'local_only''revturbine_server'How the SDK resolves decisions
endpointOverridesPartial<RevTurbineEndpointOverrides>Custom endpoint URLs (for custom_endpoints mode)
configProviderRevTurbineConfigProviderCustom provider for ExportedConfig
localRuntimeRevTurbineLocalRuntimeOptionsLocal-only mode configuration
FieldTypeDefaultDescription
providerRevTurbineSdkProvider | RevTurbineProviderFactoryPrimary provider override
providerFallbacksArray<...>Fallback provider chain
domainProvidersAnyDomainProvider[]Domain-specific providers
providerFailureSlotBehavior'placeholder' | 'invisible''invisible'Slot behavior after provider failure
FieldTypeDefaultDescription
uiPathResolversRevTurbineUiPathResolverMapMap of CTA action types to resolver functions
FieldTypeDefaultDescription
userRevTurbineUserContextInitial user context
pageRevTurbinePageContextPage context (URL, title, referrer, tags)
contextPolicyRevTurbineContextPolicy{ inferUser: true, inferPage: true, routerAutoTrack: true }Auto-inference behavior
FieldTypeDefaultDescription
placementBehaviorPartial<RevTurbinePlacementBehaviorFlags>Opt-in pipeline flags
FieldTypeDefaultDescription
persistentStorageRevTurbineStoragelocalStoragePersistent storage override
sessionStorageRevTurbineStoragesessionStorageSession storage override

FieldTypeDefaultDescription
inferUserbooleantrueAuto-detect user info from browser APIs
inferPagebooleantrueAuto-capture URL, title, referrer
routerAutoTrackbooleantrueTrack SPA route changes

FieldTypeDescription
exportedConfigExportedConfigFull ExportedConfig snapshot for local execution
placementsLocalPlacementDatasetOptional static placements dataset
initialDataobjectStatic data for local decisions (see below)
resolversobjectOptional resolver callbacks (see below)
storageKeystringOptional localStorage key override
getContext() => Promise<JsonObject>Reactive context callback
FieldType
placementDecisionsByPlacementIdRecord<string, RevTurbinePlacementDecision>
placementsByLookupKeyRecord<string, PlacementOutput | null>
entitlementByHandleRecord<string, EntitlementResult>
userContextByUserIdRecord<string, UserTargetingContext>
trialStatusRevTurbineTrialContext
FieldSignature
getPlacementDecision(input, placement?, context?) => Promise<RevTurbinePlacementDecision>
getPlacement(config) => Promise<PlacementOutput | null>
checkEntitlement(handle, context?) => Promise<EntitlementResult>
fetchUserContext(userId) => Promise<UserTargetingContext>
getTrialStatus() => Promise<RevTurbineTrialContext>
resolveExportedConfig() => Promise<ExportedConfig>

FlagTypeDefaultDescription
enableClientCapsEnforcementbooleanfalseClient-side cap enforcement
enableAutoGatedPlacementbooleanfalseAuto-render gated placements
enableTrialAutoTriggersbooleanfalseAuto-derive trial lifecycle triggers

Override individual API endpoints for custom_endpoints mode:

FieldDefault Path
decideContext/api/decide-context
bootstrapContext/api/bootstrap-context
decide/api/decide
getPlacement/api/placement
checkEntitlement/api/entitlement
userContext/api/user-context
trialStatus/api/trial-status
ingestEvents/api/events
touchpointTransition/api/touchpoint-transition
placementTypes/api/placement-types
surfaceSlots/api/surface-slots

Interface for custom storage providers:

interface RevTurbineStorage {
getItem(key: string): string | null;
setItem(key: string, value: string): void;
removeItem(key: string): void;
}

{
tenantId: string; // ✅ Required
apiKey: string; // ✅ Required (rt_live_* or rt_test_*)
endpoint: string; // ✅ Required
mode: string; // ✅ Required
}
{
tenantId: string; // ✅ Required (can be 'demo')
apiKey: string; // ✅ Required (can be 'local')
endpoint: string; // ✅ Required (can be 'http://localhost')
mode: string; // ✅ Required
runtimeMode: 'local_only'; // ✅ Required
localRuntime: {
exportedConfig: ExportedConfig; // ✅ Required
};
}
{
tenantId: string; // ✅ Required
apiKey: string; // ✅ Required
endpoint: string; // ✅ Required
mode: string; // ✅ Required
runtimeMode: 'custom_endpoints'; // ✅ Required
endpointOverrides: { // ✅ At least one override required
decide?: string;
getPlacement?: string;
checkEntitlement?: string;
};
}