Nest Changelog
1.1.35
5/9/2022
1.1.36
5/11/2022
7 changed endpoints Collapse 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,
},
},
}