Nest Changelog

1.24.4 PRE

4/13/2023

1.24.5 PRE

4/14/2023

22 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' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

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,
    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', value?: string, }>, text?: string, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

POST /collections/items

Create a new Collection

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

POST /collections/items

Create a new Collection

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

GET /collections/items/{guid}

Get a collection by guid. Cached every 10 minutes.

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

GET /collections/items/{guid}

Get a collection by guid. Cached every 10 minutes.

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

PATCH /collections/items/{guid}

Update a Collection

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

PATCH /collections/items/{guid}

Update a Collection

Response Body
{
  data: {
    available?: {
      end?: number,
      start?: number,
    },
    badge?: {
      eventCode?: string,
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      translations?: record,
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    durationDays?: number,
    episodeWord?: string,
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    medium?: 'reflect' | 'standard',
    name?: string,
    planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
    schedule?: List<{
      contentGuid?: string,
      guid?: string,
      sortOrder?: number,
    }>,
    sortOrder?: number,
    tags?: List<{
      description?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      text?: string,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', updatedBy?: { id?: number, }, visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }, }

GET /content/library

Search for content in the Library. Cache Policy: No cache.

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',
    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' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, }, }>, 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. Cache Policy: No cache.

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',
    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', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', userData?: { favorite?: { content?: bool, }, }, }>, 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/items

Get list of content items

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /content/items

Get list of content items

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

POST /content/items

Create a content item

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

POST /content/items

Create a content item

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

GET /content/items/{guid}

Get a specific content item. Cache Policy: Hot

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

GET /content/items/{guid}

Get a specific content item. Cache Policy: Hot

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

PATCH /content/items/{guid}

Update a content item

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

PATCH /content/items/{guid}

Update a content item

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

GET /content/recommendations

Get content recommended for this user.

Response Body
{
  data: List<{
    available?: {
      end?: number,
      live?: number,
      start?: number,
    },
    contentGuid?: string,
    countries?: List<{
      code?: string,
    }>,
    dateLive?: number,
    description?: 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,
    name?: string,
    playback?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    playlistId?: number,
    scheduleGuid?: string,
    score?: number,
    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' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /content/recommendations

Get content recommended for this user.

Response Body
{
  data: List<{
    available?: {
      end?: number,
      live?: number,
      start?: number,
    },
    contentGuid?: string,
    countries?: List<{
      code?: string,
    }>,
    dateLive?: number,
    description?: 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,
    name?: string,
    playback?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    playlistId?: number,
    scheduleGuid?: string,
    score?: number,
    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', value?: string, }>, type?: 'live' | 'vod' | 'encore' | 'rebroadcast', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /content/tags

List of tags. Cache Policy: 1 hour

Response Body
{
  data: List<{
    description?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    text?: string,
-   type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /content/tags

List of tags. Cache Policy: 1 hour

Response Body
{
  data: List<{
    description?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    text?: string,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /content/tags/{value}

Get one content tag by value. Cache Policy: 1 hour.

Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,
-   type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }, }

GET /content/tags/{value}

Get one content tag by value. Cache Policy: 1 hour.

Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }, }

PUT /content/tags/{value}

Create a New Tag

Request Body
{
  modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
  translations?: record,
- type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

}
Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,
-   type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }, }

PUT /content/tags/{value}

Create a New Tag

Request Body
{
  modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
  translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', }
Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }, }

PATCH /content/tags/{value}

Edit a tag

Request Body
{
  modality: 'ride' | 'row' | 'run' | 'off' | 'all',
  translations: record,
- type: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

}
Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,
-   type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }, }

PATCH /content/tags/{value}

Edit a tag

Request Body
{
  modality: 'ride' | 'row' | 'run' | 'off' | 'all',
  translations: record,

+ type: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', }
Response Body
{
  data: {
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }, }

GET /playlists

Get a list of playlists

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, trackCount?: number, videoLength?: { id?: number, name?: string, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /playlists

Get a list of playlists

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, trackCount?: number, videoLength?: { id?: number, name?: string, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

POST /playlists

Create a new playlist

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, videoLength?: { id?: number, name?: string, }, }, }

POST /playlists

Create a new playlist

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, videoLength?: { id?: number, name?: string, }, }, }

GET /playlists/{playlist}

Get a single playlist by ID

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

GET /playlists/{playlist}

Get a single playlist by ID

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

PATCH /playlists/{id}

Update an existing playlist

Request Body
{
  catalog: {
    code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
  },
  countries: List<{
    code?: string,
  }>,
  createdBy: {
    id?: number,
    name?: string,
  },
  dateCreated: number,
  dateUpdated: number,
  id: number,
  instructors: List<{
    id?: number,
    name?: string,
    precedence?: number,
  }>,
  isFlagged: bool,
  legacyContentExplicit: bool,
  name: string,
  schedule: List<{
    available?: {
      end?: number,
      live?: number,
      start?: number,
    },
    content?: {
      guid?: string,
    },
    guid?: string,
    legacy?: {
      id?: number,
      type?: 'reflect' | 'connect',
    },
    playback?: List<{
      type?: 'hls' | 'dash',
      url?: string,
    }>,
    type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
  }>,
  studios: List<{
    id?: number,
    name?: string,
    precedence?: number,
  }>,
  tags: List<{
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,
-   type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, videoLength: { id?: number, name?: string, }, }
Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

PATCH /playlists/{id}

Update an existing playlist

Request Body
{
  catalog: {
    code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
  },
  countries: List<{
    code?: string,
  }>,
  createdBy: {
    id?: number,
    name?: string,
  },
  dateCreated: number,
  dateUpdated: number,
  id: number,
  instructors: List<{
    id?: number,
    name?: string,
    precedence?: number,
  }>,
  isFlagged: bool,
  legacyContentExplicit: bool,
  name: string,
  schedule: List<{
    available?: {
      end?: number,
      live?: number,
      start?: number,
    },
    content?: {
      guid?: string,
    },
    guid?: string,
    legacy?: {
      id?: number,
      type?: 'reflect' | 'connect',
    },
    playback?: List<{
      type?: 'hls' | 'dash',
      url?: string,
    }>,
    type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
  }>,
  studios: List<{
    id?: number,
    name?: string,
    precedence?: number,
  }>,
  tags: List<{
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
    translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, videoLength: { id?: number, name?: string, }, }
Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

POST /playlists/{playlist}/import

Import all songs from a playlist to another playlist

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

POST /playlists/{playlist}/import

Import all songs from a playlist to another playlist

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, tracks?: List<{ createdBy?: { id?: number, }, dateCreated?: number, flag?: string, playlist?: { id?: number, }, song?: { album?: { id?: number, name?: string, }, artists?: List<{ id?: number, name?: string, }>, copyright?: record, coverArtUrl?: string, duration?: { seconds: number, text: string, }, genres?: List<string>, id?: number, isExplicit?: bool, isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, }, labelRights?: record, name?: string, publisherRights?: List<string>, releaseDate?: number, searchFlags?: record, }, trackOrder?: number, }>, videoLength?: { id?: number, name?: string, }, }, }

