Nest Changelog
1.39.36
8/31/2023
1.40.0 PRE
9/6/2023
15 changed endpoints Collapse changed endpoints
GET /users/{userId}/tabs
Gets the tabs for a user based on their equipment
Response Body
{ data: List<{ code?: string, description?: string,tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, text?: string, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /users/{userId}/tabs
Gets the tabs for a user based on their equipment
Response Body
{ data: List<{ code?: string, description?: string, + image?: { + default?: string, + hd?: string, + portrait?: string, + sd?: string, + square?: string, + }, tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, text?: string, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
PATCH /strength-routine/items/{guid}
Edit a strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
PATCH /strength-routine/items/{guid}
Edit a strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
GET /strength-routine/admin/items/{guid}
Load an individual strength routine by guid.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
GET /strength-routine/admin/items/{guid}
Load an individual strength routine by guid.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
GET /strength-routine/admin/library
Producer and above only. Search the library with elevated access.
Response Body
{ data: List<{ circuit?: bool, createdByEchelon?: bool, dateCreated?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, movements?: List<string>, name?: string, tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, visibility?: 'public' | 'private', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /strength-routine/admin/library
Producer and above only. Search the library with elevated access.
Response Body
{ data: List<{ circuit?: bool, createdByEchelon?: bool, dateCreated?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, movements?: List<string>, name?: string, tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, visibility?: 'public' | 'private', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /content/library
Search for content in the Library.
Response Body
{ data: List<{ catalog?: { audio?: 'labelMusic' | 'royaltyFree' | 'userProvided', code?: string, hasMusic?: bool, }, contentGuid?: string, countries?: List<{ code?: string, }>, dateLive?: number, description?: string, format?: { code?: string, }, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, instructors?: List<{ id?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, }>, legacy?: { id?: number, }, length?: number, medium?: 'reflect' | 'standard' | 'strength', mediumLinked?: { guid?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, playlistId?: number, scheduleGuid?: string, status?: 'draft' | 'published' | 'trash', studios?: List<{ id?: number, name?: string, }>, tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, workout?: { status?: 'finished' | 'DNF', }, }, }>, embedded: { aggregations?: {- durations?: List<{ - count?: number, - text?: string, - value?: number, - }>, - instructors?: List<{ - id?: number, - images?: { - default?: string, - hd?: string, - portrait?: string, - sd?: string, - square?: string, - }, - name?: string, - }>,tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /content/library
Search for content in the Library.
Response Body
{ data: List<{ catalog?: { audio?: 'labelMusic' | 'royaltyFree' | 'userProvided', code?: string, hasMusic?: bool, }, contentGuid?: string, countries?: List<{ code?: string, }>, dateLive?: number, description?: string, format?: { code?: string, }, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, instructors?: List<{ id?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, }>, legacy?: { id?: number, }, length?: number, medium?: 'reflect' | 'standard' | 'strength', mediumLinked?: { guid?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, playlistId?: number, scheduleGuid?: string, status?: 'draft' | 'published' | 'trash', studios?: List<{ id?: number, name?: string, }>, tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, workout?: { status?: 'finished' | 'DNF', }, }, }>, embedded: { aggregations?: {tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /content/library/upcoming
Search for upcoming live or encore content in the Library.
Response Body
{ data: List<{ catalog?: { audio?: 'labelMusic' | 'royaltyFree' | 'userProvided', code?: string, hasMusic?: bool, }, contentGuid?: string, countries?: List<{ code?: string, }>, dateLive?: number, description?: string, format?: { code?: string, }, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, instructors?: List<{ id?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, }>, legacy?: { id?: number, }, length?: number, medium?: 'reflect' | 'standard' | 'strength', mediumLinked?: { guid?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, playlistId?: number, scheduleGuid?: string, status?: 'draft' | 'published' | 'trash', studios?: List<{ id?: number, name?: string, }>, tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, workout?: { status?: 'finished' | 'DNF', }, }, }>, embedded: { aggregations?: {- durations?: List<{ - count?: number, - text?: string, - value?: number, - }>, - instructors?: List<{ - id?: number, - images?: { - default?: string, - hd?: string, - portrait?: string, - sd?: string, - square?: string, - }, - name?: string, - }>,tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /content/library/upcoming
Search for upcoming live or encore content in the Library.
Response Body
{ data: List<{ catalog?: { audio?: 'labelMusic' | 'royaltyFree' | 'userProvided', code?: string, hasMusic?: bool, }, contentGuid?: string, countries?: List<{ code?: string, }>, dateLive?: number, description?: string, format?: { code?: string, }, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, instructors?: List<{ id?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, }>, legacy?: { id?: number, }, length?: number, medium?: 'reflect' | 'standard' | 'strength', mediumLinked?: { guid?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, playlistId?: number, scheduleGuid?: string, status?: 'draft' | 'published' | 'trash', studios?: List<{ id?: number, name?: string, }>, tags?: List<{ images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, workout?: { status?: 'finished' | 'DNF', }, }, }>, embedded: { aggregations?: {tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
DELETE /content/tag-groups/{tagGroup}/{value}
Deletes a value from a tagGroup
Response Body
{ data: { code?: string,level?: 'primary', sortOrder?: number, translations: record, values?: List<string>, }, }
DELETE /content/tag-groups/{tagGroup}/{value}
Deletes a value from a tagGroup
Response Body
{ data: { code?: string, + image?: { + default?: string, + hd?: string, + portrait?: string, + sd?: string, + square?: string, + }, level?: 'primary', sortOrder?: number, translations: record, values?: List<string>, }, }
POST /workouts/items
Documentation only
Request Body
{ content: { guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, percentile: number, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string,- type?: 'bike' | 'rower' | 'treadmill',}>, ranking: { place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, }, peripheral: {
guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }
POST /workouts/items
Documentation only
Request Body
{ content: { guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, percentile: number, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string,+ type?: 'bike' | 'rower' | 'treadmill' | 'elliptical' | 'reflect', }>, ranking: { place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, }, peripheral: { + direction: 'forward' | 'backward', guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }
POST /users/{userId}/strength-routines/import
Copy a strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
POST /users/{userId}/strength-routines/import
Copy a strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
POST /users/{userId}/strength-routines/items
Create a new strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
POST /users/{userId}/strength-routines/items
Create a new strength routine.
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, visibility?: 'public' | 'private', }, }
GET /users/{userId}/strength-routines/items/{guid}
Get strength routine for a user, comes with workout data for this routine
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, userData?: { workouts?: { history?: List<{ date?: number, guid?: string, isPersonalBest?: bool, status?: 'incomplete' | 'complete', }>, personalBest?: { guid?: string, totalVolume?: number, }, }, }, visibility?: 'public' | 'private', }, }
GET /users/{userId}/strength-routines/items/{guid}
Get strength routine for a user, comes with workout data for this routine
Response Body
{ data: { circuit?: bool, createdBy?: { id?: number, }, createdByEchelon?: bool, dateCreated?: number, dateDeleted?: number, dateModified?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: 'en' | 'fr' | 'es' | 'de' | 'ko' | 'tr', level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, modifiedBy?: number, name?: string, routineMovements?: List<{ duration?: number, mode?: 'standard' | 'interval', movement?: { createdBy?: { id?: number, }, dateCreated?: number, dateModified?: number, description?: string, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, playback?: { type?: 'hls' | 'dash', url?: string, }, status?: 'draft' | 'published', tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, translations?: record, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, restAfter?: number, restBetweenSets?: number, sets?: List<{ description?: string, interval?: { duration?: number, weight?: number, }, reps?: List<{ description?: string, restAfter?: number, weight?: number, }>, }>, }>, userData?: { workouts?: { history?: List<{ date?: number, guid?: string, isPersonalBest?: bool, status?: 'incomplete' | 'complete', }>, personalBest?: { guid?: string, totalVolume?: number, }, }, }, visibility?: 'public' | 'private', }, }
GET /users/{userId}/strength-routines/library
Search the library of routines available to the user.
Response Body
{ data: List<{ circuit?: bool, createdByEchelon?: bool, dateCreated?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: { description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, level?: {images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',
- translations?: record,type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, movements?: List<string>, name?: string, tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, }>, embedded: { aggregations?: {
- durations?: List<{ - count?: number, - text?: string, - value?: number, - }>, - instructors?: List<{ - id?: number, - images?: { - default?: string, - hd?: string, - portrait?: string, - sd?: string, - square?: string, - }, - name?: string, - }>,tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
GET /users/{userId}/strength-routines/library
Search the library of routines available to the user.
Response Body
{ data: List<{ circuit?: bool, createdByEchelon?: bool, dateCreated?: number, description?: string, duration?: number, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, language?: { description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, level?: { + description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift',+ text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }, movements?: List<string>, name?: string, tags?: List<{ description?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, modality?: 'ride' | 'row' | 'run' | 'off' | 'all' | 'ellipse' | 'lift', text?: string, type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus' | 'muscleGroup', value?: string, }>, }>, embedded: { aggregations?: {
tags?: List<{ buckets?: List<{ count?: number, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, text?: string, value?: string, }>, value?: string, }>, }, }, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }
3 added endpoints Collapse added endpoints
GET /users/findByEmail/{email}/resendActivation
resend activation email.
Guard: service
Response Body
{ data: { emailSent?: bool, }, }
POST /users/{userId}/account/activationEmail
Guard: customerService
Response Body
{ data: { creditBalance?: number, dateCancelled?: number, dateExpires?: number, datePausedUntil?: number, defaultPaymentMethod?: { brand?: string, code?: string, expiration?: string, type?: string, }, discounts?: { amount: number, currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, dateEnd?: number, dateStart?: number, name?: string, percent: number, }, nextInvoice?: { amount?: number, currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, dateScheduled?: number, }, status?: { code?: 'notActivated' | 'onTrialCancelled' | 'onTrialPaused' | 'onTrial' | 'activeCancelled' | 'activePaused' | 'active' | 'expiredPaused' | 'expiredVoluntary' | 'expiredInvoluntary' | 'childProfile' | 'neverSubscribed', text?: string, }, subscription?: { activation?: { isActivated?: bool, isFirstPeriodPrepaid?: bool, }, billing?: { customerCode?: string, orderCode?: string, }, cancellation?: { dateCancelled?: number, reason?: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, offer?: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, type?: 'trial' | 'bundle', }, discount?: { discountStripeCouponCode?: string, introDiscount?: number, introDiscountPaymentCount?: number, }, guid?: string, name?: string, plan?: { basePrice?: { currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, value?: number, }, benefits?: List<{ text?: string, }>, billingProvider?: { id?: number, metadata?: { avaTaxIntegration?: bool, }, name?: string, organizationCode?: string, priceCode?: string, productCode?: string, type?: 'stripe' | 'apple' | 'google' | 'amazon', }, country?: { code?: string, currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, name?: string, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, defaultTrial?: { units?: 'day', value?: number, }, delayBillingDays?: number, description?: string, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>, code?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { units?: 'month', value?: number, }, frequencyDays?: number, id?: number, legacyPlanFlags?: { emailTemplateId?: number, isOrderProcessedByHook?: bool, showInOldMember?: bool, }, name?: string, sku?: string, sortOrder?: number, source?: { accountId?: string, productId?: string, type?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', }, tags?: List<'humana' | 'gympass' | 'addon' | 'amazon' | 'popular' | 'directPurchase' | 'csOnly' | 'displayInAdmin'>, updatedBy?: { id?: number, }, }, status?: 'draft' | 'published', }, pause?: { dateEnd?: number, dateStart?: number, reason?: string, }, plan?: { basePrice?: { currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, value?: number, }, benefits?: List<{ text?: string, }>, billingProvider?: { id?: number, metadata?: { avaTaxIntegration?: bool, }, name?: string, organizationCode?: string, priceCode?: string, productCode?: string, type?: 'stripe' | 'apple' | 'google' | 'amazon', }, country?: { code?: string, currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, name?: string, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, defaultTrial?: { units?: 'day', value?: number, }, delayBillingDays?: number, description?: string, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>, code?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { units?: 'month', value?: number, }, frequencyDays?: number, id?: number, legacyPlanFlags?: { emailTemplateId?: number, isOrderProcessedByHook?: bool, showInOldMember?: bool, }, name?: string, sku?: string, sortOrder?: number, source?: { accountId?: string, productId?: string, type?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', }, tags?: List<'humana' | 'gympass' | 'addon' | 'amazon' | 'popular' | 'directPurchase' | 'csOnly' | 'displayInAdmin'>, updatedBy?: { id?: number, }, }, price?: { currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, value?: number, }, promotion?: { id?: number, }, provisional?: { isProvisioned?: bool, }, renewal?: 'auto' | 'paused' | 'cancelled' | 'failed', schedule?: { createdAt?: number, endBehavior?: 'cancel' | 'none' | 'release' | 'renew', id?: string, phases?: List<string>, }, source?: { accountId?: string, lineItemId?: string, name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', orderId?: string, productId?: string, }, status?: 'notActivated' | 'onTrialCancelled' | 'onTrialPaused' | 'onTrial' | 'activeCancelled' | 'activePaused' | 'active' | 'expiredPaused' | 'expiredVoluntary' | 'expiredInvoluntary', subscriptionAddons?: List<{ addonOffer?: { addon?: { createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, featureOverrides?: List<{ code?: string, value?: record, }>, guid?: string, images?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, name?: string, translations?: record, updatedBy?: { id?: number, }, video?: { url?: string, }, }, billingProvider?: { id?: number, metadata?: { avaTaxIntegration?: bool, }, name?: string, organizationCode?: string, type?: 'stripe' | 'apple' | 'google' | 'amazon', }, country?: { code?: string, currency?: { code?: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', scale?: number, }, name?: string, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, frequencyDays?: number, guid?: string, name?: string, status?: 'draft' | 'published' | 'trash', unitPrice?: { priceCode: string, value?: number, }, updatedBy?: { id?: number, }, }, dateCancelled?: number, dateExpires?: number, dateStart?: number, guid?: string, subscription?: { id?: number, }, }>, term?: { dateEnd?: number, dateStart?: number, }, token?: string, trial?: { dateEnd?: number, dateStart?: number, }, updatedBy?: { id?: number, }, user?: { id?: number, }, utm?: { campaign: string, content: string, medium: string, source: string, term: string, }, }, }, }