ActiveSoul Wellness Gateway

Overview

The ActiveSoul Wellness Gateway™ ("Gateway) allows Wellness Companies ("Partners") to integrate with the ActiveSoul Fitness Platform. This Gateway provides Partners valuable benefits including:

  1. Wellness members have immediate access to 25,000+ nationwide clubs and 500,000+ fitness classes
  2. ActiveSoul club search and class signup is easily integrated with Partner's existing wellness platform
  3. Member workout data available in real-time ensuring workout accountability and verification

The Gateway provides the following two integration points:
  • Class Signup Integration: club search and class signup
  • Workout Data Integration: access to member workout data



Class Signup Integration

Class Signup Integration lets Partners include access to the ActiveSoul class search and signup features via a link in the Partner wellness platform. This link has two options:

  1. Member is taken to the ActiveSoul Mobile App where they signup for classes
  2. - or -
  3. Member is taken to a web-based class search and signup page

Workout Data Integration

The Workout Data Integration consists of an API that allows Partners to access wellness member workout data. There are two options for accessing data:

  1. Partner "pulls" member data from ActiveSoul
  2. ActiveSoul "pushes" workout data to Partner
Pulling data

The Gateway includes an API so Partners can pull member wellness data asynchronously and in real-time. The API is HTTP-based, so it works with any language that has an HTTP library. Requests use standard HTTP POSTs and JSON is returned and accepted by all endpoints. The API documentation uses the JSON data types defined by W3Schools. The resource documentation describes requests and responses in detail for each endpoint.

Pushing data

Using the ActiveSoul mobile app and website, members signup for fitness classes and have access to a gps fitness tracker. After the member completes their workout, the workout data can be "pushed" to the Partner. This push is done via an HTTP JSON post to a URL provided by the Partner. The Partner provides ActiveSoul authentication information and JSON formatting.



Pulling Data

The Gateway includes an API that is HTTP-based, so it works with any language that has an HTTP library. Requests use standard HTTP verbs such as GET, POST, and DELETE. JSON is returned and accepted by all endpoints. The API documentation uses the JSON data types defined by W3Schools. The resource documentation describes requests and responses in detail for each endpoint.

Getting Started

Step 1: Contact us to become an ActiveSoul Network Partner.

Step 2: Get your API key, client key, and client secret for our development environment.

Step 3: Begin coding your integration.

Step 4: Use your ActiveSoul Sandbox to develop and test your integration.

Step 5: Complete your integration.

Step 6: Perform a Launch Checklist Review with ActiveSoul.

Step 7: Get your API key, client key, and client secret for production.

Authentication

The API uses API keys and basic access authentication. Once you become an approved ActiveSoul Network Partner, you will receive an API key, a client key, and a client secret. To make a successful API call:

1. Pass your API key as an API-Key header.

2. Pass the client key and client secret as an Authorization header.


Base URL

Sandbox: http://34.208.161.227:8080/api/wellness

Production: https://activesoul.technology/api/wellness/

Sandbox / Testing

Once you have access to the Affiliate API, ActiveSoul will provide sandbox authentication information.

The sandbox site is for testing and structured in exactly the same way as the production site. You will have full access to the API for development and testing purposes; you can experiment with changing settings and data.

After you have tested and finalized your integration, ActiveSoul will give you access to the production system. When you are ready to go live, contact our developer support team.


Sandbox Base URL

https://www.activesoul.us/api/event/sb/api/v1/Method.asp

API Calls

The API is HTTP-based, so it works with any language that has an HTTP library. Requests use standard HTTP verbs such as GET, POST, and DELETE. JSON is returned and accepted by all endpoints. The API documentation uses the JSON data types defined by W3Schools. The resource documentation describes requests and responses in detail for each endpoint.

All calls require an APP_ID and APP_SECRET for authentication, contact us to setup an account and get your authentication info

The format of calls is as follows. Note "method" is the specific method you are calling such as EventGet and this determines additional parameters for each method.

JSON format:

{
   "APP_ID": "app_id",
   "APP_SECRET": "app_secret",
   "method": "method"
   ...additional parameters...
}


Return JSON:

Data is returned in the below format and specific data depends on the method. Every call returns "status" and "method", "status" is either "success" or "failed", refer to Error Handling for error codes when status returns "failed".

{
   "status":"success",
   "method":"method",
   ...additional return data...
}

/save

POST

This request is for registering a Wellness Partner in ActiveSoul Network. It is allowed only for admin of ActiveSoul. Before making this request admin should be provided with general info about Wellness company. Contact ActiveSoul to become a Wellness Partner.

All fields in request body is required.

Headers :

Content-Type: application/json
authorization: password

Request Body :

{
   "name": "John Hutchinson",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": "john@activesoul.us",
    "address": "Green st. 8"
}

Response :

{
   "name": "John Hutchinson",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": " john@activesoul.us ",
   "address": "Green st. 8",
   "accountId": "6706455200",
   "apiKey":
   "L9X7gDqXcJ40YKRBdocIJQawlyavcIKAKarpxSJGhGDxwFeSgP",
   "clientKey": "oKqGaIO5c3",
   "clientSecret": "hRem2p6aJxLRt0Elc57D7J6uFNRZJs",
   "_id": "5975e8599ede052ccd0b9c86",
   "createdAt": "2017-07-24T12:30:17.540Z”
}

There is some sensitive data like 'apiKey', 'clientKey', 'clientSecret' which is auto-generated and should be sent to Wellness Partner. Wellness Partners will use this data to authenticate themselves and these credentials should be passed during each API call.

Error Handling:

If some fields in the request body are invalid then user will see the error messages.

Example: invalid zip code and email address:

{
   ...
   "zip": 123422,
   "email": "john@activesoul.",
   ...
}

Server response with status 400 (Bad request) and response body:

{
   "error":
   [
   {
   "param": "zip",
   "msg": "Enter a valid zip code. Should be 5 digits in length.",
   "value": 123422
   },
   {
   "param": "email",
   "msg": "Enter a valid email address.",
   "value": "john@activesoul."
   }
   ]
}

Example: admin password is invalid, server will return the following response:

{
   "status": "failed",
   "error": "Permission denied. Only Admin can add new wellness partners"
}

/update/{accountID}

PUT

This method updates wellness partner info and returns the updated wellness partner. Only available for ​admin.

All fields in request body is required.

Headers :

Content-Type: application/json
authorization: password

Request Body :

NOTE: all fields in request body are optional. Only specify those to be updated.

{
   "name": "John Hutchinson",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": "john@activesoul.us",
   "address": "Green st. 8"
}

Response :

{
   "status": "success",
   "wellnessPartner":{
   "_id": "5976eb3c30cbb822042978a5",
   "name": "John Hutchinson",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": " john@activesoul.us ",
   "address": "Green st. 8",
   "accountId": "6706455200",
   "apiKey":
   "L9X7gDqXcJ40YKRBdocIJQawlyavcIKAKarpxSJGhGDxwFeSgP",
   "clientKey": "oKqGaIO5c3",
   "clientSecret": "hRem2p6aJxLRt0Elc57D7J6uFNRZJs",
   "_id": "5975e8599ede052ccd0b9c86",
   "createdAt": "2017-07-24T12:30:17.540Z”
   }
}

Error Handling:

All fields are optional but if some field is provided with empty string then the following error will be displayed:

{
   "status": "failed",
   "error": [
   {
   "param": "name",
   "msg": "Company name should not be empty.",
   "value": ""
   }
   ]
}

Example: admin password is invalid, server will return the following response:

{
   "status": "failed",
   "error": "Permission denied. "
}

/delete/{accountID}

DELETE

This method deletes wellness partner using provided accountID. Only available for ​admin.

Headers :

Content-Type: application/json
authorization: password

Response :

{
   "status": "success",
   "message": "Wellness partner was successfully deleted"
}

Error Handling:

If wrong accountId is provided then the following error will be displayed:

{
   "status": "failed",
   "error": "error": "Wellness partner not found
}

Example: admin password is invalid, server will return the following response:

{
   "status": "failed",
   "error": "Permission denied. "
}

/all

GET

This method returns a list of all registered wellness partners. Only available for admin.

Headers :

authorization: password

Response :

{
   "status": "success",
   "count": 2,
   "wellnessPartners": [
   {
   "_id": "5975ee5a9ede052ccd0b9c87",
   "name": "John Doe",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": "john@activesoul.us",
   "address": "Green st. 8",
   "accountId": "7276118982",
   "apiKey": "cqzizq7n...",
   "clientKey": "9HRu...",
   "clientSecret": "SwtRzG...",
   "createdAt": "2017-07-24T12:55:54.554Z"
   },
   {
   "_id": "598dc49017166105ac16b12a",
   ...
   }
   ]
}

Error Handling:

If invalid admin password is provided:

{
   "status": "failed",
   "error": "Permission denied. "
}

/get/{accountID}

GET

This method returns wellness partner using provided accountID. Only available for ​admin.

Headers :

authorization: password

Response :

{
   "status": "success",
   "wellnessPartner": {
   "_id": "5975ee5a9ede052ccd0b9c87",
   "name": "John Doe",
   "company": "ActiveSoul",
   "state": "CO",
   "city": "Denver",
   "zip": 12342,
   "phone": "+12345678905",
   "email": "john@activesoul.us",
   "address": "Green st. 8",
   "accountId": "7276118982",
   "apiKey": "cqzizq...",
   "clientKey": "9HRu...",
   "clientSecret": "SwtRzGw...",
   "createdAt": "2017-07-24T12:55:54.554Z"
   }
}

Error Handling:

If wellness partner with provided accountId does not exist:

{
   "status": "failed",
   "error": "error": "Wellness partner not found
}

Example: admin password is invalid, server will return the following response:

{
   "status": "failed",
   "error": "Permission denied. "
}

/users

GET

This method returns a list of all wellness members registered with ActiveSoul for the Wellness Partner.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]