GET /songs/{id}/playlists

Get all playlists that contain this song

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, videoLength?: { id?: number, name?: string, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /songs/{id}/playlists

Get all playlists that contain this song

Response Body
{
  data: List<{
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
      name?: string,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    isFlagged?: bool,
    legacyContentExplicit?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, videoLength?: { id?: number, name?: string, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /favorites/{userId}/items

List users favorite content items.

Response Body
{
  data: List<{
    content?: {
      format?: {
        code?: string,
      },
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        bio?: string,
        createdBy?: {
          id?: number,
        },
        dateCreated?: number,
        dateUpdated?: number,
        flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
        id?: number,
        images?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        name?: string,
        status?: 'active' | 'inactive',
        studio?: {
          id?: number,
        },
        updatedBy?: {
          id?: number,
        },
        user?: {
          id?: number,
        },
      }>,
      medium?: 'reflect' | 'standard',
      name?: string,
      scheduleGuid?: string,
      status?: 'draft' | 'published' | 'trash',
      tags?: List<{
        description?: string,
        images?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
        text?: string,
-       type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, }, dateCreated?: number, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /favorites/{userId}/items

List users favorite content items.

Response Body
{
  data: List<{
    content?: {
      format?: {
        code?: string,
      },
      guid?: string,
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        bio?: string,
        createdBy?: {
          id?: number,
        },
        dateCreated?: number,
        dateUpdated?: number,
        flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
        id?: number,
        images?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        name?: string,
        status?: 'active' | 'inactive',
        studio?: {
          id?: number,
        },
        updatedBy?: {
          id?: number,
        },
        user?: {
          id?: number,
        },
      }>,
      medium?: 'reflect' | 'standard',
      name?: string,
      scheduleGuid?: string,
      status?: 'draft' | 'published' | 'trash',
      tags?: List<{
        description?: string,
        images?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
        text?: string,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, }, dateCreated?: number, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /legacy/{id}/content

Get content for legacy class

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,
-     type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus',

value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }

GET /legacy/{id}/content

Get content for legacy class

Response Body
{
  data: {
    catalog?: {
      code?: 'SpinCo' | 'LabelMusic' | 'RoyaltyFree' | 'Select' | 'Flex' | 'FlexLabelMusic' | 'FitPass' | 'FitPassLabelMusic' | 'InstructorAudioOnly' | 'Just' | 'Free',
    },
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    description?: string,
    duration?: number,
    featuredRow?: string,
    format?: {
      code?: string,
    },
    guid?: string,
    images?: {
      default?: string,
      hd?: string,
      portrait?: string,
      sd?: string,
      square?: string,
    },
    instructors?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    keywords?: string,
    medium?: 'reflect' | 'standard',
    name?: string,
    playlist?: {
      id?: number,
    },
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      content?: {
        guid?: string,
      },
      guid?: string,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      playback?: List<{
        type?: 'hls' | 'dash',
        url?: string,
      }>,
      type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
    }>,
    sortOrder?: number,
    sourceUrl?: string,
    sourceVideo?: {
      type?: 'hls' | 'dash',
      url?: string,
    },
    status?: 'draft' | 'published',
    studios?: List<{
      id?: number,
      name?: string,
      precedence?: number,
    }>,
    tags?: List<{
      images?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      modality?: 'ride' | 'row' | 'run' | 'off' | 'all',
      translations?: record,

+ type?: 'format' | 'category' | 'music' | 'language' | 'closedCaptions' | 'equipment' | 'plan' | 'venue' | 'general' | 'level' | 'accessories' | 'focus', value?: string, }>, updatedBy?: { id?: number, }, videoLength?: { id?: number, name?: string, value?: number, }, videoStatus?: 'uninitiated' | 'uploadStarted' | 'uploadCompleted' | 'processingStarted' | 'processingCompleted' | 'processingFailed', }, }
WORK IN PROGRESS