Nest Changelog
1.1.32
4/22/2022
1.1.33
5/3/2022
39 changed endpoints Collapse changed endpoints
GET /users
Get all users
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?: { 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>, stripe?: { customerId?: string, },
updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, }, }, }
GET /users
Get all users
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: 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: { 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>,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?: { 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>, 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: { 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, }, }
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: 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?: { 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>, 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, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: 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: { 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>,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?: { 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>, 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: { 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, }, }
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: 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: { 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?: { 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>, 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: { billingAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: 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: { 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>,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?: { 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>, stripe?: { customerId?: string, },
updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, }, }, embedded: { jwt?: string, }, }
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: { 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, }, }
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, 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?: { 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>, stripe?: { customerId?: string, }, + tagline?: string, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, }, }, embedded: { jwt?: string, }, }
GET /plans
Get all Plans
Response Body
{ data: { 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',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, }, }, }
GET /plans
Get all Plans
Response Body
{ data: { 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, }, }, }
POST /plans
Create Plan
Request Body
{ 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, }, defaultTrial: { units?: 'day', value?: number, }, delayBillingDays?: number, description?: string, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency: { units?: 'month', value?: number, }, frequencyDays: number, image?: { data?: string, filename?: 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'>, }
Response Body
{ data: { 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',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, }, }, }
POST /plans
Create Plan
Request Body
{ 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, }, 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, image?: { data?: string, filename?: 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'>, }
Response Body
{ data: { 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, }, }, }
PATCH /plans
Update plans in bulk.
Request Body
{ data?: { 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, }, defaultTrial: { units?: 'day', value?: number, }, delayBillingDays: number, description: string, family: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency: { units?: 'month', value?: number, }, frequencyDays: number, image: { data?: string, filename?: 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'>, }, image: { default: string, large: string, medium: string, small: string, url?: string, }, where?: { countryCode: string, ids: List<number>, }, }
PATCH /plans
Update plans in bulk.
Request Body
{ data?: { 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, }, 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, image: { data?: string, filename?: 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'>, }, image: { default: string, large: string, medium: string, small: string, url?: string, }, where?: { countryCode: string, ids: List<number>, }, }
GET /plans/{id}
Get Plan by id
Response Body
{ data: { 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',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, }, }, }
GET /plans/{id}
Get Plan by id
Response Body
{ data: { 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, }, }, }
PATCH /plans/{id}
Update Plan
Request Body
{ 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, }, defaultTrial: { units?: 'day', value?: number, }, delayBillingDays: number, description: string, family: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency: { units?: 'month', value?: number, }, frequencyDays: number, image: { data?: string, filename?: 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'>, }
Response Body
{ data: { 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',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, }, }, }
PATCH /plans/{id}
Update Plan
Request Body
{ 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, }, 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, image: { data?: string, filename?: 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'>, }
Response Body
{ data: { 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, }, }, }
POST /auth
Sign in with email address and password
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, }, }
POST /auth
Sign in with email address and password
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?: { + expires?: number, features?: record, id?: number, name?: string, + planFamily?: { + code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', + }, }, userId?: number, }, }
GET /auth/{sessionGuid}
Refresh the token
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, }, }
GET /auth/{sessionGuid}
Refresh the token
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?: { + expires?: number, features?: record, id?: number, name?: string, + planFamily?: { + code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', + }, }, userId?: number, }, }
POST /auth/upgrade
Trade in your token from the legacy token for a session
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, }, }
POST /auth/upgrade
Trade in your token from the legacy token for a session
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?: { + expires?: number, features?: record, id?: number, name?: string, + planFamily?: { + code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', + }, }, userId?: number, }, }
POST /auth/commercial
Authenticate a single commercial piece of equipment
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, }, }
POST /auth/commercial
Authenticate a single commercial piece of equipment
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?: { + expires?: number, features?: record, id?: number, name?: string, + planFamily?: { + code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', + }, }, userId?: number, }, }
GET /studios
Get a list of all studios
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string,id?: number,
name?: string,
}, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
GET /studios
Get a list of all studios
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
POST /studios
Create new studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string,id?: number,
name?: string,
}, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
POST /studios
Create new studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
GET /studios/{id}
Get this specific studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string,id?: number,
name?: string,
}, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
GET /studios/{id}
Get this specific studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
PATCH /studios/{id}
Edit studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string,id?: number,
name?: string,
}, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
PATCH /studios/{id}
Edit studio
Response Body
{ data: { code?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, streetAddress?: { city?: string, country?: { code?: string, + currency?: { + code?: string, + scale?: number, + symbol?: string, + }, + dateCreated?: number, + dateUpdated?: number, id?: number, + mediaNet?: { + code?: string, + territoryId?: number, + }, name?: string, + numberFormat?: { + decimalSeparator?: '.' | ',' | ' ', + thousandsSeparator?: '.' | ',' | ' ', + }, + stripe?: { + id?: number, + }, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, }, }, }
GET /songs/{id}/playlists
Get all playlists that contain this song
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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
}, }
GET /songs/{id}/playlists
Get all playlists that contain this song
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, + }>, + videoLength?: { + id?: number, + name?: string, + }, }, }
GET /playlists
Get a list of playlists
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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
}, }
GET /playlists
Get a list of playlists
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, + }>, + videoLength?: { + id?: number, + name?: string, + }, }, }
POST /playlists
Create a new playlist
Request Body
{name?: string,
}
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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
}, }
POST /playlists
Create a new playlist
Request Body
{ + countries?: List<{ + code?: string, + }>, + instructors?: List<{ + id?: number, + name?: string, + }>, name?: string, + studios?: List<{ + id?: number, + name?: string, + }>, + videoLength?: { + id?: number, + name?: string, + }, }
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, + }>, + videoLength?: { + id?: number, + name?: string, + }, }, }
GET /playlists/{playlist}
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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
- tracks?: List<{ - createdBy?: {id?: number,
},
dateCreated?: number, flag?: string,
- playlist?: { - id?: number, - },song?: {id?: number,
}, trackOrder?: number, }>,
}, }
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, + }, }, }
PATCH /playlists/{id}
Update an existing playlist
Request Body
{- 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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged: bool, name: string,
}
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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
}, }
PATCH /playlists/{id}
Update an existing playlist
Request Body
{+ 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, + }>, + videoLength: { + id?: number, + name?: string, + }, }
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, + }>, + videoLength?: { + id?: number, + name?: string, + }, }, }
POST /playlists/{playlist}/import
Import all songs from a playlist to another 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, - }, - contentGuid?: string, - duration: number, - guid?: string, - legacy: { - hlsUrl?: string, - id?: number, - liveStreamId?: number, - type?: 'reflect' | 'connect', - }, - 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,
isFlagged?: bool, name?: string,
- tracks?: List<{ - createdBy?: {id?: number,
},
dateCreated?: number, flag?: string,
- playlist?: { - id?: number, - },song?: {id?: number,
}, trackOrder?: number, }>,
}, }
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, + }, }, }
PUT /workouts/{workoutGuid}
Updates a user workout
Request Body
{ device?: { app_version?: string, model?: string, os?: string, os_version?: string, }, peripheral?: List<{ data_points?: List<unknown>, events?: List<{ timestamp?: number, type?: 'resistance' | 'speed' | 'incline' | 'pause' | 'connection', value?: number, }>, info?: { firmware_version?: string, hardware_version?: string, model_id?: string, }, metrics?: List<unknown>, name?: string, type?: 'bike' | 'rower' | 'treadmill' | 'hrm', uuid?: string, }>, user?: { id: number, subscription_active?: bool, weight?: number, }, workout?: { class_library?: string, end_date?: number,- events?: List<{msg: string, timestamp?: number, type?: 'started' | 'paused' | 'completed' | 'social',
- user: record,}>, id?: string, metadata?: { desc?: string, id?: number, instructor?: string, playlist_id?: number, promo?: bool, title?: string, }, product_name?: string, start_date?: number, }, }
PUT /workouts/{workoutGuid}
Updates a user workout
Request Body
{ device?: { app_version?: string, model?: string, os?: string, os_version?: string, }, peripheral?: List<{ data_points?: List<unknown>, events?: List<{ timestamp?: number, type?: 'resistance' | 'speed' | 'incline' | 'pause' | 'connection', value?: number, }>, info?: { firmware_version?: string, hardware_version?: string, model_id?: string, }, metrics?: List<unknown>, name?: string, type?: 'bike' | 'rower' | 'treadmill' | 'hrm', uuid?: string, }>, user?: { id: number, subscription_active?: bool, weight?: number, }, workout?: { class_library?: string, end_date?: number,+ events: List<{ msg: string, timestamp?: number, type?: 'started' | 'paused' | 'completed' | 'social',
+ user: number, }>, id?: string, metadata?: { desc?: string, id?: number, instructor?: string, playlist_id?: number, promo?: bool, title?: string, }, product_name?: string, start_date?: number, }, }
GET /campaigns/{guid}/offers
Get a list of offers available for this campaign.
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /campaigns/{guid}/offers
Get a list of offers available for this campaign.
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /retailers/{id}/offers
Get a list of offers that this retailer should have.
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /retailers/{id}/offers
Get a list of offers that this retailer should have.
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
POST /offers
Create a new offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
POST /offers
Create a new offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /offers
Get all offers
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /offers
Get all offers
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /offers/{guid}
Get a specific offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /offers/{guid}
Get a specific offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
PATCH /offers/{guid}
Edit an offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
PATCH /offers/{guid}
Edit an offer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /partners/{id}/offers
Get a list of offers available for this specific partner/retailer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,- code?: 'premier' | 'select' | 'flex' | 'fitpass',type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
GET /partners/{id}/offers
Get a list of offers available for this specific partner/retailer
Response Body
{ data: { createdBy?: { id?: number, }, dateCreated?: number, delayBilling?: { days?: number, text?: string, type?: 'trial' | 'bundle', }, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, introductory?: { days?: number, price?: number, stripeCouponId?: string, text?: string, }, name?: string, plan?: { currency?: { code?: string, scale?: number, symbol?: string, }, family?: { brands?: List<'echelon' | 'fitnation' | 'fitquest'>,+ code?: 'premier' | 'select' | 'flex' | 'fitpass' | 'free', type?: 'connected' | 'disconnected', }, frequency?: { days?: number, }, id?: number, lineItems: List<{ text?: string, }>, name: string, }, recurring?: { price?: number, stripePriceId?: string, text?: string, }, status?: 'draft' | 'published', }, }
6 added endpoints Collapse added endpoints
GET /countries
Get a list of countries
Response Body
{ data: { code?: string, currency?: { code?: string, scale?: number, symbol?: string, }, dateCreated?: number, dateUpdated?: number, id?: number, mediaNet?: { code?: string, territoryId?: number, }, name?: string, numberFormat?: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe?: { id?: number, }, }, }
POST /countries
Create a new country
Guard: admin
Request Body
{ code?: string, currency?: { code?: string, scale?: number, symbol?: string, }, mediaNet?: { code?: string, territoryId?: number, }, name?: string, numberFormat?: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe?: { id?: number, }, }
Response Body
{ data: { code?: string, currency?: { code?: string, scale?: number, symbol?: string, }, dateCreated?: number, dateUpdated?: number, id?: number, mediaNet?: { code?: string, territoryId?: number, }, name?: string, numberFormat?: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe?: { id?: number, }, }, }
GET /countries/{id}
Get a single country by ID
Response Body
{ data: { code?: string, currency?: { code?: string, scale?: number, symbol?: string, }, dateCreated?: number, dateUpdated?: number, id?: number, mediaNet?: { code?: string, territoryId?: number, }, name?: string, numberFormat?: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe?: { id?: number, }, }, }
PATCH /countries/{id}
Edit a country
Guard: admin
Request Body
{ code: string, currency: { code?: string, scale?: number, symbol?: string, }, mediaNet: { code?: string, territoryId?: number, }, name: string, numberFormat: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe: { id?: number, }, }
Response Body
{ data: { code?: string, currency?: { code?: string, scale?: number, symbol?: string, }, dateCreated?: number, dateUpdated?: number, id?: number, mediaNet?: { code?: string, territoryId?: number, }, name?: string, numberFormat?: { decimalSeparator?: '.' | ',' | ' ', thousandsSeparator?: '.' | ',' | ' ', }, stripe?: { id?: number, }, }, }