Nest Changelog

1.1.35

5/9/2022

1.1.36

5/11/2022

7 changed endpoints

POST /users

Request Body
{
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  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,
-     name?: string,
    },
    serialNumber?: string,
  }>,
  roles: List<string>,
  tagline: string,
  weight: {
    units?: 'lb' | 'kg',
    value?: number,
  },
}

POST /users

Request Body
{
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  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>, tagline: string, weight: { 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,
  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,
-     name?: string,
    },
    serialNumber?: string,
  }>,
  roles: List<string>,
  tagline: string,
  weight: {
    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,
  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>, tagline: string, weight: { units?: 'lb' | 'kg', value?: number, }, }

POST /users/{userId}/family

Request Body
{
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  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,
-     name?: string,
    },
    serialNumber?: string,
  }>,
  roles: List<string>,
  tagline: string,
  weight: {
    units?: 'lb' | 'kg',
    value?: number,
  },
}

POST /users/{userId}/family

Request Body
{
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
  birthdate: string,
  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>, tagline: string, weight: { units?: 'lb' | 'kg', value?: number, }, }

GET /songs

Get a list of songs

Response Body
{
  data: {
    album?: {
      id?: number,
      name?: string,
    },
    artists?: List<{
      id?: number,
      name?: string,
    }>,

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, },

name?: string, publisherRights?: List<string>, releaseDate?: number,

}, }

GET /songs

Get a list of songs

Response Body
{
  data: {
    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,
  },
}

GET /songs/{id}

Get a specific song

Response Body
{
  data: {
    album?: {
      id?: number,
      name?: string,
    },
    artists?: List<{
      id?: number,
      name?: string,
    }>,

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, },

name?: string, publisherRights?: List<string>, releaseDate?: number,

}, }

GET /songs/{id}

Get a specific song

Response Body
{
  data: {
    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,
  },
}

GET /playlists/{playlist}

Get a single playlist by ID

Response Body
{
  data: {
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
    }>,
    isFlagged?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      contentGuid?: string,
      duration: number,
      guid?: string,
      legacy: {
        hlsUrl?: string,
        id?: number,
        liveStreamId?: number,
        type?: 'reflect' | 'connect',
      },
      type?: 'live' | 'vod' | 'encore',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
    }>,
    tracks?: List<{
      dateCreated?: number,
      flag?: string,
      song?: {
        album?: {
          id?: number,
          name?: string,
        },
        artists?: List<{
          id?: number,
          name?: string,
        }>,

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, },

name?: string, publisherRights?: List<string>, releaseDate?: number,

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

GET /playlists/{playlist}

Get a single playlist by ID

Response Body
{
  data: {
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
    }>,
    isFlagged?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      contentGuid?: string,
      duration: number,
      guid?: string,
      legacy: {
        hlsUrl?: string,
        id?: number,
        liveStreamId?: number,
        type?: 'reflect' | 'connect',
      },
      type?: 'live' | 'vod' | 'encore',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
    }>,
    tracks?: List<{
      dateCreated?: number,
      flag?: string,
      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: {
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
    }>,
    isFlagged?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      contentGuid?: string,
      duration: number,
      guid?: string,
      legacy: {
        hlsUrl?: string,
        id?: number,
        liveStreamId?: number,
        type?: 'reflect' | 'connect',
      },
      type?: 'live' | 'vod' | 'encore',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
    }>,
    tracks?: List<{
      dateCreated?: number,
      flag?: string,
      song?: {
        album?: {
          id?: number,
          name?: string,
        },
        artists?: List<{
          id?: number,
          name?: string,
        }>,

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, },

name?: string, publisherRights?: List<string>, releaseDate?: number,

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

POST /playlists/{playlist}/import

Import all songs from a playlist to another playlist

Response Body
{
  data: {
    countries?: List<{
      code?: string,
    }>,
    createdBy?: {
      id?: number,
    },
    dateCreated?: number,
    dateUpdated?: number,
    id?: number,
    instructors?: List<{
      id?: number,
      name?: string,
    }>,
    isFlagged?: bool,
    name?: string,
    schedule?: List<{
      available?: {
        end?: number,
        live?: number,
        start?: number,
      },
      contentGuid?: string,
      duration: number,
      guid?: string,
      legacy: {
        hlsUrl?: string,
        id?: number,
        liveStreamId?: number,
        type?: 'reflect' | 'connect',
      },
      type?: 'live' | 'vod' | 'encore',
    }>,
    studios?: List<{
      id?: number,
      name?: string,
    }>,
    tracks?: List<{
      dateCreated?: number,
      flag?: string,
      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,
    },
  },
}
WORK IN PROGRESS