Nest Changelog
1.1.27
4/11/2022
1.1.28
4/14/2022
38 changed endpoints Collapse changed endpoints
GET /users
Get all users
Response Body
{- data: List<{billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateUpdated?: number, email?: string, firstName?: string, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, },
- }>,}
GET /users
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?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, },
+ }, }
GET /users/{userId}/family
Get child accounts of this user
Response Body
{- data: List<{billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateUpdated?: number, email?: string, firstName?: string, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, },
- }>,}
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?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, },
+ }, }
POST /users/{userId}/family
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateUpdated?: number, email?: string, firstName?: string, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, }, },}
POST /users/{userId}/family
Response Body
{ data: { billingAddress?: { city?: string, country?: { code?: string, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, birthdate: string, createdBy?: { id?: number, }, dateActivated?: number, dateCreated?: number, dateUpdated?: number, email?: string, firstName?: string, gender?: { text: string, value?: 'm' | 'f' | 'o', }, height?: { text?: string, units?: 'in' | 'cm', value?: number, }, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, lastName?: string, mongoId?: string, nickname?: string, parent?: { id?: number, mongoId?: string, }, phoneNumber?: string, purchaseHistory?: List<{ datePurchased?: number, name?: string, retailer?: { id?: number, name?: string, }, serialNumber?: string, }>, roles?: List<string>, stripe?: { customerId?: string, }, updatedBy?: { id?: number, }, weight?: { text?: string, units?: 'lb' | 'kg', value?: number, }, }, + embedded: { + jwt?: string, + }, }
GET /plans
Get all Plans
Response Body
{- data: List<{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<string>,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', 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<string>,}
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<string>,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, }, }, }
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<string>,}, 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', 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<string>,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', 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<string>,}
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<string>,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, }, }, }
GET /preferences
Get a list of possible preferences
Response Body
{- data: List<{code?: string, defaultValue: record, description?: string, group?: { id?: number, }, id?: number, inputType?: 'string' | 'number' | 'boolean' | 'enum' | 'multiSelect', name?: string, sortOrder?: number, validation?: { isNullable: bool, maxChoices: number, maxLength: number, maxValue: number, minChoices: number, minLength: number, minValue: number, options: List<string>, precision: number, regexPattern: string, },
- }>,}
GET /preferences
Get a list of possible preferences
Response Body
{+ data: { code?: string, defaultValue: record, description?: string, group?: { id?: number, }, id?: number, inputType?: 'string' | 'number' | 'boolean' | 'enum' | 'multiSelect', name?: string, sortOrder?: number, validation?: { isNullable: bool, maxChoices: number, maxLength: number, maxValue: number, minChoices: number, minLength: number, minValue: number, options: List<string>, precision: number, regexPattern: string, },
+ }, }
GET /instructors
Get a list of instructors
Response Body
{- data: List<{bio?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, updatedBy?: { id?: number, }, user?: { id?: number, },
- }>,}
GET /instructors
Get a list of instructors
Response Body
{+ data: { bio?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, updatedBy?: { id?: number, }, user?: { id?: number, },
+ }, }
GET /studios
Get a list of all studios
Response Body
{- data: List<{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, id?: number, name?: string, }, postalCode?: string, region?: { code?: string, name?: string, }, streetLine1?: string, streetLine2?: string, }, updatedBy?: { id?: number, },
+ }, }
GET /features
Get a list of all available features
Response Body
{- data: List<{code?: string, defaultValue: record, description?: string, id?: number, inputType?: 'string' | 'number' | 'boolean' | 'enum' | 'multiSelect', name?: string, sortOrder?: number, usedBy?: List<'client' | 'server'>, validation?: { isNullable: bool, maxChoices: number, maxLength: number, maxValue: number, minChoices: number, minLength: number, minValue: number, options: List<string>, precision: number, regexPattern: string, },
- }>,}
GET /features
Get a list of all available features
Response Body
{+ data: { code?: string, defaultValue: record, description?: string, id?: number, inputType?: 'string' | 'number' | 'boolean' | 'enum' | 'multiSelect', name?: string, sortOrder?: number, usedBy?: List<'client' | 'server'>, validation?: { isNullable: bool, maxChoices: number, maxLength: number, maxValue: number, minChoices: number, minLength: number, minValue: number, options: List<string>, precision: number, regexPattern: string, },
+ }, }
GET /songs
Get a list of songs
Response Body
{- data: List<{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, - }>,}
GET /songs
Get a list of songs
Response Body
{+ data: { album?: { id?: number, name?: string, },
+ artists?: List<{ id?: number, name?: string, }>,
+ coverArtUrl?: string, duration?: { seconds: number, text: string, },
+ genres?: List<string>, id?: number, isExplicit?: bool,
+ isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, },
name?: string,
+ publisherRights?: List<string>, + releaseDate?: number, + }, }
GET /songs/{id}
Get a specific song
Guard: none
Response Body
{ data: { 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,}, }
GET /songs/{id}
Get a specific song
Guard: instructor
Response Body
{ data: { album?: { id?: number, name?: string, },+ artists?: List<{ id?: number, name?: string, }>,
+ coverArtUrl?: string, duration?: { seconds: number, text: string, },
+ genres?: List<string>, id?: number, isExplicit?: bool,
+ isrc?: string, label?: { id?: number, name?: string, }, labelOwner?: { id?: number, name?: string, },
name?: string,
+ publisherRights?: List<string>, + releaseDate?: number, }, }
GET /songs/{id}/playlists
Get all playlists that contain this song
Guard: none
Response Body
{- data: List<{content?: { countries: List<{ code?: string, }>, createdBy: { id?: number, }, dateCreated: number, dateUpdated: number, description: string, guid: string, image: { default: string, large: string, medium: string, small: string, url?: string, }, instructors: List<{ id?: number, name?: string, }>, keywords: List<string>, name: string, playlist: { id?: number, name?: string, }, schedule: List<{ available?: { end?: number, live?: number, start?: number, }, 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
Guard: instructor
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: List<{content?: { countries: List<{ code?: string, }>, createdBy: { id?: number, }, dateCreated: number, dateUpdated: number, description: string, guid: string, image: { default: string, large: string, medium: string, small: string, url?: string, }, instructors: List<{ id?: number, name?: string, }>, keywords: List<string>, name: string, playlist: { id?: number, name?: string, }, schedule: List<{ available?: { end?: number, live?: number, start?: number, }, 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: { 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 /firmware
Get a list of the available firmware updates
Response Body
{- data: List<{appVersions?: { android?: { maxVersion?: string, minVersion?: string, }, ios?: { maxVersion?: string, minVersion?: string, }, screen?: { maxVersion?: string, minVersion?: string, }, }, capabilities?: List<{ data: record, name?: string, }>, dateReleased?: number, dateRequired?: number, id?: number, name?: string, releaseNotes?: string, status?: 'draft' | 'published' | 'trash', supportedModels?: List<string>, type?: 'hardware' | 'tablet' | 'reflect', updateFile?: { url?: string, }, version?: string,
- }>,}
GET /firmware
Get a list of the available firmware updates
Response Body
{+ data: { appVersions?: { android?: { maxVersion?: string, minVersion?: string, }, ios?: { maxVersion?: string, minVersion?: string, }, screen?: { maxVersion?: string, minVersion?: string, }, }, capabilities?: List<{ data: record, name?: string, }>, dateReleased?: number, dateRequired?: number, id?: number, name?: string, releaseNotes?: string, status?: 'draft' | 'published' | 'trash', supportedModels?: List<string>, type?: 'hardware' | 'tablet' | 'reflect', updateFile?: { url?: string, }, version?: string,
+ }, }
GET /content/library
Search for content in the Library
Guard: none
Response Body
{- data: List<{countries?: List<{ code?: string, }>, dateLive?: number, description?: string, guid?: string, image?: string, instructors?: List<string>, length?: number, name?: string, studios?: List<string>, tags?: List<{ text?: string, type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level', value?: string, }>, type?: 'live' | 'vod' | 'encore',
- }>,}
GET /content/library
Search for content in the Library
Guard: loggedIn
Response Body
{+ data: { countries?: List<{ code?: string, }>, dateLive?: number, description?: string, guid?: string, image?: string, instructors?: List<string>, length?: number, name?: string, studios?: List<string>, tags?: List<{ text?: string, type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level', value?: string, }>, type?: 'live' | 'vod' | 'encore',
+ }, }
GET /content/items
Get list of content items
Guard: loggedIn
Response Body
{- data: List<{countries?: List<{ code?: string, }>, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, description?: string, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, instructors?: List<{ id?: number, name?: string, }>, keywords?: List<string>, name?: string, playlist?: { id?: number, name?: string, }, schedule?: List<{ available?: { end?: number, live?: number, start?: number, }, 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, },
- }>,}
GET /content/items
Get list of content items
Guard: admin
Response Body
{+ data: { 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, },
+ }, }
GET /content/items/{guid}
Get a specific content item
Response Body
{- data: List<{countries?: List<{ code?: string, }>, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, description?: string, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, instructors?: List<{ id?: number, name?: string, }>, keywords?: List<string>, name?: string, playlist?: { id?: number, name?: string, }, schedule?: List<{ available?: { end?: number, live?: number, start?: number, }, 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, },
- }>,}
GET /content/items/{guid}
Get a specific content item
Response Body
{+ data: { 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, },
+ }, }
GET /content/recommendations
Get content recommended for this user.
Response Body
{- data: List<{countries?: List<{ code?: string, }>, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, description?: string, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, instructors?: List<{ id?: number, name?: string, }>, keywords?: List<string>, name?: string, playlist?: { id?: number, name?: string, }, schedule?: List<{ available?: { end?: number, live?: number, start?: number, }, 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, },
- }>,}
GET /content/recommendations
Get content recommended for this user.
Response Body
{+ data: { 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, },
+ }, }
GET /content/tags
Get available content tags.
Response Body
{- data: List<{image?: { default: string, large: string, medium: string, small: string, url?: string, }, text?: string, translations: record, type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level', value?: string,
- }>,}
GET /content/tags
Get available content tags.
Response Body
{+ data: { image?: { default: string, large: string, medium: string, small: string, url?: string, }, text?: string, translations: record, type?: 'category' | 'music' | 'language' | 'closedCaptions' | 'healthFocus' | 'modality' | 'equipment' | 'plan' | 'venue' | 'general' | 'level', value?: string,
+ }, }
GET /content/schedule
Get list of scheduled content.
Response Body
{- data: List<{available?: { end?: number, live?: number, start?: number, }, contentGuid?: string, duration: number, guid?: string, legacy: { hlsUrl?: string, id?: number, liveStreamId?: number, type?: 'reflect' | 'connect', }, type?: 'live' | 'vod' | 'encore',
- }>,}
GET /content/schedule
Get list of scheduled content.
Response Body
{+ data: { available?: { end?: number, live?: number, start?: number, }, contentGuid?: string, duration: number, guid?: string, legacy: { hlsUrl?: string, id?: number, liveStreamId?: number, type?: 'reflect' | 'connect', }, type?: 'live' | 'vod' | 'encore',
+ }, }
GET /content/schedule/{scheduleId}
Get a piece of scheduled content by its guid (not its content guid!).
Response Body
{- data: List<{available?: { end?: number, live?: number, start?: number, }, contentGuid?: string, duration: number, guid?: string, legacy: { hlsUrl?: string, id?: number, liveStreamId?: number, type?: 'reflect' | 'connect', }, type?: 'live' | 'vod' | 'encore',
- }>,}
GET /content/schedule/{scheduleId}
Get a piece of scheduled content by its guid (not its content guid!).
Response Body
{+ data: { available?: { end?: number, live?: number, start?: number, }, contentGuid?: string, duration: number, guid?: string, legacy: { hlsUrl?: string, id?: number, liveStreamId?: number, type?: 'reflect' | 'connect', }, type?: 'live' | 'vod' | 'encore',
+ }, }
GET /redemption-codes
Get a list of redemption codes
Response Body
{- data: List<{batchGuid?: string, campaignCode?: string, code?: string, createdBy?: { id?: number, }, dateCreated?: number, delayBillingDays?: number, eligibilityRequirements: record, plans?: List<{ id?: number, }>, redeemedBy?: { id?: number, }, referenceNumber?: string, retailer?: { bundleDays: number, id?: number, name: string, }, serialNumber?: string, status?: 'inactive' | 'active' | 'redeemed' | 'deleted', stripeCoupon?: string, subscription?: { id?: number, },
- }>,}
GET /redemption-codes
Get a list of redemption codes
Response Body
{+ data: { batchGuid?: string, campaignCode?: string, code?: string, createdBy?: { id?: number, }, dateCreated?: number, delayBillingDays?: number, eligibilityRequirements: record, plans?: List<{ id?: number, }>, redeemedBy?: { id?: number, }, referenceNumber?: string, retailer?: { bundleDays: number, id?: number, name: string, }, serialNumber?: string, status?: 'inactive' | 'active' | 'redeemed' | 'deleted', stripeCoupon?: string, subscription?: { 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, },
- }>,}
GET /subscriptions/{id}/history
Get a subscription history by subscription ID
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 /retailers
Get a list of retailers
Response Body
{- data: List<{brand?: { id?: number, name?: string, }, bundleDays?: number, country?: { code?: string, id?: number, }, dateCreated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, name?: string,
- }>,}
GET /retailers
Get a list of retailers
Response Body
{+ data: { brand?: { id?: number, name?: string, }, bundleDays?: number, country?: { code?: string, id?: number, }, dateCreated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, name?: string,
+ }, }
GET /retailers/{id}/offers
Get a list of offers that this retailer should have.
Response Body
{- data: List<{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', 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 /equipment/models
Get a list of all available Equipment
Response Body
{- data: List<{brand?: { name?: string, }, category: { guid?: string, name?: string, }, dateAvailable?: number, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, pdf?: { url?: string, }, plans?: List<{ id?: number, }>, video?: { url?: string, },
- }>,}
GET /equipment/models
Get a list of all available Equipment
Response Body
{+ data: { brand?: { name?: string, }, category: { guid?: string, name?: string, }, dateAvailable?: number, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, pdf?: { url?: string, }, plans?: List<{ id?: number, }>, video?: { url?: string, },
+ }, }
GET /equipment/categories
Get all equipment categories.
Response Body
{- data: List<{contentTag?: string, dateCreated?: number, dateUpdated?: number, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, legacyContentTag?: string, name?: string, sortOrder?: number, updatedBy?: { id?: number, },
- }>,}
GET /equipment/categories
Get all equipment categories.
Response Body
{+ data: { contentTag?: string, dateCreated?: number, dateUpdated?: number, guid?: string, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, legacyContentTag?: string, name?: string, sortOrder?: number, updatedBy?: { id?: number, },
+ }, }
GET /brands
Get all brands
Response Body
{- data: List<{alias?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, name?: string, updatedBy?: { id?: number, },
- }>,}
GET /brands
Get all brands
Response Body
{+ data: { alias?: string, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, isActive?: bool, name?: string, updatedBy?: { id?: number, },
+ }, }
GET /partners
Get a list of partners
Response Body
{- data: List<{brand?: { id?: number, name?: string, }, bundleDays?: number, country?: { code?: string, id?: number, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, type?: 'retailer' | 'dealer' | 'affiliate' | 'employer', updatedBy?: { id?: number, },
- }>,}
GET /partners
Get a list of partners
Response Body
{+ data: { brand?: { id?: number, name?: string, }, bundleDays?: number, country?: { code?: string, id?: number, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, image?: { default: string, large: string, medium: string, small: string, url?: string, }, name?: string, type?: 'retailer' | 'dealer' | 'affiliate' | 'employer', updatedBy?: { id?: number, },
+ }, }
GET /partners/{id}/offers
Get a list of offers available for this specific partner/retailer
Response Body
{- data: List<{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', 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 /users/{userId}/subscriptions
Get a list of a user's subscriptions.
Response Body
{- data: List<{activation?: { isActivated?: bool, }, billingProvider?: { accountId?: string, customerId?: string, name?: 'stripe' | 'ios' | 'android' | 'amazon', orderId?: string, }, cancellation?: { dateCancelled?: number, feedback?: string, reason?: string, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, pause?: { dateEnd?: number, dateStart?: number, reason?: string, }, plan?: { id?: number, }, price?: { currency?: { code?: string, scale?: number, symbol?: string, }, value?: number, }, promotion?: { id?: number, }, renewal?: 'auto' | 'paused' | 'cancelled' | 'failed', source?: { accountId?: string, lineItemId?: string, name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', orderId?: string, productId?: string, }, status?: 'pending' | 'trialing' | 'active' | 'expired', term?: { dateEnd?: number, dateStart?: number, }, token?: string, trial?: { dateEnd?: number, dateStart?: number, }, updatedBy?: { id?: number, }, user?: { id?: number, }, utm?: { campaign?: string, content?: string, medium?: string, source?: string, },
- }>,}
GET /users/{userId}/subscriptions
Get a list of a user's subscriptions.
Response Body
{+ data: { activation?: { isActivated?: bool, }, billingProvider?: { accountId?: string, customerId?: string, name?: 'stripe' | 'ios' | 'android' | 'amazon', orderId?: string, }, cancellation?: { dateCancelled?: number, feedback?: string, reason?: string, }, createdBy?: { id?: number, }, dateCreated?: number, dateUpdated?: number, id?: number, pause?: { dateEnd?: number, dateStart?: number, reason?: string, }, plan?: { id?: number, }, price?: { currency?: { code?: string, scale?: number, symbol?: string, }, value?: number, }, promotion?: { id?: number, }, renewal?: 'auto' | 'paused' | 'cancelled' | 'failed', source?: { accountId?: string, lineItemId?: string, name?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', orderId?: string, productId?: string, }, status?: 'pending' | 'trialing' | 'active' | 'expired', term?: { dateEnd?: number, dateStart?: number, }, token?: string, trial?: { dateEnd?: number, dateStart?: number, }, updatedBy?: { id?: number, }, user?: { id?: number, }, utm?: { campaign?: string, content?: string, medium?: string, source?: string, },
+ }, }
4 added endpoints Collapse added endpoints
POST /test/validation
Throw an error for testing purposes.
Request Body
{ array: List<string>, array2: List<'foo' | 'bar'>, nested: List<{ value?: string, }>, }
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', }, }