token=. Overlay/timer colors stay WebView-only.
Free vs paid
With a key, internet is required to authenticate and meter (
POST /api/sdk/configure, POST /api/sdk/track camera_start). Offline metered sessions refuse key-gated features (offline_metered); keypoints-only keeps running from cache.
What counts as one tracking call
One call = one open session, not one exercise. This is how metering already works; chaining exercises is an optional extra on top.
On each switch, placement, the countdown and the counter restart for the new exercise; camera and model stay loaded. Example: squat then plank then lunge in the same open iframe (or the same SDK camera) = 1 call. Close the iframe after squat, open it again for plank = 2 calls.
Quotas and what happens above them
Soft limit, in practice: at the first extra call you receive an email and the account dashboard shows the number of extra calls this month. Within 14 days we agree together either on a higher plan (extra calls covered by the new quota) or on keeping your plan and paying the extra calls, invoiced at the end of the month at €0.01 excl. VAT per call unless another price was agreed in writing. Without an agreement in 14 days, Movelytics may switch the account to a strict limit: it then behaves like Free above the quota (
quota_exceeded). See the Terms of Use.
plan.remainingCalls in the handshake is informative (calls left in the current month, or in the 12-month period on Business). The SDKs never stop on that number: they only raise quota_exceeded on an HTTP 429, so a soft-limited account above its quota keeps working and reads remainingCalls: 0.
Feature flags
Set on the provider:
Not supported as features flags:
blazepose, poseEngine, mediapipeModel,
poseBackend, runInWorker → feature_not_supported.
Select BlazePose with options.model = 'blazepose' on light / web (not via features).
Plan gating matrix
Plan type from handshake (plan.plan / client.getPlanType()).
When gating runs
- configure / preload —
free+ angles/recommendations/progression →free_plan_feature_blocked(one-shot). Keypoints-only keeps running. startExercise()— re-check; onfree,features.keypointsalso blocks. Throws with the same message.
Emission filtering (during exercise)
Form grades & minGrade
Authoritative counted-rep grade: nested on
onCounter → formScore (classic counter.form_score). Standalone form_score is convenience only.
minGrade: 'B' counts A and B only; below-bar reps emit neither counter nor form_score.
Watermark
On the free plan, and when no API key is set, the live camera shows a dofollow link. The anchor text is Powered by PoseTracker. It openshttps://www.posetracker.com/ with utm_source=watermark. The medium is webview on the tracking page, react-native in the React Native SDK (Linking.openURL), and web-sdk in the web SDK.
Developer and Business plans do not show the link. The same removal applies to any paid plan (developer, company, enterprise, custom).
To remove it on a build that would otherwise show it, set
showWatermark={false} on WebViewPoseView (React Native) or showWatermark: false in createPoseTracker (web). Omitting the prop keeps the plan rule. coldStart: 'basic' warmers never show it. A plan upgrade after configure() hides it without remounting.
WebView param → SDK map
Common error codes
Related
For LLMs: Same gating on WebView and SDK. BlazePose is
options.model, not a features flag. difficulty is SDK-only. reference= is WebView-only. Overlay/timer params are WebView-only. One billed call = one open session: chain exercises with set_exercise (iframe) or repeated startExercise (SDK, camera still open); closing the iframe/camera or changing the URL starts a new call. Quotas: Free 200/month strict (quota_exceeded); Developer 1,000/month and Business 100k/500k/1M per 12-month period are soft — calls above the quota go through, are counted as extra calls, and within 14 days the client either upgrades or pays €0.01 excl. VAT per extra call; quota_exceeded on a paid plan only happens after Movelytics switched the account to a strict limit. https://docs.posetracker.com/reference/features-plans