Response :

{
   "status": "success",
   "count": 2,
   "users":
   [
   {
   "_id": "xxxxxxxxxxxx",
   "email": "james@gmail.com",
   "firstName": "James",
   "lastName": "Bond",
   "phone": "1548456845",
   "WellnessCompanyId":"7363809252",
   "WellnessID":"1234567890",
   "WellnessCompany":"ActiveSoul",
   "createdAt":"2017-06-30T07:23:38.027Z"
   },
   {
   "_id": "xxxxxxxxxxxx",
   "email": "lara@gmail.com",
   "firstName": "Lara",
   "lastName": "Croft",
   "phone": "3587965810",
   "WellnessCompanyId":"7363809252",
   "WellnessID":"1234567890",
   "WellnessCompany":"ActiveSoul",
   "createdAt":"2017-06-30T07:23:38.027Z"
   }
   ]
}

Error Handling:

If Wellness Partner provides an invalid api key, client key, or client secret, the server will respond with status 401 (Not Authorized) and the following body:

{
   "status": "failed",
   "error": "Invalid API-Key"
}

- or -

{
   "status": "failed",
   "error": "Invalid client key or secret"
}

/user/workout

POST

This method returns all workouts for the user within the specified date range.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]
Content-Type: application/json

Request Body :

{
   "wellnessId": 4685297510,
    - or -
   "userID": 598d6489090e821284e7424,
   "sort": "desc" or "asc"
   "startDate": "07/25/2017",
   "endDate": "07/26/2017",
   "count": 10,
   "type": 1 (1 - tracker workout, 2 - class bookings, optional)
}

