Nest Changelog

1.28.10

6/8/2023

1.29.0 PRE

6/6/2023

6 changed endpoints

POST /webhooks/orders

Request Body
{
  customer?: {
    email?: string,
    firstName?: string,
    lastName?: string,
  },
  initiatedBy: {
    id?: number,
  },
  internalNote: string,
  isFirstPeriodPrepaid?: bool,
- offerGuid: string,

publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, retailer?: { orderCode?: string, partner?: { id?: number, }, storeCode: string, }, sourceName?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /webhooks/orders

Request Body
{
  customer?: {
    email?: string,
    firstName?: string,
    lastName?: string,
  },
  initiatedBy: {
    id?: number,
  },
  internalNote: string,
  isFirstPeriodPrepaid?: bool,

+ offerGuid?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, retailer?: { orderCode?: string, partner?: { id?: number, }, storeCode: string, }, sourceName?: 'shopify' | 'amazon' | 'ios' | 'android' | 'organic' | 'free', utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /workouts/items

Post a Workout

Request Body
{
- content?: {

guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string, type?: 'bike' | 'rower' | 'treadmill', }>, - ranking?: {

place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, }, - peripheral?: {

guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }

POST /workouts/items

Post a Workout

Request Body
{

+ content: { guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string, type?: 'bike' | 'rower' | 'treadmill', }>,

+ ranking: { place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, },

+ peripheral: { guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }

PUT /workouts/items/{guid}

Put a Workout

Request Body
{
- content?: {

guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string, type?: 'bike' | 'rower' | 'treadmill', }>, - ranking?: {

place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, }, - peripheral?: {

guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }

PUT /workouts/items/{guid}

Put a Workout

Request Body
{

+ content: { guid?: string, type?: 'live' | 'vod' | 'encore' | 'freestyle', }, device?: { appVersion?: string, model?: string, os?: string, osVersion?: string, }, legacyProduct?: string, localTime?: string, peripherals?: List<{ firmwareVersion?: string, guid?: string, hardwareVersion?: string, modelId?: string, name?: string, serialNO?: string, type?: 'bike' | 'rower' | 'treadmill', }>,

+ ranking: { place?: number, total?: number, }, stats?: List<{ classState?: 'warmup' | 'in-session' | 'overflow' | 'ended', dateLoggedMs?: number, output?: { distance: number, incrementalDistance: number, joules: number, RPM: number, strokesPerMinute: number, time500Meters: number, watts: number, },

+ peripheral: { guid: string, incline: number, resistance: number, speed: number, }, physiology?: { calories: number, heartRate: number, hrPoints: number, }, playbackState?: 'playing' | 'paused' | 'stopped' | 'buffering', }>, user?: { id?: number, }, }

GET /redemption-codes/export

Export a list of redemption-codes belonging to a given promotion

Response Body
{
  data: List<{
    code?: string,
-   dateCreated?: number,

offerGuid?: string, promotionCode?: string, status?: 'inactive' | 'active' | 'redeemed' | 'deleted', vendor?: 'Incomm', }>, }

GET /redemption-codes/export

Export a list of redemption-codes belonging to a given promotion

Response Body
{
  data: List<{
    code?: string,

+ dateCreated: string, offerGuid?: string, promotionCode?: string, status?: 'inactive' | 'active' | 'redeemed' | 'deleted', vendor?: 'Incomm', }>, }

POST /users/{userId}/account/activate

create a new subscription in stripe from shopify order, optionally applies a redemption code

Request Body
{
  applyBillingDelay: bool,
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
- cardTokenId?: string,

equipment: { id?: number, }, firstName: string, isFirstPeriodPrepaid: bool, lastName: string, partner: { id?: number, },

phoneNumber: string, redemptionCode: string, serialNumber: string, utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /users/{userId}/account/activate

create a new subscription in stripe from shopify order, optionally applies a redemption code

Request Body
{
  applyBillingDelay: bool,
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },

+ cardTokenId: string, equipment: { id?: number, }, firstName: string, isFirstPeriodPrepaid: bool, lastName: string, partner: { id?: number, }, + paymentMethodId: string, phoneNumber: string, redemptionCode: string, serialNumber: string, utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /users/{userId}/account/subscribe

Create a new subscription in stripe

Request Body
{
  applyBillingDelay: bool,
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },
- cardTokenId?: string,

equipment: { id?: number, }, firstName: string, isFirstPeriodPrepaid: bool, lastName: string, offer: { guid?: string, }, partner: { id?: number, },

phoneNumber: string, planId: number, redemptionCode: string, serialNumber: string, utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /users/{userId}/account/subscribe

Create a new subscription in stripe

Request Body
{
  applyBillingDelay: bool,
  billingAddress: {
    city: string,
    country: {
      code?: string,
    },
    postalCode: string,
    region: {
      code?: string,
    },
    streetLine1: string,
    streetLine2: string,
  },

+ cardTokenId: string, equipment: { id?: number, }, firstName: string, isFirstPeriodPrepaid: bool, lastName: string, offer: { guid?: string, }, partner: { id?: number, }, + paymentMethodId: string, phoneNumber: string, planId: number, redemptionCode: string, serialNumber: string, utm: { campaign: string, content: string, medium: string, source: string, term: string, }, }

POST /users/fix-missed-orders

Admin only. You do not want this endpoint.

Guard: admin

Response Body
{
  data: string,
}
Deleted endpoints
WORK IN PROGRESS