Nest Changelog
1.1.57
7/13/2022
1.2.0
7/18/2022
23 changed endpoints Collapse changed endpoints
POST /webhooks/subscription-created 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
- dateExpires?: number,
datePausedUntil?: number,
- dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
- planAmount?: number,
- planCurrency?: string,
- planId?: number,
- planInterval?: string,
- planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
- shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
- stripeCustomerId?: string,
- subscriptionCreatedAt?: number,
- subscriptionOrderId?: string,
- subscriptionPeriodEnd?: number,
- subscriptionPeriodStart?: number,
- subscriptionTrialEnd?: number,
- subscriptionTrialStart?: number,
}POST /webhooks/subscription-created 
Request Body
{
billingCycleAnchor?: number,
+ createdAt?: number,
dateCancelled?: number,
+ dateExpire?: number,
datePausedUntil?: number,
+ dateStart?: number,
+ dateTrialEnd?: number,
+ dateTrialStart?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
+ orderId?: string,
+ plan?: {
+ basePrice: {
+ currency?: {
+ code?: string,
+ scale?: number,
+ symbol?: string,
+ },
+ value?: number,
+ },
+ benefits: List<{
+ text?: string,
+ }>,
+ billingProviders: List<{
+ accountId?: string,
+ name?: 'stripe' | 'ios' | 'android' | 'amazon',
+ priceId?: string,
+ productId?: string,
+ }>,
+ country: {
+ code?: string,
+ id?: number,
+ },
+ createdBy: {
+ id?: number,
+ },
+ dateCreated: number,
+ dateUpdated: number,
+ defaultTrial: {
+ units?: 'day',
+ value?: number,
+ },
+ delayBillingDays: number,
+ description: string,
+ family: {
+ brands?: List<'echelon' | 'fitnation' | 'fitquest'>,
+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free',
+ type?: 'connected' | 'disconnected',
+ },
+ frequency: {
+ units?: 'month',
+ value?: number,
+ },
+ frequencyDays: number,
+ id: number,
+ image: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
+ musicRights: {
+ productId?: string,
+ vendor?: 'audibleMagic',
+ },
+ name: string,
+ sku: string,
+ sortOrder: number,
+ sources: List<{
+ accountId?: string,
+ name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free',
+ productId?: string,
+ }>,
+ tags: List<'humana' | 'gympass' | 'addon' | 'amazon' | 'popular' | 'directPurchase' | 'csOnly' | 'displayInAdmin'>,
+ updatedBy: {
+ id?: number,
+ },
+ },
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
+ shopifyCustomerId?: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
+ sourceUserId?: string,
status?: string,
}POST /webhooks/subscription-deleted 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
- dateExpires?: number,
datePausedUntil?: number,
- dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
- planAmount?: number,
- planCurrency?: string,
- planId?: number,
- planInterval?: string,
- planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
- shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
- stripeCustomerId?: string,
- subscriptionCreatedAt?: number,
- subscriptionOrderId?: string,
- subscriptionPeriodEnd?: number,
- subscriptionPeriodStart?: number,
- subscriptionTrialEnd?: number,
- subscriptionTrialStart?: number,
}POST /webhooks/subscription-deleted 
Request Body
{
billingCycleAnchor?: number,
+ createdAt?: number,
dateCancelled?: number,
+ dateExpire?: number,
datePausedUntil?: number,
+ dateStart?: number,
+ dateTrialEnd?: number,
+ dateTrialStart?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
+ orderId?: string,
+ plan?: {
+ basePrice: {
+ currency?: {
+ code?: string,
+ scale?: number,
+ symbol?: string,
+ },
+ value?: number,
+ },
+ benefits: List<{
+ text?: string,
+ }>,
+ billingProviders: List<{
+ accountId?: string,
+ name?: 'stripe' | 'ios' | 'android' | 'amazon',
+ priceId?: string,
+ productId?: string,
+ }>,
+ country: {
+ code?: string,
+ id?: number,
+ },
+ createdBy: {
+ id?: number,
+ },
+ dateCreated: number,
+ dateUpdated: number,
+ defaultTrial: {
+ units?: 'day',
+ value?: number,
+ },
+ delayBillingDays: number,
+ description: string,
+ family: {
+ brands?: List<'echelon' | 'fitnation' | 'fitquest'>,
+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free',
+ type?: 'connected' | 'disconnected',
+ },
+ frequency: {
+ units?: 'month',
+ value?: number,
+ },
+ frequencyDays: number,
+ id: number,
+ image: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
+ musicRights: {
+ productId?: string,
+ vendor?: 'audibleMagic',
+ },
+ name: string,
+ sku: string,
+ sortOrder: number,
+ sources: List<{
+ accountId?: string,
+ name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free',
+ productId?: string,
+ }>,
+ tags: List<'humana' | 'gympass' | 'addon' | 'amazon' | 'popular' | 'directPurchase' | 'csOnly' | 'displayInAdmin'>,
+ updatedBy: {
+ id?: number,
+ },
+ },
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
+ shopifyCustomerId?: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
+ sourceUserId?: string,
status?: string,
}POST /webhooks/subscription-updated 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
- dateExpires?: number,
datePausedUntil?: number,
- dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
- planAmount?: number,
- planCurrency?: string,
- planId?: number,
- planInterval?: string,
- planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
- shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
- stripeCustomerId?: string,
- subscriptionCreatedAt?: number,
- subscriptionOrderId?: string,
- subscriptionPeriodEnd?: number,
- subscriptionPeriodStart?: number,
- subscriptionTrialEnd?: number,
- subscriptionTrialStart?: number,
}POST /webhooks/subscription-updated 
Request Body
{
billingCycleAnchor?: number,
+ createdAt?: number,
dateCancelled?: number,
+ dateExpire?: number,
datePausedUntil?: number,
+ dateStart?: number,
+ dateTrialEnd?: number,
+ dateTrialStart?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
+ orderId?: string,
+ plan?: {
+ basePrice: {
+ currency?: {
+ code?: string,
+ scale?: number,
+ symbol?: string,
+ },
+ value?: number,
+ },
+ benefits: List<{
+ text?: string,
+ }>,
+ billingProviders: List<{
+ accountId?: string,
+ name?: 'stripe' | 'ios' | 'android' | 'amazon',
+ priceId?: string,
+ productId?: string,
+ }>,
+ country: {
+ code?: string,
+ id?: number,
+ },
+ createdBy: {
+ id?: number,
+ },
+ dateCreated: number,
+ dateUpdated: number,
+ defaultTrial: {
+ units?: 'day',
+ value?: number,
+ },
+ delayBillingDays: number,
+ description: string,
+ family: {
+ brands?: List<'echelon' | 'fitnation' | 'fitquest'>,
+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free',
+ type?: 'connected' | 'disconnected',
+ },
+ frequency: {
+ units?: 'month',
+ value?: number,
+ },
+ frequencyDays: number,
+ id: number,
+ image: {
+ default: string,
+ large: string,
+ medium: string,
+ small: string,
+ url?: string,
+ },
+ musicRights: {
+ productId?: string,
+ vendor?: 'audibleMagic',
+ },
+ name: string,
+ sku: string,
+ sortOrder: number,
+ sources: List<{
+ accountId?: string,
+ name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free',
+ productId?: string,
+ }>,
+ tags: List<'humana' | 'gympass' | 'addon' | 'amazon' | 'popular' | 'directPurchase' | 'csOnly' | 'displayInAdmin'>,
+ updatedBy: {
+ id?: number,
+ },
+ },
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
+ shopifyCustomerId?: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
+ sourceUserId?: string,
status?: string,
}GET /instructors 
Get a list of instructors
Guard: none
Response Body
{
data: List<{
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}GET /instructors 
Get a list of instructors
Guard: loggedIn
Response Body
{
data: List<{
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
+ status?: string,
+ studio?: {
+ id?: number,
+ },
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}POST /instructors 
Create a new instructor
Guard: none
Request Body
{
bio?: string,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
name?: string,
user?: {
id?: number,
},
}Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}POST /instructors 
Create a new instructor
Guard: admin
Request Body
{
bio?: string,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
name?: string,
+ status?: string,
+ studio?: {
+ id?: number,
+ },
user?: {
id?: number,
},
}Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
+ status?: string,
+ studio?: {
+ id?: number,
+ },
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}GET /instructors/{id} 
Get a specific instructor
Guard: none
Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}GET /instructors/{id} 
Get a specific instructor
Guard: loggedIn
Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
+ status?: string,
+ studio?: {
+ id?: number,
+ },
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}PATCH /instructors/{id} 
Update an existing instructor
Request Body
{
bio: string,
flags: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
name: string,
user: {
id?: number,
},
}Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}PATCH /instructors/{id} 
Update an existing instructor
Request Body
{
bio: string,
flags: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
name: string,
+ status: string,
+ studio: {
+ id?: number,
+ },
user: {
id?: number,
},
}Response Body
{
data: {
bio?: string,
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
id?: number,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
name?: string,
+ status?: string,
+ studio?: {
+ id?: number,
+ },
updatedBy?: {
id?: number,
},
user?: {
id?: number,
},
},
}GET /collections 
List collections
Response Body
{
data: List<{
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
- schedule?: List<{
- available?: {
- end?: number,
- live?: number,
- start?: number,
- },
- content?: {
- description?: string,
- guid?: string,
- image?: {
- default: string,
- large: string,
- medium: string,
- small: string,
- url?: string,
- },
- instructors?: List<{
- id?: number,
- name?: string,
- }>,
- name?: string,
- studios?: List<{
- id?: number,
- name?: string,
- }>,
- },
- guid?: string,
- legacy: {
- hlsUrl?: string,
- id?: number,
- liveStreamId?: number,
- type?: 'reflect' | 'connect',
- },
- type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
- }>,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}GET /collections 
List collections
Response Body
{
data: List<{
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}POST /collections 
Create a new Collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
- schedule?: List<{
- available?: {
- end?: number,
- live?: number,
- start?: number,
- },
- content?: {
- description?: string,
- guid?: string,
- image?: {
- default: string,
- large: string,
- medium: string,
- small: string,
- url?: string,
- },
- instructors?: List<{
- id?: number,
- name?: string,
- }>,
- name?: string,
- studios?: List<{
- id?: number,
- name?: string,
- }>,
- },
- guid?: string,
- legacy: {
- hlsUrl?: string,
- id?: number,
- liveStreamId?: number,
- type?: 'reflect' | 'connect',
- },
- type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
- }>,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}POST /collections 
Create a new Collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}GET /collections/{guid} 
Get a collection by guid
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
- schedule?: List<{
- available?: {
- end?: number,
- live?: number,
- start?: number,
- },
- content?: {
- description?: string,
- guid?: string,
- image?: {
- default: string,
- large: string,
- medium: string,
- small: string,
- url?: string,
- },
- instructors?: List<{
- id?: number,
- name?: string,
- }>,
- name?: string,
- studios?: List<{
- id?: number,
- name?: string,
- }>,
- },
- guid?: string,
- legacy: {
- hlsUrl?: string,
- id?: number,
- liveStreamId?: number,
- type?: 'reflect' | 'connect',
- },
- type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
- }>,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}GET /collections/{guid} 
Get a collection by guid
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}PATCH /collections/{guid} 
Update a Collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
- schedule?: List<{
- available?: {
- end?: number,
- live?: number,
- start?: number,
- },
- content?: {
- description?: string,
- guid?: string,
- image?: {
- default: string,
- large: string,
- medium: string,
- small: string,
- url?: string,
- },
- instructors?: List<{
- id?: number,
- name?: string,
- }>,
- name?: string,
- studios?: List<{
- id?: number,
- name?: string,
- }>,
- },
- guid?: string,
- legacy: {
- hlsUrl?: string,
- id?: number,
- liveStreamId?: number,
- type?: 'reflect' | 'connect',
- },
- type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
- }>,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}PATCH /collections/{guid} 
Update a Collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}PUT /collections/{guid}/schedule/{scheduleGuid} 
Add a schedule item to a collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
- schedule?: List<{
- available?: {
- end?: number,
- live?: number,
- start?: number,
- },
- content?: {
- description?: string,
- guid?: string,
- image?: {
- default: string,
- large: string,
- medium: string,
- small: string,
- url?: string,
- },
- instructors?: List<{
- id?: number,
- name?: string,
- }>,
- name?: string,
- studios?: List<{
- id?: number,
- name?: string,
- }>,
- },
- guid?: string,
- legacy: {
- hlsUrl?: string,
- id?: number,
- liveStreamId?: number,
- type?: 'reflect' | 'connect',
- },
- type?: 'live' | 'vod' | 'encore' | 'rebroadcast',
- }>,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}PUT /collections/{guid}/schedule/{scheduleGuid} 
Add a schedule item to a collection
Response Body
{
data: {
available?: {
end?: number,
start?: number,
},
badge?: {
guid?: string,
},
cardImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
coverImage?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
createdBy?: {
id?: number,
},
dateCreated?: number,
dateUpdated?: number,
description?: string,
durationDays?: number,
episodeWord?: string,
guid?: string,
name?: string,
showcase?: List<{
collectionGuid?: string,
country?: {
code?: string,
},
guid?: string,
sortOrder?: number,
tagValue?: string,
}>,
sortOrder?: number,
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,
}>,
totalCount?: number,
type?: 'generic' | 'series' | 'challenge' | 'program',
updatedBy?: {
id?: number,
},
visibility?: 'public' | 'unlisted' | 'private' | 'trash',
},
}9 added endpoints Collapse added endpoints
GET /collections/{guid}/schedule 
Get schedules inside of a Collection
Guard: loggedIn
Response Body
{
data: List<{
description?: string,
guid?: string,
image?: {
default: string,
large: string,
medium: string,
small: string,
url?: string,
},
instructors?: List<{
id?: number,
name?: string,
}>,
name?: string,
studios?: List<{
id?: number,
name?: string,
}>,
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}