Response :

{
   "status": "success",
   "user": {
   "id": "598d6489090e821284e74246",
   "email": "lara@gmail.com",
   "firstName": "Lara",
   "lastName": "Croft",
   "phone": "3587965810",
   "wellnessId": "4685297510"
   },
   "count": 2,
   "workouts":
   [
   {
   "type": 2,
   "bookingDateTime": "2017-07-23T10:22:56Z",
   "startDateTime": "2017-07-25T10:22:56Z",
   "class": "Hatha Yoga",
   "location": "ActiveSoul Club,"
   "cost": "10"
   },
   {
   "type": 1,
   "startDateTime": "2017-07-25T10:22:56Z",
   "durationInMins": 60,
   "distanceInMiles": 4.2
   "cost": "0"
   }
   ]
}

There are two types of workouts:

1 - running workout (using workout tracker in ActiveSoul app)
2 - class bookings


Error Handling:

If wrong wellnessId is provided then the following response body will be displayed:

{
   "status": "failed",
   "error": "No user found with provided wellnessId"
}

If no wellnessId provided:

{
   "status": "failed",
   "error":
   [
   {
   "param": "wellnessId",
   "msg": "WellnessId is required field"
   }
   ]
}

/clubs

POST

This method returns a list of all clubs within a certain radius of lat/lng.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]
Content-Type: application/json

