Nest Changelog
1.1.5
2/15/2022
1.1.6
2/18/2022
16 changed endpoints Collapse 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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
}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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
}POST /users 
Request Body
{
billingAddress: {
city: string,
country: {
code?: string,
},
postalCode: string,
region: {
code?: string,
},
streetLine1: string,
streetLine2: string,
},
- dateBirth: string,
email?: string,
firstName: string,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
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,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
},
- dateBirth: string,
email: string,
firstName: string,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
email: string,
firstName: string,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
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,
},
- dateBirth: string,
email?: string,
firstName: string,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
},
createdBy?: {
id?: number,
},
dateActivated?: number,
- dateBirth: string,
dateCreated?: number,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
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,
gender: {
value?: 'm' | 'f' | 'o',
},
height: {
units?: 'in' | 'cm',
value?: number,
},
image: {
default: string,
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>,
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,
dateUpdated?: number,
email?: string,
firstName?: string,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
default: string,
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>,
stripe?: {
customerId?: string,
},
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}PUT /users/password/reset 
Change the password using reset token
Guard: none
Request Body
{
- billingAddress: {
- city: string,
- country: {
- code?: string,
- },
- postalCode: string,
- region: {
- code?: string,
- },
- streetLine1: string,
- streetLine2: string,
- },
- dateBirth: string,
email?: string,
- firstName: string,
- gender: {
- value?: 'm' | 'f' | 'o',
- },
- height: {
- units?: 'in' | 'cm',
- value?: number,
- },
- image: {
- default: string,
- 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>,
token?: string,
- weight: {
- units?: 'lb' | 'kg',
- value?: number,
- },
}GET /songs/{id}/playlists 
Get all playlists that contain this song
Response Body
{
data: List<{
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
}>,
}GET /songs/{id}/playlists 
Get all playlists that contain this song
Response Body
{
data: List<{
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
}>,
}GET /playlists 
Get a list of playlists
Response Body
{
data: List<{
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
}>,
}GET /playlists 
Get a list of playlists
Response Body
{
data: List<{
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
}>,
}POST /playlists 
Create a new playlist
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
},
}POST /playlists 
Create a new playlist
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
},
}GET /playlists/{id} 
Get a single playlist by ID
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
tracks?: List<{
dateCreated?: number,
song?: {
album?: {
id?: number,
name?: string,
},
artist?: List<{
id?: number,
name?: string,
}>,
coverArt?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
duration?: {
seconds: number,
text: string,
},
genres?: List<{
id?: number,
name?: string,
}>,
id?: number,
isExplicit?: bool,
isrcCode?: string,
label?: {
id?: number,
name?: string,
},
labelOwner?: {
id?: number,
name?: string,
},
licenseDetails?: {
label: record,
publisher: record,
},
licensedIn?: List<string>,
name?: string,
yearPublished?: number,
},
trackOrder?: number,
}>,
},
}GET /playlists/{id} 
Get a single playlist by ID
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
tracks?: List<{
dateCreated?: number,
song?: {
album?: {
id?: number,
name?: string,
},
artist?: List<{
id?: number,
name?: string,
}>,
coverArt?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
duration?: {
seconds: number,
text: string,
},
genres?: List<{
id?: number,
name?: string,
}>,
id?: number,
isExplicit?: bool,
isrcCode?: string,
label?: {
id?: number,
name?: string,
},
labelOwner?: {
id?: number,
name?: string,
},
licenseDetails?: {
label: record,
publisher: record,
},
licensedIn?: List<string>,
name?: string,
yearPublished?: number,
},
trackOrder?: number,
}>,
},
}PATCH /playlists/{id} 
Update an existing playlist
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
},
}PATCH /playlists/{id} 
Update an existing playlist
Response Body
{
data: {
content?: {
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
name?: string,
},
}GET /content/items 
Get list of content items
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}GET /content/items 
Get list of content items
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}GET /content/items/{guid} 
Get a specific content item
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}GET /content/items/{guid} 
Get a specific content item
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}GET /content/recommendations 
Get content recommended for this user.
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
- availability?: {
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
text?: string,
- type?: 'category',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}GET /content/recommendations 
Get content recommended for this user.
Response Body
{
data: List<{
countries?: List<{
code?: string,
}>,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
keywords?: List<string>,
name?: string,
playlist?: {
id?: number,
name?: string,
},
schedule?: List<{
+ available?: {
+ end?: number,
+ live?: number,
start?: number,
},
type?: 'live' | 'vod' | 'encore',
}>,
status?: 'draft' | 'published',
studios?: List<{
id?: number,
name?: string,
}>,
tags?: List<{
+ image?: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
text?: string,
+ translations: record,
+ type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
updatedBy?: {
id?: number,
},
videoLength?: {
id?: number,
name?: string,
},
}>,
}9 added endpoints Collapse added endpoints
GET /content/tags 
Get available content tags.
Response Body
{
data: List<{
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
text?: string,
translations: record,
type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
}>,
}GET /content/tags/{value} 
Get one content tag by value.
Response Body
{
data: {
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
text?: string,
translations: record,
type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
},
}PUT /content/tags/{value} 
Create a New Tag
Request Body
{
image: {
url?: string,
},
translations: record,
type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
}Response Body
{
data: {
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
text?: string,
translations: record,
type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
},
}PATCH /content/tags/{value} 
Edit a tag
Request Body
{
image: {
url?: string,
},
translations: record,
type: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
}Response Body
{
data: {
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
text?: string,
translations: record,
type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level',
value?: string,
},
}GET /content/schedule 
Get list of scheduled content.
Guard: loggedIn
Response Body
{
data: 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',
}>,
}POST /content/schedule 
Create a new schedule entry for a piece of content
Guard: admin
Request Body
{
available?: {
end?: number,
live?: number,
start?: number,
},
contentGuid?: string,
duration: number,
legacy: {
hlsUrl?: string,
id?: number,
liveStreamId?: number,
type?: 'reflect' | 'connect',
},
mediaPackageChannelName: string,
type?: 'live' | 'vod' | 'encore',
}Response Body
{
data: {
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',
},
}GET /content/schedule/{scheduleId} 
Get a piece of scheduled content by its guid (not its content guid!).
Guard: loggedIn
Response Body
{
data: 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',
}>,
}PATCH /content/schedule/{guid} 
Create a new schedule entry for a piece of content
Guard: admin
Request Body
{
available: {
end?: number,
live?: number,
start?: number,
},
duration: number,
legacy: {
hlsUrl?: string,
id?: number,
liveStreamId?: number,
type?: 'reflect' | 'connect',
},
}Response Body
{
data: {
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',
},
}