# Hyperhuman Teams Platform Guide

**Last updated:** September 25, 2026 (**Workout Video file:** **Full workout video** is off by default. A studio save does not queue an MP4. With the switch off, editing removes the file and `GET .../export/video/stream_url` stays 404; `GET .../playlist` is unchanged. On: Save starts a file in the saver's language and keeps the previous file until the new one is ready. **Generate video** is the manual render. No Content API to start a render or read status. Prior September 19: **Workout music:** PulseMix pool vs mix-into-export vs playlist links; stock soundtrack is not a YouTube monetization license. Prior September 17: **Review clips** groups by video; **Fix cuts** opens trim in a new tab; **Refresh** after you save. Prior September 12: ChatGPT **Try embed demo** frames the Teams player with `keyHandshake`; placeholder `YOUR_API_KEY` is not a live player. Prior same day: Check fit is review only; App features mix; Recommend = team catalog; chat generate defaults to stock; Club chips unexpected. Prior: September 11, 2026 — collections ≠ equipment; Ultra yearly catalog = same clips; header locale; Club team default is guidance; Programming / generate deep links. **Style** Auto **Two fit. Pick one.** stays disabled until you pick. History **View** opens then closes; **Saved** only when View works. **Check fit** opens Style fit over history. Unsaved guideline: **Save changes** / **Discard** / stay. Prior: September 10, 2026 — Try-it-free paths; client join gate is `member.hyperhuman.cc/welcome?orgId=<id>`)

Hyperhuman Teams is the production and publishing workspace for fitness content infrastructure: create, manage, automate, deliver, and monetize. Start at [team.hyperhuman.cc/welcome](https://team.hyperhuman.cc/welcome).

[Open Teams](https://team.hyperhuman.cc/welcome)

Hyperhuman ([hyperhuman.cc](https://hyperhuman.cc)) is not a medical device and does not diagnose, treat, or prescribe. It is not affiliated with Hyperhuman.ai (ChatAvatar by Deemos).

For marketing language use [Features](https://hyperhuman.cc/features) and [Pricing](https://hyperhuman.cc/pricing). Company overview for agents: [llms.txt](https://hyperhuman.cc/llms.txt). For what a specific team’s plan includes, use **Settings → Subscription** in the app. For the Content API contract, use [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md) and [OpenAPI](https://content.api.hyperhuman.cc/openapi.json).

**Support.** In-app **Chat** (Home header, or the messenger) is the go-to channel — plans, how-tos, product questions, 24/7. Email `support@hyperhuman.cc` is for **Enterprise pricing and scoping**, and for **major outages**. Structured Enterprise / consulting / custom / partnership enquiries: [Contact](https://hyperhuman.cc/contact). There is no demo call and no calendar booking. `/book-a-demo` redirects to `/contact`.

---

## 1. Platform overview

Teams use Hyperhuman to **create** workouts and programs (manually or with AI), **manage** an AI-ready content library, **automate** content creation and social publishing, **deliver** content across app, web, embeds, and API, and **monetize** through Stripe subscriptions.

**Core loop:** Create → Personalize → Automate → Publish → Monetize → Engage.

**Self-serve plans:** Free, Content, Platform, Ultra (monthly or yearly; yearly saves 20%). Custom and Enterprise plans are available for larger organizations. Optional **scale packs** add capacity (exports, clips, seats, storage, API throughput) without changing plan type. Optional **add-on modules**: ROOK wearables and ASENSEI movement recognition. A **white-label branded member app** (Hyperhuman Club) is available as a one-time setup on qualifying yearly plans.

### Key capabilities

| Capability | Where | Plan notes |
|---|---|---|
| AI Workout Builder and Program Generator | Create menu, `/create-workout?generate=true` | All plans (storage quota applies) |
| Create Similar (AI workout or program variation) | Workout or program details → Make a variation | All plans |
| CloneMotion (photo → exercise clip) | `/generate-video-clip` | Monthly AI clip quota per plan |
| AI Video Editing (edit, extend, background, class chapters, metadata autofill) | Library → Actions → AI Edit | Paid plans; monthly AI edit quota |
| Smart Library (stock, premium, licensed, uploads) | Manage Content → Library | Free stock on all plans; premium stock on entitled plans. Classes become workouts before you download |
| LES MILLS licensed classes | Browse Stock → LES MILLS | All-Access Pack or pay-as-you-go per active class. After license: Library → Create workout → Deliver |
| Social Drops (channel-ready clips, AI copy, covers) | Manage Content → Social Drops | Monthly social clip export and publish quota |
| Automate (Content Autopilot and social publishing) | `/automate` | Concurrent task quotas per plan |
| Direct social publishing (Instagram, TikTok, YouTube, Facebook) | Automate → Social publishing | Connected accounts plus plan feature |
| Team analytics (Content, Social, API) | `/analytics` | Advanced Content and Social panels gated by plan; API usage on API-enabled plans |
| Client management, paywall, Stripe subscriptions | `/clients`, Settings → Payments | Platform fee on client payments; optional invite emails |
| Content API and embeds | Settings → Integrations; Home **Content API** card | API-enabled plans; managers copy the key. Members use Analytics → API for usage. Rate limits per plan |
| Localization | Throughout | 18 locales, text-to-speech voices per locale |
| White-label member app (Hyperhuman Club) | Settings → Branded App; [Club](#12-branded-member-app-hyperhuman-club) | Yearly Platform, Ultra, or Custom plus one-time setup |
| Wearables (ROOK) / Movement AI (ASENSEI) | `/subscription#addons` | Separately billed add-on modules |

---

## 2. Navigation

Persistent left sidebar, in order: **Home** → **Review Videos** (only when uploads need review; shows a count badge) → **Manage Content** → **Automate** → **Analytics** → **Clients** → **Team** → **Settings**. Footer: profile link, plan badge, and **Upgrade Plan** for managers and owners (opens `/subscription`). Team members see profile and plan badge without the upgrade button.

**Create** (top of the sidebar) opens:

- *Generate Workouts & Programs:* **Generate Workout**, **Browse Templates**, **Build from Scratch**, **Browse LES MILLS Classes** (when available)
- *Upload or Generate Clips:* **Generate Exercise Clips**
- *Schedule Automations:* **New Automation Task**, **Social drop publishing**

Program generation is available from the Home **Start with AI** card, the Programs tab **CREATE PROGRAM** button, the empty Programs **GENERATE WITH AI** button, or `/create-program?generate=true`.

### Routes

| Route | Purpose |
|---|---|
| `/welcome`, `/login`, `/create-account`, `/create-team`, `/invitation` | Auth and team setup |
| `/` | Home |
| `/manage` | Manage Content — `?tab=workouts` (default), `library`, `programs`, `programming`, `social-drops`. Unknown `?tab` falls back to workouts. Workouts also `?openShareLibrary=true`. Programming also `?openProgrammingHistory=true` |
| `/automate` | Automate — `?tab=automations` (default), `task-calendar`, `history`, `settings` |
| `/analytics` | Analytics — `?tab=content` (default), `social`, `api` |
| `/clients` | Clients — `?tab=clients` (default), `invitations`, `revenue`, `settings` |
| `/team` | Team — `?tab=members` (default), `invitations`, `roles` (managers) |
| `/settings` | Settings |
| `/profile` | Personal account |
| `/subscription` | Plans, checkout, scale packs, add-ons, white-label |
| `/create-workout`, `/create-workout/[id]` | Workout builder |
| `/create-program`, `/create-program/[id]` | Program builder |
| `/workout/[id]`, `/program/[id]` | Workout or program details |
| `/client/[clientId]` | Client profile — `?tab=overview` (default), `profile`, `sessions`, `assessments` |
| `/generate-video-clip` | CloneMotion |
| `/library/video-editor/[exerciseId]` | Exercise extraction editor. From Review clips, **Fix cuts** opens this in a new tab |
| `/embed/workout/[id]`, `/embed/workout-json-receiver`, `/embed/generate-video-clip` | Public embeds |

Older bookmarks still work: `/library` → Manage Content Library; `/workouts` and `/programs` → the matching Manage tabs; `/content-autopilot` → Automate; `/manageClients` → Clients.

**Deep links:** `?drop=<id>` opens a Social Drop; `?dropAnalytic=<id>` opens drop stats; `?exerciseReview=true` (optional `&recordingId=`) opens **Review clips**; `?videoEditingJob=<id>` opens AI Jobs. Client profile supports `?tab=overview` (default), `?tab=sessions&openSession=<sessionId>`, and `?sendContent=true`.

---

## 3. Getting started

1. **`/welcome`** — email-first entry (sign-in or sign-up; Google sign-in when enabled). Signed-in users go to Home. On the page: **Build on Hyperhuman** / **Fitness infrastructure. Your brand. Days, not months.** Footer **Guide** opens this file.
2. **`/create-account`** — first name, last name, email, password (Google when enabled). **Log in** for existing users. Footer **Guide** opens this file.
3. **`/create-team`** — team name is enough. Optional launch goals (I have a product / I need a member app / I create and deliver) shape the Home checklist. Business type and delivery surfaces stay optional.
4. **`/login`** — returning users. Same footer **Guide**.
5. **`/invitation`** — accept or decline a team invite.

**Onboarding on Home:** a short launch checklist (3–4 required steps). The green primary button is the next step and navigates there. Plan-lane cards appear after the required checklist is done or after day 7. Users can hide or show the widget. After it is hidden, empty Home is create-first: **Generate a workout**. Invite lives on **New clients**.

**First-time banner** (`/?firstTime=1`): **Generate a workout. About 5 minutes.** Hidden while the onboarding widget is visible.

---

## 4. Home

Home has two modes. Onboarding is the launch checklist. Post-onboarding Home is a plan-aware command center for the job on this visit.

**Layout (top to bottom):**

1. **Do next** plus **Start with AI** (generate workout, generate program, clips from photo, extract clips). When jobs are ready, Do next is a deliver card with previews and **Share library**.
2. **Last 30 days** — content KPIs. Social totals are hidden on the Platform plan.
3. **Ready to ship** plus **New clients**
4. **One featured row** (plan-gated; omitted on Free, and on Content when LES MILLS is shown)
5. **Browse** — featured LES MILLS shelf when available, then Templates and Stock. Catalog only — not the team library.

**Chat** and **Report** sit in the Home header. **Chat** opens support chat (go-to help). **Report** is for filing a product issue. Managers and owners also get **Manage subscription**. There is no Help card. The notification inbox (bell) is the coach’s Teams inbox: automation results, export and AI job completions, recording review, invites, client activity, client alerts (when enabled), billing, and the weekly recap. Those items are for the signed-in coach. Member morning reminders live in the member app.

### Do next

Priority is blockers first, then the latest workout, then generate. Workouts have **no draft status**. An empty workspace should **create a workout**, not invite a member.

| If they see | Button | What it does |
|---|---|---|
| Review *n* clips | Review clips | Opens **Review clips** (grouped by source video) |
| *n* ready to ship | Share library | Opens Manage Content → Workouts and **Share your library, your way** (embed and API) |
| Quota is almost full | Manage plan | Settings → Subscription (managers and owners) |
| Latest: *workout name* | Open workout | That workout’s details |
| Generate a workout | Generate workout | AI workout generator |

Invite is **not** Do next. Invite lives on **New clients**.

### Roles on Home

| Control | Manager / owner | Team member |
|---|---|---|
| Chat / Report | Yes | Yes |
| Manage subscription | Yes | Hidden |
| Sidebar Upgrade Plan | Yes | Hidden |
| Launch app | On New clients | Hidden |
| Do next “almost full” | Can appear | Never |
| Content API card | When the plan includes API | Managers copy the key from Home or Settings → Integrations. Members use Analytics → API for usage. |

### Cards

- **Start with AI:** Generate workout, Generate program, Clips from photo, Extract clips. Extract checks storage first; if the team is over storage, the upgrade path opens.
- **Last 30 days:** Active clients, sessions, completion rate, average rating. Empty: **Ship a workout. Metrics follow.** If social is unavailable: **Social unavailable.** **View analytics** goes to `/analytics`.
- **Ready to ship:** Published workouts, CloneMotion clips, ready Social Drops, and completed AI edits. Surfaces are app, API, clients, and export. Header **All jobs** opens the same AI Jobs History as Library. Empty: **Nothing waiting. Generate something.**
- **New clients:** Recent members and **Invite clients**. Owners and managers also get **Launch app** (white-label member app).
- **LES MILLS (inside Browse):** Featured shelf when licensed classes are available for the team. Browse opens stock on LES MILLS. Activate, manage, and cancel live on Settings → Subscription (managers).
- **Content API:** Organization ID, API key, docs, and a link to Settings → Integrations. On API-enabled plans, managers copy the key from this card or Integrations. Free and non-entitled plans have no API card. Members on API plans use Analytics → API for usage.
- **Automations:** Recent run list, or **New automation** when none are active.
- **Browse:** Catalog only. Team library is Manage Content → Library. Review clips live in Do next and Review Videos.

Usage pills are not on Home. Limits live in Settings → Subscription. **Share library** opens the Manage Content share modal (embed and API), not a scroll on Home.

---

## 5. Creating content

### Workout builder (`/create-workout`)

Drag-and-drop builder with three row kinds: single exercises, longer videos (class, multi-exercise, promo, educational), and rest blocks. Live preview uses team branding.

**Per-exercise settings:** reps 1–100 (default 6) or time 5s–1830s (default 30s), AMRAP, rest 5s–1830s, weight, load level, RPE 0–10, pace, skip-intro.

**Workout-level settings:**

- Up to 3 categories, optional tags (max 5; library search only), difficulty (beginner / intermediate / advanced), visibility (**Public** = listed — every joined client can browse it in the member app; **Private** = hidden from those browse lists; deliver with **Send to clients** or a share link). There is no third “Unlisted” value — the API name for Private is `private`. Private requires the **Private content** entitlement — without it the option is shown but disabled (“Needs Private content.”). Click **Save Workout** after you change visibility. **Send to clients** does not hide other Public items.
- Intro and outro narration (per workout): one clip per locale via text-to-speech, recording (max 30s), or upload. These are stored on **this workout**. Changing your default voice does not regenerate them — delete and re-add TTS in the builder. Your intro/outro **pools** live under Workout Defaults → Sound (your account, not the whole team).
- **Per-step audio instructions** on Exercise slots only: inherit the library item’s instructions, custom (up to 3 clips per language, max 20s each), or silent. Original, Class, Promo, and Tutorial steps keep the video soundtrack
- Presentation style: Standard / Minimal / Essential / No Overlays
- Video audio mode: Full / Instructions only / Beeps only / None
- PulseMix pool: [Workout Defaults → Music](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=music) (stock and/or uploads; BPM and category match). The builder does not pick tracks
- Background music on/off: bake that pool into the export (`mixBgMusic`). Default on. Off = player and API only. Disabled when audio mode is None
- Playlist links (Spotify, YouTube, Apple Music, Amazon Music): open-in-app for the player and API. **Not in the file**

**Hard limits:** max 90 minutes, max 100 clips, max 2 class videos. A single class is enough to save (the min-2-videos rule is waived). Cannot start or end with a rest. Name at least 3 characters, at least 1 category and a difficulty.

There is **no workout draft status**. Save writes the workout. A preview job prepares interactive play. The Workout Video file is separate and is **not** queued on save unless [Full workout video](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=format) is on for the coach who saves. That switch is off by default. With it off, a later edit removes the existing file. Audience is Public or Private. Member apps and the Content API list published workouts. The player and `GET /v1/workouts/{id}/playlist` keep working either way.

### AI workout generation (`/create-workout?generate=true`)

Parameters: category, difficulty, duration (15 / 30 / 45 / 60 minutes), footage source (Free stock, Premium stock on entitled plans, Team library), audience, equipment, muscle groups, include or exclude exercise collections, **Style** (Auto / None / a saved profile), and **Notes** (this request only, max 2000 characters; beats Style text, not form or team locks). A “30–40 minutes” paragraph in a guideline is **text**, not a form field. Collections are a **look / set** (for example Premium - Advanced Gym), not an equipment gym — machine vs free-weight filtering is the **Equipment** picker (Bodyweight / Free Weights / Gym Equipment). Notes that mention “machines” do not filter the pool.

Save reusable methodology under [Manage Content → Programming](https://team.hyperhuman.cc/manage?tab=programming) (up to 10 personal guidelines). Same editor lives under Workout Defaults → Programming. On for every team — not a plan extra. Write how you program (workouts and/or programs). That text is **guidance, not a lock**. The editor does not show Structured rules. Existing stored hard rules still clamp generate. Generate and Create Similar name an impossible hard-rule conflict and stay disabled. **Style** Auto that shows **Two fit. Pick one.** also stays disabled until you pick a Style. After generate or Create Similar, **Check fit** in the builder opens **Style fit** (methodology only) when this draft has a generation link. **Check fit does not rewrite or auto-correct** the draft (met / partial / not met). Saving keeps that link on the workout. Library filters can show All, AI · Fit, AI · Partial, or No AI stamp. **HISTORY** on the Programming tab (or Library **AI JOBS** → Programming) reopens **Check fit** on a past generation. Saved rows also have **View** when the saved id is a real workout or program id — View opens that item, then history closes. **Saved** only appears when View can open. Fit / Partial chips appear only when that run has a stamp.

The result opens **unsaved in the builder**. Review, adjust, then save.

Footage source defaults to Free stock (or Premium stock on entitled plans). Team library only works best when you have several published team exercises. If generation cannot find enough exercises, the toast names the fix and the modal stays open:

- Team only → *Not enough team exercises. Add a stock source or publish more team exercises.*
- Other thin sources → *Not enough exercises in the selected sources. Add more sources or relax filters.*
- Tight collections → *The selected collections contain fewer than 10 exercises.* or *Excluding these collections leaves fewer than 10 exercises in the pool.*
- Unknown → *Could not generate workout. Please try again.*

This is a source-pool check, not a plan limit. Upgrade only if Premium stock was selected without entitlement.

### Programs (`/create-program`)

Week-based builder: **1–24 weeks**, **1–7 workouts per week**, **1–2 goals**, minimum 2 workouts, difficulty required. Visibility is Public or Private (same Private content rule and browse rules as workouts — Public is listed for joined clients; Private is not). **Programs own the ordered sequence.** Categories and tags do not set week order. Example: Week 1 Strength, Week 2 Recovery — put those workouts on the program canvas, then `GET /v1/plans/{planId}/workouts` returns that order.

**AI program generation** parameters: audience, fitness level, equipment, goals, duration, workouts per week, workout source (Team library and/or Platform Templates), **Style** (Auto / None / a saved profile), and **Notes** (this request only, max 2000 characters; beats Style text, not form or team locks). The generated program opens unsaved in the builder. Same Workout Defaults → Programming profiles as workouts. Enforced frequency locks can change weeks / sessions; Generate names the conflict and stays disabled if the request is impossible. **Two fit. Pick one.** also keeps Generate / Create Similar off until you pick a Style. **Check fit** is on demand after generate or program Create Similar when a generation link exists — Style fit (methodology only). It does **not** rewrite or auto-correct the draft.

Generation needs at least **3 eligible workouts** in the selected sources. Eligible workouts are not deleted, not locked, and **Public**. Private team workouts never count. A new team should add **Platform Templates** or publish at least 3 public team workouts. **Platform Templates keep the source team’s byline** (often Team HyperFitness) on those workouts. Team-library-only plus your uploads show your team.

If the pool is too small, the modal stays open:

- Team only → *Not enough team workouts. Add Platform Templates and try again.*
- Templates only → *Not enough template workouts. Add Team workouts and try again.*
- Both / unknown → *Not enough workouts available. Add more workouts and try again.*

### Create Similar (Make a variation)

AI adaptation of an existing workout or program into an **unsaved builder session** — not a copy, and not a draft.

| Action | Result |
|---|---|
| **Duplicate** | Exact copy, saved immediately |
| **Create Similar** | AI variation in the builder — review and save |
| **Generate from scratch** | New workout, not tied to a source structure |

Pick exercise sources, optionally a **Style** (Auto / None / a saved profile — yours, not the source owner’s; Auto uses the source workout’s category), optionally **Notes** (max 2000 characters; beats Style text), then generate. Team only needs enough unused team exercises after the source workout’s moves are excluded. Create Similar runs the same hard-rule check as Generate and stays disabled when the request is impossible. A yellow caution banner in the builder means the AI used a simpler path — retry with broader sources or shorter guidance. For a completely different structure, use Generate from scratch. **Check fit** is available after a successful variation when a generation link exists. Workout and program Create Similar attach the same generation link as generate.

### CloneMotion (`/generate-video-clip`)

Generate a short exercise clip from a trainer photo. See the [CloneMotion guide](https://content.api.hyperhuman.cc/docs/guides/clonemotion.md) for pose, lighting, and motion-note tips.

**Flow:** add a trainer photo → pick the exercise → optional Motion note and Visual style → generate, review, and save. Jobs continue in the background and reopen from History, Library **AI JOBS**, or Home **Ready to ship → All jobs**.

**Photo:** landscape 16:9, at least 1280×720, JPG/PNG/WebP, up to 20MB. Match the exercise’s starting pose; keep the full body centered; use bright, even light.

Generation uses one monthly AI clip credit. A playable delivered clip commits it; a technical failure releases it. Downloading a finished clip does not consume another generation credit. Poor but playable results remain consumed.

For a consistent trainer across a program, save one photo and generate every movement from it. To retrofit existing workouts, replace the video on the existing library exercise so every workout that references it updates.

### AI video editing (Library → Actions → AI Edit)

Post-production for team-owned exercise videos (copy stock to the library first). Free and locked plans can open the modal as a preview and are prompted to upgrade. Paid plans use the monthly **AI video editing** quota.

| Tool | What it does | Constraints |
|---|---|---|
| **Edit** | Natural-language conversational edit: remove clutter, add props, brighten, and similar | Source ≤ 10s on the first turn; prompt max 2000 characters |
| **Extend** | Adds a short AI-generated continuation | Source 1–30s |
| **Background** | Replace background (upload, Unsplash, or solid color) | Videos up to 60 seconds; exercise owner only |
| **Chapters** | Detects each exercise inside a published Class video and stores timestamped chapters | Published, team-owned Class only; re-running replaces all chapters |
| **Metadata autofill** | Fills name, muscle groups, equipment, coach, tags, skill level, categories, and related fields | From Details or bulk library actions |
| **Extract exercises** | Splits a long recording into separate library clips | `/library/video-editor/[id]` |

Jobs can run in the background. When ready: **Use this video**, **Keep both**, or **Keep editing**. The original stays unchanged until a result is applied.

**Convert to Exercise** changes this library item to type Exercise. Original sound is removed; the same item stays in workouts. Convert is for unlocked items **under 60 seconds**. Long Class videos use extract or chapters, not convert.

### Uploading videos and review

You upload a **recording**, not a workout. Type is **Original** until you convert or extract. You cannot pick Exercise on upload.

**ADD VIDEOS** → *Upload your videos* has **three** tabs. URL sits under **Individual videos**, next to local files.

| Tab | Use when | Limits |
|---|---|---|
| **Individual videos** | Files from this computer, or one public **file download** URL | 5 files without an active plan, 25 with one. **2GB** each |
| **CSV import** | Spreadsheet of name + file URL | 100 files. Active plan. Bad rows skipped |
| **Google Drive** | A public folder (`Anyone with the link`) | 100 files. Active plan. Subfolders ignored |

**Supported files:** MP4, M4V, MOV, WebM, MKV, AVI, MPEG, OGV, WMV. Max **2GB** per file. Storage quota still applies. Prefer **16:9 landscape**, 1080p. Portrait can letterbox or crop in the player, Club app, and exports. Name a single-move file after the exercise (`push-ups.mp4`). Other containers are accepted, then normalized to 1080p MP4.

**URL is a file download, not a watch page.** Paste a link that **downloads** the video (Google Drive file share, Dropbox file share, Vimeo **Download the video**, or any public HTTPS file). Watch/share pages, YouTube, Drive/Dropbox **folders**, and HLS/DASH (`.m3u8` / `.mpd`) are rejected. Vimeo **Play** links can be HLS — use **Download**.

Vimeo (needs a Vimeo Standard+ plan for Video file links): Library → video → ⋮ → **Video file links** → **Download the video** → **Copy Link**. Copy the link from Vimeo, not the address bar after it redirects. If you do not see Video file links, download the MP4 and use **Individual videos**. Help: [direct links](https://help.vimeo.com/hc/en-us/articles/12426150952593-How-to-access-my-video-s-direct-links).

CSV rows that are not valid file links are skipped; the toast reports how many imported and how many skipped. Do not paste a folder URL on Individual videos — use the Google Drive tab.

**What’s next**

| Stage | Who acts | You do |
|---|---|---|
| **Processing** | We transcode and find moves | Wait. Upload can take minutes; ready-to-review is usually **2–36 hours** |
| **Waiting** | Our review queue | Wait |
| **In review** | Our team checks the clips | Wait |
| **Ready for you** | You | Sidebar **Review Videos** (or Home **Review clips**) → **Review clips** |

**Review clips.** Title **Review clips** / *Check the cuts. Then add them.* Clips are grouped by the source video (name, date, clip count). Expand a video. Preview each cut. **Add to library** or remove it. **Add all** / **Remove all** for the loaded queue. A duration over 40 seconds is past the usual extract window — check the cut.

**Fix cuts** on a video opens the trim editor in a new tab. Save there, then come back and tap **Refresh** (or click the review tab). The editor stays open after save — it does not send you to Library. Email and push use the same flow (`/?exerciseReview=true`).

We email you when it is ready (`Recording ready for your review`). Check progress on the Library status bar or **Upload status**. The percent is how many uploads you have added to the library — not this file’s progress.

Failed rows: click **Failed** for the reason. A cut-off download fails instead of saving a short video. Stored length is the file we transcoded, not the Vimeo page length. Extracted Exercise clips are a separate 3–40s looping window — that is not the recording length.

**After it is in the library:** keep **Original** (plays once, soundtrack stays), **Convert to Exercise** (unlocked, under 60 seconds — reps, loop, up to 3 instructions per language), or **Extract clips** from a long tape. Then build a workout.

---

## 6. Manage Content (`/manage`)

Tabs: **Workouts** (default) | **Library** | **Programs** | **Programming** | **Social Drops**. Unknown `?tab` opens Workouts.

### Library

Header: **AI JOBS** and **ADD VIDEOS** (Upload your videos / Add from stock / Generate exercise clips). Uploads land as **Original**. Exercise is Convert or Extract, not an upload option. Add from stock is only to customize stock.

| Type | Behavior |
|---|---|
| **Exercise** | Smart clip for workout building — original audio removed, up to 3 instructions per language, set reps or duration in the builder, auto-loops to match configured time |
| **Original** | Plays as uploaded; original audio preserved. **TEAM** on a card is ownership, not this type |
| **Promo** | Clean playback for branding; no exercise overlays |
| **Tutorial** | Educational; original instructor audio |
| **Class** | Long-format instructor-led workout; optional AI Smart chapters |

**Original** is the source file: it plays once and keeps its soundtrack. **Exercise** is the smart clip used in the builder: reps or duration, auto-loop, overlays, and up to 3 audio instructions per language.

From Actions on an uploaded video:

- **Convert to Exercise** — clips under 60 seconds. Same item becomes Exercise; original sound is removed. Example: a 30-second squat clip.
- **Extract exercises** — longer recordings. Detects movements; you review and accept separate Exercise clips. Example: a 10-minute tape with squats, lunges, and push-ups. From **Review clips**, **Fix cuts** is the same editor in a new tab.

Open [Library](https://team.hyperhuman.cc/manage?tab=library). For new uploads still in review: [Review clips](https://team.hyperhuman.cc/?exerciseReview=true).

Exercise footage should be **16:9 landscape**. Portrait uploads can letterbox or crop in the player, Club app, and exports. There is no full-screen portrait player mode.

Stock exercises are read-only until you **Add to Library**. Premium stock requires an entitled plan. Regular Hyperhuman stock on paid plans is watermark-free source footage for commercial use in your own product. That is the **video**, not the PulseMix soundtrack. Licensed partner content (for example LES MILLS) may keep provider branding on the video.

**Groups (Library collections):** **Circuit** vs **Sets** changes playback order, not a nested visual in the web player, Club app, or full-video export. Circuit: Squat → Push-up → Row, then repeat. Sets: Squat ×3 → Push-up ×3 → Row ×3. In-product copy: *All exercises sequentially one round at a time* vs *Each exercise one set at a time*.

**Empty library:** **Build your exercise library** / *Stock clips plus yours. Add from stock, upload, or generate.*

Unlocked **CLASS** videos expose Actions → **Create workout**. That wraps the class in a workout so you can play, embed, or download it. A class in Library is source footage — it is not a download. Locked licensed classes (inactive subscription, or the provider class is locked) only offer **Remove from library**. Details stays on the card when the user can edit.

### Class video to a file

A class in Library is source. The workout is what you play, embed, or download.

1. [Library](https://team.hyperhuman.cc/manage?tab=library) → class → Actions → **Create workout**
2. Review overlays (class prefill uses Essential, PulseMix off, no intro/outro). Save Workout.
3. Preview builds for the player. The Workout Video file is queued only when **Full workout video** is on for the coach who saves (Workout Defaults → Format). That switch is off by default.
4. With it on, Save starts a file in that coach's language. The previous file for that language stays until the new one is ready. A full-length file often takes tens of minutes, plus queue time. This path does not email you.
5. With it off, Save does not create a file, and a later edit removes every language's file. Open [Deliver → Workout Video](https://team.hyperhuman.cc/manage?tab=workouts) (`/workout/{id}?tab=full_video`) → **Generate video**. Email / bell: **Workout video is ready**. Then **Download video**. Failed? **Try again**.

Also: Interactive Player, embed, and Content API playlist do not use the download quota and are not removed by that save. `GET .../export/video/stream_url` returns 404 when there is no ready file. There is no Content API to start a render or read render status. Locked class: Create workout is hidden. Provider branding (LES MILLS) stays on the picture. Smart chapters are not burned into the MP4. When the switch is on, the file uses the language of the coach who saves.

**Remove from library** (licensed pay-per-class / LES MILLS) is not Delete. If the class is used in workouts or groups, remove those references first.

- **Pay per class:** access continues through the stated date; no refund for the current cycle.
- **All-Access Pack:** leaves the library now; the pack stays on. Re-adding is free while the pack is active.

### Workouts and programs

Workouts have **no draft status**. Coaches see **visibility** (Public / Private) and **preview** (Building / Failed / ready). Member apps and the Content API list published workouts. Joined clients browse **Public** workouts and programs in Content / Discover. **Private** stays off that list; `GET /v1/workouts/{id}` still plays a stored id (share link).

Lists support search, filters (including visibility), sort, and multi-select for bulk visibility and delete. Select all is the **current page only**. Locked rows cannot be selected on Workouts.

**Bulk visibility:** Public or Private. Private needs the Private content entitlement. This changes listing only; it does not re-export the workout. Public items remain in the joined-client browse list. Private items do not.

**Delete workout** is blocked while the workout is used in team **programs** you can see under [Manage Content → Programs](https://team.hyperhuman.cc/manage?tab=programs). The in-use dialog lists those programs with links. Open each one, remove or replace the workout, **Save**, then delete again. Member-only AI-generated plans do not appear in that list and do not block delete. Multi-select on Workouts can delete or set visibility in bulk (current page only).

**Delete program** does not delete the workouts inside it. Confirm: **Workouts inside them stay.**

Workout details tabs: **Overview**, **Deliver** (Interactive Player, Workout Video, Audio Workout, API), **Promote**, **Analytics**. Program details use the same pattern. Programs deliver via the guided program experience and API; full-video export is workout-level. The **header locale dropdown** (not inside the player) refetches names, playlist, and export for that language.

**Workout Video:** the downloadable file, separate from the interactive player and the API workout. **Full workout video** (Workout Defaults → Format) is off by default. Off: a studio save removes the file; **Generate video** makes a new one and emails you when it is ready. On: Save starts a file in your language and keeps the previous file until the new one is ready (no email). **Download** uses the monthly workout-video export quota. The interactive player and `GET /playlist` do not, and they keep working when the file is gone. Open a ready file from the email or `/workout/{id}?tab=full_video`.

**Share with clients** (workout or program details rail, or client profile **SEND CONTENT**) opens **Send to clients**. That adds the item to the selected people’s library and notifies them. It does **not** hide your other listed (Public) content from them. Set visibility to **Private** if the item should stay off the team browse list, then send it. **Share link** is separate: anyone with the link can open that content in the client experience.

**Promote social clips** are on-demand, like Audio Workout. Saving a workout or program does not start clips. Open **Promote** → **Generate clips**. Use **Refresh state** while they render. **Try again** if generation failed or finished with nothing to play. **Regenerate** to replace existing variants (including after you edit the workout or replace exercise footage). You get an email when they are ready. Generating clips does not use the monthly social clip **exports** quota.

### Programming

House methodology for AI generate, Create Similar, and Autopilot generate / create-similar. Open [Programming](https://team.hyperhuman.cc/manage?tab=programming).

Header: **HISTORY** and **NEW GUIDELINE**. **Your guidelines** (up to 10) plus **Team** copies a manager shares (up to 10). Write workout and/or program text. Workouts / Programs `i` shows write tips. **Default** / **Use in Auto** are switches on the editor (not on the card). Structured rules are hidden. Text is guidance. Hard rules already stored still clamp the next generate. **Set as team guideline** (first team copy is the team default; share again returns the same copy). First-party Club / member web / AI Coach **apply that team default as guidance** when one exists (no Style picker; member profile still wins days/week and gear). Partner Content API keys need `methodologyProfileId` or they apply none. Leaving with unsaved edits asks **Save changes**, **Discard**, or stay (X).

**HISTORY** is **Programming history** — **your** AI runs for this team (workout / program, generate / similar / Autopilot). Not the whole team’s log. **Check fit** is a trailing action on each row and opens **Style fit** (methodology only) over the history list. It does **not** rewrite or auto-correct the draft. Saved rows also have **View** when the saved id is a real workout or program id — View opens that item, then history closes. **Saved** only when View can open. Fit / Partial chips only when that run has a stamp. Deep link: `/manage?tab=programming&openProgrammingHistory=true` (opens, then strips). Same list as Library **AI JOBS** → Programming. Not a public generation dump.

Workout Defaults → Programming is the same editor in a modal, with **Open in Manage**. Generate pickers can jump here via **Manage**.

### Social Drops

A Drop is a channel-ready package from an exercise, group, workout, or program:

- Video variants: 9:16 / 1:1 / 16:9, durations 15 / 30 / 60 seconds
- AI covers with editable title and subtitle
- Per-channel copy: hook, caption, hashtags, CTA

**Lifecycle:** Processing → Ready (or Failed). Only Ready drops can be exported or published. If generation fails, open the drop and use **Try again** — leave the window open while it processes. Download and Publish on Social stay hidden until Ready. Each channel export or direct publish counts against the monthly **social clip exports** quota. A drop is created when you generate clips from Promote or create / regenerate a drop here. Saving a workout or program does not create a drop.

Drops are **not posted** unless a Social Publishing automation is on. Unused drops live on the [Social Drops](https://team.hyperhuman.cc/manage?tab=social-drops) tab — delete ones you do not need. To stop posting, deactivate tasks under [Automate → Social publishing](https://team.hyperhuman.cc/automate). To stop the alerts, mute **Production** under [Profile → Notification preferences](https://team.hyperhuman.cc/profile?openNotificationPreferences=true).

Preferences (tone preset and CTA URL) live under Settings → Branding and Social Drops Preferences. Connect accounts from the Channels tab. Open [Social Drops](https://team.hyperhuman.cc/manage?tab=social-drops).

### Content deletion

Hyperhuman blocks delete when content is still referenced:

| Content | Blocked when used in | How to unblock |
|---|---|---|
| Exercise | Team workouts and/or exercise groups | Remove it from every listed workout and group, then delete |
| Workout | Team programs | Edit each program, remove or replace the workout, save, then delete |
| Program | Not blocked by child workouts | Programs delete independently; workouts remain |

Usage is team-wide. Delete is refused in the app and on the server, so a stale tab cannot bypass the check.

---

## 7. Analytics (`/analytics`)

Three hubs: **Content** | **Social** | **API**. Shared filters: date range, granularity, compare-with-previous, and demographic filters.

**Content:** Overview (workouts and programs created, sign-ups, active clients, completion, ratings, minutes, category performance, underserved audiences). Engagement, Performance, Outcomes, and Demographics need **advanced content analytics** (Platform and Ultra). Locked panels show a blurred preview with an upgrade path for managers.

**Social:** Publish activity, reach, engagement, and per-post performance from connected profiles. Advanced social analytics is plan-gated. Empty states link to channel connection.

**API:** Available when the plan includes API access. Managers and members on those plans see the same team usage: today KPIs, usage-versus-limit chart, and per-endpoint outcomes. Elevated endpoints (for example AI generation) count **10x** toward rate-limit units. Plans without API: managers see upgrade; members see a note to ask the team owner. **View detailed API stats** from Settings → Subscription goes here.

Showing usage does not reveal or rotate the API key. Managers copy the key from Settings → Integrations or the Home Content API card.

**Weekly recap:** a Monday email and browser alert summarizing the prior week’s content performance. On Platform and Ultra, the same email can include an attention block for clients who need a call (Act / Watch / On track). Act or Watch in that email opens Clients already filtered to that group. Opt in or out in communication preferences.

---

## 8. Automate (`/automate`)

Tabs: **Automations** | **Calendar** | **History & Logs** | **Settings**.

**Content tasks:** AI Generate, Create Similar, or Publish Existing, on a schedule. Any task can assign the result to selected clients. Configuration includes content type, categories, goals, difficulty, duration, content pool, and collections. AI Generate and Create Similar can pick a **Style** (same Auto / None / saved-profile picker as generate; resolved when the task runs from the **task owner**). Publish Existing does not use a Style. Manual Config also has **Prompt Guidance** (none / custom / AI-Tuned) — Autopilot-only, not the generate **Notes** field. AI Generate can use Manual Config or AI-Driven (uses audience and performance context). Scheduling: once, daily, weekly, biweekly, monthly; optional end date.

**Social publishing:** scheduled posts to connected Instagram, TikTok, YouTube, and Facebook accounts. Content can be a fixed ready drop or Auto (random, most recent, or AI-assisted). A task can publish a full workout export to YouTube Long-form. If Background music was on, that file includes mixed PulseMix. Team owners connect channels via OAuth. Connections count against the plan’s social channel quota.

**Calendar:** weekly view of upcoming runs; drag a task chip to change its next run day. **History & Logs:** per-run outcomes and failure details.

Concurrent Content Autopilot tasks and social publishing automations are limited per plan. Every successful publish or channel export consumes the monthly social clip exports quota.

---

## 9. Clients and monetization (`/clients`)

Tabs: **Clients** | **Invitations** | **Revenue** | **Settings**.

Managers invite from the table, the Invitations tab, or the Content API (`POST /v1/orgs/{organizationId}/endusers/invite`). Also: list, **find**, **suspend**, **reactivate**, **remove** — [end-user management](https://content.api.hyperhuman.cc/docs#tag/endusers-management). By default Hyperhuman sends the invite email. Teams can turn that off under **Invite emails** (Clients → Settings, or Settings → Branded App above Redirect URL) and send their own message (use the Branded App **Redirect URL** as the link). Pending invites still work. Re-inviting an already-pending email updates the invite and does not send another email. Use Invite only + these APIs when you bill on Shopify/your Stripe and do **not** want the Connect 15% fee. In-app: Settings → Integrations → **Your customers. Your flow.** (`/settings?tab=integrations#own-invite-client-api`); Invite only also shows that callout under How clients join.

**Client status (Platform and Ultra):** attention cards above the table (**Act** / **Watch** / **On track**). Counts are for the whole roster. Click a card to show only that group; click it again to show everyone. The same filter is in the **Any status** dropdown (separate from Active / Suspended). Each row has a status chip, a short reason, and a **Progress** cell (this week’s sessions and 14-day adherence). Without that plan tier the roster keeps the classic columns.

Client profile tabs: **Overview** (default — status, focus, KPIs, trends, signals, check-ins, wearables, program), **Profile**, **Sessions** (read-only history with a trend header; check-ins), **Assessments** (ASENSEI results when the add-on is active — summary, score bands aligned with the member app, details modal).

**Profile** is a short coach dossier: name and last active, then **Rating / Complete / Trained** when those exist. **Train** (goals, level, days per week, gear) sits beside **About** (age, gender, height, weight — only fields the member has set). **Plan** shows only an active subscription. **Insights** shows mode (and whether it is set for this client, the team default, or auto), protein target, and low-energy day. Weight is not repeated there. **Edit** (when insights are in the plan) changes mode and protein only. Members set height, weight, protein, and low-energy day in their app. Coaches cannot add those from Teams. **Recent** lists the last sessions; **View all** opens Sessions.

From Overview you can **MESSAGE** the client (short email with a ready-to-edit subject and note; replies come to your account email), **SEND CONTENT**, **SWAP NEXT**, or **RE-TEST** when the focus suggests it. Header **SEND CONTENT** also assigns workouts and programs from any tab. Assignment adds those items to that client’s library; it does not replace or hide the Public team catalog.

**Clients → Settings** also covers **Client insights**: default insight mode (coach / physio / weight management / wellness, or Auto), status rules, coach notifications (client alerts and the weekly-recap attention block), and re-test cadence for AI assessments. Managers on any plan can configure these. Roster status cards and the client **Overview** tab still need Platform or Ultra. Each coach can still mute Client alerts in their own notification preferences. Those switches are the coach’s inbox. They leave member morning reminders and the Sunday review unchanged.

**Member week and notifications.** The member week is their local Monday–Sunday. The weekly target is the active program’s **Per week**. With no active program, it is **Days** on the client Profile (Train), which the member set in their app. Coaches see that number and cannot edit it. Set the program to 2 or 3 per week when that is the baseline. Members get one morning insight in the app when the phone allows notifications, a Sunday in-app review when they completed at least one workout that week, and a Monday Club recap only after a week with activity. A week with zero workouts keeps the week chip (it can show behind) and has no Sunday review line. There is no team switch for those member reminders. The member turns them off in the phone’s notification settings for the app. Status rules change Act / Watch / On track on the roster only.

**Revenue** (managers; blurred for other roles) needs connected Stripe: active client subscriptions, monthly client revenue, and trend charts.

**How clients join** (Clients → Settings, and Settings → Organization) is who can become a client from the team page. It is **not** content privacy and it is **not** the same as a paywall:

| Setting | Who can join | Paywall? | After they join |
|---|---|---|---|
| **Open** | Anyone with your team page / link | No | They can browse **Public** team content. Features are not gated by a client plan. |
| **Invite only** | Needs an invite to the **exact email** they sign up with | No. Clients → Settings shows *Invite Only (no paywall)*. Under the join select: **Your customers. Your flow.** callout (End-user API + Integrations setup). | Same as Open once they accept. Does **not** require a client subscription and does **not** show a premium-upgrade wall. |
| **Subscription required** | Needs an active client plan (connect Stripe first) | **Yes** — this is the only paywall mode | Feature access follows each subscription tier (including private content on that plan). |

A **free plan with auto-join** on a Subscription required team joins the member immediately (member surfaces show **"Join {team} free"**) — no checkout, and the free product's entitlements apply.

Organization buffers join until **SAVE CHANGES**. Clients → Settings saves join immediately. Leaving **Subscription required** for **Invite only** from Integrations asks for confirmation (paywall off).

**Invite emails** (team-wide; **not** on Organization): **Clients → Settings** and **Settings → Branded App** (above Redirect URL). Both save immediately. **On** = Hyperhuman emails invites from Teams or the API. **Off** = you send the invite; pending still works; use Redirect URL as the link (or `sendInviteEmail: false` on the API). Turning off asks for confirmation.

**1:1 / private client programs:** set those workouts and programs to **Private**, **Send to clients**, and keep join on **Invite only** so strangers cannot join from the team page. Leave **Subscription required** off unless you have Stripe plans and want to charge. Any item left **Public** stays browsable by every joined client.

**Payments** (Settings → Payments, managers): connect Stripe (Express or Standard), choose **club subscription products** (each product has its own entitlement flags for the paying member), then share the member subscription page. **15% Connect application fee only on this path; payouts in 2–7 business days.** Clients subscribe on `https://member.hyperhuman.cc/subscription?orgId=…`. Club does **not** use Apple/Google in-app purchases for those plans. Set **How clients join** to **Subscription required** only when you want that paywall. If you bill elsewhere, leave join on **Invite only** and sync roster via API — no 15% on those charges. The Club **setup fee** is a separate Hyperhuman checkout. [Branded member app](#12-branded-member-app-hyperhuman-club).

**Content Revenue** (content-provider teams, managers): licensing subscriptions and projected revenue after the platform commission.

---

## 10. Team and roles (`/team`)

Tabs: **Members** | **Invitations** | **Roles & Permissions** (managers). Invite is gated by the plan’s team-member quota.

| Permission | Manager | Member | Client |
|---|---|---|---|
| Manage organization (settings, billing, branding) | Yes | — | — |
| View content | Yes | Yes | Yes |
| Create content | Yes | Yes | — |
| View analytics | Yes | Yes | — |
| Manage clients | Yes | — | — |
| View Content API credentials | Yes | — | — |

Members create and edit content and can view analytics (including API usage on API-enabled plans). Managers change organization settings, billing, payments, branding, team invites, and social-channel connections, and they copy or rotate the team API key.

---

## 11. Settings (`/settings`)

**Organization:** team name, description, website, business type, audience, delivery surfaces, building goals, and client join setting (Open / Invite only / Subscription required — see [Clients](#9-clients-and-monetization-clients)). Organization edits persist after **SAVE CHANGES**.

**Subscription:** plan name, renewal, and the matching billing action (Stripe customer portal, Wix, Google Play, or Apple). **Plan limits & quotas** under Team / Creation / Delivery / Automation, with usage bars (warning at 80%). Monthly quotas reset at the start of each month. Managers can add scale packs on constrained quotas. Feature access and LES MILLS status also live here. Confirm live numbers in this tab — they come from the product catalog, not this guide.

**Branding:** logo, watermark, and brand colors (paid **branding** feature) are **team-wide**. They show live in the player (Teams preview, member web, Club workout chrome) and are baked into a full-video export when that file is rendered. Social Drops preferences also live here. They do **not** replace native store icons, splash, or in-app chrome on a dedicated branded build — those go on the Club setup form. See [Branded member app](#12-branded-member-app-hyperhuman-club).

**Default workout style (Workout Defaults):** your personal kit — Sound, Music, Visuals, Format, and **Programming**. Sound / Music / Visuals / Format are playback style. **Music** is the PulseMix pool (stock or uploads). **Format** copies overlays, preview, audio, and mix-into-export onto each new workout. **Full workout video** on that tab is separate and off by default: it decides whether a save renders the Workout Video file. Spotify / YouTube / Apple / Amazon playlist links are per workout in the builder — not mixed into the file. **Programming** is how you want AI to build workouts and programs (personal; not shared unless a manager shares it as Team DNA). The day-to-day editor is [Manage Content → Programming](https://team.hyperhuman.cc/manage?tab=programming). Playback still uses the **workout owner’s** kit. Open defaults: [Workout Defaults](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true).

Rest and completion **images**, PulseMix, and between-exercise **cues** update on the **interactive player** as soon as you change them (workouts you created). **Format** (overlays, preview, audio mode) is copied onto each workout when you save it — later Format changes do not rewrite old workouts. An existing Workout Video file stays as rendered until you **Generate video**. With **Full workout video** off, a studio save removes that file and does not render a new one. Full matrix in [Localization and audio](#15-localization-and-audio).

**Branded App:** checkout and launch controls for the white-label iOS + Android member app (Hyperhuman Club). Managers buy the one-time setup (qualifying yearly plan required), open the setup form, set **Invite emails** (immediate; also on Clients → Settings), then Redirect URL and store identifiers after purchase, toggle which AI surfaces members see, and manage ROOK / ASENSEI add-ons. Health HQ stays in the standard Club experience. Full path, assets, and what is custom: [Branded member app](#12-branded-member-app-hyperhuman-club). [Branded App settings](https://team.hyperhuman.cc/settings?tab=branded-app).

**Integrations:** Content API (organization ID and key on API-enabled plans), embed player, embed pages, ChatGPT / MCP (`https://mcp.hyperhuman.cc/`), CloneMotion embed, Wix, and HyperCast. **Build & embed** also has **Your customers. Your flow.** (`#own-invite-client-api`): adopt your own onboarding, payments, and membership workflows; we gate end-user access. Needs API access + Join = Invite only. Footer: End-user API | Join settings. Primary CTA upgrades, sets Invite only, or opens docs. When Join is Invite only, Clients → Settings and Organization show the same callout. **Request integration** opens support chat.

**Movement:** ASENSEI management when the add-on is active — bundle upload and exercise mapping for rep counting and form scores in the branded member app.

**Profile** (`/profile`): personal info, password, **Notification preferences** (email and browser for this Teams account; Production covers finished videos, clips, exports, and AI jobs; also the coach’s weekly recap and **Client alerts**), and account deletion (type “delete” to confirm; cancel active subscriptions and transfer team ownership first). These preferences are the coach’s alerts. Member morning reminders stay on their phones. [Open notification preferences](https://team.hyperhuman.cc/profile?openNotificationPreferences=true).

---

## 12. Branded member app (Hyperhuman Club)

Club is the **standard member experience** (iOS, Android, and member web) under your brand: AI Coach, personalized workouts and programs, Adapt, Health HQ, subscriptions and access control, localization, video / gym mode / audio. You are not rebuilding the product. **You get your own App Store and Google Play listing — not a re-skin inside a shared app.** Marketing overview: [hyperhuman.cc/club](https://hyperhuman.cc/club).

**Try it free — no demo call.** There is no demo calendar (`/book-a-demo` → [Contact](https://hyperhuman.cc/contact)). Walk the same path a member walks:

- **Path 1 — Sample app (2 min):** [hyperfitness.net/app](https://hyperfitness.net/app). The full standard experience, live in stores. Also live: **Kaari Strong** (linked from [Club](https://hyperhuman.cc/club)). Club 2.0 overview: [blog.hyperhuman.cc/white-label-fitness-app-club-2-0](https://blog.hyperhuman.cc/white-label-fitness-app-club-2-0/).
- **Path 2 — Your team on member web (5 min):** invite yourself at Clients → Invite, open `https://member.hyperhuman.cc/welcome?orgId=<your id>`, and train on your own content. Switch profile language (e.g. `es-ES`) to test localization.
- **Path 3 — Pilot with real clients (free):** clients download the shared **Hyperhuman Club** app — [iPhone](https://apps.apple.com/app/hyperhuman-club/id1559570894) / [Android](https://play.google.com/store/apps/details?id=cc.hyperhuman.club) — create an account, search your team name, and join under your join rules. No setup fee, standard Club functionality (personalized plans, AI generation, formats, progress). Move to your dedicated branded app later — same accounts, content, and data.
- **Workspace side:** [Settings → Branded App](https://team.hyperhuman.cc/settings?tab=branded-app), Home **Launch app**, checkout at `/subscription#white-label-consumer-app`.

**Two apps, one member stack.** The shared **Hyperhuman Club** build lets people search and join teams. A **dedicated branded app** is pinned to your organization: members land in *your* join rules (Open / Invite only / Subscription required) instead of a generic “find a team” step. Content, paywall, and AI toggles still come from **this Teams workspace**. Own frontend already? Use the [Content API](#14-delivery-embeds-api-and-member-surfaces). Many teams start with one and add the other.

### What you pay

Confirm live numbers in **Settings → Subscription**, Branded App, and [Pricing](https://hyperhuman.cc/pricing).

| Charge | Who pays | Where |
|---|---|---|
| Yearly **Platform**, **Ultra**, or **Custom / Enterprise** | You → Hyperhuman | `/subscription`. Monthly Platform/Ultra does **not** unlock dedicated app setup. Copy in product: *Available for yearly committed Platform or Ultra plans, and dedicated Custom plans.* |
| **One-time Club setup** (typically **$1,990** USD) | You → Hyperhuman | Branded App **Purchase Setup**, or `/subscription#white-label-consumer-app` **Buy now**. Not a Stripe client payment. |
| **15% platform fee** on **built-in** client subscriptions | Deducted from member payouts | Only when you use Settings → Payments (Stripe Connect). Default `STRIPE_APPLICATION_FEE_PERCENT` is **15**. External Shopify/Stripe billing + Invite only does **not** take this fee. |
| **ROOK** wearables (from **$149**/month + MAU) | You → Hyperhuman | Branded App add-ons or `/subscription#addons` |
| **ASENSEI** movement (from **$299**/month + MAU) | You → Hyperhuman | Same. Map bundles under Settings → Movement after the add-on is active. |
| **Custom product work** | You → Hyperhuman | New screens, navigation, onboarding, or business logic. Scoped after you send requirements. Typical rate **$150/hour**; 50% on approval, remainder about one week before that custom launch. Chat or [Contact](https://hyperhuman.cc/contact). |

Setup is a **full-term** Teams commitment unless [Teams terms](https://hyperhuman.cc/legal-teams) say otherwise. Annual refunds: confirm terms before you buy.

### Standard setup vs custom

| Included in standard Club setup | Not included (scope separately) |
|---|---|
| Dedicated iOS + Android app, branding, QA, screenshots, App Store + Google Play submission | Publishing under **your** developer accounts (default is Hyperhuman’s store listings; own accounts by arrangement — see estimate below) |
| AI Coach, Generate, Adapt, Recommend (you can **hide** any of those four **for the whole team**) | Per-SKU AI on/off when billing is **outside** Hyperhuman Stripe |
| Health HQ, subscriptions + access control, 18 locales | A separate bilingual SKU — members pick language in **profile** |
| Club onboarding/profile (goals, level, days, equipment, language) then generate/recommend/adapt | A custom intake questionnaire or “assessment → locked methodology program” pipeline |
| Wearables / movement as **optional add-ons**, anytime later | Org-wide **mandatory** AI rules (e.g. every journey must be 30 min × 3 days × 12 weeks). A team Programming default can **guide** first-party Club generate — it does not lock that structure |
| QA, store screenshots, store submission by default | New screens, custom navigation, custom onboarding, new business logic |

Target: **live in weeks** once assets and store accounts are ready — not months of greenfield app work.

**Publishing under your own Apple / Google accounts** (instead of the default Hyperhuman listings) is possible as separate work. Working estimate: **10–15 hours ($1,500–$2,250)** initial setup, plus **4–5 hours ($600–$750) per future app update**, at the $150/hour rate. You need active Apple Developer and Google Play developer accounts and must grant access. Scheduling depends on current capacity — the Hyperhuman-listing path is faster and is what existing branded-app clients use. Confirm current estimates in Chat before committing.

### Launch checklist (managers)

1. **Use Club** (sample app and/or invite yourself as a client on member web).
2. **Yearly plan** that includes dedicated branded app. Upgrade from Branded App if the tab says **Upgrade to Unlock**.
3. **Buy setup** → status **Purchased** + date.
4. **Open form** (in-tab **Open form**, or [setup form](https://forms.gle/jjn7FicPizy8zDSu6)). Send branding and store materials. This briefing starts theming and submission — not the Redirect URL fields.
5. **Hyperhuman** themes the build, QA, screenshots, and submits. **By default the apps are published on Hyperhuman’s App Store / Play accounts.** Publishing under **your** Apple Developer / Play Console accounts is arranged separately (form + Chat). You still send listing copy, privacy/terms URLs, and branding on the form.
6. When the apps are live, paste **iOS App Store ID** (digits only, e.g. `1559570894`) and **Android package name** (e.g. `cc.hyperhuman.club.yourbrand`) and **Save identifiers**. Leave blank to keep default Club (`1559570894` / `cc.hyperhuman.club`).
7. Set **Invite emails** (above Redirect URL) if you will send your own invite messages. Then set **Redirect URL** so invite and client emails open your app (store + web fallbacks). Blank = `https://member.hyperhuman.cc/redirect-to?orgId=<your id>`. **Preview** before save. `http`/`https` only. Invite emails is editable without buying setup; Redirect URL unlocks after setup is paid.
8. **Member money (optional, independent of store status):** either (A) Settings → Payments → Connect Stripe → choose **club product tiers** → join **Subscription required** (15% Connect fee; Apple/Google **IAP is not used**), or (B) keep Shopify/your Stripe, join **Invite only**, and sync access with the Content API (Integrations **Your customers. Your flow.**). Member hub works on the web before the native app is in the stores. [Clients](#9-clients-and-monetization-clients).
9. Toggle **App features** if you want Chat / Generate / Adapt / Recommend hidden **globally**. Intended coach-led mix: **Chat + Recommend on, Generate + Adapt off**. Add ROOK/ASENSEI when you have a commercial case.
10. Optional: [Manage Content → Programming](https://team.hyperhuman.cc/manage?tab=programming) → **Set as team guideline** so first-party Club generate applies that text as guidance. Still not a lock — publish approved programs and hide Generate when the structure must be exact.

Owners and managers: Home **New clients → Launch app**. Team members can view Branded App values; they cannot buy, save URLs, toggle Invite emails / AI features, or change identifiers.

### Settings → Branded App (field by field)

| Block | What it does |
|---|---|
| **White-Label App** | Eligibility, one-time fee, Purchased date. **Purchase Setup** goes to `/subscription#white-label-consumer-app`. After pay: complete the form. |
| **Optional modules** | ROOK and ASENSEI. Billed separately (MAU). Not the setup fee. |
| **Invite emails** | On = Hyperhuman emails clients when you invite them (Teams or API). Off = you send the invite; pending still works. Use Redirect URL as the link. Saves immediately; managers only. Also on Clients → Settings. |
| **Redirect URL** | Where **every client email link** lands. Unlocked after setup is paid. Org id is appended automatically. |
| **Branded app identifiers** | Published store IDs so those links open *your* listing. Unlocked after setup is paid. |
| **App features** | **AI chat**, **Generate**, **Adapt**, **Recommend**. Default **on**. Independent — you can mix them. Off = menus and sections disappear for **all** members on this team (Club *and* dedicated app). No “your team disabled this” message and no upsell for a hidden feature. Plan entitlement still applies when the toggle is on. **Managers can edit these without buying setup.** Intended coach-led mix: Chat + Recommend on, Generate + Adapt off. Chat then stays for questions, browse, and adding existing items. Recommend ranks your published public team catalog (not stock or Platform Templates). If Generate stays on, member chat workout generate **defaults to stock**. If Generate/Adapt chips still appear after those toggles are off, that is unexpected — do not confirm; report in Chat with screenshots. |
| **Client Revenue** | Shortcut to Clients → Revenue (needs Stripe). |

Health HQ, Today, training formats, and the rest of standard Club navigation are **not** on this tab.

### What you send on the form (and what Teams Branding already covers)

**Settings → Branding** is enough for player, exports, and member-web chrome. For the **native branded build**, the form (and launch ops) typically need:

- Display name (device, ~30 characters) and store names (Play up to 50)
- Primary and secondary hex colors
- App icon (iOS 1024×1024 PNG, no transparency; Android adaptive icon: transparent foreground + solid background)
- Logo (PNG/SVG, transparent preferred) and splash/logo treatment
- Short description (~80 characters), long description (up to 4,000), keywords
- Privacy policy URL and terms / EULA URLs
- Optional: four portrait onboarding intro videos + posters if you are not using Club defaults; localized intro titles if you override them
- Store category (Health & Fitness), contact/support email, website
- Listing copy (you still write short/long description and keywords even when Hyperhuman submits)
- Optional: your own Apple / Play accounts if you are **not** using the default Hyperhuman listings

Hyperhuman produces store screenshots as part of standard setup. Optional preview videos are extra if you want them.

### How members join, step by step

Join mode is the same as Clients → Settings on every member surface. There are no invite codes — access is search, pending invites (matched to the exact signup email), and links.

**Member web** — the join gate is `https://member.hyperhuman.cc/welcome?orgId=<id>`:

1. Signed out: **"Join {team}"** with your logo, then create account / sign in on the same page.
2. Signed in, per join mode:
   - **Open** — *"You're about to join {team}."* → one tap → Today.
   - **Invite only** — a matching pending invite shows **"You have an invite to join {team}"**; without one, **"Waiting for your invite"** (*"Ask your coach or organization to send an invite to {email}. Refresh this page once they've sent it."*). The invite must match the signup email; a **Sign out and use a different email** link handles mismatches.
   - **Subscription required** — *"Choose a plan to join {team}."* with your Stripe plan cards inline. A free plan with auto-join shows **"Join {team} free"** instead.
3. Already on another team: **"Switch to {team}?"** confirmation. Suspended/removed: **"Access revoked"** gate (suspended vs removed wording) — no silent rejoin.

Without `orgId`, `/welcome` is a generic gate: pending invites first, then team search (*"Search for your gym, coach, or community to unlock their workouts and programs."*, minimum 3 characters).

**Shared Club app (iOS / Android)** — onboarding ends with **"Find your team"**: search by team name, then the same per-mode behavior (join / *"Invite-Only Team — ask them to invite you, then refresh"* with an **"I've been invited — refresh"** button / plan picker). A Club account can remain signed in with no team.

**Dedicated branded app** — no search step; the app is pinned to your org and the last onboarding step resolves access automatically:

| Your join setting | What the member sees |
|---|---|
| Open | Auto-join, straight to Today |
| Invite only + pending invite | *"You're in. One tap to unlock your plan."* → CONTINUE |
| Invite only, no invite | Blocked gate: *"This team is invite-only. Request access on their website to continue."* + refresh / visit website |
| Subscription required + free auto-join plan | Silent join |
| Subscription required, paid only | In-app plan picker (*"Choose a plan that fits your needs"*) → Stripe checkout |
| Suspended / removed | *"Access revoked"* gate; sign out only — reactivate them or send a **new** invite |

A **removed or suspended** client cannot stay in the branded Today feed or silently rejoin that org until you reactivate them or they accept a **new** invite.

Members set **language in their profile**. Club UI and content follow **18 locales** (same list as [Localization](#15-localization-and-audio), including `es-ES`). They do not need a second app binary per language.

**API vs Club:** Content API is for a product you already ship. Club is iOS + Android without an app team. Platform (and Ultra) include the API so you can invite and gate **end users** from your own backend (Integrations **Your customers. Your flow.** + Join = Invite only). [Delivery](#14-delivery-embeds-api-and-member-surfaces).

### Standard Club answers (what buyers usually ask)

These match **product behavior**, not a custom SOW.

**Does yearly Platform + the one-time setup include our own iOS and Android listings?**
Yes: a dedicated branded app, theming, QA, screenshots, and store submission. Default listing is on **Hyperhuman’s** Apple/Google accounts. Your own developer accounts are extra arrangement, not the default checkout.

**Must we pay 15% if we already bill on Shopify or our own Stripe?**
No. **15% is the Stripe Connect application fee** on Hyperhuman’s built-in member checkout (`STRIPE_APPLICATION_FEE_PERCENT`, default 15). It does **not** apply to money that never goes through that Connect charge. Keep join on **Invite only** (no paywall) and grant/revoke access from Teams or the Content API: invite, find, suspend, reactivate, remove. Setup path in-app: Integrations → **Your customers. Your flow.** [End-user management](https://content.api.hyperhuman.cc/docs#tag/endusers-management). Set **Subscription required** only when you want Hyperhuman to collect via Connect.

**Do Apple or Google take a cut of member subscriptions?**
Club does **not** sell subscriptions as Apple or Google in-app purchases. Member plans are Stripe (Connect or yours) or another external processor. Store review still applies to the **app binary**, not to Club IAP.

**Can each member get an automatic program from an intake (age, goal, level, gear, schedule, limitations) without us writing every routine?**
Members complete **Club’s** profile/onboarding, then Generate / Recommend / Adapt using that profile (and optional guidelines). Coaches do not have to hand-build every workout. A **custom intake questionnaire** or a guaranteed “intake → one locked program” workflow is **custom development**. Pain after sessions can surface when the team insight mode is physio (0–10), which is not a medical diagnosis. ASENSEI assessments are a paid add-on.

**Can we force every AI journey to follow a house methodology (e.g. 30 minutes, 3×/week, 12 weeks)?**
Text guidelines are **guidance, not a lock**. **In Teams:** save a Programming guideline under [Manage Content → Programming](https://team.hyperhuman.cc/manage?tab=programming) (or Workout Defaults → Programming). A manager can **Set as team guideline** (first team copy becomes the team default). That applies to Teams generate, Create Similar, and Autopilot **AI Generate / Create Similar** — not Publish Existing. The editor does not show Structured rules; leftover stored hard rules still clamp. **Style** Auto that shows **Two fit. Pick one.** stays off until you pick. **On Club / member web / AI Coach:** if a team default exists, first-party apps **apply that text as guidance**. There is no Style picker. The member’s profile still sets days/week and equipment. This does **not** guarantee 30 min × 3 days × 12 weeks. **On your Content API key:** pass `methodologyProfileId` from `GET /v1/orgs/{organizationId}/methodologies`. Unknown, personal, or inactive ids return **400**; omit still means none. **Notes** on one Teams generate beat methodology **text** only (not the form or team locks). For a guaranteed structure: publish approved programs, turn Club **Generate** off, keep Chat / Recommend as needed.

**Do Programming Guidelines block a result that misses our rules?**
No. They improve consistency. Check fit is a review of the draft (met / partial / not met). It does **not** rewrite or auto-correct. Set duration, weeks, sessions/week, and Team library on the generate form, then review before you save. Duration presets are 15 / 30 / 45 / 60 minutes — a “30–40 minutes” paragraph is text, not a form field.

**Can members generate through AI Chat when Generate is off?**
Intended: no. Chat, Generate, Adapt, and Recommend are separate. With Generate and Adapt off, members should not create or adapt workouts through AI Assistant — chips or typed requests. Shared Club and the dedicated branded app use the same settings. If a create or adapt chip still appears, do not confirm it. Report in Chat with screenshots. That is unexpected, not a shared-app-only limitation.

**Can we keep AI Chat and Recommend without members creating or adapting workouts?**
Yes. Chat + Recommend on, Generate + Adapt off. Chat stays for questions and guidance. Recommend ranks workouts and programs that already exist. It does not create new ones.

**Can Recommend stay on our approved programs and videos only?**
Yes. Recommend uses your team’s published public workouts and programs. It does not pull Hyperhuman stock or Platform Templates. Keep official programs Public (or Private and assign them). When you generate programs in Teams, set Workout Source to **Team library** only — Platform Templates keep the source team’s byline. If member Generate stays on, chat workout generate **defaults to stock**. Leave Generate off so members cannot create new stock-based workouts.

**Is a guaranteed AI lock standard or custom development?**
Official programs, Team library, member AI toggles, Recommend from your catalog, and Programming Guidelines as guidance are **standard**. We do not add a custom feature that makes AI generation guaranteed-exact. If a rule must never be broken, publish the approved program and keep member Generate off. Chat and Recommend can stay on.

**Can we use only our trainers’ videos on some programs?**
Yes. Upload to Library, convert/extract as needed, build workouts/programs from **Team library**. Member generate can use `team_exercises` (thin-pool toasts apply). For exclusive catalogs: **Private** + **Send to clients** (or API assign). Public items stay in Discover for every joined client. Original class/trainer soundtracks stay on the file until you Convert to Exercise and add localized instruction audio.

**Can one app have an automated AI membership and a human-coached premium track?**
With **Hyperhuman Stripe tiers** (Settings → Payments → choose club products): each selected product carries its **own entitlement flags** (what that paying member can access, including private content). With **external billing**, Invite only + API controls **who is in**; Chat / Generate / Adapt / Recommend are **team-wide toggles**, not per Shopify SKU. Split tracks without Connect: keep premium programs **Private** and assign them only to that roster (and/or hide AI globally if the whole app should be coach-led).

**English and Spanish for UI, exercise names, instructions, voice, and AI Coach — per person?**
Yes, via **profile language** (`es-ES` among the 18). UI, metadata, AI Coach, and TTS **you generate** follow that locale. In Teams, preview a saved workout with the **Workout Details header** locale dropdown — it is not inside the video player. **Recorded trainer video audio does not auto-dub.** Provide instruction TTS/uploads per locale, or keep the original voice on Original/Class clips. Existing English TTS is not rewritten when you change Sound → Language — delete and re-add.

**Who owns client data, and can we export if we leave?**
Your **workouts, programs, and library files** remain your content; download/export and use the API **while the Teams plan (and API entitlement) is active**. After cancel/expiry, API access is revoked — export first. For **member personal data**, the team is the controller of data it collects from its clients; processing is described in [Privacy](https://hyperhuman.cc/privacy) and [Teams terms](https://hyperhuman.cc/legal-teams). There is no “dump every client PII after you churn” button; take exports and roster records while you still have access.

**Can we pilot with real clients before paying the setup fee?**
Yes. Run the pilot on the shared **Hyperhuman Club** app: clients download Club ([iPhone](https://apps.apple.com/app/hyperhuman-club/id1559570894) / [Android](https://play.google.com/store/apps/details?id=cc.hyperhuman.club)), create an account, search your team, and join under your join rules — standard Club functionality, no setup fee. Member web works too: `https://member.hyperhuman.cc/welcome?orgId=<your id>`. Moving to the dedicated branded app later keeps the same accounts and data.

**Can we publish under our own Apple / Google developer accounts?**
Yes, as separate scoped work — see the estimate under [Standard setup vs custom](#standard-setup-vs-custom). Default and fastest: Hyperhuman's store accounts.

**Can we export all member data (profiles, history, progress, measurements) in one file?**
There is no one-click full export. While the plan is active, the Content API exposes end-user management, program progress, [AI insights](https://content.api.hyperhuman.cc/docs#tag/endusers-ai-insights), and health data — your integration can store or export what you need. A packaged in-product export is custom development. Export before cancel/expiry: API access is revoked afterwards.

**How long to launch the standard branded app?**
Designed for **weeks, not months**, once branding/store assets are final. Apple/Google **review is typically 5–10 business days after submission** and is outside Hyperhuman’s control.

There is **no live demo call**. Walk the same path as a client: HyperFitness sample, member web joined to **your** team, and Teams generate in `en-US` then `es-ES`.

---

## 13. Plans and licensing

Confirm everything in **Settings → Subscription** or [Pricing](https://hyperhuman.cc/pricing).

- **Free** — test the workflow with free stock, CloneMotion, and real clients. No API access
- **Content** — create and publish: AI workouts and programs, social publishing, CloneMotion, advanced social insights
- **Platform** — deliver inside a product: Content, Generation and Adaptation APIs, pre-made stock, Content Autopilot, advanced content analytics. Includes a 7-day trial
- **Ultra** — both, scaled up
- **Custom / Enterprise** — [Contact us](https://hyperhuman.cc/contact) for pricing and scoping (form or email). Not a calendar.

**White-label Club** is a one-time setup on a qualifying **yearly** Platform / Ultra / Custom plan — not a monthly add-on and not client Stripe. Details: [Branded member app](#12-branded-member-app-hyperhuman-club).

There is no free API tier.

Page anchors: `#plans`, `#compare-plans`, `#scale-packs`, `#les-mills-pack`, `#addons`, `#white-label-consumer-app`. Scale packs and billing changes are manager actions.

When a blocked action has a matching scale pack, the upgrade modal can offer the pack (for example extra workout exports). Otherwise it recommends a plan upgrade.

### LES MILLS

Two ways to license classes (billed separately from the Hyperhuman plan; pack purchase needs a paid Hyperhuman plan):

- **All-Access Pack** — flat monthly price for every published LES MILLS class; new releases are covered when you add them from browse. Confirm the current price at checkout.
- **Pay per class** — billed monthly per active licensed class. Removal schedules the end of access; no refund for the current cycle.

After you license classes they land in [Library](https://team.hyperhuman.cc/manage?tab=library). Next job: **Create workout** → Save → **Generate video** (unless **Full workout video** is on) → **Download**. See [Class video to a file](#class-video-to-a-file). Licensed classes can be played, embedded, exported, and streamed while licensed and unlocked. If a class card is LOCKED, Create workout is hidden — only **Remove from library** remains. Provider branding on the video cannot be removed.

Managers activate, manage classes, and cancel from Settings → Subscription. Members can see status. Cancel is at period end: access continues through the billed date. **Remove from library** on a single class is a different action and does not cancel the provider subscription.

---

## 14. Delivery: embeds, API, and member surfaces

Two hosts matter for embeds: the **Teams app** (`https://team.hyperhuman.cc` — admin, single-workout player embed, JSON embed, CloneMotion embed) and the **member web app** (`https://member.hyperhuman.cc` — client hub, library grids, program pages, subscription page, `/redirect-to`). The ChatGPT **Try embed demo** page (`https://mcp.hyperhuman.cc/demo/player.html`) is a third host: it frames the Teams player; it is not a second player. Native **Club** / branded iOS and Android use the same org content and join rules ([Branded member app](#12-branded-member-app-hyperhuman-club)). Always copy snippets from the in-product Embed modals so hosts and parameters match your environment.

### Interactive workout player

`https://team.hyperhuman.cc/embed/workout/{workoutId}?organizationId=…` plus either `apiKey=…` in the URL or `keyHandshake=1` and the key on `HYPERHUMAN_EMBED_INIT` (share-modal default — keeps the key out of the iframe URL). Send the INIT payload only after the iframe posts `hyperhumanPlayerReadyForData`. Pin `targetOrigin` to `https://team.hyperhuman.cc` — never `'*'`. A live iframe must use a real organization id and Content API key. `YOUR_ORG_ID` / `YOUR_API_KEY` are copy-paste placeholders (ChatGPT snippets, docs); they make Content API fail. `{workoutId}` must be a 24-character hex id — guest `sample-*` ids are not playable.

Optional: `locale`, `segment`, `presentationStyle` (`full|minimal|essential|noOverlays`), branding overrides, `muted`, `autoplay`, `videoAudioMode`, `mixBgMusic`, session attribution (`sessionMode` / `endUserId` / `externalUserId` — prefer INIT over the URL), and `painCheckIn` (`0`/`1`, or a boolean on INIT). Unset `painCheckIn` follows the org default (on for physio / rehab teams). Attributed embeds can collect in-player feedback, including an optional 0–10 pain score. Do not add `embeddedMode=true`.

Prefer the **full-viewport** snippet (`100vh` / `100dvh`) for mobile. The iframe needs `allow="autoplay; fullscreen; accelerometer; gyroscope"` and `allowfullscreen`.

Host and player can exchange optional messages: `HYPERHUMAN_HOST_IMMERSIVE`, `HYPERHUMAN_ORIENTATION_TOGGLE`, cast control, and session events on the pre-built player. Details: Content API overview **Embedded Player** and the [custom player guide](https://content.api.hyperhuman.cc/docs/guides/custom-player.md).

PulseMix music-off **pauses** the track (required on iOS). Embeds that send your team key count against that team’s Content API quota.

### Workout video snippet

Second tab of the same Embed modal: an HTML video element plus a request to `GET https://content.api.hyperhuman.cc/v1/workouts/{workoutId}/export/video/stream_url` (header `X-Api-Key`). The body is one presigned URL (text, not JSON), valid about 7 days. The file must already exist. **404** means there is no ready file for that request — a studio save with **Full workout video** off removes every language's file, and this route stays 404 until **Generate video** (or a save with the switch on) finishes. `GET /v1/workouts/{id}/playlist` is a different surface and is not removed by that save. Omit `locale` for the latest ready file in any language; pass `locale` for that language only (404 if none, no English fallback). A **200** while a new render of that language is in progress is the previous file. Poll on the order of minutes. There is no Content API to start a render or read render status. Many site builders block custom JavaScript — use the iframe player instead.

### JSON player embed

`https://team.hyperhuman.cc/embed/workout-json-receiver?organizationId=…` — drives the same player with runtime workout JSON (for example from `POST https://content.api.hyperhuman.cc/v1/orgs/{organizationId}/workouts/generate`). The iframe posts `hyperhumanPlayerReadyForData`; the parent replies with `HYPERHUMAN_EMBED_INIT` `{ type, apiKey, workout }` (`workout` needs `name` and `instances`). Send that message only after the ready signal — posting while the iframe is still blank drops the payload. Pin `targetOrigin` to `https://team.hyperhuman.cc` — never `'*'`. The player waits for a non-empty key before loading exercise media. No PulseMix and no session APIs on this path (no persisted workout id). Do not send member tokens or other secrets on this channel — the Content API key is already a client-visible credential.

### Library grid and program embeds

- Workouts: `https://member.hyperhuman.cc/workouts?orgId={orgId}`
- Programs: `https://member.hyperhuman.cc/plans?orgId={orgId}`
- Single program: `https://member.hyperhuman.cc/plan?planId={programId}`

Options: `showSearch`, `showFilters`, `gridCols` (2/3/4), `playbackMode` (`overlay` or `dedicated-page`), `showDuration`, `showDifficulty`. Content must be **public** to appear on anonymous discovery surfaces. Configure from Settings → Integrations → Embed Pages.

### CloneMotion embed

Copy the snippet from Settings → Integrations → Embed CloneMotion. The iframe points at `https://team.hyperhuman.cc/embed/generate-video-clip` with organization, API key, and user identity. Generations count against the monthly AI clip quota. Treat the API key as a client-visible credential: restrict where the iframe is embedded and rotate a leaked key.

### Member-facing pages

- Client join gate: `https://member.hyperhuman.cc/welcome?orgId=<id>` — the link to share; join follows **How clients join** (Open / Invite only / Subscription required). After join, Content / Discover lists **Public** published team workouts and programs, not “only what you sent.” Embeddable join page for iframes: `https://member.hyperhuman.cc/team?orgId=<id>`.
- Email / invite landing: `https://member.hyperhuman.cc/redirect-to?orgId=<id>` (default when Branded App Redirect URL is blank). Store IDs send people to your listing when set.
- Subscription page: `https://member.hyperhuman.cc/subscription?orgId=<id>`
- Standalone workout: `https://member.hyperhuman.cc/workout?workoutId=<id>` — Private items still open by id for members (and via a share link).
- Native member apps: shared Club, or your dedicated branded build after [Club setup](#12-branded-member-app-hyperhuman-club).
- HyperCast: `https://member.hyperhuman.cc/cast`

### Content API essentials

- API key and Organization ID: managers copy them from **Settings → Integrations → Content API**, or the Home **Content API** card, when the plan includes API. Header: `X-Api-Key`. Free plan has no API access. Trial accounts use a reduced share of plan limits (see [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md)).
- **End users (clients):** `GET/POST/PUT/DELETE` under `/v1/orgs/{organizationId}/endusers` — list, invite, find, suspend, reactivate, remove. Platform includes API so an external billing system can open/close **end-user** access without Hyperhuman Connect. Pair with Join = **Invite only** and (when you email clients yourself) **Invite emails** Off + Redirect URL. In-app: Settings → Integrations → **Your customers. Your flow.** Tag: [endusers-management](https://content.api.hyperhuman.cc/docs#tag/endusers-management).
- Docs: [hyperhuman.cc/api-docs](https://hyperhuman.cc/api-docs), [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md), [cheat sheet](https://content.api.hyperhuman.cc/docs/guides/content-API-cheat-sheet.md)
- Catalog lists are organization-scoped: `GET https://content.api.hyperhuman.cc/v1/orgs/{organizationId}/workouts` and `GET https://content.api.hyperhuman.cc/v1/orgs/{organizationId}/plans`. There is no unscoped `GET /v1/workouts` list.
- **Rotate a live library without breaking old ids:** keep retired workouts; set visibility to **Private** so they leave new list / recommend / generate pools; keep them **Public** only if they should stay discoverable. Filter new generations with `categoryIds` (hex category ids). `GET /v1/workouts/{id}` still plays a stored id. Do not delete if a client still holds that id. Tags do **not** filter recommend or generate. [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md)
- **Sequence:** `POST .../workouts/recommend` ranks existing workouts (no order you control). Put the order in a **Program**, then `GET https://content.api.hyperhuman.cc/v1/plans/{planId}/workouts`. Or recommend an existing program with `POST .../plans/recommend`.
- Playback: `GET https://content.api.hyperhuman.cc/v1/workouts/{id}/playlist` — segment structure, time-limited progressive MP4 / M4A URLs (~7 days; refresh before play; not HLS/DASH), loop hints, durations, instruction audio, class chapters. Loop an Exercise clip until the **segment duration** (example: 27s file, 60s step → loop). Stock clips may be 720p; team uploads are standardized to Full HD. There is no separate 1080p stock variant.
- Posters: use `exercise.main.video.poster` (same JPEG on `exercise.intro.video.poster`). Public unsigned JPEG — no API key. Do not use `video.url` or Swagger example hosts (those return HTML). Workout intro/outro have no poster; rest uses `image.url`.
- PulseMix for a **saved** workout: `GET https://content.api.hyperhuman.cc/v1/workouts/{id}/music` — the **owner’s current** Music pool (category-filtered). Not available for ephemeral generate/adapt JSON. Upload tracks under [Workout Defaults → Music](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true). Break and completion images on `/playlist` come from the owner’s current Visuals (random pick from the pool). Prefer your uploads if you will host copies (Unsplash stays under Unsplash terms). Full player notes: [custom player guide](https://content.api.hyperhuman.cc/docs/guides/custom-player.md).
- Hosted embeds that send your key are ordinary Content API calls on that key. Generate, recommend, and adapt stay 10x. There is no separate embed-play unit.
- **Stock catalog vs Teams browse:**

| Need | Where | Plan |
|---|---|---|
| Browse / add clips in Teams | Library → Add from stock; filter equipment or collection | Platform+ (premium if entitled) |
| Collection names / muscle groups | `GET /v1/workouts/exercises/metadata` | Any API plan — not catalog-SKU gated |
| Equipment categories / items | `GET /v1/workouts/equipment/metadata` | Any API plan |
| Paginated stock catalog | `GET /v1/orgs/{organizationId}/stock-exercises` | Ultra **yearly** or custom catalog access (**10x**). Platform / trial / Ultra monthly → **403** (does not consume). Ultra yearly unlocks **browse of the same library**, not new clips |
| Generate from stock | Teams generate or `POST .../workouts/generate` | Platform+ |

Everyone else browses stock in Teams, adds to the library, then delivers via workspace video-assets or playlist. A collection name is a look, not an equipment filter. Details: [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md).

### ChatGPT App / MCP

`https://mcp.hyperhuman.cc/` — explore the Content API and, when signed in with Teams, inspect workspace content from chat. A connector card lives in Settings → Integrations. Chat snippets for embed HTML stay `YOUR_ORG_ID` / `YOUR_API_KEY` on purpose (no secrets in ChatGPT). **Try embed demo** opens `https://mcp.hyperhuman.cc/demo/player.html?workoutId=…` in a new tab and frames the Teams interactive player with `keyHandshake`. That page needs a real org id, API key, and a workout id the key can see.

---

## 15. Localization and audio

**Locales (18):** `en-US` (default), `en-GB`, `en-AU`, `fr-FR`, `de-DE`, `es-ES`, `it-IT`, `pt-PT`, `he-IL`, `ro-RO`, `cs-CZ`, `fi-FI`, `lt-LT`, `nl-NL`, `pl-PL`, `ar-XA`, `nb-NO`, `sv-SE`. Use `nb-NO` for Norwegian (not `no`). Nynorsk is not available. Club and member web use the same set. Members pick language in **their profile**; UI, AI chat, and content follow that locale. You do not ship a second app per language.

What gets localized: names and metadata, equipment and muscle groups, player UI, difficulty labels, and audio (instructions, intros, outros, cues). RTL is handled for Hebrew and Arabic.

**Your language default (not the team’s):** Settings → Branding → Default workout style → Sound → Language → **SET DEFAULT**. Direct link: `/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound`. Play uses the **workout owner’s** language when you do not pass `locale=`. **Teams preview of a saved workout:** the locale dropdown is in the **Workout Details header**, not inside the video player. That control drives names, playlist, and export for the session. Changing Sound → Language does not regenerate stored TTS — delete and re-add. Per session: add `locale=` to embed URLs or API calls. Club members pick language in **their profile**.

### Workout Defaults — what applies when

Workout Defaults are **your** style kit. Four coaches = four kits. The player and API read the **creator’s** kit.

**Interactive play** (Teams preview, Club, member web, embed, `GET /playlist` + `/music`) loads images, music, and cues **now**. The Workout Video file is a separate render. It is not updated by a save unless **Full workout video** is on. Off (the default): a studio edit removes that file. On: Save renders the saver's language and keeps that language's previous file until the new one is ready. Audio Workout is its own file.

| What | Tab | Player / API on existing workouts you own | New workout you save | Existing MP4 |
|---|---|---|---|---|
| Break (rest) and completion images | Visuals | **Live now** (random pick from your pool) | Live | Frozen. Re-export |
| PulseMix tracks | Music | **Live** | Live | Frozen. Re-export |
| Between-exercise cues | Sound | **Live** if the exercise has no own cue | Live | Frozen |
| Intro / outro **files** | Sound + builder | Saved on that workout (legacy workouts without bookend arrays still use your pool) | Your pool if you leave bookends empty; then stored on the workout | Same as player |
| Language / voice preference | Sound | **New TTS only** | New TTS uses it | Old files stay |
| Presentation, preview, completion screen, mix music, audio mode | Format | Workout’s saved values. Changing Format here does **not** rewrite old workouts | Builder copies your Format | Frozen until **Generate video** |
| Workout Video file | Format → **Full workout video** (off by default) | Not this file. Player and `GET /playlist` stay | On: Save starts the file in your language. Off: no file | Off: a later save removes every language. On: that language’s previous file stays until the new render replaces it. Turning the switch on does not render workouts already saved |
| Programming Guidelines | Programming | Does **not** rewrite saved workouts. Next **AI generate / Create Similar / Autopilot generate or create-similar** for this user (and Team DNA for the team). **Check fit** reviews the draft and does not auto-correct | Next AI generate | N/A |
| CloneMotion trainer photos | Visuals | Next **generate** only | Next generate | Replace the library exercise video to retrofit |
| Logo / watermark / colors | Settings → Branding (team) | Live | Live | Frozen in that export |

Empty Visuals fall back to Hyperhuman stock. Music you never touched = stock PulseMix. Music you cleared after editing categories = no music. AI generate / JSON player: no PulseMix, no default cues.

**Programming tab:** teach Hyperhuman how **you** program. Day-to-day: [Manage Content → Programming](https://team.hyperhuman.cc/manage?tab=programming). Same editor under Workout Defaults (**Open in Manage**). On for every team. Up to 10 named guidelines (**Your guidelines**): workout guidance and/or program guidance, 2,500 characters each. The editor does not show Structured rules. Workouts / Programs labels have an `i` for write tips. **Default** is the fallback pick. **Use in Auto** keeps a saved guideline off Auto when off. Both live on the editor. Empty state: **Use template** or **Start from scratch**. **New guideline** can **Use template** (same starters; does not auto-open). Starters seed text, not a lock. One guideline can be your default. Auto-select on generate prefers a category- or goal-specific guideline, then the default. If two still fit, Generate / Create Similar / Autopilot save stay off until you pick. Inactive guidelines stay on the list and are not offered on generate. **Notes** on generate / Create Similar are for this request only and beat Style text; form and team locks still win. A manager can **Set as team guideline** (again = the existing team copy; first team copy is the team default), then **Make default**, edit, or delete team guidelines (up to 10, one default). Save omits `rules` so stored DNA stays. After generate or Create Similar, **Check fit** opens **Style fit** (methodology only). It does **not** rewrite or auto-correct the draft. **HISTORY** / Library AI JOBS → Programming reopens that same Style fit on a past generation (over the list). Saved rows **View** only when the saved id is a real workout or program id; **Saved** matches View. Fit / Partial only when the run has a stamp. Library: All / AI · Fit / AI · Partial / No AI stamp. First-party Club / member web **apply the team default as guidance** when one exists; partner API keys need `methodologyProfileId`. Text guidelines are not a clinical or legal guarantee. Deep links: `/manage?tab=programming`, `/manage?tab=programming&openProgrammingHistory=true`, `/settings?tab=branding&openWorkoutDefaults=true&initialTab=programming`.

**I have 40 workouts. Do I edit each one?**

- New rest or completion **image** in the app / embed / API → change Visuals once. Done.
- Same image in a **downloaded video** → change Visuals, then **Generate video** on each workout (or turn **Full workout video** on, then Save). A save with the switch off removes the file and does not render a new one.
- New music in the player → change Music once. In the MP4 → **Generate video**.
- New voice → delete and re-add TTS. The voice picker alone does nothing.
- New overlays or audio mode on old workouts → edit Format on each workout.

### Audio layers

1. **Library exercise audio** (Exercise type): up to 3 instruction clips per language — record, write (text-to-speech), or upload; sequential or shuffled
2. **Library original soundtrack** (Original / Promo / Tutorial / Class): sound stays on the video. Convert to Exercise (under 60s) to get layer 1
3. **Per-workout intro/outro** in the [builder](https://team.hyperhuman.cc/create-workout): stored on that workout. Separate from exercise instructions.
4. **Workout defaults** ([Sound](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound)): between-exercise cues (up to 10 per locale), intros (up to 5), outros (up to 5). Cues stay a live pool. Bookend pools feed new / legacy workouts as above.
5. **Per-workout-step overrides** in the builder: inherit / custom / silent — Exercise slots only
6. **PulseMix** ([Music](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=music)): stock and/or uploads, category and BPM match. Mix into the export is Format / builder Background music. Playlist links are a separate builder field and are not a sixth audio layer in the file

Changing the default voice affects **new** text-to-speech only. It does not re-render stored clips. Changing the script text alone also does not replace a stored file.

### Workout music

PulseMix picks from **your** Music pool. The builder does not pick tracks.

- **Pool:** [Workout Defaults → Music](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=music). Never touched = stock. Cleared after you edit categories = no music. Reset = stock again
- **Mix into the export:** Defaults → Format, and builder → Background music (`mixBgMusic`). Default **on**. Off = player and API only. Disabled when Video audio is None
- **Playlist links:** builder only (Spotify, YouTube, Apple Music, Amazon Music). Open-in-app for the player and API. **Not in the file**

Mix on + stock pool means stock audio is inside Deliver → Workout Video and Automate YouTube long-form when that file is rendered. Interactive play is **live**. The MP4 stays as rendered until you **Generate video** again. A save with **Full workout video** off removes the file.

Publishing that **file** off-platform (YouTube, TikTok, and similar) can trigger Content ID. Hyperhuman cannot issue a track certificate or guarantee claim-free or monetized use. Terms: [hyperhuman.cc/legal](https://hyperhuman.cc/legal). To keep stock out of the file: turn mix off, or replace the pool with audio you license, then re-export. Playlist links do not embed audio.

Example: you switch female → male. Exercise instructions on a test workout may already use the new voice. The **workout intro** (and outro) can still be the old voice until you delete and re-add that bookend TTS. Do the same for any intro/outro/cue still sitting in Workout Defaults.

| What you hear | Where to replace | Link |
|---|---|---|
| Exercise instructions | Library → Exercise → **Audio** → delete → add TTS | [Library](https://team.hyperhuman.cc/manage?tab=library) |
| This workout’s intro/outro | Builder bookends → delete → add TTS → **Save Workout** | [Workout builder](https://team.hyperhuman.cc/create-workout) |
| Default intros, outros, between-exercise cues | Defaults → Sound → delete → add TTS | [Workout Defaults → Sound](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound) |

If you deleted and re-added **exercise** TTS and it still used the old voice, that is not expected. Use Home header **Chat** with the exercise name, language, and the voice you selected. An old intro after a successful exercise update is expected until you replace the bookend. Email is for major outages, not this case.

**Instructions vs cues:** instruction clips play during the exercise (they can repeat on long intervals; there is no “play once” setting). On **Audio**, **Play in sequence** keeps order; turn it off to shuffle. Between-exercise **cues** are a different pool. If cues are silent: add them under Sound → Between exercises, set the workout **Video audio mode** to **Full audio**, and keep the step on **Clip & cue** (not Fast start). [Workout Defaults](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound) · [Workout builder](https://team.hyperhuman.cc/create-workout).

**Exercise looping:** short Exercise clips repeat to fill the step duration. A visible restart means the first and last frames do not match. Fixes: enable **Play in loop** for repetitive moves, run **AI Extend**, or prefer loop-friendly clips (CloneMotion output is designed for looping). Disabling loop makes the clip play once and hold the last frame.

**Smart chapters:** AI-detected timestamped segments inside long Class videos. They flow through the playlist API to Teams preview, embeds, member web, and the branded app. Chapter UI is hidden in Essential and No Overlays. Chapters are not burned into MP4 exports.

---

## 16. Limits

| Item | Limit |
|---|---|
| Workout duration / clips / class videos | 90 min / 100 clips / 2 class videos max; one class is enough to save; no leading or trailing rest |
| Exercise step | Reps 1–100; time 5s–1830s; rest 5s–1830s |
| Program | 1–24 weeks; 1–7 workouts/week; 1–2 goals; min 2 workouts |
| AI program generate / Create Similar | At least 3 public, unlocked workouts in the selected Workout Source |
| AI workout generate / Create Similar | Collection include/exclude floor of 10 exercises. Team-only needs enough published team exercises |
| AI guidance fields | 2000 characters |
| Audio instructions | 3 per language per Exercise; clips ≤ 20s; intro/outro ≤ 30s |
| Convert to Exercise | Under 60 seconds; irreversible; original sound removed |
| Workout defaults audio | Cues 0–10, intros 0–5, outros 0–5 per locale |
| Music tracks | Up to 200 in the PulseMix pool |
| Images | Break 1–20; completion 1–20; CloneMotion trainer 0–20; logo/watermark ≤ 4MB PNG/JPG |
| Uploads | **2GB** per file; MP4, M4V, MOV, WebM, MKV, AVI, MPEG, OGV, WMV; local batch 5 / 25; CSV/Drive folder 100; storage quota per plan |
| CloneMotion photo | JPG/PNG/WebP ≤ 20MB, at least 1280×720, landscape 16:9 |
| AI edits | Edit ≤ 10s; Extend 1–30s; background replace ≤ 60s; prompt ≤ 2000 characters |
| Social drops | 9:16 / 1:1 / 16:9; 15 / 30 / 60s |
| Automation config | Autopilot workouts 10–60 min; programs 1–8 weeks |

---

## 17. Common questions

**Where do I manage my subscription and invoices?**
Settings → Subscription → **Manage Billing** (Stripe customer portal for web purchases; Wix, Google, or Apple purchases manage in those stores). Plan changes and add-ons: `/subscription`. Only managers can access billing.

**I will replace all rest / completion images. Do my workouts update?**
In the interactive player (preview, Club, embed, API): **yes**, for workouts **you** created — change Visuals once. You do not open every workout. Teammate-created workouts use **their** Visuals. Existing Workout Video files do not change until you **Generate video**. A save with **Full workout video** off removes the file instead of rendering a new one.

**How do I change the video style?**
Per workout: editor → Video Preferences → Video Style. Your Format tab seeds **new** workouts only. New exports use the workout’s saved style; existing files stay until re-export. Rest images are Visuals, not Format — they go live on the player.

**Can I customize a stock exercise?**
Stock is read-only — **Add to Library** first. Instruction audio is editable only if the copy is type **Exercise**. A TEAM Original copy has a play-only soundtrack until **Convert to Exercise** (under 60s). Metadata autofill fills details only — not instruction audio.

**My embed will not go fullscreen / has no music.**
Use the snippet from Workout details → Deliver → Embed. Fullscreen needs both `allow="autoplay; fullscreen; …"` and `allowfullscreen`. For mobile portrait, use the full-viewport snippet. Interactive-player music comes from PulseMix at the workout level (CloneMotion clips are silent by design). Music-off **pauses** background music. The MP4 snippet only has music if it was mixed into the export.

**The MP4 embed never loads.**
The Workout video snippet needs a completed Workout Video file, a valid API key, and JavaScript on the host page. A 404 from `stream_url` after a studio edit usually means **Full workout video** is off and the save removed the file. `GET /playlist` can still succeed. Use **Generate video** on that workout. Site builders that block scripts should use the iframe player.

**Does the embed use my API quota?**
Yes, if the snippet uses your team Content API key. Check Analytics → API. In-app branding and Format-tab preview does not count against your team quota. A 429 on the embed is a quota issue — honor `Retry-After`.

**The player shows Connection error or “Sorry, the workout link is not valid.”**
The iframe reached `team.hyperhuman.cc` but Content API rejected the request. Usual cause: placeholder `YOUR_ORG_ID` / `YOUR_API_KEY` in the iframe URL, a key that cannot see that workout, or a non-hex id (`sample-*`). Use a key from Settings → Integrations, `keyHandshake=1`, and send `HYPERHUMAN_EMBED_INIT` only after `hyperhumanPlayerReadyForData`. ChatGPT **Try embed demo** is the same player — paste your org id and key on that page if it asks, or use a real `?workoutId=` from your library.

**Where is my API key?**
A **manager** copies it from Home → **Content API** (masked; copy still works) or Settings → Integrations → Content API. Free plans have no key. Members on API-enabled plans can view Analytics → API usage; they do not receive the key. Upgrade and billing stay manager-only.

**AI workout generation failed / the modal stayed open.**
The toast names the fix (not enough team exercises, not enough sources, or tighten collections). Typical cause is Team library only with too few published team exercises. Add a stock source or publish more team exercises, then retry. This is not a plan limit unless Premium stock was selected without entitlement.

**AI program generation said not enough workouts.**
The generator defaults to **Team library**. A new team with fewer than 3 **public** workouts should add **Platform Templates**. Private workouts never count.

**Can we run a steps challenge?**
There is no steps-challenge feature. Wearable data can surface on client profiles via the ROOK add-on. Closest path: generate a walking or low-impact program and assign it to clients.

**Can we turn off workout reminders for our clients?**
No team or coach switch does that. Client alerts, the Monday attention block, status rules, and Profile → Notification preferences are the coach’s inbox. Member morning reminders and the Sunday review stay on. The member turns them off in the phone’s notification settings for the app. To use 2–3 sessions as the baseline, set the program’s **Per week** to 2 or 3.

**Where does the weekly workout target come from?**
The active program’s **Per week** in the program builder. With no active program, the member’s days per week (client Profile → Train → Days). That number is what the week chip and the morning reminder use. There is no separate team default of 5.

**What is the difference between Client alerts and the notifications clients see?**
Client alerts are email and browser messages to coaches when someone turns Act, reports red pain, or loses weight too fast. Mute them for the team under Clients → Settings, and per coach under Profile → Notification preferences. Clients see morning insights, the week chip, and the Sunday review in the app.

**What is the attention block in the weekly recap?**
A block in the coach’s Monday recap email: Act / Watch / On track, who to call, and wins. Links open Clients already filtered. Turn it off under Clients → Settings → Client insights. It is a coach email, separate from what members see.

**Is the workout week Monday–Sunday, and how does the Sunday review arrive?**
Yes. The member’s local Monday–Sunday. The Sunday review is in the app when they completed at least one workout that week. A Monday Club email and push exists only after a week with activity.

**What does someone who did no workouts see on Sunday?**
The week chip can still show 0 of their target and behind. There is no Sunday review line and no share text. The pacing line that counted days left is not sent. A streak or recovery reminder can still arrive. If nothing else is notable and there is no focus line, there is no push.

**Can we change the wording of behind?**
The member morning push does not lead with that word. The week chip and the coach roster can still show behind against the program target. The check-in email you send from Overview is prefilled and editable before it goes out.

**Where is client status / the Overview tab?**
On Platform and Ultra: Clients shows Act / Watch / On track cards and a Progress column; each client opens on **Overview** (focus, trends, signals, check-ins). Use **MESSAGE** for a short check-in email (prefilled from their status — edit before you send; replies go to your email). **SEND CONTENT**, **SWAP NEXT**, and **RE-TEST** cover the other focus actions. Configure the team lens anytime under Clients → Settings → Client insights (any plan; managers). Per-client mode, protein, and low-energy day live on Profile → **Insights** when insights are in your plan. Height and weight live on Profile → **About** when the member has set them. Assessments still need the ASENSEI add-on.

**Where are height, protein, and low-energy day on a client?**
Open the client → **Profile**. Height and weight sit under **About** when the member saved them in their app. Protein and low-energy day sit under **Insights**. **Edit** on Insights changes mode and protein only. Coaches cannot type height, weight, or a low-energy day in Teams.

**Why can’t I message a client again right away?**
Overview **MESSAGE** is limited so clients are not flooded: about one email per hour to the same person, and a few per day. Wait and try again, or reach them on your usual channel.

**How do physio clients report pain after a workout?**
Attributed embeds, Club Feedback / History edit, and members-web history edit ask for a 0–10 pain score when the team default mode is physio (or when the host sets `painCheckIn` on the embed). Coaches see it on Overview check-ins and the Sessions trend header.

**Create Similar gave me almost the same workout.**
A yellow banner in the builder means the AI used a basic fallback. Retry with broader exercise sources, shorter guidance, and explicit rest rules. For a different structure, use Generate from scratch.

**I licensed classes. Where is the file?**
Library is source. [Create workout](#class-video-to-a-file) → Save → Deliver → Workout Video → **Generate video** (unless **Full workout video** is already on) → **Download** when the email arrives.

**Why is there no Download on the class?**
Export lives on the workout. A class card is footage.

**I saved. When can I download?**
Save does not queue the Workout Video file unless **Full workout video** is on (Workout Defaults → Format). That switch is off by default. With it off, open Deliver → Workout Video → **Generate video**. Email / bell when that render is ready. With it on, Save starts a file in your language and keeps the previous file until the new one is ready; that path does not email you. A full-length file often takes tens of minutes, plus queue time. Do not expect a file in 2–5 minutes. Failed **Generate**? **Try again**. Open `/workout/{id}?tab=full_video`.

**Generate vs Download?**
**Generate** starts or retries the file. **Download** takes a monthly workout-video export. Interactive Player, embed, and API do not use that quota.

**Can I play it without downloading?**
Yes: Interactive Player, Club, embed, and Content API `GET /v1/workouts/{id}/playlist`. `GET /v1/workouts/{id}/export/video/stream_url` is the Workout Video file, and only when that file exists.

**`stream_url` is 404 after we edited the workout. Playlist still works.**
Expected when **Full workout video** is off. A studio save removes every language's file and does not start a new one. The workout and the player are fine. Open that workout → Deliver → Workout Video → **Generate video**. There is no Content API to start a render or read render status. The same save will remove the new file again unless the coach who saves turns **Full workout video** on first.

**How do I download a class video with no overlays?**
Library → class → **Create workout** → set presentation style to No Overlays → Save → Deliver → Workout Video → **Generate video** → **Download**. Locked licensed classes cannot create a workout until unlocked.

**Does stock content have watermarks?**
Regular Hyperhuman stock on paid plans is watermark-free for commercial use in your own product. That covers the **video footage**, not the PulseMix soundtrack. Licensed partner content (LES MILLS) may keep provider marks.

**Can we use LES MILLS seasonally?**
Yes — license classes pay-per-class, build workouts, export or stream during the licensed period, then remove them from the library to stop charges. For year-round use of many classes, the All-Access Pack is usually cheaper.

**How do we cancel LES MILLS?**
A team manager opens Settings → Subscription → Video Licensing → **Cancel subscription** → confirm cancel at period end. Access continues through the billed period.

**Why don't I see Upgrade Plan in the sidebar?**
The footer **Upgrade Plan** button is managers and owners only. Members still see profile and the plan badge. Settings → Subscription stays visible so they can read plan limits and usage.

**How do we localize audio, or use our own voice?**
Set language and voice under [Workout Defaults → Sound](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound) — **your** kit; play uses the workout owner. That voice applies to **new** TTS only. To preview a saved workout in another language, use the **Workout Details header** locale dropdown — it is not inside the video player. Existing exercise instructions, **per-workout intro/outro**, and **default** intros/outros keep their audio until you delete and re-add them. Between-exercise **cues** update on the next play after you change the Sound pool. Library **Exercise** → **Audio**: up to 3 instructions per locale (TTS, record, or upload). Class / Original / Promo / Tutorial keep baked-in instructor audio. Convert to Exercise (under 60s) for custom instructions. For a custom app, mute instruction audio from the playlist and sync your narration to segment durations.

**I added Spanish TTS and the workout still plays in English.**
Play uses the **Workout Details header locale**, not a switch inside the player. If that control is still English, names and stored English audio play even after you saved Spanish TTS. Switch the header to Spanish. Changing Sound → Language does not regenerate existing clips — delete and re-add TTS. Trainer video soundtracks stay in the recorded language unless you add per-locale instruction audio. Club members pick language in their profile.

**Do you have machine exercises? Advanced Gym only gave me barbells.**
Collections are **looks**, not equipment gyms. Premium - Advanced Gym can be all free weights. In Teams: Library → Add from stock → filter **Gym Equipment** (or a named item). On generate, set **Equipment** to Gym Equipment — do not rely on the collection name or Notes. Ultra yearly does not add machine clips; it unlocks the stock catalog API for the same library.

**`GET /v1/orgs/{orgId}/stock-exercises` is 403 on Platform.**
Platform (including trials) and Ultra monthly do not include stock-catalog API access. Ultra yearly or a custom plan with catalog access does. That 403 does not consume rate-limit units. You can still browse and generate from stock in Teams. `GET /v1/workouts/exercises/metadata` and `GET /v1/workouts/equipment/metadata` are not catalog-SKU gated. Ultra does not add new videos.

**The program is ours but workouts say by Team HyperFitness.**
Expected when Workout Source included **Platform Templates**. Those workouts keep the source team’s byline. Generate or rebuild from **Team library** only, or replace template workouts with your own.

**Why did the default voice not change my exercise TTS?**
Expected if the old clip is still stored. Open the Exercise → **Audio** → delete → add Text-to-Speech again. If it still uses the wrong voice after that, use Home header **Chat** with the exercise name, language, and selected voice.

**Exercises use the new voice but the intro is still the old one.**
Expected. Intro/outro are separate stored files — on **that workout** and in **Workout Defaults**. Changing the voice preference does not regenerate them. Delete and re-add TTS on the builder bookends, then do the same under [Workout Defaults → Sound](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound) so new workouts (and legacy workouts without saved bookends) pick up the new voice.

**I have a TEAM video typed Original and cannot add audio instructions.**
**TEAM** means the item is in your library. **Original** means the type keeps the soundtrack. Convert to Exercise (unlocked, under 60 seconds) to add up to 3 instructions per language. Over 60 seconds, trim or extract a shorter clip first.

**Audio tab says This video has no audio.**
Expected when there is no separate soundtrack file. These types keep sound on the clip — play the video on Details.

**Convert to Exercise or Extract clips — which one?**
**Convert:** this item becomes Exercise; original sound is stripped; workouts that already use it stay pointed at it. Under 60s only; cannot undo. Example: a 30-second squat. **Extract:** splits a long recording into new clips you review and accept. Example: a 10-minute tape with several movements. Use extract or Smart chapters for long Class videos. After an upload is ready, **Review clips** is where you accept those cuts — **Fix cuts** trims a wrong window. [Library](https://team.hyperhuman.cc/manage?tab=library) · [Review clips](https://team.hyperhuman.cc/?exerciseReview=true).

**I uploaded. Now what?**
Upload can take a few minutes. Ready to review is usually **2–36 hours**. We email you (`Recording ready for your review`). Open **Review Videos** or Home **Review clips**. Clips are grouped by source video. Add them, remove them, or **Fix cuts**. The Library status bar percent is how many uploads you have added to the library, not this file.

**The start or end of a clip is wrong.**
On that video in **Review clips**, tap **Fix cuts**. It opens the trim editor in a new tab. Save, then go back and tap **Refresh** (or click the review tab). The editor stays open after save — it does not send you to Library.

**I saved Fix cuts and Review still shows the old clip.**
Tap **Refresh**, or click the review tab. Wait a moment if the cut is still processing, then Refresh again. You do not need to re-upload.

**How do I import from Vimeo / a URL?**
Use a **file download link**, not the watch page. In Vimeo: Library → video → ⋮ → **Video file links** → **Download the video** → **Copy Link**. Paste that under Individual videos → Add from a URL, or download the MP4 and use Select files. Video file links need a Vimeo Standard+ plan — if you do not see that menu, download the file. YouTube, Vimeo Play/HLS, and folder links are not supported.

**The source video is much longer than what appeared in the library.**
The library stores the file we received and transcoded. A Vimeo page that says 10:34 with a 2:22 library item usually means a watch-page paste, a truncated download, or a short file uploaded from disk. Download the full MP4, check the duration locally, then upload again. A cut-off download now **fails** instead of publishing a short file — tap **Failed** for the reason. Extracted Exercise clips are a separate, shorter looping window (up to 40 seconds) — that is not the recording length.

**Which video formats can I upload?**
MP4, M4V, MOV, WebM, MKV, AVI, MPEG, OGV, WMV. Max 2GB each. Prefer 16:9 landscape. Same list on URL, CSV, and Drive.

**Can I upload as Exercise?**
No. Uploads land as **Original**. Convert after the item is in the library (under 60 seconds), or Extract clips from a long tape.

**How do I set up client payments?**
Settings → Payments → connect Stripe → choose club product **tiers** (entitlements differ per product) → share `https://member.hyperhuman.cc/subscription?orgId=…`. Set “How clients join” to **Subscription required** to enforce the paywall. Invite only is **not** a paywall and is the path for **external** Shopify/Stripe (no Connect 15%). Club does not use Apple/Google IAP for subscriptions. The Club **one-time setup** fee is Settings → Branded App / `/subscription#white-label-consumer-app`.

**Clients can see workouts or programs I did not send them.**
Expected when those items are **Public**. Joined clients browse the team’s listed library in the member app (Content / Discover). **Send to clients** adds an item to that person’s library and notifies them; it does **not** hide other Public content. For 1:1 delivery: set the item **Private**, then Send to clients (or SEND CONTENT on the profile). Keep join on **Invite only** if you do not want strangers joining from the team page.

**I used Send to clients and they still see other workouts.**
Assignment is additive. Other **Public** workouts stay in the team browse list. Set the exclusive items to **Private**.

**I set Invite only and a client saw “upgrade” / premium content.**
Invite only does not require a client subscription and does not paywall features. The invited person must create the account with the **same email** you invited. If they never joined, they cannot open Private team content. **Subscription required** is the only join mode that gates features (including private content) by plan. Do not switch to Subscription required unless Stripe plans are set up.

**What does Private mean? Is it Unlisted?**
Labels are **Public** and **Private** only. There is no Unlisted. Public = listed for joined clients. Private = off member browse lists; share the link or Send to clients. A stored id still plays (`GET /v1/workouts/{id}`).

**Does embedding a player or publishing to YouTube count as a workout video download?**
No. Interactive embeds that send your team API key count against **Content API** usage (Analytics → API), not the monthly workout-video export quota. Deliver → Workout Video → Export (the MP4 file) uses that export quota. Social Drops **channel export** and a successful social publish use the **social clip exports** quota. Generating social clips does not. YouTube long-form from Automate is a social publish / export, not a Teams MP4 download. If Background music was on, that long-form file includes mixed PulseMix.

**YouTube claimed music in my exported workout.**
Stock PulseMix can match Content ID after you upload the file. We cannot give YouTube a track license letter. Turn mix off or replace the Music pool, then **Generate video** (a save with **Full workout video** off removes the file). Playlist links are not in the download. [Workout Defaults → Music](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=music). Terms: [hyperhuman.cc/legal](https://hyperhuman.cc/legal).

**Clients are not getting invite emails.**
Check **Clients → Settings → Invite emails** or **Settings → Branded App** (above Redirect URL). **On** = Hyperhuman sends the email. **Off** = you send your own, including the Branded App Redirect URL. Both surfaces save immediately.

**Why can't I see Payments, Roles, or Revenue detail?**
They are manager-only.

**How do I get one consistent trainer across content?**
Save one trainer photo in Default workout style → Visuals, generate every movement with CloneMotion from that image, and replace the video on existing library exercises.

**Library search finds nothing.**
Multi-word searches require all words to match. The Library tab only searches content already in your team library — browse stock separately.

**Why can't I delete this workout?**
It is still inside one or more **team programs**. [Manage Content → Programs](https://team.hyperhuman.cc/manage?tab=programs): open each program from the in-use dialog, remove or replace the workout, Save, then delete the workout. Member AI-generated plans do not show in that list and do not block delete. Example: “used in 2 programs” → edit those two programs first.

**I set Private and it went back to Public.**
Labels are **Public** and **Private** only (not Unlisted). After the change, click **Save Workout** (top right). If Private is disabled or won’t stick, the plan lacks **Private content** — confirm in [Settings → Subscription](https://team.hyperhuman.cc/settings?tab=subscription). If Save still reverts, use Home header **Chat** with the workout name and id. Private hides the item from member browse lists; it does not by itself assign it to selected clients — use Send to clients.

**Why is Private greyed out?**
The plan does not include **Private content**. Public still works. Confirm in Settings → Subscription.

**SELECT ALL did not select every workout.**
Select all is the current page only, not the whole library.

**If I bulk-delete programs, do the workouts go away?**
No. Workouts stay in the library.

**Where is AI Jobs History?**
Library header **AI JOBS**, or Home **Ready to ship → All jobs**.

**Home said continue a draft. Do we have drafts?**
No. Workouts have no draft status. Home **Latest** is the most recently created workout. Public/Private is audience. Building/Failed is the preview job.

**Browse on Home is not my library.**
Correct. Home Browse is the catalog (LES MILLS when available, Templates, Stock). Team library is Manage Content → Library.

**My exports are slow.**
Higher paid tiers include processing priority. Long videos take longer; you get a notification when ready.

**Can I set different duration or reps per exercise?**
Yes, after the clip is type **Exercise**. Original clips play once at their file length. Convert or extract first, then set reps or time on each step in the [workout builder](https://team.hyperhuman.cc/create-workout).

**Why do uploaded videos look cropped on mobile / Club?**
Exercise playback is built for **16:9 landscape**. Portrait files can letterbox or crop. Re-export landscape when you need a full-frame player.

**Why do audio instructions play twice?**
On longer Exercise intervals the instruction clips are reused with pauses. There is no “play exactly once” control. Use **Play in sequence** or turn it off to shuffle (Library → Exercise → Audio).

**Between-exercise cues are silent.**
Cues are not exercise instructions. Add them under [Sound → Between exercises](https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound), set the workout **Video audio mode** to **Full audio**, and keep the step on **Clip & cue** (not Fast start).

**How do I generate social clips?**
Open the workout or program → **Promote** → **Generate clips**. Use **Refresh state** while they render. **Try again** if generation failed or finished with nothing to play. **Regenerate** to replace existing variants. You get an email when they are ready. Saving or editing the workout does not start or rebuild clips.

**I edited the workout and the social clips look old.**
Expected. Edits and footage replace do not rebuild clips. Open **Promote** → **Regenerate**.

**Generate clips does nothing / I see failed but nothing played.**
Use **Try again**. That covers a failed run and a run that finished with nothing to play. Wait for Refresh to finish before clicking Generate again.

**A Social Drop says Failed. Can I download it?**
No. Open the drop and use **Try again**. Leave the window open until it is Ready. Download and Publish on Social only appear when Ready.

**Can I turn off Social Drops / automatic promo videos?**
Clips and drops do not start when you save a workout or program. Generate them from **Promote**, or create a drop on [Social Drops](https://team.hyperhuman.cc/manage?tab=social-drops). They are ready-to-publish assets, not posts. They are not published unless [Social Publishing](https://team.hyperhuman.cc/automate) is on. Delete unused items on Social Drops. Mute **Production** alerts from [Profile → Notification preferences](https://team.hyperhuman.cc/profile?openNotificationPreferences=true).

**Why do Groups look like a flat list?**
Expected. Circuit vs Sets only changes order (circuit: Squat → Push-up → Row, repeat; sets: Squat ×3 → Push-up ×3 → Row ×3). There is no nested loop drawing in the web player, Club app, or full workout video.

**A kettlebell is not in Personal Settings / member equipment.**
Intentional. Exercise metadata is specific (Kettlebell, Dumbbell, Barbell). Member preferences use broader buckets such as Bodyweight, Free Weights, and Gym Equipment. A kettlebell maps to Free Weights for personalization and stays “Kettlebell” for library filters. Machines are the **Gym Equipment** bucket — not a collection named Advanced Gym.

**Can I add more detailed muscles?**
The built-in muscle list is broad on purpose (including warm-up and cool-down). It is not an anatomy atlas. For extra labels use Library → Exercise → **Advanced** → **Tags** (max 5).

**Is there Dark Mode?**
No. Teams and the member app have no standard Dark Mode setting.

**How do we launch a branded iOS and Android app?**
Qualifying **yearly** plan → buy the one-time Club setup → **Open form** → Hyperhuman themes, QA, screenshots, and submits (default: **Hyperhuman store accounts**; your accounts by arrangement). Then save Redirect URL and store IDs. Store review is typically **5–10 business days** after submit. Full checklist: [Branded member app](#12-branded-member-app-hyperhuman-club). Try [HyperFitness](https://hyperfitness.net/app) first, or pilot free with real clients on the shared Club app ([details](#standard-club-answers-what-buyers-usually-ask)). No demo call.

**Why is Purchase / Redirect URL / identifiers locked?**
Dedicated app setup needs a yearly Platform, Ultra, or Custom (or Enterprise) plan. Redirect URL and store IDs unlock only **after** the one-time setup is paid. **Invite emails** and AI feature toggles are editable by managers without that purchase.

**We paid for setup. What next?**
Complete the [setup form](https://forms.gle/jjn7FicPizy8zDSu6) (also **Open form** on Branded App). Do not wait on the identifier fields — those are for after the apps are in the stores.

**Branding vs Branded App?**
**Branding** = logo, colors, watermark for player, exports, and web. **Branded App** = native Club checkout, form, **Invite emails**, email Redirect URL, store IDs, AI visibility, add-ons. Native icons and splash come from the form, not the Branding tab.

**Do we need Stripe before the app is in the stores?**
No. Stripe Connect is how **members pay you through Hyperhuman** (15% on that path only). Club setup is a separate Hyperhuman checkout. Member web join and `https://member.hyperhuman.cc/subscription?orgId=…` work without a live store listing. Set **Subscription required** only when you want the Connect paywall.

**Can we bill on Shopify and skip the 15%?**
Yes: **Invite only** + invite/suspend/remove from Teams or [end-user API](https://content.api.hyperhuman.cc/docs#tag/endusers-management). The 15% is only the Connect application fee. AI feature toggles stay **global**; they are not mapped to Shopify SKUs. Per-tier entitlements need Hyperhuman Stripe products.

**Does Apple or Google take 15–30% of our memberships?**
Not through Club. Subscriptions are not Club in-app purchases. You still pay Apple/Google only if you later add IAP yourself (custom / not standard Club).

**Can AI follow our exact methodology for every member?**
In **Teams**, Programming Guidelines plus optional Team DNA bias generate, Create Similar, and Autopilot generate / create-similar (see [Standard Club answers](#standard-club-answers-what-buyers-usually-ask)). Text is not a lock. First-party Club / member web **apply the team default as guidance** when one exists; the member profile still sets days/week and gear. Your Content API key needs `methodologyProfileId` or it applies none. For a guaranteed structure, publish approved programs and turn Club **Generate** off. Do not promise a silent org-wide lock on every member journey.

**Do Programming Guidelines block a result that misses our rules?**
No. Check fit reviews the draft and does not rewrite it. Set duration, weeks, sessions/week, and Team library on the form, then review before you save. Details: [Standard Club answers](#standard-club-answers-what-buyers-usually-ask).

**AI Assistant still offers create / adapt after we turned Generate and Adapt off.**
Not intended. Shared Club and the dedicated branded app use the same App features. Do not confirm a create or adapt action. Report in Chat with screenshots.

**Can we keep Chat and Recommend without members creating workouts?**
Yes. Chat + Recommend on, Generate + Adapt off. Recommend ranks existing team content. It does not create new workouts.

**Can Recommend stay on our approved content only?**
Yes. Recommend uses your published public team catalog — not stock or Platform Templates. Leave Generate off so members cannot create new stock-based workouts. Generate programs in Teams from **Team library** only if you do not want other teams’ bylines.

**Is a guaranteed AI lock custom development?**
No. Official programs plus hiding member Generate is the standard path. We do not add a custom feature that makes generation guaranteed-exact.

**Can we hide Health HQ / change navigation?**
Health HQ stays in standard Club, including morning insights and the Sunday review. Chat, Generate, Adapt, and Recommend hide from [Branded App](https://team.hyperhuman.cc/settings?tab=branded-app) (no upsell when hidden). Custom nav, screens, onboarding, or a custom assessment flow is scoped work (typically $150/hour). [Club](https://hyperhuman.cc/club).

**English and Spanish (or other locales) in one app?**
Yes. One binary; members choose language in profile. Same 18 locales as Teams, including `es-ES`. UI, names, AI Coach, and generated TTS follow the locale. In Teams, switch a saved workout with the **Workout Details header** locale control. Trainer **video soundtracks** stay as recorded unless you add per-locale instruction audio. Existing TTS is not rewritten when you change the default language.

**If we cancel, do we keep our content and client data?**
Export **your** library, workouts, and programs (Deliver / download / API) **before** the Teams subscription ends — API keys stop. Member personal data is covered by [Privacy](https://hyperhuman.cc/privacy) and [Teams terms](https://hyperhuman.cc/legal-teams); you are the controller for data you collect from clients. There is no post-churn PII dump.

**Is this only a fitness gym app?**
Club is used for wellness, fitness, recovery, physio / prehab, and similar member journeys. Standard setup is the proven Club experience branded to you — not a from-scratch app.

**API or branded app?**
Own a frontend? Content API. Need iOS and Android without an app team? Club. You can run both.

**Are annual plans refundable?**
Confirm [Teams terms](https://hyperhuman.cc/legal-teams) before you buy. Fees are generally a full-term commitment. For a fit check first: [Chat](https://hyperhuman.cc/?ask=1). Enterprise pricing and scoping: [Contact](https://hyperhuman.cc/contact).

**How do we refresh the API workout pool without breaking old user ids?**
Do not delete. Set retired workouts to **Private** (needs Private content). Put the current set in a category and pass `categoryIds` on generate/recommend. Old stored ids still play via `GET /v1/workouts/{id}`. [AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md) · [Workouts](https://team.hyperhuman.cc/manage?tab=workouts)

**Can categories or tags set the week order?**
No. Categories filter the pool (up to 3). Workout **Tags** (builder, max 5, example `week:1`) are for your search only — they do not drive recommend/generate. Put order in a [Program](https://team.hyperhuman.cc/create-program), then `GET /v1/plans/{planId}/workouts`. `POST .../workouts/recommend` ranks workouts; it does not accept your sequence.

**Where do I add workout tags?**
Open the workout in the [builder](https://team.hyperhuman.cc/create-workout) (not only the details header). Tags sit under Categories. Exercise tags are separate: Library → Exercise → **Advanced**.

**Can I paste a YouTube workout and recreate it with me as the trainer?**
No YouTube-link import. Upload your footage → review/extract clips, or generate clips from a photo in [CloneMotion](https://team.hyperhuman.cc/generate-video-clip), then build the workout in Teams.

**I replaced an exercise, saved, and it came back.**
Force-refresh the builder. If it still reverts, use Home header **Chat** with the workout name/id, the exercise you picked, what it reverted to, and when.

**Custom player: 720p, music, loop, posters, URL expiry?**
Stock clips may stay 720p; uploads are Full HD. Loop the file until the playlist **segment duration**. Music: `GET /v1/workouts/{id}/music` on a saved workout (Platform+). Posters: `exercise.main.video.poster` (not `video.url`). Signed video URLs last **7 days** — refresh before play. Details: [custom player guide](https://content.api.hyperhuman.cc/docs/guides/custom-player.md).

---

## 18. Quick links

| Purpose | URL |
|---|---|
| Start / sign up | `https://team.hyperhuman.cc/welcome` |
| This guide | `https://team.hyperhuman.cc/docs/guides/teams-platform.md` |
| Company agent index | [hyperhuman.cc/llms.txt](https://hyperhuman.cc/llms.txt) |
| Features | [hyperhuman.cc/features](https://hyperhuman.cc/features) |
| Home | `https://team.hyperhuman.cc/` |
| Manage content | `https://team.hyperhuman.cc/manage` |
| Programs | `https://team.hyperhuman.cc/manage?tab=programs` |
| Library | `https://team.hyperhuman.cc/manage?tab=library` |
| Programming | `https://team.hyperhuman.cc/manage?tab=programming` |
| Programming history | `https://team.hyperhuman.cc/manage?tab=programming&openProgrammingHistory=true` |
| Generate workout | `https://team.hyperhuman.cc/create-workout?generate=true` |
| Workout video (Deliver) | `https://team.hyperhuman.cc/workout/<id>?tab=full_video` |
| Review clips | `https://team.hyperhuman.cc/?exerciseReview=true` |
| Social Drops | `https://team.hyperhuman.cc/manage?tab=social-drops` |
| Share library | `https://team.hyperhuman.cc/manage?tab=workouts&openShareLibrary=true` |
| Automate | `https://team.hyperhuman.cc/automate` |
| Analytics | `https://team.hyperhuman.cc/analytics` |
| Plans and checkout | `https://team.hyperhuman.cc/subscription` |
| Usage and billing | `https://team.hyperhuman.cc/settings?tab=subscription` |
| API key | `https://team.hyperhuman.cc/settings?tab=integrations` |
| Workout defaults | `https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true` |
| Workout defaults → Sound | `https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=sound` |
| Workout defaults → Visuals | `https://team.hyperhuman.cc/settings?tab=branding&openWorkoutDefaults=true&initialTab=visuals` |
| Workout builder | `https://team.hyperhuman.cc/create-workout` |
| Branded App | `https://team.hyperhuman.cc/settings?tab=branded-app` |
| Invite emails (Branded App) | `https://team.hyperhuman.cc/settings?tab=branded-app#branded-app-invite-emails` |
| Own onboarding / end-user API card | `https://team.hyperhuman.cc/settings?tab=integrations#own-invite-client-api` |
| Club setup checkout | `https://team.hyperhuman.cc/subscription#white-label-consumer-app` |
| Club setup form (after purchase) | [forms.gle/jjn7FicPizy8zDSu6](https://forms.gle/jjn7FicPizy8zDSu6) |
| Sample member app | [hyperfitness.net/app](https://hyperfitness.net/app) |
| Club 2.0 overview | [blog.hyperhuman.cc/white-label-fitness-app-club-2-0](https://blog.hyperhuman.cc/white-label-fitness-app-club-2-0/) |
| End-user (client) API | [content.api.hyperhuman.cc/docs#tag/endusers-management](https://content.api.hyperhuman.cc/docs#tag/endusers-management) |
| Member email / store redirect | `https://member.hyperhuman.cc/redirect-to?orgId=<id>` |
| Profile / notifications | `https://team.hyperhuman.cc/profile?openNotificationPreferences=true` |
| Client join page | `https://member.hyperhuman.cc/welcome?orgId=<id>` |
| Client join embed (iframe) | `https://member.hyperhuman.cc/team?orgId=<id>` |
| Client subscription page | `https://member.hyperhuman.cc/subscription?orgId=<id>` |
| Club app (shared, free pilot) | [App Store](https://apps.apple.com/app/hyperhuman-club/id1559570894) · [Google Play](https://play.google.com/store/apps/details?id=cc.hyperhuman.club) |
| API docs | [hyperhuman.cc/api-docs](https://hyperhuman.cc/api-docs) |
| Agent guide | [https://content.api.hyperhuman.cc/AGENTS.md](https://content.api.hyperhuman.cc/AGENTS.md) |
| Custom player | [https://content.api.hyperhuman.cc/docs/guides/custom-player.md](https://content.api.hyperhuman.cc/docs/guides/custom-player.md) |
| Program builder | `https://team.hyperhuman.cc/create-program` |
| ChatGPT App / MCP | `https://mcp.hyperhuman.cc` |
| ChatGPT embed demo | `https://mcp.hyperhuman.cc/demo/player.html` |
| Pricing | [hyperhuman.cc/pricing](https://hyperhuman.cc/pricing) |
| Support chat | Home header **Chat**, or [hyperhuman.cc/?ask=1](https://hyperhuman.cc/?ask=1) |
| Contact (Enterprise / consulting / custom / partnerships) | [hyperhuman.cc/contact](https://hyperhuman.cc/contact) |
| White-label app | [hyperhuman.cc/club](https://hyperhuman.cc/club) |
| Teams terms | [hyperhuman.cc/legal-teams](https://hyperhuman.cc/legal-teams) |
| Email (Enterprise pricing/scoping; major outages) | support@hyperhuman.cc |