Request Body :

{
   "lng": -104.951224,
   "lat": 39.754467,
   "radius": 5
}

Radius is in miles and by default is set to 5 miles, so radius is not a required field.

Response :

{
   "status": "success",
   "count": 1,
   "clubs": [
   {
   "id": 1000111,
   "name": "ActiveSoul Club",
   "description": "ActiveSoul fitness club",
   "olsonTimeZone": "America/New_York",
   "distance": null,
   "coordinates": [
   -104.9512244,
   39.7544679
   ],
   "contactInfo": {
   "phone": "1111111111",
   "streetAddress": "2553 S Saint Paul St",
   "city": "Denver",
   "stateCode": "CO",
   "postalCode": "80210",
   "countryCode": "US",
   "longitude": -104.9512244,
   "latitude": 39.7544679
   },
   "subscriber": {
   "description": null,
   "website": "http://activesoul.us",
   "cancellationPolicy": "",
   "refundPolicy": "",
   "locale": "en-US",
   "hasLiabilityWaiver": false,
   "id": 10021,
   "name": "ActiveSoul",
   "creditCardTypesAccepted": [
   "Visa",
   "MasterCard",
   "Discover",
   "AmericanExpress"
   ],
   "imageURLs": []
   },
   "ratings": {
   "total": 0,
   "average": 0
   }
   }
   ]
}

Error Handling:

If Wellness Partner provides wrong credentials then server will response with the same error as in the previous calls (‘Wrong API key or client secret’).

If longitude or latitude param is missing then the following error message will be displayed:

{
   "status": "failed",
   "error": "No user found with provided wellnessId"
}

If no wellnessId provided:

{
   "status": "failed",
   "error":
   [
   {    "param": "lng",    "msg": "Longitude is required field"    }
   ]
}

/club/classes

POST

This method returns a list of all classes for a club within a certain date range.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]
Content-Type: application/json

Request Body :

Date should be provided in the following format ‘mm/dd/yyyy’. If no startDate provided then by default startDate will be considered as today. NOTE : You cannot get classes for past dates, so startDate should be at least today.

{
   "clubId": 1000111,
   "startDate": "07/25/2017",
   "endDate": "07/26/2017"
}

Radius is in miles and by default is set to 5 miles, so radius is not a required field.

Response :

{
   "status": "success",
   "count": 1,
   clubs": [
   {
   id": 1004512,
   location": {
   id": 1000111,
   name": "ActiveSoul Club",
   olsonTimeZone": "America/New_York",
   subscriber": {
   id": 10021,
   name": "ActiveSoul"
   }
   },
   typeId": 22,
   name": "Hatha Yoga",
   description": "A balanced combination...",
   classSize": 5,
   availableCapacity": 5,
   registrationNotes": "",
   startDateTime": "2017-07-26T10:00:00.000Z",
   endDateTime": "2017-07-26T12:00:00.000Z",
   assistantNames": null,
   roomName": null,
   bookingWindow": {
   startDateTime": "2017-07-16T10:00:00.000Z",
   endDateTime": "2017-07-26T09:00:00.000Z",
   dailyStartTime": null,
   dailyEndTime": null
   },
   cancellationsAllowed": true,
   cancellationWindowEndTime" :
   2017-07-25T07:00:00.987Z",
   serviceCategoryIds": [
   13
   ],
   sessionsDeducted": 1,
   availability": {
   statusCode": 10,
   message": "Available for booking right now."
   },
   price": {
   lowest": 30,
   highest": 30
   },
   classImageURLs": [],
   staff": {
   id": 100000165,
   firstName": "John",
   lastName": "Smith",
   gender": "Male",
   staffImageURLs": [],
   bio": "Experienced yoga instructor"
   },
   timezone": "America/New_York",
   contactInfo": {
   latitude": 39.7544679,
   longitude": -104.9512244,
   countryCode": "US",
   postalCode": "80210",
   stateCode": "CO",
   city": "Denver",
   streetAddress": "2553 S Saint Paul St",
   phone": "1111111111"
   },
   coordinates": [
   -104.9512244,
   39.7544679
   ]
}

