Nest Changelog

1.44.3 PRE

10/11/2023

1.44.4 PRE

10/11/2023

3 changed endpoints

GET /users/{userId}/workouts/items

Get workout summaries for user

Response Body
{
  data: List<{
    appSource?: 'echelon' | 'worlds' | 'fitos',
    content?: {
      description?: string,
      duration?: number,
      guid?: string,
      image?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        id?: number,
        name?: string,
      }>,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      name?: string,
      type?: 'live' | 'vod' | 'encore' | 'freestyle',
    },
    dateEnd?: number,
    dateStart?: number,
    duration?: {
      percentage?: number,
      text?: string,
      value?: number,
    },
    guid?: string,
    output?: number,
    percentile?: number,
    ranking?: {
      place?: number,
      total?: number,
    },
    stats?: {
      calories: number,
      distance: number,
      heartRate: number,
      heartRateMax: number,
      hrPoints: number,
      incline: number,
      joules: number,
      resistance: number,
      rpm: number,
      speed: number,
      spm: number,

}, status?: 'incomplete' | 'complete', }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /users/{userId}/workouts/items

Get workout summaries for user

Response Body
{
  data: List<{
    appSource?: 'echelon' | 'worlds' | 'fitos',
    content?: {
      description?: string,
      duration?: number,
      guid?: string,
      image?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        id?: number,
        name?: string,
      }>,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      name?: string,
      type?: 'live' | 'vod' | 'encore' | 'freestyle',
    },
    dateEnd?: number,
    dateStart?: number,
    duration?: {
      percentage?: number,
      text?: string,
      value?: number,
    },
    guid?: string,
    output?: number,
    percentile?: number,
    ranking?: {
      place?: number,
      total?: number,
    },
    stats?: {
      calories: number,
      distance: number,
      heartRate: number,
      heartRateMax: number,
      hrPoints: number,
      incline: number,
      joules: number,
      resistance: number,
      rpm: number,
      speed: number,
      spm: number,
+     steps: number,
    },
    status?: 'incomplete' | 'complete',
  }>,
  pagination: {
    page?: number,
    skip?: number,
    take?: number,
    total?: {
      pages?: number,
      rows?: number,
    },
  },
}

GET /users/{userId}/workouts/aggregations

Get workout aggregations for user

