URL Parameters
Almost every customization parameter can also be passed via the URL query string — useful for standalone links and web embeds where postMessage isn't convenient. Applies to: All integrations.
Two URL modes:
1. Single encoded payload (recommended for complex configs): ?data=<base64-encoded JSON> — the entire parameter object, base64-encoded. When present, it replaces all other individual query params.
2. Individual plain parameters: ?age=25&gender=male&style=dark&showSilhouette=false — each parameter as a plain key/value. Values are automatically type-converted: known boolean parameters accept true/false/1/0, known numeric parameters are parsed as numbers, and values that look like JSON (starting with [ or {) are JSON-parsed.
Precedence: values sent via postMessage override URL values (URL acts as defaults) — with two exceptions that work the other way around:
| URL Parameter | Equivalent Config | Example | Precedence |
| style | style | ?style=light | URL wins over postMessage |
| delegate | defaultDelegate | ?delegate=GPU | URL wins over postMessage |
| debug | showDebugRecording | ?debug=true | Combined with postMessage value (either enables) |
Type-converted parameter names (when passed individually in the URL):
- Booleans:
isHideHeaderMain,isDrawingPose,resetPlanProgress,hideFeelingDialog,hideOtherGender,includeRealtimeAccuracy,showSilhouette,showDebugRecording,showFormGuidance,streamFormGuidance,includePoseBorders,showLeaderboard,shouldAskCamera,shouldShowCameraSelector,showSettings,motionTrackingSettingOn,motionTrackingEnabled,selfModeEnabled,start_from_rest,enableM4a,nativeParentScroll,isHorizontalMode,hideConnectTvButton,legacyRestScreen,customProfileAction,customCalendarAction,hideCalendarButton,hideProfileButton,captureDateOfBirth - Numbers:
age,height,weight,countdown,reps,minPoseDetectionConfidence,minTrackingConfidence,minPosePresenceConfidence,tugMinRequiredSpace
Other booleans in the URL: most booleans not in the list above arrive as text, which the SDK does not read reliably (isSubscribed is the exception: "false" works). For example, ?shouldSendStats=false turns saving on, and ?immediateShowSkip=true is ignored. Pass these booleans with postMessage or inside ?data= instead (for example shouldSendStats, disableCookies, disableGuide, autoSubmitLeaderboard, hideCompletionOverlay, immediateShowSkip, motionDataEnabled).
Parameters not in these lists arrive as strings (or JSON-parsed objects/arrays) — the same scoping rules from their sections apply.
Exception — `includePoseData`: this parameter is a string array and cannot be passed as an individual URL query param (the value would not survive URL type conversion). Pass it via postMessage or inside the ?data=<base64 JSON> payload instead.