# Overview

Upload Tracking handles **video and image uploads** for pose analysis.

For videos, Upload Tracking can work either with a built-in `exercise` or with a custom `reference` movement created in the dashboard. For full setup and returned data, see [REFERENCE](https://posetracker.gitbook.io/posetracker-api/use-posetracker-on-real-time-camera-webcam/query-params-details/reference).

{% hint style="info" %}
Need a faster implementation path?

We also provide a GitHub repo with LLM-ready prompts and examples for uploaded workout video analysis, reference comparison, and AI coaching:\
<https://github.com/Movelytics/posetracker-llm-prompts>

Useful for vibe coders building:

* Flutter video analysis
* TypeScript upload flows
* AI coaching review screens
  {% endhint %}

Base URL:

```
https://app.posetracker.com/pose_tracker/upload_tracking
```

### What you can do

#### Video (`source=video`, default)

* Upload a video file, or pass a remote URL (`videoSrc`).
* Run pose estimation in real time.
* Optional skeleton overlay (`skeleton=true`).
* Optional movement tracking:
  * built-in exercise tracking with `exercise=...`
  * custom reference-based tracking with `reference=REFERENCE_UUID`\
    This can return reps, posture state, progression, recommendations, or reference comparison scores depending on the selected mode.
* Optional export: generate a new video with the overlay.

#### Image (`source=image`)

* Upload an image file, or pass a remote URL (`imageSrc`).
* Run pose estimation once.
* Optional skeleton overlay.
* Optional keypoints + angles output.
* **No** exercise/movement tracking (no counter, progression, recommendations).

### WebView usage

You can embed the endpoint page in a WebView. The page sends results back to the host app via **sendDataToNative-style messages**.

See [WebView / native messages](https://posetracker.gitbook.io/posetracker-api/use-posetracker-on-uploaded-files/upload-tracking-endpoint-video-and-image/webview-native-messages).

### Quick start

#### Video (user uploads a file)

```
https://app.posetracker.com/pose_tracker/upload_tracking?token=YOUR_API_KEY&source=video&exercise=squat
```

#### Image (user uploads a file)

```
https://app.posetracker.com/pose_tracker/upload_tracking?token=YOUR_API_KEY&source=image
```

### When to use what

* Count reps on a video:
  * `source=video`
  * upload or `videoSrc=...`
  * `exercise=...`
* Compare a video against a custom reference movement:
  * `source=video`
  * upload or `videoSrc=...`
  * `reference=REFERENCE_UUID`
* Export an overlay video:
  * `source=video`
  * `export=true`
  * `exercise=...`
* Analyze a single image (keypoints/angles/overlay):
  * `source=image`
  * upload or `imageSrc=...`
  * `keypoints=true` and `angles=true` (plan-gated)
