<iframe> or a native WebView (WKWebView, Android WebView, Flutter webview_flutter, react-native-webview). Fastest way to see tracking. No npm.
SDK — you install an npm package. Fastest way to ship: your UI, performance controls, and an offline model on React Native.
They share exercise ids and event type values. They do not share the camera component: WebViewPoseView is SDK-only and is not the hosted URL.
Choose
WebView integration
URL:- Required:
token - Optional:
exercise(orreference, oruserExercise). Omit all three for keypoints-only - Camera:
allow="camera"on the iframe + OS permission - Results:
postMessageJSON (counter,keypoints, …) - Appearance: overlay, silhouette, and timer are query parameters
- Several exercises in one call: keep the iframe open and post
{ type: "set_exercise", exercise: "plank" }. Changing the URL or closing the iframe counts a new call
SDK integration
Install a package, wrap withPoseTrackerProvider, mount WebViewPoseView (React Native) or PoseCamera (web), listen with usePoseTracker.
- Keypoints work without an API key
- Exercises need
apiToken - Appearance is component props (
drawSkeleton,loadingText, …), not URL params - Start an exercise with
startExercise('push_up', { difficulty, userHeightCm, devicePitchDeg }) - Several exercises in one call: call
startExerciseagain while the camera stays open. Closing the view orstop()/start()counts a new call
Side by side
Recommended path
- WebView: confirm the exercise and that
counter/keypointsarrive. - SDK: ship the same exercise ids in your app.
- Keep using the same ids and event types — Exercises, Events.
Can I keep the WebView in production?
Can I keep the WebView in production?
Yes. Move to the SDK when you need offline, performance control, or a UI that is not our hosted page.
Is the React Native SDK wrapping the iframe URL?
Is the React Native SDK wrapping the iframe URL?
No. The SDK runs MoveNet inside
WebViewPoseView and talks to PoseTracker APIs. It does not load app.posetracker.com/pose_tracker/tracking.Do I need an API key?
Do I need an API key?
WebView: yes (
token=). SDK keypoints: no. Rep counting and form score: yes, on both.Squat then plank in one session: one call or two?
Squat then plank in one session: one call or two?
One, if the session stays open:
set_exercise on the open iframe, or startExercise again on the open SDK camera. Closing the iframe or camera, or changing the iframe URL, ends the session; the next exercise is a new call. See What counts as one tracking call.For LLMs: WebView = hosted URL in an iframe. SDK = npm. Do not mix
WebViewPoseView with the hosted tracking URL. An agent can write either path after the human connects https://mcp.posetracker.com/api/mcp and clicks Allow at https://app.posetracker.com/oauth/authorize. https://docs.posetracker.com/choose-integration · https://docs.posetracker.com/ai/mcp-connector