Error Handling:

If no clubId provided then the following response will be returned:

{
   "status": "failed",
   "error": [
   {
   "param": "clubId",
   "msg": "ClubId is required field"
   }
   ]
}

/classes

POST

This method returns a list of all classes within a certain radius of lat/lng and date range.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]
Content-Type: application/json

Request Body :

{
   "lng": -104.951224,
   "lat": 39.754467,
   "radius": 5,
   "startDate": "07/25/2017",
   "endDate": "07/30/2017" }

Date format should be 'mm/dd/yyyy'. By default startDate and endDate are considered as today. Radius is in miles and by default is set to 5 miles, so radius is not a required field.

Response :

{
   "status": "success",
   "count": 2,
   clubs": [
   {
   id": 1004512,
   typeId": 22,
   name": "Hatha Yoga",
   description": "A balanced combination of sustained poses with attention to basic alignment and therapeutic principals. Mindfulness; observing breath and body (triputi) are an integral part of class. This style of yoga provides a great stretch and strengthens the body.",
   classSize": 5,
   availableCapacity": 5,
   registrationNotes": "",
   startDateTime": "2017-07-26T10:00:00.000Z",
   endDateTime": "2017-07-26T12:00:00.000Z",
   assistantNames": null,
   roomName": null,
   cancellationsAllowed": true,
   cancellationWindowEndTime":
   2017-07-25T07:00:00.987Z",
   sessionsDeducted": 1,
   timezone": "America/New_York",
   contactInfo": {
   latitude": 39.7544679,
   longitude": -104.9512244,
   countryCode": "US",
   postalCode": "80210",
   stateCode": "CO",
   city": "Denver",
   streetAddress": "2553 S Saint Paul St",
   phone": "1111111111"
   },
   coordinates": [
   -104.9512244,
   39.7544679
   ],
   location": {
   id": 1000111,
   name": "ActiveSoul Club",
   olsonTimeZone": "America/New_York",
   subscriber": {
   id": 10021,
   name": "ActiveSoul"
   }
   },
   staff": {
   id": 100000165,
   firstName": "John",
   lastName": "Smith",
   gender": "Male",
   bio": "Experienced yoga instructor",
   staffImageURLs": []
   },
   classImageURLs": [],
   price": {
   lowest": 30,
   highest": 30
   },
   availability": {
   statusCode": 10,
   message": "Available for booking right now."
   },
   serviceCategoryIds": [
   13
   ],
   bookingWindow": {
   startDateTime": "2017-07-16T10:00:00.000Z",
   endDateTime": "2017-07-26T09:00:00.000Z",
   dailyStartTime": null,
   dailyEndTime": null
   }
   },
   { "id": 1004512,
   ...
   }
   ]
}

Error Handling:

If Wellness Partner provides wrong credentials then server will response with the same error as in the previous calls ('Wrong API key or client secret').

If longitude or latitude param is missing then the following error message will be displayed:

{
   "status": "failed",
   "error":
   [
   {    "param": "lng",
   "msg": "Longitude is required field"
   }
   ]
}

/get

GET

After receiving the access from ActiveSoul, Wellness Partner is able to get information about their account.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]

Response :

{
   "name": "Wellness Partner",
   "company": "Company Name",
   "state": "CO",
   "city": "Denver",
   "zip": 12345,
   "phone": "+1234567890",
   "email": "email@address.com",
   "address": "123 Main St.",
   "accountId": "7276118982",
   "createdAt": "2017-07-24T12:55:54.554Z"
}

Error Handling:

If Wellness Partner provides an invalid api key, client key, or client secret, the server will respond with status 401 (Not Authorized) and the following body:

{
   "status": "failed",
   "error": "Invalid API-Key"
}

- or -

{
   "status": "failed",
   "error": "Invalid client key or secret"
}

/user/list

POST

