Nest Changelog
1.1.4
2/9/2022
1.1.5
2/15/2022
15 changed endpoints Collapse changed endpoints
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<{- dateAvailable?: 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<{+ 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<{- dateAvailable?: 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<{+ 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<{- dateAvailable?: 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<{+ 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/{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<{- dateAvailable?: 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<{+ 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, }>, }, }
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<{- dateAvailable?: 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<{+ 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 /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<{- dateAvailable?: 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<{+ 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<{- dateAvailable?: 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<{+ 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<{- dateAvailable?: 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<{+ 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 /subscriptions/{id}/history
Get a subscription history by subscription ID
Response Body
{ data: List<{ action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted', dateOccurred?: number,initiatedBy?: { id?: number, },
- reason: string, - source: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com',subscription?: { id?: number, }, user?: { id?: number, }, }>, }
GET /subscriptions/{id}/history
Get a subscription history by subscription ID
Response Body
{ data: List<{ action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted', dateOccurred?: number, + guid?: string, initiatedBy?: { id?: number, },+ payload: record, + rawJson: record, + reason?: string, + source?: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com', subscription?: { id?: number, }, user?: { id?: number, }, }>, }
POST /subscriptions/{id}/history
Create Subscription History
Request Body
{ action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted',- dateOccurred?: number,initiatedBy?: { id?: number, }, payload: record, rawJson: record, reason: string, source: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com', subscription?: { id?: number, }, user?: { id?: number, }, }
Response Body
{ data: { action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted', dateOccurred?: number,initiatedBy?: { id?: number, },
- reason: string, - source: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com',subscription?: { id?: number, }, user?: { id?: number, }, }, }
POST /subscriptions/{id}/history
Create Subscription History
Request Body
{ action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted',initiatedBy?: { id?: number, }, payload: record, rawJson: record, reason: string, source: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com', subscription?: { id?: number, }, user?: { id?: number, }, }
Response Body
{ data: { action?: 'paused' | 'planChanged' | 'created' | 'canceled' | 'discounted', dateOccurred?: number, + guid?: string, initiatedBy?: { id?: number, },+ payload: record, + rawJson: record, + reason?: string, + source?: 'stripe.com' | 'admin.echelonfit.com' | 'falcon1.echelonfit.com' | 'member.echelonfit.com' | 'stag.member.echelonfit.com', subscription?: { id?: number, }, user?: { id?: number, }, }, }
GET /equipment/models
Get a list of all available Equipment
Response Body
{ data: List<{dateAvailable?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string,
plans?: List<{ id?: number, }>,
}>, }
GET /equipment/models
Get a list of all available Equipment
Response Body
{ data: List<{ + category: { + guid?: string, + name?: string, + }, dateAvailable?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, + pdf?: string, plans?: List<{ id?: number, }>, + video?: string, }>, }
GET /equipment/models/{id}
Get a specific model of equipment
Response Body
{ data: {dateAvailable?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string,
plans?: List<{ id?: number, }>,
}, }
GET /equipment/models/{id}
Get a specific model of equipment
Response Body
{ data: { + category: { + guid?: string, + name?: string, + }, dateAvailable?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, + pdf?: string, plans?: List<{ id?: number, }>, + video?: string, }, }
5 added endpoints Collapse added endpoints
PUT /users/password/forgot
Check that there is no password reset request within last 10 mins and generates a token for password reset
Request Body
{ email?: string, }
Response Body
{ data: { token?: string, }, }
PUT /users/password/reset
Change the password using reset token
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, }, }
POST /auth/commercial
Authenticate a single commercial piece of equipment
Request Body
{ Commercial Code?: string, name: string, password?: string, }
Response Body
{ data: { family?: List<{ id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, nickname?: string, }>, guid?: string, jwt?: string, mongoId?: string, plan?: { features?: record, id?: number, name?: string, }, userId?: number, }, }