# PoseTracker integration

## Start using PoseTracker WebViews / iframes

The simplest way to integrate PoseTracker is through a **WebView / iframe**.

Your application embeds a PoseTracker URL, and PoseTracker handles:

* pose estimation
* movement tracking
* matching movement to a reference
* repetition counting
* optional developer outputs (keypoints, angles, progression, etc.)

PoseTracker then sends structured events back to your application via **postMessage / WebView bridge**.

{% hint style="info" %}
The easiest way to experience PoseTracker is the mobile demo app.

Install it on iOS or Android.

Then follow along with the docs.

* iOS (App Store): <https://apps.apple.com/us/app/posetracker-ai/id6759670702>
* Android (Google Play): <https://play.google.com/store/apps/details?id=com.posetracker.v3demo>
  {% endhint %}

***

## Two Integration Modes

PoseTracker supports **two simple integration modes**.

Both modes use the **same tracking engine**, the **same outputs**, and the **same message format**.

***

### 1️⃣ Real-time tracking (camera / webcam)

PoseTracker analyzes movements **live from the device camera**.

Typical use cases:

* fitness coaching
* real-time rep counting (like counting squats)
* posture feedback
* live movement analysis

Endpoint:

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

Your app opens the URL in an iframe or WebView and PoseTracker processes the camera stream directly.

***

### 2️⃣ Uploaded video or image analysis

PoseTracker analyzes **a video or image uploaded by the user**.

Typical use cases:

* analyzing workout recordings
* generating skeleton videos
* extracting keypoints
* offline rep counting

Endpoint:

```
GET https://app.posetracker.com/pose_tracker/upload_tracking?token=...&source=video|image&exercise=...
```

The user uploads a file and PoseTracker processes it directly in the browser.

***

## Same Outputs in Both Modes

Both integration modes return **the same type of events and developer outputs**, including:

* repetition counter
* form score
* progression
* keypoints
* angles
* recommendations

Your application receives these events through **postMessage / WebView bridge**.

***

## 🆕 Reference Movement Comparison 🆕

PoseTracker now supports **reference movement tracking**.

Developers can create a **reference movement** in the PoseTracker dashboard using a short video containing **one ideal repetition of a movement**.

PoseTracker analyzes this video and generates the **movement signature**.

This reference can then be used to:

* detect repetitions of the same movement
* measure similarity to the reference
* score each repetition

The reference can be used with **both real-time tracking and uploaded video analysis**.

Example:

```
https://app.posetracker.com/pose_tracker/tracking?token=YOUR_TOKEN&reference=REFERENCE_UUID
```

or

```
https://app.posetracker.com/pose_tracker/upload_tracking?token=YOUR_TOKEN&reference=REFERENCE_UUID
```

When using a reference movement, PoseTracker compares the user's movement to the reference and returns similarity scores.

⚠️ `reference` cannot be combined with `exercise`.

***

## How PoseTracker Works

1️⃣ Your application opens the PoseTracker URL in a **WebView or iframe**\
2️⃣ PoseTracker runs **pose estimation locally on end-user device**\
3️⃣ PoseTracker detects movements and computes results\
4️⃣ PoseTracker sends structured messages to your application

Your app can then:

* get pose estimation data (with a developer plan)
* update the UI
* store results
* trigger training logic
* analyze performance

{% hint style="info" %}
**Vibe coding with PoseTracker**\
If you use Cursor, Claude, Copilot, or ChatGPT, use our GitHub repo with ready-to-use prompts, examples, and quick fixes:\
<https://github.com/Movelytics/posetracker-llm-prompts>
{% endhint %}

{% embed url="<https://github.com/Movelytics/posetracker-llm-prompts>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://posetracker.gitbook.io/posetracker-api/posetracker-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