This method returns all ActiveSoul users registered in the app. Available only for admin.

Headers :

authorization: password
Content-Type: application/json

Request Body :

{
   "sort": "desc" or "asc"
}

Response :

{
   "status": "success",
   "count": 2,
   "users":
   [
   {
   "_id": "5955ef9456765e6d4d47244f",
   "FirstName":"test",
   "LastName":"user",
   "Email":"test2user@gmail.com",
   "MobilePhone":"17894561235",
   "Password":"$2a$10$NucsV...",
   "DeviceId":"f64a5dadc02..."
   "LastFour":"4998",
   "WellnessCompanyId":"7363809252",
   "WellnessID":"1234567890",
   "WellnessCompany":"ActiveSoul",
   "createdAt":"2017-06-30T07:23:38.027Z"
   },
   ...
   ]
}

/user/getByEmail/{email}

GET

This method returns an ActiveSoul user based on email address passed in.

Headers :

authorization: password
Content-Type: application/json

Response :

{
   "_id": "5955ef9456765e6d4d47244f",
   "FirstName":"test",
   "LastName":"user",
   "Email":"test2user@gmail.com",
   "MobilePhone":"17894561235",
   "Password":"$2a$10$NucsV...",
   "DeviceId":"f64a5dadc02..."
   "LastFour":"4998",
   "WellnessCompanyId":"7363809252",
   "WellnessID":"1234567890",
   "WellnessCompany":"ActiveSoul",
   "createdAt":"2017-06-30T07:23:38.027Z"
}

/user/{userId}

GET

This method returns the user based on userId. Only available for ​admin.

Headers :

authorization: password

Response :

{
   "status": "success",
   "user": {
   "id": "598d6489090e821284e74246",
   "email": "lara@gmail.com",
   "firstName": "Lara",
   "lastName": "Croft",
   "wellnessId": "4685297510"
   }
}

Error Handling:

If userId does not exist:

{
   "status": "failed",
   "error": "error": "User not found
}

Example: admin password is invalid, server will return the following response:

{
   "status": "failed",
   "error": "Permission denied. "
}

/workouts

POST

This method returns all workouts regardless of user.

Headers :

api-key: [your api-key]
authorization: [clientKey + clientSecret]
Content-Type: application/json

Request Body :

{
   "sort": "desc" or "asc"
   "startDate": "07/25/2017",
   "endDate": "07/26/2017",
   "count": 10, (optional)
   "type": 1 (1 - tracker workout, 2 - class bookings, optional)
}

Response :

{
   "status": "success",
   "user": {
   "id": "598d6489090e821284e74246",
   "email": "lara@gmail.com",
   "firstName": "Lara",
   "lastName": "Croft",
   "phone": "3587965810",
   "wellnessId": "4685297510"
   },
   "count": 2,
   "workouts":
   [
   {
   "type": 2,
   "bookingDateTime": "2017-07-23T10:22:56Z",
   "startDateTime": "2017-07-25T10:22:56Z",
   "class": "Hatha Yoga",
   "location": "ActiveSoul Club,"
   "cost": "10"
   },
   {
   "type": 1,
   "startDateTime": "2017-07-25T10:22:56Z",
   "durationInMins": 60,
   "distanceInMiles": 4.2
   "cost": "0"
   }
   ]
}

There are two types of workouts:

1 - running workout (using workout tracker in ActiveSoul app)
2 - class bookings


Error Handling:

If wrong wellnessId is provided then the following response body will be displayed:

{
   "status": "failed",
   "error": "No user found with provided wellnessId"
}

If no wellnessId provided:

{
   "status": "failed",
   "error":
   [
   {
   "param": "wellnessId",
   "msg": "WellnessId is required field"
   }
   ]
}

Testing

Use your app_id and authorization to test calls.

System for testing:    Sandbox     Production     Internal   

api_key:  

authorization:  

Methods:

App_id:  

App_secret:  

api_key:  

clientKey:  

clientSecret:  

 /save     /get     /users     /user/workout     /clubs     /club/classes     /classes     /update     /delete     /all   
 /get/{accountID}     /user/{userId}     /user/list     /user/getByEmail/{email}     /workouts   

Click to execute

URL:

Headers:

Request Body:

Response: