{"items":[{"type":"link","fsPath":"mms-api-v2/index.md","metadata":{"type":"markdown"},"label":"Welcome","link":"/mms-api-v2","routeSlug":"/mms-api-v2"},{"type":"link","fsPath":"mms-api-v2/guide.md","metadata":{"type":"markdown"},"label":"Get started","link":"/mms-api-v2/guide","routeSlug":"/mms-api-v2/guide"},{"type":"group","fsPath":"mms-api-v2/tutorials/integration-types.md","metadata":{"type":"markdown"},"label":"Integration with EGYM","link":"/mms-api-v2/tutorials/integration-types","routeSlug":"/mms-api-v2/tutorials/integration-types","items":[{"type":"link","fsPath":"mms-api-v2/tutorials/member-account-example.md","metadata":{"type":"markdown"},"label":"Push member data to EGYM","link":"/mms-api-v2/tutorials/member-account-example","routeSlug":"/mms-api-v2/tutorials/member-account-example"},{"type":"link","fsPath":"mms-api-v2/tutorials/membership-sync.md","metadata":{"type":"markdown"},"label":"Pull member data from EGYM","link":"/mms-api-v2/tutorials/membership-sync","routeSlug":"/mms-api-v2/tutorials/membership-sync"},{"type":"link","fsPath":"mms-api-v2/tutorials/conflicts-resolution.md","metadata":{"type":"markdown"},"label":"Conflict resolution","link":"/mms-api-v2/tutorials/conflicts-resolution","routeSlug":"/mms-api-v2/tutorials/conflicts-resolution"},{"type":"link","fsPath":"mms-api-v2/tutorials/product-booking.md","metadata":{"type":"markdown"},"label":"Product Booking","link":"/mms-api-v2/tutorials/product-booking","routeSlug":"/mms-api-v2/tutorials/product-booking"},{"type":"link","fsPath":"mms-api-v2/tutorials/rfid-assignment.md","metadata":{"type":"markdown"},"label":"RFID Assignment","link":"/mms-api-v2/tutorials/rfid-assignment","routeSlug":"/mms-api-v2/tutorials/rfid-assignment"},{"type":"link","fsPath":"mms-api-v2/tutorials/nfc-assignment.md","metadata":{"type":"markdown"},"label":"NFC Assignment","link":"/mms-api-v2/tutorials/nfc-assignment","routeSlug":"/mms-api-v2/tutorials/nfc-assignment"},{"type":"link","fsPath":"mms-api-v2/tutorials/checkin-checkout.md","metadata":{"type":"markdown"},"label":"Check-in / Check-out","link":"/mms-api-v2/tutorials/checkin-checkout","routeSlug":"/mms-api-v2/tutorials/checkin-checkout"}]},{"type":"group","fsPath":"mms-api-v2/tutorials/wellpass-integration.md","metadata":{"type":"markdown"},"label":"Integration with Wellpass","link":"/mms-api-v2/tutorials/wellpass-integration","routeSlug":"/mms-api-v2/tutorials/wellpass-integration","items":[{"type":"link","fsPath":"mms-api-v2/tutorials/wellpass-checkin.md","metadata":{"type":"markdown"},"label":"Wellpass check-in workflow","link":"/mms-api-v2/tutorials/wellpass-checkin","routeSlug":"/mms-api-v2/tutorials/wellpass-checkin"},{"type":"link","fsPath":"mms-api-v2/tutorials/pay-with-wellpass.md","metadata":{"type":"markdown"},"label":"Pay with Wellpass integration guide","link":"/mms-api-v2/tutorials/pay-with-wellpass","routeSlug":"/mms-api-v2/tutorials/pay-with-wellpass"}]},{"type":"separator","label":"API Specifications"},{"type":"link","fsPath":"mms-api-v2/authentication.md","metadata":{"type":"markdown"},"label":"Authentication","link":"/mms-api-v2/authentication","routeSlug":"/mms-api-v2/authentication"},{"type":"link","fsPath":"mms-api-v2/rate-limits.md","metadata":{"type":"markdown"},"label":"Rate Limits","link":"/mms-api-v2/rate-limits","routeSlug":"/mms-api-v2/rate-limits"},{"type":"link","fsPath":"mms-api-v2/errors.md","metadata":{"type":"markdown"},"label":"Error codes","link":"/mms-api-v2/errors","routeSlug":"/mms-api-v2/errors"},{"type":"separator","separatorLine":true},{"type":"separator","label":"API Reference"},{"type":"link","fsPath":"mms-api-v2/change-log.md","metadata":{"type":"markdown"},"label":"Change log","link":"/mms-api-v2/change-log","routeSlug":"/mms-api-v2/change-log"},{"type":"link","label":"MMS API V2","link":"/mms-api-v2/apis/mms-v2","routeSlug":"/mms-api-v2/apis/mms-v2"},{"type":"separator","label":"Member Account Management"},{"type":"group","label":"Member Account","link":"/mms-api-v2/apis/mms-v2/member-account","routeSlug":"/mms-api-v2/apis/mms-v2/member-account","items":[{"label":"Retrieve an account","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/retrieveaccount","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/retrieveaccount","metadata":{"seo":{"title":"Retrieve an account","description":"Retrieve an account using accountId."}},"httpPath":"/api/v2/accounts/{accountId}"},{"label":"Update an account","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/updateaccount","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/updateaccount","metadata":{"seo":{"title":"Update an account","description":"Update an account using accountId."}},"httpPath":"/api/v2/accounts/{accountId}"},{"label":"Delete an account","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/eraseaccountmembershipdata","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/eraseaccountmembershipdata","metadata":{"seo":{"title":"Delete an account","description":"Delete an account using accountId. eraseMemberData parameter is optional and defaults to false. If set to true it removes all member data that belongs to a gym (personal data, contract data, rfid, product bookings). If set to false it deletes only membershipId and contract data."}},"httpPath":"/api/v2/accounts/{accountId}"},{"label":"Partially update an account","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/partialupdate","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/partialupdate","metadata":{"seo":{"title":"Partially update an account","description":"Partially update an account using accountId. Only non-null fields in the request will be updated. This is optimized for small, incremental changes."}},"httpPath":"/api/v2/accounts/{accountId}"},{"label":"Upload account image","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/uploadimage","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/uploadimage","metadata":{"seo":{"title":"Upload account image","description":"This endpoint allows to upload a profile picture to the specified user using accountId (Supported formats: JPG, JPEG, PNG. Max file size: 16MB)"}},"httpPath":"/api/v2/accounts/{accountId}/images"},{"label":"Delete account image","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/deleteimage","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/deleteimage","metadata":{"seo":{"title":"Delete account image","description":"This endpoint allows to delete a profile picture of the specified user using accountId"}},"httpPath":"/api/v2/accounts/{accountId}/images"},{"label":"List member accounts","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/listaccounts","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/listaccounts","metadata":{"seo":{"title":"List member accounts","description":"Request all member accounts with paginated response. Result is always ordered by update timestamp (DESC). By default only accounts of the current gym are returned, otherwise set currentGymOnly to false."}},"httpPath":"/api/v2/accounts"},{"label":"Create an account","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/publishaccount","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/publishaccount","metadata":{"seo":{"title":"Create an account","description":"Create an account in the EGYM System."}},"httpPath":"/api/v2/accounts"},{"label":"Retrieve an account roles","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/getroles","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/getroles","metadata":{"seo":{"title":"Retrieve an account roles","description":"Retrieve an account roles in the current gym for given accountId"}},"httpPath":"/api/v2/accounts/{accountId}/roles"},{"label":"Set an account roles","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/assignroles","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/assignroles","metadata":{"seo":{"title":"Set an account roles","description":"Update an account roles using accountId."}},"httpPath":"/api/v2/accounts/{accountId}/roles"},{"label":"Retrieve an account by RFID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/getbyrfid","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/getbyrfid","metadata":{"seo":{"title":"Retrieve an account by RFID","description":"Retrieve an account using RFID."}},"httpPath":"/api/v2/accounts/rfid/{rfid}"},{"label":"Retrieve an account by NFC","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/getbynfc","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/getbynfc","metadata":{"seo":{"title":"Retrieve an account by NFC","description":"Retrieve an account using NFC."}},"httpPath":"/api/v2/accounts/nfc/{nfc}"},{"label":"Retrieve an account by membership ID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/retrieveaccountbymembershipid","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/retrieveaccountbymembershipid","metadata":{"seo":{"title":"Retrieve an account by membership ID","description":"Retrieve an account using membershipId."}},"httpPath":"/api/v2/accounts/membership/{membershipId}"},{"label":"Retrieve an account by email","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account/getbyemail","routeSlug":"/mms-api-v2/apis/mms-v2/member-account/getbyemail","metadata":{"seo":{"title":"Retrieve an account by email","description":"Retrieve an account using email."}},"httpPath":"/api/v2/accounts/email/{email}"}]},{"type":"group","label":"Member Account Roles","link":"/mms-api-v2/apis/mms-v2/member-account-roles","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-roles","items":[{"label":"Retrieve an account roles","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-roles/getroles","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-roles/getroles","metadata":{"seo":{"title":"Retrieve an account roles","description":"Retrieve an account roles in the current gym for given accountId"}},"httpPath":"/api/v2/accounts/{accountId}/roles"},{"label":"Set an account roles","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-roles/assignroles","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-roles/assignroles","metadata":{"seo":{"title":"Set an account roles","description":"Update an account roles using accountId."}},"httpPath":"/api/v2/accounts/{accountId}/roles"}]},{"type":"group","label":"Member RFIDs","link":"/mms-api-v2/apis/mms-v2/member-rfids","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids","items":[{"label":"Retrieve user RFIDs","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-rfids/getuserrfids","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids/getuserrfids","metadata":{"seo":{"title":"Retrieve user RFIDs","description":"Returns a list of RFIDs of the user."}},"httpPath":"/api/v2/accounts/{accountId}/rfids"},{"label":"Update RFIDs of a user","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-rfids/updateusersrfids","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids/updateusersrfids","metadata":{"seo":{"title":"Update RFIDs of a user","description":"Note: If this field is sent we will replace the RFID list of this user with the info sent (for an empty list, we will delete all RFID connections of this user). The operation does not affect RFIDs assigned from other sources like EGYM machines, Fitness Hub etc."}},"httpPath":"/api/v2/accounts/{accountId}/rfids"},{"label":"Add RFID","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-rfids/addrfidtouser","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids/addrfidtouser","metadata":{"seo":{"title":"Add RFID","description":"Add RFID to specified user."}},"httpPath":"/api/v2/accounts/{accountId}/rfids"},{"label":"Retrieve an account by RFID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-rfids/getbyrfid","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids/getbyrfid","metadata":{"seo":{"title":"Retrieve an account by RFID","description":"Retrieve an account using RFID."}},"httpPath":"/api/v2/accounts/rfid/{rfid}"},{"label":"Remove RFID","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-rfids/deleterfid","routeSlug":"/mms-api-v2/apis/mms-v2/member-rfids/deleterfid","metadata":{"seo":{"title":"Remove RFID","description":"Delete specified RFID from user"}},"httpPath":"/api/v2/accounts/{accountId}/rfids/{rfid}"}]},{"type":"group","label":"Products booking","link":"/mms-api-v2/apis/mms-v2/products-booking","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking","items":[{"label":"Retrieve user activated products","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/products-booking/userproducts","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking/userproducts","metadata":{"seo":{"title":"Retrieve user activated products","description":"Returns a list of products that are activated for the specified user and gym and are active now or in the future."}},"httpPath":"/api/v2/accounts/{accountId}/products"},{"label":"Activate a product or update product booking","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/products-booking/productbooking","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking/productbooking","metadata":{"seo":{"title":"Activate a product or update product booking","description":"This endpoint activates or updates a product for a user in a gym. The product is active starting from the specified start date to the end date in Timezone of the club."}},"httpPath":"/api/v2/accounts/{accountId}/products"},{"label":"Retrieve gym products","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/products-booking/listgymproducts","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking/listgymproducts","metadata":{"seo":{"title":"Retrieve gym products","description":"Returns a list of products that are available in the gym and can be activated for a user."}},"httpPath":"/api/v2/products"},{"label":"Product details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/products-booking/productdetails","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking/productdetails","metadata":{"seo":{"title":"Product details","description":"Returns the details of a specific product."}},"httpPath":"/api/v2/products/{productId}"},{"label":"Deactivate a product","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/products-booking/deactivateuserproduct","routeSlug":"/mms-api-v2/apis/mms-v2/products-booking/deactivateuserproduct","metadata":{"seo":{"title":"Deactivate a product","description":"This endpoint deactivates a product for a user in a gym."}},"httpPath":"/api/v2/accounts/{accountId}/products/{productId}"}]},{"type":"separator","label":"NFC management (Beta version)"},{"type":"group","label":"Member Account NFC","link":"/mms-api-v2/apis/mms-v2/member-account-nfc","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-nfc","items":[{"label":"Retrieve a member account NFC token","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-nfc/getaccountnfctoken","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-nfc/getaccountnfctoken","metadata":{"seo":{"title":"Retrieve a member account NFC token","description":"Retrieve a member account NFC token"}},"httpPath":"/api/v2/accounts/{accountId}/nfc"},{"label":"Assign an NFC token to a member account","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-nfc/assignaccountnfctoken","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-nfc/assignaccountnfctoken","metadata":{"seo":{"title":"Assign an NFC token to a member account","description":"Assign an NFC token to a member account"}},"httpPath":"/api/v2/accounts/{accountId}/nfc"},{"label":"Delete a member account NFC token","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-nfc/deleteaccountnfctoken","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-nfc/deleteaccountnfctoken","metadata":{"seo":{"title":"Delete a member account NFC token","description":"Delete a member account NFC token"}},"httpPath":"/api/v2/accounts/{accountId}/nfc"},{"label":"Retrieve an account by NFC","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/member-account-nfc/getbynfc","routeSlug":"/mms-api-v2/apis/mms-v2/member-account-nfc/getbynfc","metadata":{"seo":{"title":"Retrieve an account by NFC","description":"Retrieve an account using NFC."}},"httpPath":"/api/v2/accounts/nfc/{nfc}"}]},{"type":"separator","label":"Member Migration"},{"type":"group","label":"Migrating members","link":"/mms-api-v2/apis/mms-v2/migrating-members","routeSlug":"/mms-api-v2/apis/mms-v2/migrating-members","items":[{"label":"Migrate an account","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/migrating-members/migrate","routeSlug":"/mms-api-v2/apis/mms-v2/migrating-members/migrate","metadata":{"seo":{"title":"Migrate an account","description":"Migrate membership from V1 API using old EGYM user id (if already migrated then just returns membership)."}},"httpPath":"/api/v2/migrate"}]},{"type":"separator","label":"Gym Visit Management"},{"type":"group","label":"Gym Visit","link":"/mms-api-v2/apis/mms-v2/gym-visit","routeSlug":"/mms-api-v2/apis/mms-v2/gym-visit","items":[{"label":"Member Gym Check Out","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/gym-visit/checkout","routeSlug":"/mms-api-v2/apis/mms-v2/gym-visit/checkout","metadata":{"seo":{"title":"Member Gym Check Out","description":"This endpoint informs the EGYM system that the member has left the gym."}},"httpPath":"/api/v2/accounts/{accountId}/checkouts"},{"label":"Member Gym Check In","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/gym-visit/checkin","routeSlug":"/mms-api-v2/apis/mms-v2/gym-visit/checkin","metadata":{"seo":{"title":"Member Gym Check In","description":"This endpoint informs the EGYM system that the member has entered the gym."}},"httpPath":"/api/v2/accounts/{accountId}/checkins"},{"label":"Member Admission","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/gym-visit/checkadmission","routeSlug":"/mms-api-v2/apis/mms-v2/gym-visit/checkadmission","metadata":{"seo":{"title":"Member Admission","description":"This endpoint is currently used only for members with membership type “CORPORATE_FITNESS”. It verifies if the specified member can have access to the desired gym. The MMS should use the response status to allow or block the member from entering the gym. As a side-effect this access is logged in the EGYM Corporate Fitness system if the admission was granted."}},"httpPath":"/api/v2/accounts/{accountId}/admissions"},{"label":"List Corporate Fitness member accounts","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/gym-visit/getcorporatefitnessmemberaccounts","routeSlug":"/mms-api-v2/apis/mms-v2/gym-visit/getcorporatefitnessmemberaccounts","metadata":{"seo":{"title":"List Corporate Fitness member accounts","description":"Request Corporate Fitness member accounts for the current gym whose corporate membership cancellation date falls into specified date range. The type of membership is always CORPORATE_FITNESS, both endDateFrom and endDateTo parameters are mandatory and apply to corporateFitness.endTimestamp."}},"httpPath":"/api/v2/accounts/corporate-fitness"}]},{"type":"separator","label":"Trainer Task Management"},{"type":"group","label":"Trainer Task","link":"/mms-api-v2/apis/mms-v2/trainer-task","routeSlug":"/mms-api-v2/apis/mms-v2/trainer-task","items":[{"label":"Retrieve task details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/trainer-task/gettask","routeSlug":"/mms-api-v2/apis/mms-v2/trainer-task/gettask","metadata":{"seo":{"title":"Retrieve task details","description":"This endpoint returns the details of a specific trainer task."}},"httpPath":"/api/v2/tasks/{taskId}"},{"label":"Update a task","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/trainer-task/updatetask","routeSlug":"/mms-api-v2/apis/mms-v2/trainer-task/updatetask","metadata":{"seo":{"title":"Update a task","description":"This endpoint updates trainer task in a gym."}},"httpPath":"/api/v2/tasks/{taskId}"},{"label":"Retrieve all tasks","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/trainer-task/gettasks","routeSlug":"/mms-api-v2/apis/mms-v2/trainer-task/gettasks","metadata":{"seo":{"title":"Retrieve all tasks","description":"This endpoint returns a list of trainer tasks that are available in the gym. Can be filtered by modified date time."}},"httpPath":"/api/v2/tasks"},{"label":"Create a task","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/trainer-task/createtask","routeSlug":"/mms-api-v2/apis/mms-v2/trainer-task/createtask","metadata":{"seo":{"title":"Create a task","description":"This endpoint create trainer task in a gym. The trainer task is active until it is completed."}},"httpPath":"/api/v2/tasks"}]},{"type":"separator","label":"Integration"},{"type":"group","label":"Webhooks","link":"/mms-api-v2/apis/mms-v2/webhooks","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks","items":[{"label":"Retrieve webhook entry by id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/getwebhookbyid","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/getwebhookbyid","metadata":{"seo":{"title":"Retrieve webhook entry by id","description":"Retrieve webhook entry by id"}},"httpPath":"/api/v2/webhooks/{id}"},{"label":"Update webhook entry","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/updatewebhook","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/updatewebhook","metadata":{"seo":{"title":"Update webhook entry","description":"Updates webhook url or/and secret by given webhook id"}},"httpPath":"/api/v2/webhooks/{id}"},{"label":"Delete webhook","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/deletewebhook","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/deletewebhook","metadata":{"seo":{"title":"Delete webhook","description":"Deletes webhook url"}},"httpPath":"/api/v2/webhooks/{id}"},{"label":"Retrieve existing webhooks","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/getallwebhooks","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/getallwebhooks","metadata":{"seo":{"title":"Retrieve existing webhooks","description":"Returns a list of webhooks of the related gym."}},"httpPath":"/api/v2/webhooks"},{"label":"Create webhook url","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/createwebhook","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/createwebhook","metadata":{"seo":{"title":"Create webhook url","description":"Creates webhook url entry"}},"httpPath":"/api/v2/webhooks"},{"label":"Trigger webhook","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/webhooks/triggerwebhook","routeSlug":"/mms-api-v2/apis/mms-v2/webhooks/triggerwebhook","metadata":{"seo":{"title":"Trigger webhook","description":"Trigger webhook with type TEST"}},"httpPath":"/api/v2/webhooks/{id}/trigger"}]},{"type":"group","label":"Push notifications","link":"/mms-api-v2/apis/mms-v2/push-notifications","routeSlug":"/mms-api-v2/apis/mms-v2/push-notifications","items":[{"label":"Sent notification using accountId","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/push-notifications/sendpushnotificationbyaccountid","routeSlug":"/mms-api-v2/apis/mms-v2/push-notifications/sendpushnotificationbyaccountid","metadata":{"seo":{"title":"Sent notification using accountId","description":"Simple fire and forget operation to sent notification"}},"httpPath":"/api/v2/accounts/{accountId}/notifications"},{"label":"Sent notification using membershipId","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/apis/mms-v2/push-notifications/sendpushnotificationbymembershipid","routeSlug":"/mms-api-v2/apis/mms-v2/push-notifications/sendpushnotificationbymembershipid","metadata":{"seo":{"title":"Sent notification using membershipId","description":"Simple fire and forget operation to sent notification"}},"httpPath":"/api/v2/accounts/membership/{membershipId}/notifications"}]},{"type":"separator","label":"Deprecated"},{"type":"group","fsPath":"mms-api-v2/gymapi/api.yaml","link":"/mms-api-v2/gymapi/api","routeSlug":"/mms-api-v2/gymapi/api","label":"MMS API V1","items":[{"type":"group","label":"Use-case Overview","link":"/mms-api-v2/gymapi/api/section/use-case-overview","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview","items":[{"type":"link","label":"User Profile (/user)","link":"/mms-api-v2/gymapi/api/section/use-case-overview/user-profile-(user)","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/user-profile-(user)"},{"type":"link","label":"Trainer Tasks (/task)","link":"/mms-api-v2/gymapi/api/section/use-case-overview/trainer-tasks-(task)","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/trainer-tasks-(task)"},{"type":"link","label":"Product (/gym)","link":"/mms-api-v2/gymapi/api/section/use-case-overview/product-(gym)","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/product-(gym)"},{"type":"link","label":"Test environment","link":"/mms-api-v2/gymapi/api/section/use-case-overview/test-environment","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/test-environment"},{"type":"link","label":"Production environment","link":"/mms-api-v2/gymapi/api/section/use-case-overview/production-environment","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/production-environment"},{"type":"link","label":"Note on identifiers","link":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-identifiers","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-identifiers"},{"type":"link","label":"Note on optional fields","link":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-optional-fields","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-optional-fields"},{"type":"link","label":"Encoding","link":"/mms-api-v2/gymapi/api/section/use-case-overview/encoding","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/encoding"},{"type":"link","label":"Error handling","link":"/mms-api-v2/gymapi/api/section/use-case-overview/error-handling","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/error-handling"},{"type":"link","label":"Authentication","link":"/mms-api-v2/gymapi/api/section/use-case-overview/authentication","routeSlug":"/mms-api-v2/gymapi/api/section/use-case-overview/authentication"}]},{"type":"group","label":"gym","link":"/mms-api-v2/gymapi/api/gym","routeSlug":"/mms-api-v2/gymapi/api/gym","items":[{"label":"Products","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/gym/paths/~1gym~1product/get","routeSlug":"/mms-api-v2/gymapi/api/gym/paths/~1gym~1product/get","metadata":{"seo":{"title":"Products","description":"Returns a list of products that are available in the gym and can be activated for a user."}},"httpPath":"/gym/product"},{"label":"Product details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/gym/paths/~1gym~1product~1{productid}/get","routeSlug":"/mms-api-v2/gymapi/api/gym/paths/~1gym~1product~1{productid}/get","metadata":{"seo":{"title":"Product details","description":"Returns the details of a specific product"}},"httpPath":"/gym/product/{productId}"}]},{"type":"group","label":"user","link":"/mms-api-v2/gymapi/api/user","routeSlug":"/mms-api-v2/gymapi/api/user","items":[{"label":"Publish","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1publish/post","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1publish/post","metadata":{"seo":{"title":"Publish","description":"Publish information about a gym member to the EGYM system. The method updates or creates a dataset for the regarding user."}},"httpPath":"/user/publish"},{"label":"Member details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1profile/get","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1profile/get","metadata":{"seo":{"title":"Member details","description":"Get information about a specific EGYM member"}},"httpPath":"/user/profile"},{"label":"Activated products","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1product/get","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1product/get","metadata":{"seo":{"title":"Activated products","description":"Returns a list of products that are activated for the specified user and gym and are active now or in the future."}},"httpPath":"/user/product"},{"label":"Update product","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1product/put","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1product/put","metadata":{"seo":{"title":"Update product","description":"Activates or updates a product for a user in a gym. A product can be activated for a specified user and gym. The product is active starting from the specified start date to the end date. In case the product is already active for the user, the start and end date are updated to the transmitted dates."}},"httpPath":"/user/product"},{"label":"Check in","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1checkin/post","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1checkin/post","metadata":{"seo":{"title":"Check in","description":"Do a checkin for a member."}},"httpPath":"/user/checkin"},{"label":"Check out","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/user/paths/~1user~1checkout/post","routeSlug":"/mms-api-v2/gymapi/api/user/paths/~1user~1checkout/post","metadata":{"seo":{"title":"Check out","description":"Do a checkout for a member."}},"httpPath":"/user/checkout"}]},{"type":"group","label":"alive","link":"/mms-api-v2/gymapi/api/alive","routeSlug":"/mms-api-v2/gymapi/api/alive","items":[{"label":"Alive","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/alive/paths/~1alive/post","routeSlug":"/mms-api-v2/gymapi/api/alive/paths/~1alive/post","metadata":{"seo":{"title":"Alive","description":"Notification that the API client is active. This method notifies EGYM that the API client is running. Any received POST method resets a timestamp when data was last received. This method allows to send regular pings and therefore refreshes the timestamp. Gym Owners are shown a connectivity status on the EGYM website that is changed to inactive if no request is received by any method for 24h - therefore best practice would be to send this request at least once per day."}},"httpPath":"/alive"}]},{"type":"group","label":"task","link":"/mms-api-v2/gymapi/api/task","routeSlug":"/mms-api-v2/gymapi/api/task","items":[{"label":"Tasks","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/task/paths/~1task/get","routeSlug":"/mms-api-v2/gymapi/api/task/paths/~1task/get","metadata":{"seo":{"title":"Tasks","description":"A list of not yet completed tasks."}},"httpPath":"/task"},{"label":"Create task","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/task/paths/~1task/post","routeSlug":"/mms-api-v2/gymapi/api/task/paths/~1task/post","metadata":{"seo":{"title":"Create task","description":"Creates a new task."}},"httpPath":"/task"},{"label":"Update task","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/task/paths/~1task~1{taskid}/put","routeSlug":"/mms-api-v2/gymapi/api/task/paths/~1task~1{taskid}/put","metadata":{"seo":{"title":"Update task","description":"Updates an existing task; Mark a task as \"completed\""}},"httpPath":"/task/{taskId}"},{"label":"Task details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/mms-api-v2/gymapi/api/task/paths/~1task~1{taskid}/get","routeSlug":"/mms-api-v2/gymapi/api/task/paths/~1task~1{taskid}/get","metadata":{"seo":{"title":"Task details","description":"Retrieves a task"}},"httpPath":"/task/{taskId}"}]}],"metadata":{"type":"openapi","title":"MMS API v1","version":"1.0.0","description":"This API enables gym management software to connect to the EGYM system and transmit important pieces of information from the data sphere of the gym to the EGYM system. The \"data privacy concept\" section in the overview document explains more about the overall logic of data access. This API baiscally operates in \"data processing\" mode from a gyms' data privacy perspective, i.e. member data can be transmitted without prior individual consent of a user.\n\n# Use-case Overview\n\nThis API provided by EGYM covers three different use-cases:\n\n  - **User Profile\" related operations (\"**user** path\") like creating and updating member records\n  - **Trainer Task** related Operations\n  - **Product/Experience** related operations (\"**gym**\" path)\n\n## User Profile (/user)\n\nThis is the most important and most basic form of integration. The \"publish\" method allows for a combined create/update of whole member records and should be called whenever there is a new member created inside the MMS or meterial details of that record are changed. It also contains the methods to signal a \"check-in\" and \"check-out\" event.\n\n## Trainer Tasks (/task)\n\nThe Trainer Task API allows to interact with the tasks that are created and worked through on the trainer app. It provides CRUD functionalities for those tasks.\n\n## Product (/gym)\n\nThis API enables gym management software to create and update EGYM products for users on behalf of the gym.\n\n - It provides methods to retrieve all products that are available in a gym.\n - These products can be activated for users in the gym.\n - The active and future products for a user in a gym can be retrieved.\n\n___\n\n## Test environment\n\nWe provide a test environment for integration testing of the API which is particularly helpful during development. Before entering productive mode, we will jointly test all functionalities to ensure that data is correctly sent, received and interpreted.\n\nThe endpoint for test environment is: **https://mms.api.egym.com/gymapi/v1**\n\nMaking requests via this ui is not allowed but one can generate an example curl request by clicking \"Try it out\", filling in some parameters and clicking \"Execute\".\nNote the upper- and lower cases and use attribute exactly as indicated.\nPlease note that due to technical reasons the environment may temporarily not be available.\n___\n\n## Production environment\n\nThe endpoint for production environment is: **https://mms.api.egym.com/api/v2**\n___\n\n## Note on identifiers\n\nEGYM uses the fields userId, membershipId, and eMail to identify members.\nSince EGYM can accept data from multiple source (EGYM compatible fitness equipment, EGYM apps, and third parties), it is important to use these identifiers correctly.\n\nuserId is the identifier assigned to this member by the EGYM server. When publishing data of a member for the first time, the client omits this field since the userId is unknown to the client.\nThe server replies with a valid userId for this member that needs to be stored. On subsequent requests, the client must include the userId received previously.\n\nmembershipId is a String identifier used by the gym. This must be unambiguously assigned to this person and must never be reused for other members. membershipIds must be unique within all gyms that share member data (i.e. within the gym chain).\n**The membershipId is not a contractId.**\n\nAny publish request must include a valid email address. For members who have previously used the EGYM ecosystem, e.g. our fitness machines, this must be identical to the email address used as EGYM account.\nIt is important to include the correct email address with the first request sent for this member since the first API request will merge this user with pre-existing data for this person.\n___\n\n## Note on optional fields\n\nAll fields noted as 'required' or 'optional' must be supported by the client software and included in the request if this data is available.\nFields with the remark '(optional)' should be supported within the constraints of the client application, if possible.\n\nIf the value of an optional field is not known, the client must omit the the field in the request.\nThe EGYM server will then assume that last known value (which may have been retrieved by other channels) is still valid.\nPlease never sent an empty String (\"\") or empty list ([]) when the actual value is unkown.\n\n**Example imageData:**\nThe imageData field has due to its nature a larger size than other fields.\nThus, it make sense to include this field only if this is the first publish request for this user or if the image has changed. Please do not include an unchanged image in subsequent requests.\nHowever, if the first requests failed for any reason (e.g. internet unavailable or HTTP status > 299), then the client must include the image when retrying.\n\n**Example rfidList:**\nSending rfidList: [] will overwrite the list of RFIDs for this member with the emtpy list. That is, this user will not be able to use EGYM equipment.\nOn the other hand, if rfidList is missing from the request, the list of RFIDs is unchanged.\n\n**Example dateOfBirth:**\nIf the member's birthday is not known, it is OK to omit the field. However sending \"dateOfBirth\":\"\" (empty String) is invalid.\n___\n\n## Encoding\n\nAll endpoints use the JSON data type for request and response bodies and UTF-8 character encoding. In your HTTP request, please declare the Content-Type for your JSON body: \"Content-type: application/json\"\n___\n\n## Error handling\n\nRequests which cannot be processed will return a special JSON object with \"error\" and optionally \"error text\" fields.\nAuthentication problems, for example, return the following JSON:  {\"error\":401, \"errorText\":\"The provided user name or password is incorrect.\"}\n\n**Error codes**\n\n**Informational**\n- 200 OK - successful request\n- 204 No Content - successful request with empty response body\n\n**Client Error**\n- 400 Bad Request - The email is invalid. (Email field does not match the expected format of valid email addresses)\n- 401 Unauthorized - The provided login credentials are wrong. (The combination of accessToken and gymID are wrong.)\n- 403 Forbidden - Blacklisted user (Email address is blacklisted)\n- 404 Not Found - User not found. (GET request with userId for user that does not exist)\n- 404 Not Found - Email address not found. (GET request with userId for user with email address that does not exist)\n- 404 Not Found - Could not find any user with RFID = 0x.... (GET request with RFID for user that does not exist)\n- 405 Method Not Allowed - Method Not Allowed (Using GET without required data to be presented via POST)\n- 409 Conflict - Conflict in the request (Request could not be processed because of conflict.)\n- 415 Unsupported Media Type - Unsupported Media Type (Unsupported Media Type; add \"Content-type: application/json\" to the header of your request)\n\n404 error codes can indicate that user was deleted on EGYM server (e.g. he deleted his own account via the website).\n\n**Server Error**\n- 500 Internal Server Error - Internal Server Error (A bug in the server. If this occurs in productions it is probably caused by unexpected behavior of the client, i.e. there is also a bug in the client.)\n___\n\n## Authentication\n\nAuthentication is validated via an access token that is generated by EGYM for each gym location. EGYM requires a unique email for each member. EGYM uses the email address or other keys such as RFID-Id to initially match existing users in our data base.\nServer authentication of a request requires 2 additional parameters:\n- gymId: the gym location ID, as assigned by EGYM – gym chains will receive one gymId for each location\n- accesstoken: access token, provided by EGYM – each gym has a unique token\n\nExample: https://mms.api.egym.com/gymapi/v1/user/publish?gymId=123\n\n`X-ACCESS-TOKEN: ABCDE`\n\nTo test, use the Authorize-Button on the right to insert the token as a query parameter to every request.\n"}}]}