# Query parameters (Tracking endpoint)

Base URL (canonical):

`GET https://app.posetracker.com/pose_tracker/tracking?token=...&exercise=...`

This endpoint runs **real-time camera tracking** in an iframe or WebView.

It emits structured messages through `postMessage`.

Shared parameters and the full V3 exercise list live here:

* [Shared query parameters (Tracking + Upload Tracking)](https://posetracker.gitbook.io/posetracker-api/posetracker-api-query-parameters)

### Required

#### `token` (required)

Type: `string`\
Default: none

Your PoseTracker API key.

#### `exercise` (required)

Type: `string`\
Default: none

The movement key to track.

Use a V3 key like `squat` or `push_up`.

See the full list on the shared page.

### Shared V3 options (available on Tracking)

These exist on both endpoints:

* `difficulty`
* `skeleton`
* `keypoints`
* `angles`
* `recommendations`
* `progression`
* `blazepose`
* `poseBackend`
* `runInWorker`
* `width` / `height`

See definitions and defaults on:

* [Shared query parameters (Tracking + Upload Tracking)](https://posetracker.gitbook.io/posetracker-api/posetracker-api-query-parameters)

### Placement (real-time only)

Placement is the “get the user in the right position” phase.

It drives `posture` messages.

#### `placement` (optional)

Type: `boolean`\
Default: `true`

Enables the built-in placement UX.

Set `placement=false` if you want to manage placement yourself.

You will still receive `posture` messages.

#### `postureBox` (optional)

Type: `boolean`\
Default: `false`

Draws a box overlay to guide where the user should stand.

Useful when your UI has tight framing requirements.

#### `placementCountdownSeconds` (optional)

Type: `number` (seconds)\
Default: `0`

Adds a countdown once placement becomes ready.

Typical usage:

* `placementCountdownSeconds=3` for “3…2…1…go” behavior.

During the countdown you still receive `posture` messages.

#### `placementBoxStrokeColor` (optional)

Type: `string` (CSS color)\
Default: `#00E676`

Changes the placement box stroke color.

Examples:

* `placementBoxStrokeColor=%23FF3B30` (red)
* `placementBoxStrokeColor=rgba(255,255,255,0.9)`

#### `placementOverlayImageUrl` (optional)

Type: `string` (URL)\
Default: none

Loads a custom overlay image during placement.

Use this for branded silhouettes or “stand here” guides.

The URL must be publicly reachable from the user’s device.

#### `placementOverlayOpacity` (optional)

Type: `number` (`0.0` → `1.0`)\
Default: `0.7`

Opacity for the placement overlay layer.

#### `placementImageOpacity` (optional)

Type: `number` (`0.0` → `1.0`)\
Default: `1.0`

Opacity for the camera image during placement.

Lower it if you want overlay elements to stand out.

#### Padding parameters (optional)

These are useful in mobile WebViews with notches and safe areas.

All values are numbers in pixels.

Defaults: `0`.

* `paddingHorizontal` / `paddingVertical`
* `paddingLeft` / `paddingRight` / `paddingTop` / `paddingBottom`

If both `paddingHorizontal` and `paddingLeft` are set, `paddingLeft` wins.

### Jump exercises (Tracking + Upload video)

These parameters are only used for jump exercises:

* `exercise=jump_analysis`
* `exercise=air_time_jump`

#### `userHeightCm` (required for `jump_analysis`)

Type: `number` (centimeters)\
Default: none

User height in centimeters.

Used to compute a pixel-to-cm scale.

If missing, you receive an `error` with code `jump_analysis_missing_height`.

#### `devicePitchDeg` (optional)

Type: `number` (degrees)\
Default: `0`

Camera pitch angle.

Use it when the device is pitched up or down.

This improves jump height accuracy for `jump_analysis`.

### Related docs

* Tracking messages and payload examples: [WebView messages (Tracking endpoint)](https://posetracker.gitbook.io/posetracker-api/use-posetracker-on-real-time-camera-webcam/webview-messages-tracking-endpoint)
* Legacy parameter page (kept): [Tracking Endpoint params](https://posetracker.gitbook.io/posetracker-api/use-posetracker-on-real-time-camera-webcam/query-params-details)