Response Body
{
  data: {
    furthestDistance?: number,
    highestOutput?: number,
    mostRecent?: {
      appSource?: 'echelon' | 'worlds' | 'fitos',
      content?: {
        description?: string,
        duration?: number,
        guid?: string,
        image?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        instructors?: List<{
          id?: number,
          name?: string,
        }>,
        legacy?: {
          id?: number,
          type?: 'reflect' | 'connect',
        },
        name?: string,
        type?: 'live' | 'vod' | 'encore' | 'freestyle',
      },
      dateEnd?: number,
      dateStart?: number,
      duration?: {
        percentage?: number,
        text?: string,
        value?: number,
      },
      guid?: string,
      output?: number,
      percentile?: number,
      ranking?: {
        place?: number,
        total?: number,
      },
      stats?: {
        calories: number,
        distance: number,
        heartRate: number,
        heartRateMax: number,
        hrPoints: number,
        incline: number,
        joules: number,
        resistance: number,
        rpm: number,
        speed: number,
        spm: number,

}, status?: 'incomplete' | 'complete', }, personalBest?: { appSource?: 'echelon' | 'worlds' | 'fitos', content?: { description?: string, duration?: number, guid?: string, image?: { default?: string, hd?: string, portrait?: string, sd?: string, square?: string, }, instructors?: List<{ id?: number, name?: string, }>, legacy?: { id?: number, type?: 'reflect' | 'connect', }, name?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, dateEnd?: number, dateStart?: number, duration?: { percentage?: number, text?: string, value?: number, }, guid?: string, output?: number, percentile?: number, ranking?: { place?: number, total?: number, }, stats?: { calories: number, distance: number, heartRate: number, heartRateMax: number, hrPoints: number, incline: number, joules: number, resistance: number, rpm: number, speed: number, spm: number,

}, status?: 'incomplete' | 'complete', }, totalClasses?: number, totalDistance?: number, totalDuration?: number, }, }

GET /users/{userId}/workouts/aggregations

Get workout aggregations for user

Response Body
{
  data: {
    furthestDistance?: number,
    highestOutput?: number,
    mostRecent?: {
      appSource?: 'echelon' | 'worlds' | 'fitos',
      content?: {
        description?: string,
        duration?: number,
        guid?: string,
        image?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        instructors?: List<{
          id?: number,
          name?: string,
        }>,
        legacy?: {
          id?: number,
          type?: 'reflect' | 'connect',
        },
        name?: string,
        type?: 'live' | 'vod' | 'encore' | 'freestyle',
      },
      dateEnd?: number,
      dateStart?: number,
      duration?: {
        percentage?: number,
        text?: string,
        value?: number,
      },
      guid?: string,
      output?: number,
      percentile?: number,
      ranking?: {
        place?: number,
        total?: number,
      },
      stats?: {
        calories: number,
        distance: number,
        heartRate: number,
        heartRateMax: number,
        hrPoints: number,
        incline: number,
        joules: number,
        resistance: number,
        rpm: number,
        speed: number,
        spm: number,
+       steps: number,
      },
      status?: 'incomplete' | 'complete',
    },
    personalBest?: {
      appSource?: 'echelon' | 'worlds' | 'fitos',
      content?: {
        description?: string,
        duration?: number,
        guid?: string,
        image?: {
          default?: string,
          hd?: string,
          portrait?: string,
          sd?: string,
          square?: string,
        },
        instructors?: List<{
          id?: number,
          name?: string,
        }>,
        legacy?: {
          id?: number,
          type?: 'reflect' | 'connect',
        },
        name?: string,
        type?: 'live' | 'vod' | 'encore' | 'freestyle',
      },
      dateEnd?: number,
      dateStart?: number,
      duration?: {
        percentage?: number,
        text?: string,
        value?: number,
      },
      guid?: string,
      output?: number,
      percentile?: number,
      ranking?: {
        place?: number,
        total?: number,
      },
      stats?: {
        calories: number,
        distance: number,
        heartRate: number,
        heartRateMax: number,
        hrPoints: number,
        incline: number,
        joules: number,
        resistance: number,
        rpm: number,
        speed: number,
        spm: number,
+       steps: number,
      },
      status?: 'incomplete' | 'complete',
    },
    totalClasses?: number,
    totalDistance?: number,
    totalDuration?: number,
  },
}

GET /workouts/items/{guid}/summary

Get summary view of a workout

Response Body
{
  data: {
    appSource?: 'echelon' | 'worlds' | 'fitos',
    content?: {
      description?: string,
      duration?: number,
      guid?: string,
      image?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        id?: number,
        name?: string,
      }>,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      name?: string,
      type?: 'live' | 'vod' | 'encore' | 'freestyle',
    },
    dateEnd?: number,
    dateStart?: number,
    duration?: {
      percentage?: number,
      text?: string,
      value?: number,
    },
    guid?: string,
    output?: number,
    percentile?: number,
    ranking?: {
      place?: number,
      total?: number,
    },
    stats?: {
      calories: number,
      distance: number,
      heartRate: number,
      heartRateMax: number,
      hrPoints: number,
      incline: number,
      joules: number,
      resistance: number,
      rpm: number,
      speed: number,
      spm: number,

}, status?: 'incomplete' | 'complete', user?: { id?: number, }, }, }

GET /workouts/items/{guid}/summary

Get summary view of a workout

Response Body
{
  data: {
    appSource?: 'echelon' | 'worlds' | 'fitos',
    content?: {
      description?: string,
      duration?: number,
      guid?: string,
      image?: {
        default?: string,
        hd?: string,
        portrait?: string,
        sd?: string,
        square?: string,
      },
      instructors?: List<{
        id?: number,
        name?: string,
      }>,
      legacy?: {
        id?: number,
        type?: 'reflect' | 'connect',
      },
      name?: string,
      type?: 'live' | 'vod' | 'encore' | 'freestyle',
    },
    dateEnd?: number,
    dateStart?: number,
    duration?: {
      percentage?: number,
      text?: string,
      value?: number,
    },
    guid?: string,
    output?: number,
    percentile?: number,
    ranking?: {
      place?: number,
      total?: number,
    },
    stats?: {
      calories: number,
      distance: number,
      heartRate: number,
      heartRateMax: number,
      hrPoints: number,
      incline: number,
      joules: number,
      resistance: number,
      rpm: number,
      speed: number,
      spm: number,
+     steps: number,
    },
    status?: 'incomplete' | 'complete',
    user?: {
      id?: number,
    },
  },
}
Added endpoints

POST /content/emergencyDelete

Response Body
{
  data: string,
}

DELETE /content/bulkDelete

ADMIN only. Delete content by EITHER instructorId, OR a date range, with or without licensing filter.

Guard: admin

Response Body
{
  data: {
    count?: number,
  },
}
Deleted endpoints
WORK IN PROGRESS