Nest Changelog

1.42.30

10/9/2023

1.43.0 PRE

10/2/2023

9 changed endpoints

GET /users

Get all users

Response Body
{
  data: List<{

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /users

Get all users

Response Body
{
  data: List<{
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  }>,
  pagination: {
    page?: number,
    skip?: number,
    take?: number,
    total?: {
      pages?: number,
      rows?: number,
    },
  },
}

POST /users

Request Body
{

billingAddress: { city: string, country: { code?: string, }, postalCode: string, region: { code?: string, }, streetLine1: string, streetLine2: string, }, birthdate: string, captcha: { token?: string, }, commercial: { code?: string, }, dateTosAccepted: number, dealer: { id?: number, }, email?: string, firstName: string, forcePasswordChange: bool, gender: { value?: 'm' | 'f' | 'o', }, height: { units?: 'in' | 'cm', value?: number, }, image: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName: string, mongoId: string, nickname: string, parent: { id?: number, mongoId?: string, }, password?: string, phoneNumber: string, purchaseHistory: List<{ datePurchased: number, name: string, retailer: { id?: number, }, serialNumber: string, }>, roles: List<string>, streaks: { current?: number, longest?: number, }, tagline: string, weight: { units?: 'lb' | 'kg', value?: number, }, }
Response Body
{
  data: {

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }, }

POST /users

Request Body
{
+ badges: {
+   default?: string,
+   selected?: string,
+ },
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  captcha: {
    token?: string,
  },
  commercial: {
    code?: string,
  },
  dateTosAccepted: number,
  dealer: {
    id?: number,
  },
  email?: string,
  firstName: string,
  forcePasswordChange: bool,
  gender: {
    value?: 'm' | 'f' | 'o',
  },
  height: {
    units?: 'in' | 'cm',
    value?: number,
  },
  image: {
    colors?: {
      background?: {
        hex?: string,
      },
      foreground?: {
        hex?: string,
      },
    },
    default: string,
    initials?: string,
    isPlaceholder?: bool,
    large: string,
    medium: string,
    small: string,
    url?: string,
  },
  lastName: string,
  mongoId: string,
  nickname: string,
  parent: {
    id?: number,
    mongoId?: string,
  },
  password?: string,
  phoneNumber: string,
  purchaseHistory: List<{
    datePurchased: number,
    name: string,
    retailer: {
      id?: number,
    },
    serialNumber: string,
  }>,
  roles: List<string>,
  streaks: {
    current?: number,
    longest?: number,
  },
  tagline: string,
  weight: {
    units?: 'lb' | 'kg',
    value?: number,
  },
}
Response Body
{
  data: {
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  },
}

GET /users/{userId}

Get a specific user by id

Response Body
{
  data: {

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }, }

GET /users/{userId}

Get a specific user by id

Response Body
{
  data: {
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  },
}

PATCH /users/{userId}

Edit this user

Request Body
{

billingAddress: { city: string, country: { code?: string, }, postalCode: string, region: { code?: string, }, streetLine1: string, streetLine2: string, }, birthdate: string, dateTosAccepted: number, dealer: { id?: number, }, email: string, firstName: string, forcePasswordChange: bool, gender: { value?: 'm' | 'f' | 'o', }, height: { units?: 'in' | 'cm', value?: number, }, image: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName: string, mongoId: string, nickname: string, parent: { id?: number, mongoId?: string, }, phoneNumber: string, purchaseHistory: List<{ datePurchased: number, name: string, retailer: { id?: number, }, serialNumber: string, }>, roles: List<string>, streaks: { current?: number, longest?: number, }, tagline: string, weight: { units?: 'lb' | 'kg', value?: number, }, }
Response Body
{
  data: {

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }, }

PATCH /users/{userId}

Edit this user

Request Body
{
+ badges: {
+   default?: string,
+   selected?: string,
+ },
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  dateTosAccepted: number,
  dealer: {
    id?: number,
  },
  email: string,
  firstName: string,
  forcePasswordChange: bool,
  gender: {
    value?: 'm' | 'f' | 'o',
  },
  height: {
    units?: 'in' | 'cm',
    value?: number,
  },
  image: {
    colors?: {
      background?: {
        hex?: string,
      },
      foreground?: {
        hex?: string,
      },
    },
    default: string,
    initials?: string,
    isPlaceholder?: bool,
    large: string,
    medium: string,
    small: string,
    url?: string,
  },
  lastName: string,
  mongoId: string,
  nickname: string,
  parent: {
    id?: number,
    mongoId?: string,
  },
  phoneNumber: string,
  purchaseHistory: List<{
    datePurchased: number,
    name: string,
    retailer: {
      id?: number,
    },
    serialNumber: string,
  }>,
  roles: List<string>,
  streaks: {
    current?: number,
    longest?: number,
  },
  tagline: string,
  weight: {
    units?: 'lb' | 'kg',
    value?: number,
  },
}
Response Body
{
  data: {
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  },
}

GET /users/findByEmail/{email}

Get a specific user by email

Response Body
{
  data: {

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }, }

GET /users/findByEmail/{email}

Get a specific user by email

Response Body
{
  data: {
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  },
}

GET /users/{userId}/family

Get child accounts of this user

Response Body
{
  data: List<{

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }>, pagination: { page?: number, skip?: number, take?: number, total?: { pages?: number, rows?: number, }, }, }

GET /users/{userId}/family

Get child accounts of this user

Response Body
{
  data: List<{
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  }>,
  pagination: {
    page?: number,
    skip?: number,
    take?: number,
    total?: {
      pages?: number,
      rows?: number,
    },
  },
}

POST /users/{userId}/family

Request Body
{

billingAddress: { city: string, country: { code?: string, }, postalCode: string, region: { code?: string, }, streetLine1: string, streetLine2: string, }, birthdate: string, captcha: { token?: string, }, commercial: { code?: string, }, dateTosAccepted: number, dealer: { id?: number, }, email?: string, firstName: string, forcePasswordChange: bool, gender: { value?: 'm' | 'f' | 'o', }, height: { units?: 'in' | 'cm', value?: number, }, image: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName: string, mongoId: string, nickname: string, parent: { id?: number, mongoId?: string, }, password?: string, phoneNumber: string, purchaseHistory: List<{ datePurchased: number, name: string, retailer: { id?: number, }, serialNumber: string, }>, roles: List<string>, streaks: { current?: number, longest?: number, }, tagline: string, weight: { units?: 'lb' | 'kg', value?: number, }, }
Response Body
{
  data: {

billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateTosAccepted: number, dateUpdated?: number, dealer?: { id?: number, }, email?: string, firstName?: string, forcePasswordChange?: bool, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { metricValue?: number, text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { colors?: { background?: { hex?: string, }, foreground?: { hex?: string, }, }, default: string, initials?: string, isPlaceholder?: bool, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, streaks?: { current?: number, longest?: number, }, stripe?: { customerId?: string, }, tagline?: string, updatedBy?: { id?: number, }, weight?: { metricValue?: number, text?: string, units?: 'lb' | 'kg', value?: number, }, }, embedded: { jwt?: string, }, }

POST /users/{userId}/family

Request Body
{
+ badges: {
+   default?: string,
+   selected?: string,
+ },
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  captcha: {
    token?: string,
  },
  commercial: {
    code?: string,
  },
  dateTosAccepted: number,
  dealer: {
    id?: number,
  },
  email?: string,
  firstName: string,
  forcePasswordChange: bool,
  gender: {
    value?: 'm' | 'f' | 'o',
  },
  height: {
    units?: 'in' | 'cm',
    value?: number,
  },
  image: {
    colors?: {
      background?: {
        hex?: string,
      },
      foreground?: {
        hex?: string,
      },
    },
    default: string,
    initials?: string,
    isPlaceholder?: bool,
    large: string,
    medium: string,
    small: string,
    url?: string,
  },
  lastName: string,
  mongoId: string,
  nickname: string,
  parent: {
    id?: number,
    mongoId?: string,
  },
  password?: string,
  phoneNumber: string,
  purchaseHistory: List<{
    datePurchased: number,
    name: string,
    retailer: {
      id?: number,
    },
    serialNumber: string,
  }>,
  roles: List<string>,
  streaks: {
    current?: number,
    longest?: number,
  },
  tagline: string,
  weight: {
    units?: 'lb' | 'kg',
    value?: number,
  },
}
Response Body
{
  data: {
+   badges?: {
+     default?: string,
+     selected?: string,
+   },
    billingAddress?: {
      city?: string,
      country?: {
        code?: string,
        id?: number,
        name?: string,
      },
      postalCode?: string,
      region?: {
        code?: string,
        name?: string,
      },
      streetLine1?: string,
      streetLine2?: string,
    },
    birthdate: string,
    createdBy?: {
      id?: number,
    },
    dateActivated?: number,
    dateCreated?: number,
    dateTosAccepted: number,
    dateUpdated?: number,
    dealer?: {
      id?: number,
    },
    email?: string,
    firstName?: string,
    forcePasswordChange?: bool,
    gender?: {
      text: string,
      value?: 'm' | 'f' | 'o',
    },
    height?: {
      metricValue?: number,
      text?: string,
      units?: 'in' | 'cm',
      value?: number,
    },
    id?: number,
    image?: {
      colors?: {
        background?: {
          hex?: string,
        },
        foreground?: {
          hex?: string,
        },
      },
      default: string,
      initials?: string,
      isPlaceholder?: bool,
      large: string,
      medium: string,
      small: string,
      url?: string,
    },
    lastName?: string,
    mongoId?: string,
    nickname?: string,
    parent?: {
      id?: number,
      mongoId?: string,
    },
    phoneNumber?: string,
    purchaseHistory?: List<{
      datePurchased?: number,
      name?: string,
      retailer?: {
        id?: number,
        name?: string,
      },
      serialNumber?: string,
    }>,
    roles?: List<string>,
    streaks?: {
      current?: number,
      longest?: number,
    },
    stripe?: {
      customerId?: string,
    },
    tagline?: string,
    updatedBy?: {
      id?: number,
    },
    weight?: {
      metricValue?: number,
      text?: string,
      units?: 'lb' | 'kg',
      value?: number,
    },
  },
  embedded: {
    jwt?: string,
  },
}

POST /collections/items

Create a new Collection

Request Body
{
  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,
  }>,
  description?: string,
  durationDays?: number,
  episodeWord?: string,
  medium?: 'reflect' | 'standard' | 'strength',
  name?: string,
  planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free',
  schedule?: List<{
    guid?: string,
    sortOrder?: number,
  }>,
  sortOrder?: number,
  tags?: List<{
    value?: string,
  }>,
  totalCount?: number,
  type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite',
  visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash',
}

POST /collections/items

Create a new Collection

Request Body
{
  available?: {
    end?: number,
    start?: number,
  },
  badge?: {

guid?: string,

}, countries?: List<{ code?: string, }>, description?: string, durationDays?: number, episodeWord?: string, medium?: 'reflect' | 'standard' | 'strength', name?: string, planFamily?: 'spinco' | 'premier' | 'select' | 'flex' | 'fitpass' | 'lite' | 'choice' | 'free', schedule?: List<{ guid?: string, sortOrder?: number, }>, sortOrder?: number, tags?: List<{ value?: string, }>, totalCount?: number, type?: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', visibility?: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }

PATCH /collections/items/{guid}

Update a Collection

Request Body
{
  available: {
    end?: number,
    start?: number,
  },
  badge: {
-   eventCode?: string,
    guid?: string,
-   images?: {
-     default?: string,
-     hd?: string,
-     portrait?: string,
-     sd?: string,
-     square?: string,
-   },
-   translations?: record,
  },
  description: string,
  durationDays: number,
  episodeWord: string,
  name: string,
  schedule: List<{
    guid?: string,
    sortOrder?: number,
  }>,
  sortOrder: number,
  tags: List<{
    value?: string,
  }>,
  totalCount: number,
  type: 'generic' | 'series' | 'challenge' | 'program' | 'favorite',
  visibility: 'public' | 'unlisted' | 'private' | 'draft' | 'trash',
}

PATCH /collections/items/{guid}

Update a Collection

Request Body
{
  available: {
    end?: number,
    start?: number,
  },
  badge: {

guid?: string,

}, description: string, durationDays: number, episodeWord: string, name: string, schedule: List<{ guid?: string, sortOrder?: number, }>, sortOrder: number, tags: List<{ value?: string, }>, totalCount: number, type: 'generic' | 'series' | 'challenge' | 'program' | 'favorite', visibility: 'public' | 'unlisted' | 'private' | 'draft' | 'trash', }
Added endpoints

POST /convert-stations

Admin only.

Guard: admin

Response Body
{
  data: {
    convertedGuids?: List<string>,
    message?: string,
  },
}

POST /subscriptions/twoYearTrialFix

Deleted endpoints
WORK IN PROGRESS