{"info":{"_postman_id":"adcf6222-32ea-4724-ac00-52f759555052","name":"Technogym Enterprise API Documentation","description":"<html><head></head><body><p><strong>Technogym Enterprise</strong> API allows the partner to access the powerful features available in mywellness cloud that are widely used by Technogym touchpoints. This enables the partner to design, develop, test, pilot, roll-out and maintain the partner mobile application on all countries where it operates.</p>\n<p>The main component of the Technogym Enterprise API that will be provided by Technogym are described in the following table:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API</strong></th>\n<th><strong>Details of the main functionalities</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>USER</td>\n<td>Partner platform uses the Technogym API to create/update/delete users on Technogym platform. All the behavioural data (results, test, etc) are saved on that user and could be retrieved by the partner platform via API.</td>\n</tr>\n<tr>\n<td>EQUIPMENT LOGIN AND TRACKING</td>\n<td>Login on Technogym smart equipment and format via mobile app using QR code, track indoor results.</td>\n</tr>\n<tr>\n<td>PRESCRIPTION</td>\n<td>List program and workouts, view details, track results automatically and manually.</td>\n</tr>\n<tr>\n<td>BIOMETRICS AND MEASUREMENTS</td>\n<td>List measurements taken using Technogym CheckUp and access to user's wellness age data and categories. List biometric measurement data and access historical data</td>\n</tr>\n<tr>\n<td>TRAINING RESULTS</td>\n<td>List workout sessions done in the club and access session's details with list of exercise done and data for each exercise</td>\n</tr>\n</tbody>\n</table>\n</div></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"3500672","collectionId":"adcf6222-32ea-4724-ac00-52f759555052","publishedId":"2s946o59pC","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-07-07T08:57:35.000Z"},"item":[{"name":"Integration scenario","item":[{"name":"SDK Integration","item":[],"id":"e97afd4f-4c2c-41bd-bd96-71f21504620b","description":"<p>The MyWellness SDK manages the QR code scanning, cloud communication, and user interface components required for a seamless fi tness experience. Authentication with the MyWellness cloud is handled securely through a dedicated server-to-server API integration at the end-user level.</p>\n<p>The integration starts with user's data integration done using MWC API (please find the full documentation here: <a href=\"https://apidocs.mywellness.com\">https://apidocs.mywellness.com)</a>) that allows to create the link between the user in the third party platform (membership SW or customer's platform) and the corresponding user in Mywellness cloud. Based on that, the SDK integration could be implemented in the customer's app using the UserID that it is shared between the 2 platform.</p>\n<p>The diagram below shows the interactions between the third party SW (orange color marked) and Mywellness platform (green color marked):</p>\n<img src=\"https://content.pstmn.io/c7685f9e-9f2e-4d00-bec0-9ed0dd5c6b5b/RW50ZXJwcmlzZSBJbnRlZ3JhdGlvbiBGbG93IC0gU0RLLnBuZw==\" />","_postman_id":"e97afd4f-4c2c-41bd-bd96-71f21504620b"},{"name":"Server to Server Integration","item":[],"id":"13e21800-b1ea-4874-8393-8a1de0eaf8a9","description":"<p>Implement a fully backend-controlled integration where all MyWellness API interactions route through your server. Your server maintains the connection with MyWellness through dedicated server-to-server API endpoints.</p>\n<p>The integration starts with user's data integration done using MWC API (please find the full documentation here: <a href=\"https://apidocs.mywellness.com\">https://apidocs.mywellness.com)</a>) that allows to create the link between the user in the third party platform (membership SW or customer's platform) and the corresponding user in Mywellness cloud. Based on that, the Server to server integration could be implemented in the customer's app calling the App Backend and using the UserID that it is shared between the 2 platform.</p>\n<p>The diagram below shows the interactions between the third party SW (orange color marked) and Mywellness platform (green color marked):</p>\n<img src=\"https://content.pstmn.io/f78afb97-4086-460a-a178-3b664648f552/RW50ZXJwcmlzZSBJbnRlZ3JhdGlvbiBGbG93IC0gU2VydmVyVG9TZXJ2ZXIucG5n\" />","_postman_id":"13e21800-b1ea-4874-8393-8a1de0eaf8a9"}],"id":"4f516d2c-ed40-4df7-a0c2-b0010278ea8c","description":"<p>MyWellness offers 3 core fitness experiences that can be seamlessly integrated into your application:</p>\n<ol>\n<li>Login on equipment with QR Code - Allow users to quickly log into MyWellness equipment by scanning a QR code. This is needed for the other experiences to work.  </li>\n<li>Show workout results - Access and display detailed workout data and performance metrics.  </li>\n<li>Show health assessment and biometrics data - View comprehensive health data including biometric measurements and assessment results.</li>\n</ol>\n<p>To implement these experiences, we provide 2 integration approaches:<br />- SDK Integration - A turnkey solution providing pre-built UI components and streamlined implementation.<br />- Server-Side Integration - Complete control over data fl ow and user authentication through a backend-only integration approach.</p>\n<p>Please note that the base build block of the integration is the user's data integration that could be done using the API described here: <a href=\"https://apidocs.mywellness.com\">https://apidocs.mywellness.com</a></p>\n","_postman_id":"4f516d2c-ed40-4df7-a0c2-b0010278ea8c"},{"name":"Basic Information","item":[],"id":"9cb7c1c9-d718-4201-92e0-9656d8d3e57c","description":"<p>The <strong>base url</strong> for the development and test environment is:</p>\n<p><a href=\"https://enterprise-test.mywellness.com\">https://enterprise-test.mywellness.com</a></p>\n<p>The development phase ends when the partner has completed the development and together with the Technogym Professional Service team the features are tested and marked as completed.</p>\n<p>At the end of the development phase, when the integration is ready, a production environment will be configured where the services are available at the following address:</p>\n<p><a href=\"https://enterprise.mywellness.com\">https://enterprise.mywellness.com/api</a></p>\n<p>For each partner we provide:</p>\n<ul>\n<li><p>API key: to be used in server in server (backend) calls setting the HTTP header <strong>x-openplatform-apikey</strong></p>\n</li>\n<li><p>Authentication domain: to be used in server to server (backend) calls setting the HTTP header <strong>x-openplatform-authdomain</strong></p>\n</li>\n</ul>\n<p>The API manages the use of the HTTP Header <strong>x-openplatform-language</strong> (also the standard HTTP Header <strong>Accept-Language</strong> is accepted as fallback in case <strong>x-openplatform-language</strong> is not provided) in order to let the client to specify the preferred language (or specific culture) that is needed when the API returns localized contents (for example the name of a biometric parameter or the name of an exercise done). In case the header is not provided (or contains a not supported language or specific culture), the API will return the localized content using the language set on the user on mywellness cloud. Please find below the list of the languages supported by the SDK:</p>\n<ul>\n<li><p>Italian (it)</p>\n</li>\n<li><p>Spanish (es)</p>\n</li>\n<li><p>Portoguese (pt-BR)</p>\n</li>\n<li><p>English (en and en-GB)</p>\n</li>\n<li><p>French (fr)</p>\n</li>\n</ul>\n","_postman_id":"9cb7c1c9-d718-4201-92e0-9656d8d3e57c"},{"name":"Authentication","item":[{"name":"App auth","event":[{"listen":"test","script":{"id":"d081f849-c639-4f27-8e09-399a881efedc","exec":["var responseJSON = JSON.parse(pm.response.text());\r","pm.environment.set(\"access_token\", responseJSON.token);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"0c56c47b-19c3-4e21-9369-d927354fe94c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept-Language","value":"en","type":"text"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/app-token","description":"<p>This endpoint allows to verify the validity of the JWT token provided in the Authorization header</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","app-token"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"6555979e-c88e-4141-9c9a-d600c5167d8c","name":"App auth","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/app-token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIzYjFhYjhlZC1mMDczLTRjOTctYTUyYi1kNGFhOTA1NDZkZWMiLCJjaGFpbklkIjoiZWZmZjNlMjctMTllYy00OTk5LWFmYWMtNWE3NmVjMjQxNjBjIiwiYXV0aERvbWFpbiI6ImJyLmNvbS5zbWFydGZpdCIsImV4dGVybmFsSWQiOiI5MTk5NDUxIiwibWVhc3VyZW1lbnRTeXN0ZW0iOiJNZXRyaWMiLCJjdWx0dXJlIjoicHQtQlIiLCJpYXQiOjE3NTMyNzk2MzksImV4cCI6MTc1MzMxNTYzOX0.uVq-I_LZMU0UY5-Lneopl-oGk396aW9qMYEjubvfiaNU2P9Oyji9PZJjWuxCmWtox8aCY6SraTe3tQNBWSEdBw\"\n}"},{"id":"91c3e831-705d-4f74-b298-ed6f64f1ebcf","name":"Invalid Auth Domain Error","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/app-token"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"403002\",\n    \"message\": \"Auth Domain not valid\"\n}"},{"id":"99381435-bcf9-44b3-8851-5cc092289c3c","name":"Invalid API key Error","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/app-token"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"403003\",\n    \"message\": \"API key not valid\"\n}"},{"id":"cc7d6acb-3717-4c4c-b922-7770db3eff83","name":"License Not Found Error","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/app-token"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"403000\",\n    \"message\": \"Forbidden\"\n}"}],"_postman_id":"0c56c47b-19c3-4e21-9369-d927354fe94c"}],"id":"2c440fd3-cda7-484b-a203-d200a5762582","description":"<p>The app authentication is managed through a JWT token that is generated using an API key and Auth domain provided by Technogym.</p>\n<p>The server to server API calls instead are authenticated using API key and Auth domain and so the JWT token is not required.</p>\n<p>The JWT token provided in each call is verified using the data included in the token. The JWT token specifies a maximum of 10 hours expiration.</p>\n<p>So the JWT token has 2 main responsabilities:</p>\n<ol>\n<li><p>assure that the caller is trusted and the signature is valid. The JWT token must respect the maximum of 10 hours expiration</p>\n</li>\n<li><p>specify the partner id and data (auth domain and api key) in order to recognize the context of the execution of the operation</p>\n</li>\n</ol>\n<p><strong>Header</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"alg\": \"ES256\",\n  \"typ\": \"JWT\"\n}\n\n</code></pre>\n<p><strong>Payload</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"userId\": \"37a37f83-866e-418b-aa05-a0b88af357ed\",\n  \"chainId\": \"f0f54a4d-0ad6-4f49-8b1a-cf20ce430611\",\n  \"authDomain\": \"com.authdomain\",\n  \"externalId\": \"test1233\",\n  \"measurementSystem\": \"Metric\",\n  \"culture\": \"en-EN\",\n  \"iat\": 1749226886,\n  \"exp\": 1749262886\n}\n\n</code></pre>\n<p><strong>Signature</strong></p>\n<p>Each HTTP request done from a client (app) must include the Authorization header containing the JWT token as bearer token:</p>\n<p><strong>Authorization</strong>: Bearer JWT</p>\n","_postman_id":"2c440fd3-cda7-484b-a203-d200a5762582"},{"name":"API","item":[{"name":"Configurations","item":[{"name":"Facilities List - APP","id":"8b5791c7-09b7-4997-b42c-f277cbd7cbc9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/facilities","description":"<p>Retrieve the details of a training session done by the user using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","facilities"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"d7fd58ef-eaec-4316-a9f5-6506ca2cc0fa","name":"Training Session details - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/app/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","app","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"exercises\": [\n        {\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"8b5791c7-09b7-4997-b42c-f277cbd7cbc9"},{"name":"Facilities List - BACKEND","id":"844e15fe-4539-413c-b287-584d8037a4d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/facilities","description":"<p>Retrieve the details of a training session done by the user using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","facilities"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"801d0b57-8f68-44cd-b3b7-c490cd2abe89","name":"Training Session details - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","backend","user","{{user_id}}","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"exercises\": [\n        {\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"844e15fe-4539-413c-b287-584d8037a4d3"}],"id":"0f7b444c-2d00-48f7-a75a-73d8bb73d531","description":"<p>This section describes how to retrieve the tenant configuration and the list of locations (facilities) included in the tenant.</p>\n","_postman_id":"0f7b444c-2d00-48f7-a75a-73d8bb73d531"},{"name":"Equipment","item":[{"name":"Equipment QR Code Login - APP","id":"604bf47d-0367-4a57-85d5-e685e1e18a49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"code\": \"http://s.technogym.com/qractive?et=REZLR0FBMDIzMDA1NzkxfDI2M2VjMzk1Y2UxMTRmNTFhZTNjNTVjOWNiZjkxODQwfFVuaXR5Q29hY2h8U2NyZWVuMTVfNnxBbmRyb2lkfEZhbHNlfDEwOTh8ZGZtb3N0b2xlc3wyLjE4LjIuMTUyfFBsYXRmb3JtRXNzZW50aWFsfHwwfDE1.34141F6274EFEA42610D989BA830D73337AF9E1C\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/equipments/login","description":"<p>Login on Technogym equipment using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","equipments","login"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"f5ea86c3-67f3-4385-b50c-c39f89192da6","name":"Equipment QR Code Login - APP","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"code\": \"http://services-test.mywellness.com/qractive?et=RTAzMEFSMDI0MDAwMDE2fGU0NTJjMGI1YTliNjRhNDliYTEwN2I2MTI4M2JjNWRmfFRlY2hub2d5bUhlYWx0aFN0YXRpb258U2NyZWVuMTVfNnxBbmRyb2lkfEZhbHNlfDk5M3xnb2ZpdHRlc3QxfDQwLjE5LjE4LjR8UGxhdGZvcm1Vbml0eTV8fDB8MQ2.F5DF2F312F804484D7AFB10465CFF7A4B97E62E7\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/equipments/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"name\": \"Technogym Checkup\",\n    \"deviceType\": \"TechnogymHealthStation\",\n    \"validData\": true,\n    \"equipmentCode\": 993,\n    \"imageUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/equipment/all/e993/e993.jpg\",\n    \"images\": [\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-1920x1080.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-960x540.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-480x270.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-1920x1440.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-960x720.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-480x360.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-1920x1920.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-960x960.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-480x480.png\"\n    ],\n    \"isKiosk\": false,\n    \"equipmentId\": \"7188bcc4-1d20-47c2-997c-597b7b9bea40\",\n    \"facilityId\": \"efff3e27-19ec-4999-afac-5a76ec24160c\"\n}"}],"_postman_id":"604bf47d-0367-4a57-85d5-e685e1e18a49"},{"name":"Equipment QR Code Login - BACKEND","id":"d3f28d7e-1c86-410d-a517-8121520c845e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"code\": \"http://services-test.mywellness.com/qractive?et=RTAzMEJSMDI0MDAwQU01fDMwN2Y4MzFiYjQ2YzRmNDc4Njg4NDdlNjZmYzVkNWY0fFRlY2hub2d5bUhlYWx0aFN0YXRpb258U2NyZWVuMTVfNnxBbmRyb2lkfEZhbHNlfDk5M3xkcmVhbWZpdGFsY29yY29ufDQwLjIwLjE4Ljh8UGxhdGZvcm1Vbml0eTV8fDB8MQ2.DF12443DDAB7D3925C0F9A57F6965E462EA0D78C\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/equipments/login","description":"<p>Login on Technogym equipment using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","equipments","login"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"83159d08-315f-4e2a-ae0f-1c2c34dfa6de","name":"Equipment QR Code Login - BACKEND","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"code\": \"http://services-test.mywellness.com/qractive?et=RTAzMEFSMDI0MDAwMDE2fGU0NTJjMGI1YTliNjRhNDliYTEwN2I2MTI4M2JjNWRmfFRlY2hub2d5bUhlYWx0aFN0YXRpb258U2NyZWVuMTVfNnxBbmRyb2lkfEZhbHNlfDk5M3xnb2ZpdHRlc3QxfDQwLjE4LjE4LjI1fFBsYXRmb3JtVW5pdHk1fHwwfDE1.A07883D376E8EBD9FFF2D81781072D210F233493\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/equipments/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"name\": \"Technogym Checkup\",\n    \"deviceType\": \"TechnogymHealthStation\",\n    \"validData\": true,\n    \"equipmentCode\": 993,\n    \"imageUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/equipment/all/e993/e993.jpg\",\n    \"images\": [\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-1920x1080.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-960x540.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/8175b469-971f-44c6-a1fd-5eb49ae5ef3d-480x270.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-1920x1440.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-960x720.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/a9d8b3d7-1c7b-4b7a-b4ca-c786e1ed93e8-480x360.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-1920x1920.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-960x960.png\",\n        \"https://cmsmedia.mywellness.com/dev/5bf51e0109ee93b5aef82c77/equipment/45c48aff-b2a5-4211-97da-9ccb6cfd027f-480x480.png\"\n    ],\n    \"isKiosk\": false,\n    \"equipmentId\": \"7188bcc4-1d20-47c2-997c-597b7b9bea40\",\n    \"facilityId\": \"e452c0b5-a9b6-4a49-ba10-7b61283bc5df\"\n}"}],"_postman_id":"d3f28d7e-1c86-410d-a517-8121520c845e"}],"id":"f3cce7c3-870f-440d-a46d-d67b4e4d9b8d","description":"<p>Partner platform uses the Technogym API to login on equipment providing the QR code. This could be done either on the app side or calling the API server to server (backend)</p>\n","_postman_id":"f3cce7c3-870f-440d-a46d-d67b4e4d9b8d"},{"name":"Biometrics","item":[{"name":"Biometric Results - APP","id":"2276f75c-9938-41a8-8d3e-5320ee86a77b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/biometrics","description":"<p>Retrieve measurement results using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","biometrics"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"84c67c6a-7b1f-4085-9433-3632eed3d6b0","name":"Biometric Results - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/biometrics"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"descriptor\": {\n            \"type\": \"LeftLegFatFreeMass\",\n            \"displayName\": \"Massa livre de gordura da perna esquerda\",\n            \"category\": \"BodyComposition\",\n            \"subCategory\": \"Segmental\"\n        },\n        \"values\": [\n            {\n                \"id\": \"e51ffb92-c2f8-4f71-818b-a645270e75e7\",\n                \"measuredOnUtc\": \"2025-07-23T13:25:09+00:00\",\n                \"rawValue\": \"10.2\",\n                \"formattedDisplayValue\": \"10,2\",\n                \"formattedValue\": \"10,2 kg\",\n                \"unitOfMeasure\": \"Kg\",\n                \"unitOfMeasureShortString\": \"kg\"\n            }\n        ]\n    },\n    {\n        \"descriptor\": {\n            \"type\": \"LeftBodyResistance\",\n            \"displayName\": \"Left body resistance\",\n            \"category\": \"BodyComposition\",\n            \"subCategory\": \"Basic\"\n        },\n        \"values\": [\n            {\n                \"id\": \"e51ffb92-c2f8-4f71-818b-a645270e75e7\",\n                \"measuredOnUtc\": \"2025-07-23T13:25:09+00:00\",\n                \"rawValue\": \"552.5\",\n                \"formattedDisplayValue\": \"552,5\",\n                \"formattedValue\": \"552,5 Ω\",\n                \"unitOfMeasure\": \"Ohm\",\n                \"unitOfMeasureShortString\": \"Ω\"\n            }\n        ]\n    }\n]"}],"_postman_id":"2276f75c-9938-41a8-8d3e-5320ee86a77b"},{"name":"Biometric Results - BACKEND","id":"7caf1129-f8ea-43b1-9e83-fbbd58caf1cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/biometrics?loadEvaluation=true","description":"<p>Retrieve measurement results using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","biometrics"],"host":["{{baseUrl}}"],"query":[{"key":"loadEvaluation","value":"true"}],"variable":[]}},"response":[{"id":"d397aade-7b72-419e-956d-7ff390a4fcb7","name":"Biometric Results - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/biometrics"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"descriptor\": {\n            \"type\": \"LeftLegFatFreeMass\",\n            \"displayName\": \"Massa livre de gordura da perna esquerda\",\n            \"category\": \"BodyComposition\",\n            \"subCategory\": \"Segmental\"\n        },\n        \"values\": [\n            {\n                \"id\": \"e51ffb92-c2f8-4f71-818b-a645270e75e7\",\n                \"measuredOnUtc\": \"2025-07-23T13:25:09+00:00\",\n                \"rawValue\": \"10.2\",\n                \"formattedDisplayValue\": \"10,2\",\n                \"formattedValue\": \"10,2 kg\",\n                \"unitOfMeasure\": \"Kg\",\n                \"unitOfMeasureShortString\": \"kg\"\n            }\n        ]\n    },\n    {\n        \"descriptor\": {\n            \"type\": \"LeftBodyResistance\",\n            \"displayName\": \"Left body resistance\",\n            \"category\": \"BodyComposition\",\n            \"subCategory\": \"Basic\"\n        },\n        \"values\": [\n            {\n                \"id\": \"e51ffb92-c2f8-4f71-818b-a645270e75e7\",\n                \"measuredOnUtc\": \"2025-07-23T13:25:09+00:00\",\n                \"rawValue\": \"552.5\",\n                \"formattedDisplayValue\": \"552,5\",\n                \"formattedValue\": \"552,5 Ω\",\n                \"unitOfMeasure\": \"Ohm\",\n                \"unitOfMeasureShortString\": \"Ω\"\n            }\n        ]\n    }\n]"}],"_postman_id":"7caf1129-f8ea-43b1-9e83-fbbd58caf1cc"}],"id":"e9719381-8d08-4e58-83b8-5f912efb51be","description":"<p>Partner platform uses the Technogym API to list biometric measurement results. This could be done either on the app side or calling the API server to server (backend). The <em>/biometrics</em> API returns the last value of each measured parameter together with some additional information:</p>\n<ul>\n<li><p><strong>descriptor</strong>: it contains some information about the parameter as the id (type), the localized name (displayName) and the primary and seconday category</p>\n</li>\n<li><p><strong>idealRange</strong>: it reports the information about the ideal range of the biometric evaluation (min and max value that should be used to consider the value as ideal)</p>\n</li>\n<li><p><strong>comparisonLevels</strong>: the definition of levels that could be used to give the user an evaluation on the measured value. For each level (<em>items</em> array) the API returns the field <em>type</em> (that could be used to provide the evaluation feedback description), the level value range (<em>from</em> and <em>to</em> values) and the field <em>color</em> that is a suggestion on the color that you should show to the user about the evaluation. The actual level of the user is returned on the field <em>levelType</em></p>\n</li>\n</ul>\n<p>IdealRange and ComparisonLevels are returned only if the querystring parameter loadEvaluation is provided with value = true</p>\n","_postman_id":"e9719381-8d08-4e58-83b8-5f912efb51be"},{"name":"Wellness Age - Technogym CheckUp","item":[{"name":"Wellness Age Results - APP","id":"daff6d01-9b56-451c-a49d-c8f4d15f1bcb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/wellness-age","description":"<p>Retrieve Technogym Checkup results using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","wellness-age"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"f0bc73c9-22bf-4d99-8e06-878816485709","name":"Wellness Age Results - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/wellness-age"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"wellnessAge\": \"39\",\n    \"calculatedOn\": \"2025-07-23T13:36:51.013+00:00\",\n    \"functionalAgeByCategory\": [\n        {\n            \"functionalAge\": \"38\",\n            \"functionalScore\": \"56\",\n            \"calculatedOn\": \"2025-07-23T10:25:09+00:00\",\n            \"alert\": false,\n            \"type\": {\n                \"category\": \"BodyComposition\",\n                \"name\": \"Composição corporal\"\n            }\n        },\n        {\n            \"functionalAge\": \"41\",\n            \"functionalScore\": \"31\",\n            \"calculatedOn\": \"2025-07-23T13:36:51.013+00:00\",\n            \"alert\": true,\n            \"type\": {\n                \"category\": \"Flexibility\",\n                \"name\": \"Mobilidade\"\n            }\n        },\n        {\n            \"functionalAge\": \"38\",\n            \"functionalScore\": \"65\",\n            \"calculatedOn\": \"2025-07-23T10:40:52.148+00:00\",\n            \"alert\": false,\n            \"type\": {\n                \"category\": \"Strength\",\n                \"name\": \"Força\"\n            }\n        }\n    ]\n}"}],"_postman_id":"daff6d01-9b56-451c-a49d-c8f4d15f1bcb"},{"name":"Wellness Age Results - BACKEND","id":"3ed54b55-e968-4920-a563-d81d466ddf38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/wellness-age","description":"<p>Retrieve Technogym Checkup results using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","wellness-age"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"0b504eaa-c9b1-469c-95bb-d62304629fd5","name":"Wellness Age Results - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/wellness-age"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"wellnessAge\": \"39\",\n    \"calculatedOn\": \"2025-07-23T13:36:51.013+00:00\",\n    \"functionalAgeByCategory\": [\n        {\n            \"functionalAge\": \"38\",\n            \"functionalScore\": \"56\",\n            \"calculatedOn\": \"2025-07-23T10:25:09+00:00\",\n            \"alert\": false,\n            \"type\": {\n                \"category\": \"BodyComposition\",\n                \"name\": \"Composição corporal\"\n            }\n        },\n        {\n            \"functionalAge\": \"41\",\n            \"functionalScore\": \"31\",\n            \"calculatedOn\": \"2025-07-23T13:36:51.013+00:00\",\n            \"alert\": true,\n            \"type\": {\n                \"category\": \"Flexibility\",\n                \"name\": \"Mobilidade\"\n            }\n        },\n        {\n            \"functionalAge\": \"38\",\n            \"functionalScore\": \"65\",\n            \"calculatedOn\": \"2025-07-23T10:40:52.148+00:00\",\n            \"alert\": false,\n            \"type\": {\n                \"category\": \"Strength\",\n                \"name\": \"Força\"\n            }\n        }\n    ]\n}"}],"_postman_id":"3ed54b55-e968-4920-a563-d81d466ddf38"},{"name":"Technogym CheckUp Report - BACKEND","id":"4794364f-2213-471b-9ea6-b9bd08003bdd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"WELLNESS CENTER CHECKUP REPORT\",\n    \"conclusions\": \"Test my conclusions\",\n    \"showGlossary\": true,\n    \"color\": \"#2bacd1\",\n    \"staffFirstName\": \"Tyler\",\n    \"staffLastName\": \"Durden\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/reports/checkup","description":"<p>This API allows to request the generation of the Checkup PDF report for the user providing some information that allow to customize the report:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th><strong>Required</strong></th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>Yes</td>\n<td>this is the title that will appear in the first page of the PDF report</td>\n</tr>\n<tr>\n<td>conclusions</td>\n<td>No</td>\n<td>you could fill in this field the conclusions of the staff that will be reported at the end of the report</td>\n</tr>\n<tr>\n<td>showGlossary</td>\n<td>No (default false)</td>\n<td>true/false, specify if the report must include a glossary of the terms used</td>\n</tr>\n<tr>\n<td>color</td>\n<td>Yes</td>\n<td>HEX value of the RGB to be used as main color of the report (for example 2bacd1)</td>\n</tr>\n<tr>\n<td>staffFirstName</td>\n<td>No</td>\n<td>first name of the staff that should be printed on the report</td>\n</tr>\n<tr>\n<td>staffLastName</td>\n<td>No</td>\n<td>lastname of the staff that should be printed on the report</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","backend","user","{{user_id}}","reports","checkup"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"0ac13287-d2d3-4ec8-a3c1-47ebbebee13a","name":"Wellness Age Report - BACKEND","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}","type":"text"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"WELLNESS CENTER CHECKUP REPORT\",\n    \"conclusions\": \"Test my conclusions\",\n    \"showGlossary\": true,\n    \"color\": \"#2bacd1\",\n    \"staffFirstName\": \"Tyler\",\n    \"staffLastName\": \"Durden\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/reports/checkup"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"downloadUrl\": \"https://mywellness-cloud-private-media.s3.eu-west-1.amazonaws.com/test/checkup_reports/4911cf01-83b6-4daf-8d9c-11a9c3c6bed9/wellness%20center%20checkup%20report%20valentina%20di%20donato%20-%2020251120091525785.pdf?X-Amz-Expires=604800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjECYaCWV1LXdlc3QtMSJIMEYCIQDcGGqTYZCo2cVOdjbd2PMJkPaUm%2B30TutNAwiBW1zwEgIhAPiFo7theWTXAu83xGhOvK3CkTK0C%2F1Vrkh45Jy%2B%2BUkIKvgDCO%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBRoMOTMxOTAwNjIxMzQ3IgwgIVlhcNP3okE1CkoqzANN2S2kz8g2S%2BsxyzCqX2711Cfh3tFm%2Fg3K6%2Bcaa7N9Q%2FqL6AySTWvP4Citk45Q08uizSfyHi3LkKMI5Hnkd4UPCMXrDGtxrtvUxwqmwvovqIQrHtQJ4%2BaWABTqALTN%2F8Vl0F1W6YgggjSESPbynByPgyigCOrssZabiGZs5agSXKhgwz54piwqHql4sPRRoiSpvxVWxP4Zc9uuZZ%2BPxXqHjK%2BRe9itT%2B%2B527F9DceWpCLZodU%2FkBoSXKPpucZdOjKY31n1fO5Pxc456lTbx5t20TqFKRfiWEK63egIf4myUMiVdFgoGHHE8FBQzKQLns7Axbju%2FF4%2FeI7i2wxETS6zU5zZanUy7zb8L%2F02ySQZ63Z9mQmvxM2i2KOhzZtDQBCsNef7mzsvxeIxsLWWiVPZasz00ir4VPLEc5nLRNN8yS9GGcGaAFW2krWb4qw6yHytYuwT3Hd3wxV0W8x1AXY0vmkZxr41%2BclXnf7%2F6GfhK7ZLsY9%2Br7tc0ah2mtt6ien%2Buw4b09dGAlNEyeY856BzUtfLxCluj3fdAje%2B4c7EbV68BN%2FFP%2BDw5JQqCY7Vt2oTbAD%2BD3hTs7n5cMfJf5Y7uWKVv4zIVypoU7IuMPTL%2BsgGOqQBU4cTJE%2BllQyMpesmMiTEQ1ylUi%2BnO1lNT83IX41S%2B5UiAg1PeRwyR6opDyoG%2F%2BZwdoWumJDP%2B9fa1X6nvRK6V%2FuCY3zMgaA9G0m2CRIr5qvxA8T5%2FSjGHJ79cZ1YHqIEcbwcqVOOEuiM3brCGcHyviUZitfAhjQnrg%2F8%2BmSdS4tupo8%2FKvQrXBCq%2FMhM3gr7bvZc2Ek9eXnIIOzIykgCJ3eMjkk%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA5R6M3AIRTY4SE7GF%2F20251120%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20251120T091525Z&X-Amz-SignedHeaders=host&X-Amz-Signature=31f82251e021e22cec9838782e9055f76701fde76098b9e69540a311701b08c6\",\n    \"expiresAt\": \"2025-11-27T09:15:25.785Z\"\n}"}],"_postman_id":"4794364f-2213-471b-9ea6-b9bd08003bdd"}],"id":"a431db26-e8b5-416b-958b-552d78f01989","description":"<p>Partner platform uses the Technogym API to list measurements taken using Technogym CheckUp and access to user's wellness age data and categories. This could be done either on the app side or calling the API server to server (backend).</p>\n<p>The <em>/wellness-age</em> API returns the actual value of the Wellness Age and the data belonging to each measured categories that contribute to the age calculation. For each category the API returns the age and the score calculated for the specific category, the date of the last calculation and the category type and localized name. The category type could be \"BodyComposition\", \"Flexibility\", \"Balance\", \"Cognitive\", \"Cardiovascular\" or \"Strength\"</p>\n<p>The <em>/reports/checkup</em> API allows to retrieve the link whaere the CheckUp PDF report could be downloaded (after it has been generated. The returned download link becomes available (responds with 200 OK) as soon as the PDF has been generated and the expiration date of the link is returned in the API response (usually 12 hours). In case the link is used before the PDF is available, you will have a 404 Not found result.</p>\n","_postman_id":"a431db26-e8b5-416b-958b-552d78f01989"},{"name":"Training","item":[{"name":"List & Filter Programs","item":[{"name":"User's Training Programs - APP","id":"27a87e16-41bd-4482-abb0-fa4ab3ccf35c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/programs","urlObject":{"path":["v1","app","programs"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"f1b24765-6a0a-49b1-86f1-190b26eec569","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/programs","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","programs"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"f19d595f-b391-4a13-0cb7-336c8e554d69\",\n    \"name\": \"string\"\n  },\n  {\n    \"id\": \"e880b72c-3e01-c2a2-7c54-372c026b8628\",\n    \"name\": \"string\"\n  }\n]"}],"_postman_id":"27a87e16-41bd-4482-abb0-fa4ab3ccf35c"},{"name":"User's Training Programs - BACKEND","id":"2ae47576-8ae2-44bd-8357-f97c4395dc57","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/programs","urlObject":{"path":["v1","backend","user","{{user_id}}","programs"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"b8d86f28-eeb6-4c52-9830-29df4a5c6143","name":"Success","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/programs","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","programs"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"f19d595f-b391-4a13-0cb7-336c8e554d69\",\n    \"name\": \"string\"\n  },\n  {\n    \"id\": \"e880b72c-3e01-c2a2-7c54-372c026b8628\",\n    \"name\": \"string\"\n  }\n]"}],"_postman_id":"2ae47576-8ae2-44bd-8357-f97c4395dc57"}],"id":"cb33fdde-1f2f-4a86-92f4-2ca6ffd96e07","_postman_id":"cb33fdde-1f2f-4a86-92f4-2ca6ffd96e07","description":""},{"name":"Workout execution","item":[{"name":"User Current Workout - APP","id":"c4791c63-521a-4b8f-ba2a-42013be67a74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/workout/current","urlObject":{"path":["v1","app","workout","current"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"2da10383-f50d-4a3c-a4e5-7dcae03e0e35","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/current","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","current"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"workoutSession\": {}\n}"}],"_postman_id":"c4791c63-521a-4b8f-ba2a-42013be67a74"},{"name":"User Current Workout - BACKEND","id":"ddee3326-b4f7-4328-9d73-fe9dcdfb54fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/current","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","current"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"c939c216-c860-44ef-a647-ef808e09c58b","name":"Success","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/current","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","current"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"workoutSession\": {}\n}"}],"_postman_id":"ddee3326-b4f7-4328-9d73-fe9dcdfb54fe"},{"name":"Start workout - APP","id":"78221bde-4c53-465d-8516-0dbd5fdc5fa2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"POST","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/:workoutId/start","urlObject":{"path":["v1","app","workout",":workoutId","start"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"fc52c97c-ecf0-4e64-8d4b-85b260e5144e","type":"any","value":"string","key":"workoutId"}]}},"response":[{"id":"eb710973-9f97-4035-bd7b-2b2703e3b3c1","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout-sessions/:workoutId/start","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout-sessions",":workoutId","start"],"variable":[{"key":"baseUrl"},{"key":"workoutId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"78221bde-4c53-465d-8516-0dbd5fdc5fa2"},{"name":"Start workout - BACKEND","id":"de04dffa-043c-477b-9cf5-25c59c8ec32a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/:workoutId/start","urlObject":{"path":["v1","backend","user","{{user_id}}","workout",":workoutId","start"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"d68c5739-dbfe-49ed-bd82-5440f3eee024","type":"any","value":"string","key":"workoutId"}]}},"response":[{"id":"66a0f2ce-efc5-44b8-a877-491fd19a546d","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/:workoutId/start","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout",":workoutId","start"],"variable":[{"key":"baseUrl"},{"key":"userId"},{"key":"workoutId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"de04dffa-043c-477b-9cf5-25c59c8ec32a"},{"name":"Workout detail - APP","id":"552850e1-2858-49e0-9c2d-9634810ec1c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"POST","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/:workoutId","urlObject":{"path":["v1","app","workout",":workoutId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"9c4c0a1c-33ec-475c-8715-498d76577de2","type":"any","value":"string","key":"workoutId"}]}},"response":[{"id":"6ec0a1ac-fc4e-4f15-9c2d-d53ebd3f2e12","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/:workoutId","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout",":workoutId"],"variable":[{"key":"baseUrl"},{"key":"workoutId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"string\",\n  \"name\": \"string\"\n}"}],"_postman_id":"552850e1-2858-49e0-9c2d-9634810ec1c8"},{"name":"Workout detail - BACKEND","id":"538ce76c-4cc9-47b6-b630-c856a2dd473a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/:workoutId","urlObject":{"path":["v1","backend","user","{{user_id}}","workout",":workoutId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"99180785-14c7-4afd-98a3-d5b630ee8a63","type":"any","value":"W-e5d23824e2ae490f803d15def806c101-TU-6ae78d9cdd3949e4ba3c8c1f8b6900dd-F-highflyingbirds","key":"workoutId"}]}},"response":[{"id":"9d1c59f1-51e4-4610-9c6f-af815f3374f4","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"facilityId\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/:workoutId","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout",":workoutId"],"variable":[{"key":"baseUrl"},{"key":"userId"},{"key":"workoutId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"string\",\n  \"name\": \"string\"\n}"}],"_postman_id":"538ce76c-4cc9-47b6-b630-c856a2dd473a"},{"name":"User Current Workout - Mark exercise as done - APP","id":"ad209fd7-7d4c-435c-b14f-7743270c4ca0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"PUT","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/current/exercise/mark-as-done","urlObject":{"path":["v1","app","workout","current","exercise","mark-as-done"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"cfa43a72-2574-46fb-8c7f-99cc94510f70","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/current/exercise/mark-as-done","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","current","exercise","mark-as-done"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"ad209fd7-7d4c-435c-b14f-7743270c4ca0"},{"name":"User Current Workout - Mark exercise as done - BACKEND","id":"a6297358-118d-4b2d-8e72-22ff23f5c51f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/current/exercise/mark-as-done","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","current","exercise","mark-as-done"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"4fadbd57-a3c4-441e-a826-94094153fdf5","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/current/exercise/mark-as-done","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","current","exercise","mark-as-done"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"a6297358-118d-4b2d-8e72-22ff23f5c51f"},{"name":"User Current Workout - Mark exercise as undone - APP","id":"754cfdfb-8c1b-4acd-8ac3-05804d59ea4c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"PUT","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/current/exercise/mark-as-undone","urlObject":{"path":["v1","app","workout","current","exercise","mark-as-undone"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"3adc8fe6-6be2-4f24-b61b-675580fd4d40","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/current/exercise/mark-as-undone","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","current","exercise","mark-as-undone"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"754cfdfb-8c1b-4acd-8ac3-05804d59ea4c"},{"name":"User Current Workout - Mark exercise as undone - BACKEND","id":"a0cf7a3e-2a95-47ac-bc54-c9ed5145d4db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/current/exercise/mark-as-undone","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","current","exercise","mark-as-undone"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"7d3d59c9-98cb-43d8-be7a-7d4a9f263843","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"idCr\": 3256.9048543861777,\n  \"position\": 3736.0146483244725\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/current/exercise/mark-as-undone","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","current","exercise","mark-as-undone"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"a0cf7a3e-2a95-47ac-bc54-c9ed5145d4db"},{"name":"Close Workout - APP","id":"66052b7a-5198-4f63-8b71-97910e3f0976","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"PUT","header":[{"key":"x-openplatform-language","value":"en"}],"url":"{{baseUrl}}/v1/app/workout/current/close","urlObject":{"path":["v1","app","workout","current","close"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"e91b963d-03d6-405d-b4ba-a04cdde0f592","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout-sessions/current/close","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout-sessions","current","close"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"66052b7a-5198-4f63-8b71-97910e3f0976"},{"name":"Close Workout - BACKEND","id":"0eabcd23-b655-4696-ac94-21bf1900179e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/current/close","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","current","close"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"5fe1d61f-3a75-4a0f-b92a-1d41b4d80863","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/current/close","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","current","close"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0eabcd23-b655-4696-ac94-21bf1900179e"}],"id":"eedb0765-d502-4d1d-a4b4-d12b0cb7de6c","_postman_id":"eedb0765-d502-4d1d-a4b4-d12b0cb7de6c","description":""},{"name":"Technogym Coach Program Management","item":[{"name":"Get Training Program Categories - APP","id":"1cb513aa-b008-4234-b521-9cdc015aaed0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"POST","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"categoryIds\": [\n    \"string\",\n    \"string\"\n  ],\n  \"typeFilter\": 682.7528589471954\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/categories","urlObject":{"path":["v1","app","workout","categories"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"8eb69a87-cabb-4476-ae9a-8eb70fc0718b","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"categoryIds\": [\n    \"string\",\n    \"string\"\n  ],\n  \"typeFilter\": 682.7528589471954\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/categories","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","categories"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"string\",\n    \"name\": \"string\"\n  },\n  {\n    \"id\": \"string\",\n    \"name\": \"string\"\n  }\n]"}],"_postman_id":"1cb513aa-b008-4234-b521-9cdc015aaed0"},{"name":"Get Training Program Categories - BACKEND","id":"290a8645-f6f4-4df9-8dcb-c9ff7ecba582","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"categoryIds\": [\n    \"string\",\n    \"string\"\n  ],\n  \"typeFilter\": 682.7528589471954\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/categories","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","categories"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"fdea5c53-1222-44a4-9d6b-dd001ba77717","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"categoryIds\": [\n    \"string\",\n    \"string\"\n  ],\n  \"typeFilter\": 682.7528589471954\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/categories","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","categories"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"string\",\n    \"name\": \"string\"\n  },\n  {\n    \"id\": \"string\",\n    \"name\": \"string\"\n  }\n]"}],"_postman_id":"290a8645-f6f4-4df9-8dcb-c9ff7ecba582"},{"name":"Generate Program - APP","id":"aa4c3667-9b14-4ea3-87c8-2291470677ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"POST","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"need\": \"string\",\n  \"expertise\": \"string\",\n  \"duration\": \"string\",\n  \"facilityId\": \"string\",\n  \"generationType\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/app/workout/coach","urlObject":{"path":["v1","app","workout","coach"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"4bdfd319-55c7-4fc1-b42a-cf7a84337525","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"need\": \"string\",\n  \"expertise\": \"string\",\n  \"duration\": \"string\",\n  \"facilityId\": \"string\",\n  \"generationType\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/coach","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","coach"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"aa4c3667-9b14-4ea3-87c8-2291470677ce"},{"name":"Generate Program - BACKEND","id":"48c9581c-7a4c-4255-821d-d5393bd7a746","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"need\": \"string\",\n  \"expertise\": \"string\",\n  \"duration\": \"string\",\n  \"facilityId\": \"string\",\n  \"generationType\": \"string\",\n  \"exerciseBlockType\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/coach","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","coach"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"3c2da026-7388-4b2e-ba99-281384df27e4","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"need\": \"string\",\n  \"expertise\": \"string\",\n  \"duration\": \"string\",\n  \"facilityId\": \"string\",\n  \"generationType\": \"string\",\n  \"exerciseBlockType\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/coach","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","coach"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"48c9581c-7a4c-4255-821d-d5393bd7a746"},{"name":"Technogym Coach Program Week Plan - APP","id":"db360c77-b62b-4604-8163-2ad259337c78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/workout/coach/week-plan","urlObject":{"path":["v1","app","workout","coach","week-plan"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"c4f153a4-c787-4aa8-9e72-92318fedbbfb","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/app/workout/coach/week-plan","host":["{{baseUrl}}"],"path":[":baseUrl","v1","app","workout","coach","week-plan"],"variable":[{"key":"baseUrl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trainingDays\": [\n    \"string\",\n    \"string\"\n  ]\n}"}],"_postman_id":"db360c77-b62b-4604-8163-2ad259337c78"},{"name":"Technogym Coach Program Week Plan - BACKEND","id":"ff02fde9-9b70-4b8d-9bac-9d3ba9528971","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"x-openplatform-language","value":"en"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout/coach/week-plan","urlObject":{"path":["v1","backend","user","{{user_id}}","workout","coach","week-plan"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"a69a715b-471a-40f0-b31b-43b4d8ac66a0","name":"Success","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Accept-Language","value":"string"},{"key":"x-openplatform-language","value":"string"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/:baseUrl/v1/backend/user/:userId/workout/coach/week-plan","host":["{{baseUrl}}"],"path":[":baseUrl","v1","backend","user",":userId","workout","coach","week-plan"],"variable":[{"key":"baseUrl"},{"key":"userId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trainingDays\": [\n    \"string\",\n    \"string\"\n  ]\n}"}],"_postman_id":"ff02fde9-9b70-4b8d-9bac-9d3ba9528971"}],"id":"8c8e60ac-0054-4974-a440-92af830212d6","_postman_id":"8c8e60ac-0054-4974-a440-92af830212d6","description":""}],"id":"065817de-6332-4efd-bf63-eb6768f9c91b","description":"<h2 id=\"training-programs\">Training Programs</h2>\n<p>MyWellness Enterprise platform allows to manage two different types of training programs:</p>\n<ul>\n<li><p><strong>Prescribed programs</strong>: this is the program that could be prescribed by a staff member of the facility to a customer using Mywellness CRM</p>\n</li>\n<li><p><strong>Technogym Coach programs</strong>: this is the program that the member could get thanks to Technogym AI and it is generated depending by a short questionnaire done by the user</p>\n</li>\n</ul>\n<h3 id=\"1-prescribed-programs\">1. Prescribed Programs</h3>\n<ul>\n<li><p><strong>Source:</strong> These programs are <strong>generated and assigned externally</strong>, outside the scope of this API.</p>\n</li>\n<li><p><strong>API Responsibility:</strong> This API is used strictly for <strong>Retrieval</strong> and <strong>Execution</strong>. You cannot \"create\" a Prescribed program here; you can only download and play it.</p>\n</li>\n<li><p><strong><code>type == \"MyWellness\"</code></strong></p>\n</li>\n</ul>\n<h3 id=\"2-coach--precision-programs\">2. Coach / Precision Programs</h3>\n<ul>\n<li><p><strong>Source:</strong> These programs are <strong>generated directly via this API</strong>.</p>\n</li>\n<li><p><strong>API Responsibility:</strong> This API handles the entire lifecycle: <strong>Assessment</strong>, <strong>Creation</strong>, <strong>Retrieval</strong>, and <strong>Execution</strong>.</p>\n</li>\n<li><p><strong><code>type == \"TechnogymCoach\"</code></strong></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"flow-1-manage-the-training-program-prescribed-by-staffs-using-mw-crm\">Flow 1: Manage the training program prescribed by staffs using MW CRM</h2>\n<p>This flow is for users who have been assigned by a staff a training program using MW CRM</p>\n<h3 id=\"1-list--filter-programs\">1. List &amp; Filter Programs</h3>\n<p>First, retrieve all programs associated with the user to find the correct one.</p>\n<p><strong>Endpoint:</strong> <code>GET /v1/backend/user/{{userId}}/programs</code></p>\n<p><strong>Logic:</strong></p>\n<ul>\n<li><p>Iterate through the response array.</p>\n</li>\n<li><p><strong>Filter:</strong> You must strictly filter for <strong><code>type == \"MyWellness\"</code></strong>. Ignore other types.</p>\n</li>\n<li><p><strong>Store Context:</strong> From the selected program, save the <strong><code>facilityId</code></strong>. This indicates where the program was created and is <strong>required</strong> for subsequent calls (Start workout and Getting details).</p>\n</li>\n<li><p><strong>Select Session:</strong> Access the <code>sessions</code> array within the program object.</p>\n<ul>\n<li><p><strong><code>isSuggested</code></strong>: If <code>true</code>, this is the workout session that the platform suggest to the user to be done.</p>\n</li>\n<li><p><strong><code>lastPerformedOn</code></strong>: Shows the date of the last execution of the workout session.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"2-check-if-there-is-an-already-running-workout-session\">2. Check if there is an already running workout session</h3>\n<p>Showing the workout session list, it is possible that the user has already started and performing a workout session. A running workout session is named as Current workout session. You could fetch the current workout session using the endpoint described below:</p>\n<p><strong>Endpoint:</strong> <code>GET /v1/backend/user/{{userId}}/workout/current</code></p>\n<p><strong>Logic:</strong></p>\n<ul>\n<li><p><strong>If</strong> <strong><code>workoutSession</code></strong> <strong>is returned:</strong> The user has an active workout. Use the returned ID to resume the session in the UI.</p>\n</li>\n<li><p><strong>If</strong> <strong><code>workoutSession</code></strong> <strong>is null/empty:</strong> The user is free to start a new workout. Proceed to Step 3.</p>\n</li>\n</ul>\n<h3 id=\"3-start-workout\">3. Start Workout</h3>\n<p>If no current workout session exists, the user may want to start a new workout session as selected in Step 1. In order to start the workout you could use the endpoint described below.</p>\n<p><strong>Endpoint:</strong> <code>POST /v1/backend/user/{{userId}}/workout/{{workoutId}}/start</code></p>\n<p><strong>Note</strong>: you need to provide the facilityId that is the identifier of the facility where the workout will be performed. This value could be taken (as described in point 1) from the program list or could be provided fetching the facility identifier with a specific endpoint described in the Configuration section</p>\n<h3 id=\"4-get-workout-details\">4. Get Workout Details</h3>\n<p>Once started, you could retrieve the full exercise list of the started workout:</p>\n<p><strong>Endpoint:</strong> <code>POST /v1/backend/user/{{userId}}/workout/{{workoutId}}</code></p>\n<p><strong>Note</strong>: you need to provide the facilityId that is the identifier of the facility where the workout will be performed. This value could be taken (as described in point 1) from the program list or could be provided fetching the facility identifier with a specific endpoint described in the Configuration section.<br />Each exercise of the started workout session is identified by the tuple IdCr and Position. The IdCr is the unique identifier of a started workout session for a user and the Position is the relative position of the exercise in the started session.</p>\n<h3 id=\"5-exercises-execution\">5. Exercise's execution</h3>\n<p>During the workout execution, the user may want to mark the exercises as done or delte the exercise execution. To do that you could use the endpoints described below:</p>\n<p><strong>Mark Done:</strong> <code>PUT /v1/backend/user/{{userId}}/workout/current/exercise/mark-as-done</code></p>\n<p><em>Body:</em> Requires <code>idCr</code> (Started workout instance ID) and <code>position</code>.</p>\n<p><strong>Mark Undone:</strong> <code>PUT /v1/backend/user/{{userId}}/workout/current/exercise/mark-as-undone</code></p>\n<p><em>Body:</em> Requires <code>idCr</code> (Started workout instance ID) and <code>position</code>.</p>\n<h3 id=\"6-close-workout\">6. Close Workout</h3>\n<p>When the workout is completed, the user may want to close it using the endpoint below:</p>\n<p><strong>Endpoint:</strong> <code>PUT /v1/backend/user/{{userId}}/workout/current/close</code></p>\n<h2 id=\"flow-2-technogym-coach-program\">Flow 2: Technogym Coach Program</h2>\n<p>The Technogym Coach Program requires an <strong>Assessment Phase</strong> to determine the user's goals and constraints before letting the Technogym AI to generate a tailored program for the user.</p>\n<p>This flow consists of a <strong>Sequential Drill-Down</strong> using the <code>categories</code> endpoint. The output of a step becomes the input filter for the next one.</p>\n<h3 id=\"phase-1-the-assessment-sequential-steps\">Phase 1: The Assessment (Sequential Steps)</h3>\n<p>You could use <strong><code>POST /v1/backend/user/{{userId}}/workout/categories</code></strong> in order to gather the necessary IDs that allows to build the assessment UI:</p>\n<h4 id=\"step-1-select-goal-need\">Step 1: Select Goal (<code>need</code>)</h4>\n<p>Retrieve the list of available goals (e.g., Lose Weight, Tone Up). Please use the data below in the body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"categoryIds\": [\"fitness_macro\"], \"typeFilter\": 5 }\n\n</code></pre>\n<ul>\n<li><strong>Action:</strong> User selects one item. Save this ID as <code>{{selected_goal_id}}</code>.</li>\n</ul>\n<h4 id=\"step-2-select-experience-level-expertise\">Step 2: Select Experience Level (<code>expertise</code>)</h4>\n<p>Retrieve available levels compatible with the chosen goal.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"categoryIds\": [\"fitness_macro\", \"{{selected_goal_id}}\"], \"typeFilter\": 6 }\n\n</code></pre>\n<ul>\n<li><strong>Action:</strong> User selects one item. Save this ID as <code>{{selected_level_id}}</code>.</li>\n</ul>\n<h4 id=\"step-3-select-duration-duration\">Step 3: Select Duration (<code>duration</code>)</h4>\n<p>Retrieve available time durations compatible with the goal and level.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"categoryIds\": [\"fitness_macro\", \"{{selected_goal_id}}\", \"{{selected_level_id}}\"], \"typeFilter\": 0 }\n\n</code></pre>\n<ul>\n<li><strong>Action:</strong> User selects one item. Save this ID as <code>{{selected_duration_id}}</code>.</li>\n</ul>\n<hr />\n<h3 id=\"phase-2-facility-selection\">Phase 2: Facility Selection</h3>\n<p>Before generating the program, the user must select the facility where they are performing the workout.</p>\n<ul>\n<li><p><strong>Action:</strong> Use the <strong>Facilities API</strong> (external to this collection's scope) to let the user choose a location. Please refer to the COnfiguration section to see the specs of this API</p>\n</li>\n<li><p><strong>Output:</strong> Save the ID as <code>{{selected_facility_id}}</code>.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"phase-3-generate-program\">Phase 3: Generate Program</h3>\n<p>Once the assessment is complete and a facility is chosen, call the program generation endpoint with the gathered data and fixed parameters described below.</p>\n<ul>\n<li><strong>Endpoint:</strong> <code>POST /v1/backend/user/{{userId}}/workout/coach</code></li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n\"need\": \"{{selected_goal_id}}\", // From Assessment Step 1 \n\"expertise\": \"{{selected_level_id}}\", // From Assessment Step 2 \n\"duration\": \"{{selected_duration_id}}\", // From Assessment Step 3 \n\"facilityId\": \"{{selected_facility_id}}\", // From Phase 2 \n\"generationType\": \"precision\", // FIXED \n\"exerciseBlockType\": \"routine\" // FIXED \n}\n\n</code></pre>\n<hr />\n<h3 id=\"phase-4-program-execution\">Phase 4: Program Execution</h3>\n<p>The Technogym Coach program follows predefined rules of workout session execution. The user must follow the workout session that is suggested and execute the workout as the system propose. Due to that login the app will always start the workout execution using the suggested workout:</p>\n<p><strong>1. Identify the Suggested Workout:</strong><br />You must retrieve the program generated in Phase 3 to find the specific session ID.</p>\n<ul>\n<li><p><strong>Endpoint:</strong> <code>GET /v1/backend/user/{{userId}}/programs</code></p>\n</li>\n<li><p><strong>Constraint:</strong> In Technogym Coach programs, <strong>only the Suggested Workout is valid</strong> for execution.</p>\n<ul>\n<li><p>Iterate through <code>sessions</code>.</p>\n</li>\n<li><p>Find the session where <strong><code>isSuggested: true</code></strong>.</p>\n</li>\n<li><p><em>Ignore all other sessions.</em></p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>2. Start and Execute the Workout:</strong><br />Once the <code>isSuggested</code> workout ID is found, the workout execution is similar to the one described in <strong>Flow 1</strong>:</p>\n<ol>\n<li><p><strong>Check if there is an already running workout session:</strong> <code>GET .../workout/current</code> (Resume if exists).</p>\n</li>\n<li><p><strong>Start workout:</strong> <code>POST .../workout/{{suggested_workout_id}}/start</code> (Requires <code>facilityId</code>).</p>\n</li>\n<li><p><strong>List started workout exercises:</strong> <code>POST .../workout/{{suggested_workout_id}}</code> (Get exercises).</p>\n</li>\n<li><p><strong>Execute execises:</strong> Mark exercises done/undone.</p>\n</li>\n<li><p><strong>Close workout:</strong> <code>PUT .../workout/current/close</code>.</p>\n</li>\n</ol>\n<h3 id=\"addition-feature\"><strong>Addition feature:</strong></h3>\n<p>The user may want to know the planning of the workout session in the Technogym Coach program. In order to show that you could use the endpoint described below:</p>\n<ul>\n<li><p><strong>Endpoint:</strong> <code>GET /v1/backend/user/{{userId}}/workout/coach/week-plan</code></p>\n</li>\n<li><p><strong>Purpose:</strong> Returns the recommended training days (e.g., \"Monday\", \"Wednesday\").</p>\n</li>\n</ul>\n<hr />\n","_postman_id":"065817de-6332-4efd-bf63-eb6768f9c91b"},{"name":"Indoor Training Results","item":[{"name":"Performed Workouts List - APP","id":"3d754991-e094-4189-806c-bdd20f0f1840","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/workout-sessions?from=20250605&to=20250704","description":"<p>Retrieve the list of the training session done by the user using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","workout-sessions"],"host":["{{baseUrl}}"],"query":[{"key":"from","value":"20250605"},{"key":"to","value":"20250704"}],"variable":[]}},"response":[{"id":"530e9a19-886d-4e46-912a-fe1d03cf415c","name":"Training Session done - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/app/workout-sessions?from=20250605&to=20250704","host":["{{baseUrl}}"],"path":["v1","app","workout-sessions"],"query":[{"key":"from","value":"20250605"},{"key":"to","value":"20250704"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"id\": \"1\",\n        \"title\": \"Workout 1\",\n        \"sessionType\": \"Generic\",\n        \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n        \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n        \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n        \"partitionDate\": 20250605,\n        \"calories\": 241,\n        \"move\": 420,\n        \"duration\": 1680,\n        \"totalExeDone\": 4\n    }\n]"}],"_postman_id":"3d754991-e094-4189-806c-bdd20f0f1840"},{"name":"Performed Workout details - APP","id":"adb175ab-e913-450d-abd2-eaf6566f5fc5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/workout-sessions/:sessionId","description":"<p>Retrieve the details of a training session done by the user using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","workout-sessions",":sessionId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"type":"any","value":"1","key":"sessionId"}]}},"response":[{"id":"c4758111-4e19-45f3-b975-7ade92b2afe6","name":"Training Session details - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/app/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","app","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"sessionType\": \"Generic\",\n    \"workoutCompliance\": 100,\n    \"exercises\": [\n        {\n            \"position\": 1,\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"position\": 2,\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"position\": 3,\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"position\": 4,\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ],\n    \"notDoneExercises\": [],\n    \"exerciseGroups\": []\n}"}],"_postman_id":"adb175ab-e913-450d-abd2-eaf6566f5fc5"},{"name":"Performed Workouts List - BACKEND","id":"37e8ed30-bd7d-41ab-a98c-3936f6e524ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions?from=20250601&to=20250606","description":"<p>Retrieve the list of the training session done by the user using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","workout-sessions"],"host":["{{baseUrl}}"],"query":[{"key":"from","value":"20250601"},{"key":"to","value":"20250606"}],"variable":[]}},"response":[{"id":"5fbcfea1-8882-47a6-950f-09e1e93aac5d","name":"Training Session done - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions?from=20250601&to=20250606","host":["{{baseUrl}}"],"path":["v1","backend","user","{{user_id}}","workout-sessions"],"query":[{"key":"from","value":"20250601"},{"key":"to","value":"20250606"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"id\": \"1\",\n        \"title\": \"Workout 1\",\n        \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n        \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n        \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n        \"partitionDate\": 20250605,\n        \"calories\": 241,\n        \"move\": 420,\n        \"duration\": 1680,\n        \"totalExeDone\": 4\n    }\n]"}],"_postman_id":"37e8ed30-bd7d-41ab-a98c-3936f6e524ad"},{"name":"Performed Workout details - BACKEND","id":"d3033479-00f9-4bb7-9d93-def8e486820e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions/:sessionId","description":"<p>Retrieve the details of a training session done by the user using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","workout-sessions",":sessionId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"type":"any","value":"1","key":"sessionId"}]}},"response":[{"id":"4eceb9bd-165c-4a0b-9950-bf8927b35a04","name":"Training Session details - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","backend","user","{{user_id}}","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"exercises\": [\n        {\n            \"position\": 1,\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"position\": 2,\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"position\": 3,\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"position\": 4,\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"d3033479-00f9-4bb7-9d93-def8e486820e"},{"name":"Performed Exercise details - APP","id":"5cdf9a63-5b91-4ae5-b3d8-9c08955d1cdd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"token":"{{access_token}}"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/app/workout-sessions/:sessionId/:exercisePosition","description":"<p>Retrieve the details of a training session done by the user using the API from the mobile application</p>\n","urlObject":{"path":["v1","app","workout-sessions",":sessionId",":exercisePosition"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"ecc8061c-f7e6-432a-9204-1a4541a01ba0","type":"any","value":"1","key":"sessionId"},{"id":"e66199f0-9f79-4a16-928f-d201f9c2293c","type":"any","value":"","key":"exercisePosition"}]}},"response":[{"id":"645d581f-929f-4c34-825e-5a964ff94797","name":"Training Session details - APP","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/app/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","app","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"exercises\": [\n        {\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"5cdf9a63-5b91-4ae5-b3d8-9c08955d1cdd"},{"name":"Performed Exercise details - BACKEND","id":"22b62c55-f624-4af7-a4bc-704c5cd6c775","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions/:sessionId/:exercisePosition","description":"<p>Retrieve the details of a training session done by the user using the API from the third party backend</p>\n","urlObject":{"path":["v1","backend","user","{{user_id}}","workout-sessions",":sessionId",":exercisePosition"],"host":["{{baseUrl}}"],"query":[],"variable":[{"id":"0a9e6888-4d6a-45b5-9f67-ba71ec2544d5","type":"any","value":"1","key":"sessionId"},{"id":"b92dd35d-66b9-4649-8b70-51ffa30d7253","type":"any","value":"","key":"exercisePosition"}]}},"response":[{"id":"8f42673e-cf87-4fc9-8e97-3ae427531aa2","name":"Training Session details - BACKEND","originalRequest":{"method":"GET","header":[{"key":"x-openplatform-apikey","value":"{{api_key}}"},{"key":"x-openplatform-authdomain","value":"{{auth_domain}}"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/backend/user/{{user_id}}/workout-sessions/:sessionId","host":["{{baseUrl}}"],"path":["v1","backend","user","{{user_id}}","workout-sessions",":sessionId"],"variable":[{"key":"sessionId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": \"1\",\n    \"title\": \"Workout 1\",\n    \"startedOn\": \"2025-06-05T12:25:50.612+00:00\",\n    \"closedOn\": \"2025-06-05T12:26:03.317+00:00\",\n    \"pictureUrl\": \"https://cdnmedia.mywellness.com/training_program/wstp.jpg\",\n    \"exercises\": [\n        {\n            \"equipmentName\": \"Run\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e57.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_131626/m536.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m536/20241105_112/m536.mp4\",\n            \"doneCalories\": \"91\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"159\",\n            \"doneOn\": \"2025-06-05T12:25:54.6432599+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"1016.666667\",\n                    \"formattedDisplayValue\": \"1.02\",\n                    \"formattedValue\": \"1.02 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"90.853175\",\n                    \"formattedDisplayValue\": \"91\",\n                    \"formattedValue\": \"91 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"159\",\n                    \"formattedDisplayValue\": \"159\",\n                    \"formattedValue\": \"159 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.738095\",\n                    \"formattedDisplayValue\": \"5.7\",\n                    \"formattedValue\": \"5.7 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"AvgSpeed\",\n                    \"displayName\": \"Average speed\",\n                    \"rawValue\": \"6.1\",\n                    \"formattedDisplayValue\": \"6.1\",\n                    \"formattedValue\": \"6.1 km/h\",\n                    \"unitOfMeasure\": \"Km_h\",\n                    \"unitOfMeasureShortString\": \"km/h\"\n                },\n                {\n                    \"physicalProperty\": \"Pace\",\n                    \"displayName\": \"Pace\",\n                    \"rawValue\": \"590.163934\",\n                    \"formattedDisplayValue\": \"09:50\",\n                    \"formattedValue\": \"09:50 min/km\",\n                    \"unitOfMeasure\": \"MinKm\",\n                    \"unitOfMeasureShortString\": \"min/km\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"545.119048\",\n                    \"formattedDisplayValue\": \"545\",\n                    \"formattedValue\": \"545 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Bike\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e58.jpg\",\n            \"name\": \"GOAL exercise in time\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite2020_freemode/bike_excite2020_freemode.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise/all/bike_excite_tx_ride_front_grip/bike_excite_tx_ride_front_grip.mp4\",\n            \"doneCalories\": \"94\",\n            \"doneDuration\": \"600\",\n            \"doneMove\": \"164\",\n            \"doneOn\": \"2025-06-05T12:25:56.3802667+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"ExerciseCompliance\",\n                    \"displayName\": \"Compliance\",\n                    \"rawValue\": \"100\",\n                    \"formattedDisplayValue\": \"100\",\n                    \"formattedValue\": \"100 %\",\n                    \"unitOfMeasure\": \"Percent\",\n                    \"unitOfMeasureShortString\": \"%\"\n                },\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"600\",\n                    \"formattedDisplayValue\": \"10:00\",\n                    \"formattedValue\": \"10:00 min\",\n                    \"unitOfMeasure\": \"Minute\",\n                    \"unitOfMeasureShortString\": \"min\"\n                },\n                {\n                    \"physicalProperty\": \"HDistance\",\n                    \"displayName\": \"Distance\",\n                    \"rawValue\": \"4080\",\n                    \"formattedDisplayValue\": \"4.08\",\n                    \"formattedValue\": \"4.08 km\",\n                    \"unitOfMeasure\": \"Km\",\n                    \"unitOfMeasureShortString\": \"km\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"93.566095\",\n                    \"formattedDisplayValue\": \"94\",\n                    \"formattedValue\": \"94 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"164\",\n                    \"formattedDisplayValue\": \"164\",\n                    \"formattedValue\": \"164 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"MetsMin\",\n                    \"displayName\": \"mets\",\n                    \"rawValue\": \"5.909438\",\n                    \"formattedDisplayValue\": \"5.9\",\n                    \"formattedValue\": \"5.9 mets\",\n                    \"unitOfMeasure\": \"Mets\",\n                    \"unitOfMeasureShortString\": \"mets\"\n                },\n                {\n                    \"physicalProperty\": \"CaloriesConsumption\",\n                    \"displayName\": \"Calorie expenditure\",\n                    \"rawValue\": \"561.396571\",\n                    \"formattedDisplayValue\": \"561\",\n                    \"formattedValue\": \"561 Kcal/h\",\n                    \"unitOfMeasure\": \"KCAL_H\",\n                    \"unitOfMeasureShortString\": \"Kcal/h\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Chest Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e68.jpg\",\n            \"name\": \"Press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250626_075645/m388.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m388/20250625_1527/m388.mp4\",\n            \"doneCalories\": \"22\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"38\",\n            \"doneOn\": \"2025-06-05T12:25:57.5562617+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"37.675261\",\n                    \"formattedDisplayValue\": \"38\",\n                    \"formattedValue\": \"38 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"21.66\",\n                    \"formattedDisplayValue\": \"22\",\n                    \"formattedValue\": \"22 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        },\n        {\n            \"equipmentName\": \"Leg Press Artis\",\n            \"equipmentPictureUrl\": \"https://cdnmedia.mywellness.com/equipments/2bcb4159-7fa1-4379-8a36-36ba12ce84ea/images/e72.jpg\",\n            \"name\": \"Leg press\",\n            \"pictureUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250626_075550/m422.jpg\",\n            \"videoUrl\": \"https://cmsmedia.mywellness.com/5bf51e0109ee93b5aef82c77/exercise_cms/all/m422/20250625_1527/m422.mp4\",\n            \"doneCalories\": \"34\",\n            \"doneDuration\": \"240\",\n            \"doneMove\": \"59\",\n            \"doneOn\": \"2025-06-05T12:25:58.6122628+00:00\",\n            \"doneProperties\": [\n                {\n                    \"physicalProperty\": \"Duration\",\n                    \"displayName\": \"Duration\",\n                    \"rawValue\": \"240\",\n                    \"formattedDisplayValue\": \"240\",\n                    \"formattedValue\": \"240 sec\",\n                    \"unitOfMeasure\": \"Sec\",\n                    \"unitOfMeasureShortString\": \"sec\"\n                },\n                {\n                    \"physicalProperty\": \"Move\",\n                    \"displayName\": \"MOVEs\",\n                    \"rawValue\": \"58.718101\",\n                    \"formattedDisplayValue\": \"59\",\n                    \"formattedValue\": \"59 MOVEs\",\n                    \"unitOfMeasure\": \"Move\",\n                    \"unitOfMeasureShortString\": \"MOVEs\"\n                },\n                {\n                    \"physicalProperty\": \"Calories\",\n                    \"displayName\": \"Calories\",\n                    \"rawValue\": \"33.63\",\n                    \"formattedDisplayValue\": \"34\",\n                    \"formattedValue\": \"34 kcal\",\n                    \"unitOfMeasure\": \"Kcal\",\n                    \"unitOfMeasureShortString\": \"kcal\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"22b62c55-f624-4af7-a4bc-704c5cd6c775"}],"id":"5afd7990-72d7-4d7f-97d6-20db2a599282","description":"<p>Partner platform uses the Technogym API to list workout sessions done in the club and access session's details with list of exercise done and data for each exercise. This could be done either on the app side or calling the API server to server (backend)</p>\n<p>The <em>/workout-sessions</em> API allows to retrieve the list of workout sessions done in the specified range (fields from and to passed in the querystring). For each session the API returns the id (unique for each user), the session name, the dates when the session has been started and closed. It is returned also the total values of the session as the total calories, duration and number of exercises done. The field sessionType returns the type of the workout done. Here a list of the most used values for this field:</p>\n<ul>\n<li><p><strong>Free</strong>: user arrives in the gym, go on a connected equipment (for example a Treadmill), login a do a workout. In this case the system starts a Free session. After that the user could add to the session other exercises (for example logging in on another connected equipment) o could also add to the session a Biocircuit workout</p>\n</li>\n<li><p><strong>ArtisCircuit</strong>: user arrives in the gym and go directly to the Biocircuit Kiosk, login and starts a program. In this case the system starts a Biocircuit workout and this workout is automatically ended when the circuit is completed</p>\n</li>\n<li><p><strong>Generic</strong>: user has a training program prescription done by a Trainer or an AI generated program. Using the Training Program part of the SDK on the app or a connected equipment (that in this case after the login suggest to the user to do the prescribed workout), the user starts the trainer's prescribed session. The user could also add in the session some additional exercises that are not part of the prescription</p>\n</li>\n</ul>\n<p>The <em>/workout-sessions/:sessionId</em> API allows to retrieve the workout session details with the complete list of exercises done. For each exercise you could retrieve the localized name, picture and the total results of the exercise. The field position allows to identify the specific exercise in the workout session and could be used to call the exercise detail API described below.</p>\n<p>The <em>/workout-sessions/:sessionId/:exercisePosition</em> API allows to retrieve all the details of the performed exercise including all the done properties and steps. The details could also include the field <em>analyticData</em> that allows to draw graphs (for example of speed, grade or HR).</p>\n","_postman_id":"5afd7990-72d7-4d7f-97d6-20db2a599282"}],"id":"0ae50788-2e60-42da-b2e9-ce01b18f72eb","_postman_id":"0ae50788-2e60-42da-b2e9-ce01b18f72eb","description":""},{"name":"SDK integration guide","item":[{"name":"iOS","item":[],"id":"8664aac1-b972-4604-85e7-6219745f1c59","description":"<h1 id=\"mywellnessenterprisesdk-ios-documentation\">MyWellnessEnterpriseSDK iOS Documentation</h1>\n<h2 id=\"overview\">Overview</h2>\n<p><strong>MyWellnessEnterpriseSDK</strong> is a comprehensive SwiftUI framework designed to integrate Mywellness Enterprise features into your iOS application. It provides ready-to-use modules for workout execution, history tracking, equipment connectivity, and user wellness passports.</p>\n<h2 id=\"table-of-contents\">Table of Contents</h2>\n<ol>\n<li><p>Configuration &amp; Initialization</p>\n</li>\n<li><p>Theming &amp; Custom Fonts</p>\n</li>\n<li><p>Session Management</p>\n</li>\n<li><p>UI Modules</p>\n</li>\n<li><p>Reference: Constants &amp; Enums</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"1-configuration--initialization\">1. Configuration &amp; Initialization</h2>\n<p>The SDK must be configured before accessing any UI components. This setup is typically performed in your <code>AppDelegate</code> or the main <code>App</code> struct's initializer.</p>\n<h3 id=\"setup-method\">Setup Method</h3>\n<p>Use <code>Configuration.setup</code> to initialize the SDK.</p>\n<p><strong>Note:</strong> The <code>environment</code> and <code>theme</code> parameters are <strong>optional</strong>.</p>\n<ul>\n<li><p>If <code>environment</code> is omitted, it defaults to <code>.production</code>.</p>\n</li>\n<li><p>If <code>theme</code> is omitted, the default SDK styling is applied.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">import SwiftUI\nimport MyWellnessEnterpriseSDK\n@main\nstruct MyApp: App {\n    init() {\n        // 1. Minimal Setup (Production default, default theme)\n        Configuration.setup(\n            token: \"YOUR_USER_ACCESS_TOKEN\",\n            language: .enGB\n        )\n        // OR\n        // 2. Full Setup (Custom Environment &amp; Theme)\n        let myTheme = Theme(primaryColor: .blue, accentColor: .yellow)\n        Configuration.setup(\n            token: \"YOUR_USER_ACCESS_TOKEN\",\n            language: .enGB,\n            environment: .sandbox, // Optional: defaults to .production if omitted\n            theme: myTheme         // Optional: defaults to standard theme if omitted\n        )\n    }\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n    }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"2-theming--custom-fonts\">2. Theming &amp; Custom Fonts</h2>\n<p>You can customize the SDK's visual appearance using the <code>Theme</code> struct. This allows you to inject your brand colors and custom font files.</p>\n<h3 id=\"the-theme-struct\">The Theme Struct</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">public struct Theme {\n    public let primaryColor: UIColor?\n    public let accentColor: UIColor?\n    public let fonts: BrandFontSuite?\n}\n\n</code></pre>\n<h3 id=\"configuring-custom-fonts-brandfontsuite\">Configuring Custom Fonts (BrandFontSuite)</h3>\n<p>To use custom fonts, you must provide the <strong>local URLs</strong> of the font files (e.g., from your App Bundle) to the <code>BrandFontSuite</code>.</p>\n<p><strong>BrandFontSuite Definition:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">public struct BrandFontSuite {\n    public let light: URL?\n    public let book: URL?   // Regular/Normal weight\n    public let bold: URL?\n    public init(light: URL? = nil, book: URL? = nil, bold: URL? = nil) {\n        self.light = light\n        self.book = book\n        self.bold = bold\n    }\n}\n\n</code></pre>\n<p><strong>Implementation Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">// 1. Locate your font files in the main Bundle\nlet lightFontUrl = Bundle.main.url(forResource: \"BrandFont-Light\", withExtension: \"ttf\")\nlet bookFontUrl = Bundle.main.url(forResource: \"BrandFont-Regular\", withExtension: \"ttf\")\nlet boldFontUrl = Bundle.main.url(forResource: \"BrandFont-Bold\", withExtension: \"ttf\")\n// 2. Create the Font Suite\nlet myFontSuite = BrandFontSuite(\n    light: lightFontUrl,\n    book: bookFontUrl,\n    bold: boldFontUrl\n)\n// 3. Create the Theme\nlet myTheme = Theme(\n    primaryColor: UIColor(named: \"BrandBlue\"),\n    accentColor: UIColor.cyan,\n    fonts: myFontSuite\n)\n// 4. Pass to Configuration (Optional parameter)\nConfiguration.setup(\n    token: \"...\",\n    language: .en,\n    theme: myTheme\n)\n\n</code></pre>\n<hr />\n<h2 id=\"3-session-management\">3. Session Management</h2>\n<p>The SDK operates using a stardard JWT Bearer token. Your application shall refresh the user's token during a session. You could implement this behaviour using the <strong>updateToken</strong> method of the SDK to ensure API requests do not fail.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">// Call this whenever your auth provider refreshes the token\nConfiguration.updateToken(token: \"NEW_VALID_ACCESS_TOKEN\")\n\n</code></pre>\n<hr />\n<h2 id=\"4-ui-modules\">4. UI Modules</h2>\n<p>All SDK modules are exposed as standard <code>SwiftUI.View</code> components.</p>\n<h3 id=\"training\">Training</h3>\n<p>The <strong>Training</strong> module guides the user through their assigned workout session.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">// 1. Standard Training View\nTrainingViews.Training()\n// 2. Training with Precision Program Feature\n// Set 'enablePrecisionProgramFeature' to true to enable specific precision logic.\nTrainingViews.Training(enablePrecisionProgramFeature: true)\n\n</code></pre>\n<h3 id=\"workout-history\">Workout History</h3>\n<p>The <strong>PerformedWorkoutResults</strong> views allow users to browse and analyze their past activities.</p>\n<h4 id=\"list-view\">List View</h4>\n<p>Displays a list of completed workouts.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">PerformedWorkoutResultsViews.PerformedWorkoutResultList()\n\n</code></pre>\n<h4 id=\"detail-view\">Detail View</h4>\n<p>Displays the summary and results of a specific workout.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">PerformedWorkoutResultsViews.PerformedWorkoutResultDetail(workoutId: \"WORKOUT_ID_STRING\")\n\n</code></pre>\n<h4 id=\"exercise-detail-view\">Exercise Detail View</h4>\n<p>Displays granular data for a specific exercise within a workout.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">PerformedWorkoutResultsViews.PerformedWorkoutResultExerciseDetail(\n    workoutId: \"WORKOUT_ID_STRING\",\n    exerciseId: \"EXERCISE_ID_STRING\"\n)\n\n</code></pre>\n<h3 id=\"equipment\">Equipment</h3>\n<p>The <strong>Equipment</strong> view provides the interface (e.g., QR Code scanning) for users to log in to connected fitness equipment.</p>\n<p><em>Note: Ensure your</em> <code>_Info.plist_</code> <em>includes necessary permissions (e.g., Camera Usage) if QR scanning is required.</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">EquipmentViews.EquipmentLogin()\n\n</code></pre>\n<h3 id=\"wellness-passport\">Wellness Passport</h3>\n<p>The <strong>WellnessPassport</strong> view displays the user's digital wellness summary.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">WellnessPassportViews.WellnessPassport()\n\n</code></pre>\n<hr />\n<h2 id=\"5-reference-constants--enums\">5. Reference: Constants &amp; Enums</h2>\n<h3 id=\"environment\">Environment</h3>\n<p>Use those options to switch between sandbox and production backends. Defaults to <code>.production</code> if not specified.</p>\n<ul>\n<li><p><code>.sandbox</code>: Development/Testing environment.</p>\n</li>\n<li><p><code>.production</code> (raw value <code>\"prod\"</code>): Live environment.</p>\n</li>\n</ul>\n<h3 id=\"language\">Language</h3>\n<p>The SDK supports the following languages. Pass these to <code>Configuration.setup</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Enum Case</th>\n<th>Raw Value</th>\n<th>Language</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>.it</code></td>\n<td><code>\"it\"</code></td>\n<td>Italian</td>\n</tr>\n<tr>\n<td><code>.en</code></td>\n<td><code>\"en\"</code></td>\n<td>English (Generic)</td>\n</tr>\n<tr>\n<td><code>.enGB</code></td>\n<td><code>\"en-GB\"</code></td>\n<td>English (UK)</td>\n</tr>\n<tr>\n<td><code>.fr</code></td>\n<td><code>\"fr\"</code></td>\n<td>French</td>\n</tr>\n<tr>\n<td><code>.es</code></td>\n<td><code>\"es\"</code></td>\n<td>Spanish</td>\n</tr>\n<tr>\n<td><code>.ptBR</code></td>\n<td><code>\"pt-BR\"</code></td>\n<td>Portuguese (Brazil)</td>\n</tr>\n<tr>\n<td><code>.da</code></td>\n<td><code>\"da\"</code></td>\n<td>Danish</td>\n</tr>\n<tr>\n<td><code>.no</code></td>\n<td><code>\"no\"</code></td>\n<td>Norwegian</td>\n</tr>\n<tr>\n<td><code>.sv</code></td>\n<td><code>\"sv\"</code></td>\n<td>Swedish</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"8664aac1-b972-4604-85e7-6219745f1c59"},{"name":"ANDROID","item":[],"id":"824d3ac8-6dae-4aeb-a777-2eddd630f527","description":"<h1 id=\"mywellnessenterprisesdk-android-documentation\">MyWellnessEnterpriseSDK (Android) Documentation</h1>\n<h2 id=\"overview\">Overview</h2>\n<p><strong>MyWellnessEnterpriseSDK</strong> is a native Android framework built using <strong>Jetpack Compose</strong>. It provides enterprise wellness functionalities, including workout execution, history tracking, equipment connectivity, and user wellness passports.</p>\n<h2 id=\"table-of-contents\">Table of Contents</h2>\n<ol>\n<li><p>Configuration &amp; Initialization</p>\n</li>\n<li><p>Theming &amp; Custom Fonts</p>\n</li>\n<li><p>Session Management</p>\n</li>\n<li><p>UI Modules</p>\n</li>\n<li><p>Reference: Constants &amp; Enums</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"1-configuration--initialization\">1. Configuration &amp; Initialization</h2>\n<p>The SDK must be configured before accessing any UI components. This setup is typically performed in your <code>Application</code> class or the <code>onCreate</code> method of your main Activity.</p>\n<h3 id=\"setup-method\">Setup Method</h3>\n<p>Use the singleton object <code>Configuration.setup</code> to initialize the SDK.</p>\n<p><strong>Note:</strong> The <code>environment</code> and <code>theme</code> parameters are <strong>optional</strong>.</p>\n<ul>\n<li><p>If <code>environment</code> is omitted, it defaults to <code>Environment.PRODUCTION</code>.</p>\n</li>\n<li><p>If <code>theme</code> is omitted, the default SDK styling is applied.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.common.Configuration\nimport com.mywellness.enterprise.common.Language\nimport com.mywellness.enterprise.common.Environment\n// Inside your Application or Activity\nfun initSdk() {\n    // 1. Basic Initialization\n    Configuration.setup(\n        token = \"YOUR_USER_ACCESS_TOKEN\",\n        language = Language.EN_GB\n    )\n    // OR\n    // 2. Full Initialization with Environment and Theme\n    Configuration.setup(\n        token = \"YOUR_USER_ACCESS_TOKEN\",\n        language = Language.EN_GB,\n        environment = Environment.SANDBOX, // Defaults to PRODUCTION if omitted\n        theme = myCustomTheme              // Defaults to null if omitted\n    )\n}\n\n</code></pre>\n<hr />\n<h2 id=\"2-theming--custom-fonts\">2. Theming &amp; Custom Fonts</h2>\n<p>You can customize the SDK's visual appearance using the <code>Theme</code> data class. This allows you to inject your brand colors (as Integers) and custom font files (as URIs).</p>\n<h3 id=\"the-theme-class\">The Theme Class</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">data class Theme(\n    val primaryColor: Int? = null, // Android Color Int\n    val accentColor: Int? = null,  // Android Color Int\n    val fonts: BrandFontSuite? = null\n)\n\n</code></pre>\n<h3 id=\"configuring-custom-fonts-brandfontsuite\">Configuring Custom Fonts (BrandFontSuite)</h3>\n<p>To use custom fonts, you must provide the <strong>Android URIs</strong> of the font files (e.g., from your <code>res/font</code> resources) to the <code>BrandFontSuite</code>.</p>\n<p><strong>BrandFontSuite Definition:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">data class BrandFontSuite(\n    val light: Uri? = null,\n    val book: Uri? = null, // Regular/Normal weight\n    val bold: Uri? = null\n)\n\n</code></pre>\n<p><strong>Implementation Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import android.net.Uri\nimport android.graphics.Color\nimport com.mywellness.enterprise.common.Theme\nimport com.mywellness.enterprise.common.BrandFontSuite\n// 1. Create Helper to get Resource URI\nfun getResourceUri(resId: Int): Uri {\n    return Uri.parse(\"android.resource://YOUR_PACKAGE_NAME/$resId\")\n}\n// 2. Define Fonts (assuming fonts are in res/font/...)\nval myFontSuite = BrandFontSuite(\n    light = getResourceUri(R.font.my_brand_light),\n    book = getResourceUri(R.font.my_brand_regular),\n    bold = getResourceUri(R.font.my_brand_bold)\n)\n// 3. Define Theme\nval myTheme = Theme(\n    primaryColor = Color.BLUE,       // Or ContextCompat.getColor(context, R.color.primary)\n    accentColor = Color.CYAN,\n    fonts = myFontSuite\n)\n// 4. Apply in Setup\nConfiguration.setup(\n    token = \"...\",\n    language = Language.EN,\n    theme = myTheme\n)\n\n</code></pre>\n<hr />\n<h2 id=\"3-session-management\">3. Session Management</h2>\n<p>The SDK operates using a stardard JWT Bearer token. Your application shall refresh the user's token during a session. You could implement this behaviour using the <strong>updateToken</strong> method of the SDK to ensure API requests do not fail.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.common.Configuration\n// Call this whenever your auth provider refreshes the token\nConfiguration.updateToken(\"NEW_VALID_ACCESS_TOKEN\")\n\n</code></pre>\n<hr />\n<h2 id=\"4-ui-modules\">4. UI Modules</h2>\n<p>All SDK modules are exposed as Jetpack Compose <code>@Composable</code> functions. They can be embedded directly into your Compose hierarchy.</p>\n<h3 id=\"training\">Training</h3>\n<p>The <strong>Training</strong> module guides the user through their assigned workout session.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.training.TrainingViews\n@Composable\nfun MyScreen() {\n    \n    // 1. Standard Training View\n    TrainingViews.Training()\n    // 2. Training with Precision Program Feature\n    // Set 'enablePrecisionProgramFeature' to true to enable specific precision logic.\n    TrainingViews.Training(enablePrecisionProgramFeature = true)\n\n}\n\n</code></pre>\n<h3 id=\"workout-history\">Workout History</h3>\n<p>The <strong>PerformedWorkoutResultsViews</strong> object allows users to browse and analyze their past activities.</p>\n<h4 id=\"list-view\">List View</h4>\n<p>Displays a list of completed workouts.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.performed_workout_results.PerformedWorkoutResultsViews\n@Composable\nfun HistoryScreen() {\n    PerformedWorkoutResultsViews.PerformedWorkoutResultList()\n}\n\n</code></pre>\n<h4 id=\"detail-view\">Detail View</h4>\n<p>Displays the summary and results of a specific workout.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">@Composable\nfun DetailScreen(id: String) {\n    PerformedWorkoutResultsViews.PerformedWorkoutResultDetail(workoutId = id)\n}\n\n</code></pre>\n<h4 id=\"exercise-detail-view\">Exercise Detail View</h4>\n<p>Displays granular data for a specific exercise within a workout.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">@Composable\nfun ExerciseScreen(wId: String, eId: String) {\n    PerformedWorkoutResultsViews.PerformedWorkoutResultExerciseDetail(\n        workoutId = wId,\n        exerciseId = eId\n    )\n}\n\n</code></pre>\n<h3 id=\"equipment-login\">Equipment Login</h3>\n<p>The <strong>EquipmentViews</strong> object provides the interface (e.g., QR Code scanning) for users to log in to connected fitness equipment.</p>\n<p><em>Note: Ensure your</em> <code>_AndroidManifest.xml_</code> <em>includes necessary permissions (e.g., Camera) if QR scanning is required.</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.equipment.EquipmentViews\n@Composable\nfun LoginScreen() {\n    EquipmentViews.EquipmentLogin()\n}\n\n</code></pre>\n<h3 id=\"wellness-passport\">Wellness Passport</h3>\n<p>The <strong>WellnessPassportViews</strong> object displays the user's digital wellness summary.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-kotlin\">import com.mywellness.enterprise.wellness_passport.WellnessPassportViews\n@Composable\nfun PassportScreen() {\n    WellnessPassportViews.WellnessPassport()\n}\n\n</code></pre>\n<hr />\n<h2 id=\"5-reference-constants--enums\">5. Reference: Constants &amp; Enums</h2>\n<h3 id=\"environment\">Environment</h3>\n<p>Use those options to switch between sandbox and production backends. Defaults to <code>PRODUCTION</code> if not specified.</p>\n<ul>\n<li><p><code>Environment.SANDBOX</code> (value: \"sandbox\")</p>\n</li>\n<li><p><code>Environment.PRODUCTION</code> (value: \"prod\")</p>\n</li>\n</ul>\n<h3 id=\"language\">Language</h3>\n<p>The SDK supports the following languages. Pass these to <code>Configuration.setup</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Enum Constant</th>\n<th>Value</th>\n<th>Language</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Language.IT</code></td>\n<td>\"it\"</td>\n<td>Italian</td>\n</tr>\n<tr>\n<td><code>Language.EN</code></td>\n<td>\"en\"</td>\n<td>English</td>\n</tr>\n<tr>\n<td><code>Language.EN_GB</code></td>\n<td>\"en-GB\"</td>\n<td>English (UK)</td>\n</tr>\n<tr>\n<td><code>Language.FR</code></td>\n<td>\"fr\"</td>\n<td>French</td>\n</tr>\n<tr>\n<td><code>Language.ES</code></td>\n<td>\"es\"</td>\n<td>Spanish</td>\n</tr>\n<tr>\n<td><code>Language.PT_BR</code></td>\n<td>\"pt-BR\"</td>\n<td>Portuguese (Brazil)</td>\n</tr>\n<tr>\n<td><code>Language.DA</code></td>\n<td>\"da\"</td>\n<td>Danish</td>\n</tr>\n<tr>\n<td><code>Language.NO</code></td>\n<td>\"no\"</td>\n<td>Norwegian</td>\n</tr>\n<tr>\n<td><code>Language.SV</code></td>\n<td>\"sv\"</td>\n<td>Swedish</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"824d3ac8-6dae-4aeb-a777-2eddd630f527"},{"name":"Migration guide","item":[{"name":"iOS","item":[],"id":"2cad2436-ec85-4bca-8d9d-120f1f554b26","description":"<p>Here is a summary of the tasks required to migrate from <strong>OpenPlatformSDK</strong> to <strong>MyWellnessEnterpriseSDK</strong>:</p>\n<ul>\n<li><p><strong>Remove Legacy Assets</strong>: Delete all manual HTML/CSS bundles (e.g., <code>/assets/mywellness</code>) from your project; the new SDK is a self-contained framework and does not require local web assets.</p>\n</li>\n<li><p><strong>Centralize Initialization</strong>: Implement <code>Configuration.setup</code> at the application launch (e.g., <code>AppDelegate</code>), passing the <code>token</code>, <code>language</code>, and <code>environment</code>.</p>\n</li>\n<li><p><strong>Migrate Branding to Code</strong>: Instead of requesting a custom binary from support, define a <code>Theme</code> struct in code using native <code>UIColor</code>s and local <code>URL</code>s to font files for the <code>BrandFontSuite</code>.</p>\n</li>\n<li><p><strong>Update Localization Codes</strong>: Replace localization string identifier with the <code>Language</code> enum. Please note that some specific codes change such as <code>.sv</code> for Swedish (previously <code>\"sw\"</code>) and <code>.da</code> for Danish (previously <code>\"dk\"</code>).</p>\n</li>\n<li><p><strong>Replace UI Components</strong>: Swap legacy web view calls with the new native SwiftUI Views:</p>\n</li>\n<li><p>Use <code>EquipmentViews.EquipmentLogin()</code> for equipment login.</p>\n</li>\n<li><p>Use <code>PerformedWorkoutResultsViews</code> for workout results.</p>\n</li>\n<li><p>Use <code>WellnessPassportViews</code> for wellness passport.</p>\n</li>\n<li><p>Use <code>TrainingViews</code> for training.</p>\n</li>\n<li><p><strong>Handle Token Refresh</strong>: Implement <code>Configuration.updateToken(token:)</code> to manually update the SDK whenever your application refreshes the user's authentication session.</p>\n</li>\n</ul>\n","_postman_id":"2cad2436-ec85-4bca-8d9d-120f1f554b26"},{"name":"ANDROID","item":[],"id":"3e333fd1-b543-4682-b4e7-071e3dcfa875","description":"<p>Here is the summary of the tasks required to migrate from <strong>OpenPlatformSDK</strong> to the <strong>Android</strong> version of <strong>MyWellnessEnterpriseSDK</strong>:</p>\n<ul>\n<li><p><strong>Remove Legacy Assets</strong>: Delete all manual HTML/CSS bundles (e.g., <code>src/main/assets/mywellness</code>) from your project; the new SDK is a native library and does not require local web assets.</p>\n</li>\n<li><p><strong>Centralize Initialization</strong>: Implement <code>Configuration.setup</code> at the application startup (e.g., in your <code>Application</code> class or main <code>Activity</code> <code>onCreate</code>), passing the <code>token</code>, <code>language</code>, and <code>environment</code>.</p>\n</li>\n<li><p><strong>Migrate Branding to Code</strong>: Instead of requesting a custom binary, define a <code>Theme</code> data class in code using Android Color Ints (e.g., <code>Color.BLUE</code>) and <code>Uri</code>s to font resources (e.g., <code>android.resource://...</code>) for the <code>BrandFontSuite</code>.</p>\n</li>\n<li><p><strong>Update Localization Codes</strong>: Replace localization string identifier with the <code>Language</code> enum. Please note that some specific codes change such as <code>Language.SV</code> for Swedish (previously <code>\"sw\"</code>) and <code>Language.DA</code> for Danish (previously <code>\"dk\"</code>).</p>\n</li>\n<li><p><strong>Replace UI Components</strong>: Swap legacy web view calls with the new native <strong>Jetpack Compose</strong> functions:</p>\n</li>\n<li><p>Use <code>EquipmentViews.EquipmentLogin()</code> for equipment login.</p>\n</li>\n<li><p>Use <code>PerformedWorkoutResultsViews</code> for workout results.</p>\n</li>\n<li><p>Use <code>WellnessPassportViews</code> for wellness passport.</p>\n</li>\n<li><p>Use <code>TrainingViews</code> for training.</p>\n</li>\n<li><p><strong>Handle Token Refresh</strong>: Implement <code>Configuration.updateToken(token)</code> to manually update the SDK singleton whenever your application refreshes the user's authentication session.</p>\n</li>\n</ul>\n","_postman_id":"3e333fd1-b543-4682-b4e7-071e3dcfa875"}],"id":"13b295e6-c5c4-4314-a3c4-81ae99d760d3","_postman_id":"13b295e6-c5c4-4314-a3c4-81ae99d760d3","description":""}],"id":"e5b2d549-dc63-41de-9127-cc1373cf7334","description":"<h2 id=\"introduction\">Introduction</h2>\n<p>This guide documents Mywellness's enterprise solution for integrating fitness experiences into your application. It provides comprehensive instructions for implementing Mywellness functionality without requiring our standalone mobile app. You'll learn how to evaluate and select the integration approach that best fits your needs.</p>\n<p>Mywellness offers three core fitness experiences that can be seamlessly integrated into your application:</p>\n<ol>\n<li><p>Login on equipment with QR Code - Allow users to quickly log into Mywellness equipment by scanning a QR code. This is needed for the other experiences to work.</p>\n</li>\n<li><p>Show workout results - Access and display detailed workout data and performance metrics.</p>\n</li>\n<li><p>Show health assessment and biometrics data - View comprehensive health data including biometric measurements and assessment results.</p>\n</li>\n<li><p>Show Training Program prescription and AI generated training sessions</p>\n</li>\n</ol>\n<p>In the following paragraph you will find the complete guide to integrate the SDK on your mobile application. Please refer to the Migration guide in case you are already using the old OpenPlatformSDK and you need to migrate to the MywellnessEnterpriseSDK.</p>\n","_postman_id":"e5b2d549-dc63-41de-9127-cc1373cf7334"},{"name":"Error Codes","item":[],"id":"4f795d45-37ec-4930-80cb-40109f01a8b9","description":"<p>In this section it is available the list of error codes (unless the success code 200 OK that documents the response for each API) that the API could return. All the error conditions are returned with the following JSON format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errorCode\": \"403002\",\n    \"message\": \"Auth Domain not valid\"\n}\n\n</code></pre>\n<p><strong>Authentication API</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>statusCode</strong></th>\n<th><strong>errorCode</strong></th>\n<th><strong>message</strong></th>\n<th><strong>notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>403002</td>\n<td>Auth Domain not valid</td>\n<td></td>\n</tr>\n<tr>\n<td>400</td>\n<td>403003</td>\n<td>API key not valid</td>\n<td></td>\n</tr>\n<tr>\n<td>403</td>\n<td>403000</td>\n<td>Forbidden</td>\n<td>This is returned also when the MW Enterprise license is not valid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>404000</td>\n<td>Not Found</td>\n<td>This is returned also when the user_id provided (the id of the user in the external system) is not present in MW platform</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Wellness Age API</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>statusCode</strong></th>\n<th><strong>errorCode</strong></th>\n<th><strong>message</strong></th>\n<th><strong>notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>404000</td>\n<td>Not Found</td>\n<td>Wellness Age not present</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Notes</strong>:</p>\n<p>Please note that the Authentication error codes applies also to all the other API because the API key, auth domain and the user are checked in each call.</p>\n","_postman_id":"4f795d45-37ec-4930-80cb-40109f01a8b9"}]}