#
sTvOS v1
The multi-tenant fitness operating system that powers white-label fitness applications. One platform -- unlimited studios, trainers, and partners.
#
What is sTvOS?
sTvOS is a backend-as-a-service for fitness and wellness brands. Each client (studio, gym chain, or wellness company) gets an isolated, fully branded environment with its own content library, trainers, users, and partner access -- all powered by a single API.
Your API, your brand
Every client gets their own API key. Users only see content, trainers, and classes scoped to their studio. Branding, features, and registration flows are fully configurable per client.
#
Platform Capabilities
Stream on-demand fitness classes with full session tracking, progress persistence, and auto-completion. Schedule and launch live classes powered by LiveKit video rooms with real-time participant management.
- Content discovery with search, categories, and filtering
- Session tracking with 30-second progress heartbeats
- Auto-completion at 90% viewed
- Live class scheduling and participant management
- Per-client category scoping
Generate personalised workout, nutrition, and class plans from user profiles using AI. Plans are saved to user accounts and combined into a unified daily view.
- AI workout plan generation with exercise selection
- AI nutrition plan generation with dietary restriction support
- AI class plan matching users to optimal schedules
- Combined daily plan view (workouts + meals + classes)
- Shopping list generation for nutrition plans
A full trainer ecosystem: discovery, services, availability calendars, 1-on-1 booking, group classes, and structured programmes with subscription lifecycle management.
- Trainer profiles with services and specialisations
- Calendar-based availability and time slot management
- 1-on-1 session booking with video launch via LiveKit
- Group classes with capacity management
- Programmes with pause/resume/cancel lifecycle
Conversational AI coaching powered by Hume's Empathic Voice Interface. The voice agent can query plans, recommend classes, check coach availability, and book sessions -- all through natural conversation.
- Per-client and per-trainer voice configurations
- Tool-calling support for real-time data queries
- LiveKit token generation for voice rooms
- Anonymous voice sessions during onboarding
Partners (gyms, corporates, resellers) manage member access through voucher codes. A dedicated portal provides member oversight, usage analytics, and billing reports.
- Voucher generation (bulk up to 500 per request)
- Member management with activity tracking
- Watch time and content analytics
- Monthly billing reports with CSV export
#
How It Works
---
config:
theme: base
themeVariables:
primaryColor: "#dbeafe"
primaryTextColor: "#1e3a5f"
primaryBorderColor: "#60a5fa"
secondaryColor: "#f0fdf4"
secondaryTextColor: "#166534"
secondaryBorderColor: "#86efac"
tertiaryColor: "#f8fafc"
tertiaryTextColor: "#475569"
tertiaryBorderColor: "#cbd5e1"
lineColor: "#94a3b8"
fontFamily: "Inter, system-ui, sans-serif"
fontSize: "13px"
---
graph TB
subgraph platform["sTvOS Platform"]
direction LR
API["REST API /api/v1"]
AI["AI Engine"]
LIVE["LiveKit"]
STORE[("Content Store")]
end
subgraph clients["Isolated Client Tenants"]
direction LR
subgraph client_a[" Boutique Studio "]
A_KEY[/"API Key"/]
A_DATA["Users, Classes, Trainers"]
end
subgraph client_b[" Gym Chain "]
B_KEY[/"API Key"/]
B_DATA["Users, Classes, Trainers"]
end
subgraph client_c[" Corporate Wellness "]
C_KEY[/"API Key"/]
C_DATA["Users, Classes, Trainers"]
end
end
platform --- clients
API ~~~ AI
API ~~~ LIVE
API ~~~ STOREEach client operates in complete isolation. A user registered under "Boutique Studio" only sees that studio's classes, trainers, and content. Partners distribute voucher codes that map new users to their client on registration.
#
Quick Start
Every request to sTvOS requires a Client API Key sent via the X-API-Key header. API keys are provisioned by the platform admin and scoped to a single client.
curl -H "X-API-Key: your-client-api-key" \
https://api.studiostv.net/api/v1/health
const response = await fetch('https://api.studiostv.net/api/v1/health', {
headers: { 'X-API-Key': 'your-client-api-key' }
});
const data = await response.json();
import requests
response = requests.get(
'https://api.studiostv.net/api/v1/health',
headers={'X-API-Key': 'your-client-api-key'}
)
print(response.json())
Create a user account under your client. Optionally include a voucher code for partner-managed registration.
curl -X POST https://api.studiostv.net/api/v1/auth/register \
-H "Content-Type: application/json" \
-H "X-API-Key: your-client-api-key" \
-d '{
"email": "user@example.com",
"password": "securepassword",
"name": "Jane Doe"
}'
const response = await fetch('https://api.studiostv.net/api/v1/auth/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'your-client-api-key'
},
body: JSON.stringify({
email: 'user@example.com',
password: 'securepassword',
name: 'Jane Doe'
})
});
const { data } = await response.json();
response = requests.post(
'https://api.studiostv.net/api/v1/auth/register',
headers={'X-API-Key': 'your-client-api-key'},
json={'email': 'user@example.com', 'password': 'securepassword', 'name': 'Jane Doe'}
)
data = response.json()['data']
The response includes accessToken and refreshToken for authenticating subsequent requests.
Fetch the home screen content feed for your client -- featured classes, continue watching, upcoming live, and categories.
curl https://api.studiostv.net/api/v1/content/discover \
-H "X-API-Key: your-client-api-key" \
-H "Authorization: Bearer <access-token>"
Create a personalised workout plan and save it to the user's account.
curl -X POST https://api.studiostv.net/api/v1/users/me/workout-plan \
-H "Content-Type: application/json" \
-H "X-API-Key: your-client-api-key" \
-H "Authorization: Bearer <access-token>" \
-d '{ "preferences": { "daysPerWeek": 4, "intensity": "medium" } }'
#
Explore the Docs
This guide walks you through integrating a client application with the sTvOS v1 API -- from your first API call to a fully working user journey.
The sTvOS v1 API is a RESTful JSON API organised around multi-tenant client scoping. All endpoints are prefixed with /api/v1.
#
Built With
Universal API Key
For mobile apps that serve multiple clients, use the universal API key. When a user registers with a voucher code, they are automatically mapped to the partner's client. Login responses include the client object so the app can apply the correct branding.