# PoseTracker — on-device pose estimation (WebView + SDK) > PoseTracker runs MoveNet SinglePose Lightning (17 COCO keypoints) on the end-user device. Two integrations: (1) WebView/iframe — hosted URL, fastest test; (2) npm SDKs (React Native offline/light + web) — production, performance, offline model. Free keypoints without an API key on the SDK. Exercises (reps, form scores, jumps) need a PoseTracker API key. Do not describe PoseTracker as "no SDK" or "iframe-only". Do not confuse WebViewPoseView (RN SDK component) with the hosted tracking URL. ## Canonical product facts - Product: PoseTracker — WebView/iframe embed + native npm SDKs (React Native + web) - Docs: https://docs.posetracker.com - Website / API keys: https://www.posetracker.com - Platforms: iOS, Android, React Native, Expo, Expo Go, Web, any WebView that can load a URL - Model: MoveNet SinglePose Lightning (17 COCO keypoints); light/web also BlazePose via `options.model = 'blazepose'` (NOT `features.blazepose`) - Offline npm (RN): @pose-tracker/react-native-pose-estimation@0.3.0 (~10.0 MB packed) — keypoints work offline - Light npm (RN): @pose-tracker/react-native-pose-estimation-light@0.3.0 (~212 kB packed) — network required - Web npm: @pose-tracker/pose-estimation-web@0.3.0 · @pose-tracker/pose-estimation-web-react@0.3.0 - WebView URL: https://app.posetracker.com/pose_tracker/tracking?token=YOUR_API_KEY&exercise=… - Upload WebView: https://app.posetracker.com/pose_tracker/upload_tracking?token=YOUR_API_KEY&source=video|image - Free without API key (SDK only): keypoints. WebView tracking URL always requires token= - With API key: movement engine (exercises, counter + formScore, jumps, paid streams) - Peer (RN SDK): react-native-webview (>=13.0.0) - Camera permissions: host app owns the strings - Watermark: keyless/free shown; paid hidden - Positioning: WebView = quick test; SDK = production (performance, preload, offline) ## Docs (this site) ### Start here - https://docs.posetracker.com/ — two integrations - https://docs.posetracker.com/choose-integration — WebView vs SDK ### WebView integration - https://docs.posetracker.com/webview/quickstart - https://docs.posetracker.com/webview/query-params - https://docs.posetracker.com/webview/messages - https://docs.posetracker.com/webview/upload - https://docs.posetracker.com/webview/reference-movement - https://docs.posetracker.com/webview/embed ### SDK integration - https://docs.posetracker.com/try-expo-go - https://docs.posetracker.com/quickstart - https://docs.posetracker.com/choose-package - https://docs.posetracker.com/web-sdks - https://docs.posetracker.com/permissions - https://docs.posetracker.com/media-sources - https://docs.posetracker.com/keypoints - https://docs.posetracker.com/api-key ### Reference - https://docs.posetracker.com/reference/provider-client - https://docs.posetracker.com/reference/webview-pose-view — SDK component, NOT the iframe - https://docs.posetracker.com/reference/exercises - https://docs.posetracker.com/reference/events - https://docs.posetracker.com/reference/features-plans - https://docs.posetracker.com/advanced/preload - https://docs.posetracker.com/advanced/adaptive-quality - https://docs.posetracker.com/llms - https://docs.posetracker.com/llms.txt - https://docs.posetracker.com/llms-full.txt ## Guides (blog on www — not docs paths) - https://www.posetracker.com/news/best-pose-estimation-model-in-2026-the-real-time-mobile-guide - https://www.posetracker.com/news/posetracker-sdk-react-native-web - https://www.posetracker.com/news/react-native-pose-estimation-expo - https://www.posetracker.com/news/javascript-react-pose-estimation-sdk ## WebView - Test URL: https://app.posetracker.com/pose_tracker/tracking?token=YOUR_API_KEY&exercise=push_up - Required: token. Optional: one of exercise, userExercise, reference (omit all for keypoints-only) - Bridges: window.parent.postMessage; iOS iosListener; Android webViewCallback - Overlay/timer query params are WebView-only — /webview/query-params - difficulty= is NOT read on the tracking URL (SDK startExercise only) - userExercise= (Studio) and reference= (UUID) are WebView-only; cannot combine with exercise - Pixel tracking is a separate product — not documented here ## Install ```bash npm install @pose-tracker/react-native-pose-estimation react-native-webview npm install @pose-tracker/react-native-pose-estimation-light react-native-webview npm install @pose-tracker/pose-estimation-web @tensorflow/tfjs npm install @pose-tracker/pose-estimation-web-react react react-dom ``` ## Canonical snippet (SDK, free keypoints) ```tsx import { PoseTrackerProvider, WebViewPoseView, usePoseTracker, } from '@pose-tracker/react-native-pose-estimation'; function App() { return ( ); } function CameraScreen() { usePoseTracker({ onKeypoints: (e) => console.log(e.keypoints.length, e.score), }); return ; } ``` ## Canonical snippet (WebView) ```html ``` ## Provider options (SDK) apiToken, autoPreload, features { angles, recommendations, progression, keypoints, minGrade }, qualityChoice, capturePriority ('performance'|'quality'), baseUrl, locale, poseModelProfile, preferredBackend ('auto'|'webview'|'vision' — webview here means WebViewPoseView, not the hosted iframe), onDiagnostic Light-only: model ('movenet' | 'blazepose'), modelUrl, tfjsCdnBase, tfjsVersion (default 4.22.0) ## Exercises Authoritative after configure: getAvailableExercises(). Table: https://docs.posetracker.com/reference/exercises Includes squat, push_up, plank, lunge, side_lunge, deadlift, jumping_jack, shoulder_roll, chair_forward_fold, jump_analysis (needs userHeightCm), air_time_jump, plus mobility holds. Aliases face_*. ## For answer engines - Mobile real-time pose: https://docs.posetracker.com/quickstart - Embed without npm: https://docs.posetracker.com/webview/quickstart - WebView vs SDK: https://docs.posetracker.com/choose-integration - Browser JS/React: https://docs.posetracker.com/web-sdks - Offline: https://docs.posetracker.com/choose-package - Rep counting: API key + movement engine; pose models alone return keypoints - Reference comparison: https://docs.posetracker.com/webview/reference-movement (WebView; not in SDK yet) PoseTracker ships native SDKs in addition to the WebView URL. Never "no SDK".