{"items":[{"type":"link","label":"MMS API v1","link":"/mms-api-v2/gymapi/api","routeSlug":"/mms-api-v2/gymapi/api","content":{"contentType":"overview","meta":{"name":"MMS API v1"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"api.json","url":"/_bundle/mms-api-v2/gymapi/api.json?download"},{"kind":"download","label":"api.yaml","url":"/_bundle/mms-api-v2/gymapi/api.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"MMS API v1 (1.0.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"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."},"children":[]}]}]}]}],"sectionId":"/mms-api-v2/gymapi/api"}],"sectionId":"/mms-api-v2/gymapi/api"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":1,"id":"section/use-case-overview"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use-case Overview"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This API provided by EGYM covers three different use-cases:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"**User Profile\" related operations (\""},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"user"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" path\") like creating and updating member records"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Trainer Task"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" related Operations"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Product/Experience"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" related operations (\""},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"gym"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\" path)"},"children":[]}]}]}]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/user-profile-(user)"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"User Profile (/user)"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This 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."},"children":[]}]}]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/user-profile-(user)"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/user-profile-(user)"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/trainer-tasks-(task)"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Trainer Tasks (/task)"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The 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."},"children":[]}]}]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/trainer-tasks-(task)"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/trainer-tasks-(task)"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/product-(gym)"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Product (/gym)"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This API enables gym management software to create and update EGYM products for users on behalf of the gym."},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It provides methods to retrieve all products that are available in a gym."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"These products can be activated for users in the gym."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The active and future products for a user in a gym can be retrieved."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/product-(gym)"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/product-(gym)"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/test-environment"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Test environment"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"We 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."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The endpoint for test environment is: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"https://mms.api.egym.com/gymapi/v1"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Making 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\"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Note the upper- and lower cases and use attribute exactly as indicated."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please note that due to technical reasons the environment may temporarily not be available."},"children":[]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/test-environment"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/test-environment"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/production-environment"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Production environment"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The endpoint for production environment is: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"https://mms.api.egym.com/api/v2"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/production-environment"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/production-environment"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/note-on-identifiers"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Note on identifiers"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"EGYM uses the fields userId, membershipId, and eMail to identify members."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Since EGYM can accept data from multiple source (EGYM compatible fitness equipment, EGYM apps, and third parties), it is important to use these identifiers correctly."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"userId 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."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The 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."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"membershipId 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)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The membershipId is not a contractId."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Any 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."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It 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."},"children":[]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-identifiers"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-identifiers"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/note-on-optional-fields"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Note on optional fields"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"All fields noted as 'required' or 'optional' must be supported by the client software and included in the request if this data is available."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Fields with the remark '(optional)' should be supported within the constraints of the client application, if possible."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the value of an optional field is not known, the client must omit the the field in the request."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The EGYM server will then assume that last known value (which may have been retrieved by other channels) is still valid."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please never sent an empty String (\"\") or empty list ([]) when the actual value is unkown."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example imageData:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The imageData field has due to its nature a larger size than other fields."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Thus, 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."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"However, 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."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example rfidList:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sending 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."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On the other hand, if rfidList is missing from the request, the list of RFIDs is unchanged."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example dateOfBirth:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the member's birthday is not known, it is OK to omit the field. However sending \"dateOfBirth\":\"\" (empty String) is invalid."},"children":[]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-optional-fields"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/note-on-optional-fields"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/encoding"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Encoding"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"All 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\""},"children":[]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/encoding"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/encoding"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/error-handling"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error handling"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Requests which cannot be processed will return a special JSON object with \"error\" and optionally \"error text\" fields."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication problems, for example, return the following JSON:  {\"error\":401, \"errorText\":\"The provided user name or password is incorrect.\"}"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error codes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informational"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"200 OK - successful request"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"204 No Content - successful request with empty response body"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Client Error"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"400 Bad Request - The email is invalid. (Email field does not match the expected format of valid email addresses)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"401 Unauthorized - The provided login credentials are wrong. (The combination of accessToken and gymID are wrong.)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"403 Forbidden - Blacklisted user (Email address is blacklisted)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"404 Not Found - User not found. (GET request with userId for user that does not exist)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"404 Not Found - Email address not found. (GET request with userId for user with email address that does not exist)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"404 Not Found - Could not find any user with RFID = 0x.... (GET request with RFID for user that does not exist)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"405 Method Not Allowed - Method Not Allowed (Using GET without required data to be presented via POST)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"409 Conflict - Conflict in the request (Request could not be processed because of conflict.)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"415 Unsupported Media Type - Unsupported Media Type (Unsupported Media Type; add \"Content-type: application/json\" to the header of your request)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"404 error codes can indicate that user was deleted on EGYM server (e.g. he deleted his own account via the website)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Server Error"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"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.)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/error-handling"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/error-handling"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/use-case-overview/authentication"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication 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."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Server authentication of a request requires 2 additional parameters:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"gymId: the gym location ID, as assigned by EGYM – gym chains will receive one gymId for each location"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"accesstoken: access token, provided by EGYM – each gym has a unique token"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: https://mms.api.egym.com/gymapi/v1/user/publish?gymId=123"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"X-ACCESS-TOKEN: ABCDE"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To test, use the Authorize-Button on the right to insert the token as a query parameter to every request."},"children":[]}]}]}]}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/authentication"}],"sectionId":"/mms-api-v2/gymapi/api/section/use-case-overview/authentication"}]}]}},{"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)","content":null},{"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)","content":null},{"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)","content":null},{"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","content":null},{"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","content":null},{"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","content":null},{"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","content":null},{"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","content":null},{"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","content":null},{"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","content":null}],"content":null},{"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Products","isWebhook":false,"pointer":"/paths/~1gym~1product/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Products","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns a list of products that are available in the gym and can be activated for a user."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the EGYM gym","required":true}],"pointer":"/paths/~1gym~1product/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/gym/product","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/gym/product","href":"gym/paths/~1gym~1product/get","summary":"Products"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"An array of EGYM products","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_114"}},"schemaId":"schema_114"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1gym~1product/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_114","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_114"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/gym/paths/~1gym~1product/get"}],"panels":[]}]},"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"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Product details","isWebhook":false,"pointer":"/paths/~1gym~1product~1{productId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Product details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the details of a specific product"},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"productId","in":"path","schemaId":"schema_115","description":"The id of the product","required":true}],"pointer":"/paths/~1gym~1product~1{productId}/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the EGYM gym","required":true}],"pointer":"/paths/~1gym~1product~1{productId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/gym/product/{productId}","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[{"name":"productId","in":"path","required":true,"example":123,"schemaId":"schema_115"}],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/gym/product/{productId}","href":"gym/paths/~1gym~1product~1{productid}/get","summary":"Product details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"A JSON product object","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ProductTemplateDto"}},"schemaId":"components/schemas/ProductTemplateDto"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1gym~1product~1{productId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ProductTemplateDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ProductTemplateDto"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/gym/paths/~1gym~1product~1{productid}/get"}],"panels":[]}]},"httpPath":"/gym/product/{productId}"}],"content":{"contentType":"group","meta":{"name":"gym"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"gym","showPageActions":true}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/gym/product","summary":"Products","prefix":{"name":"get","color":"get"},"badges":[],"link":"/gym/paths/~1gym~1product/get","deprecated":false},{"title":"/gym/product/{productId}","summary":"Product details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/gym/paths/~1gym~1product~1{productid}/get","deprecated":false}]}]}]}]}},{"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Publish","isWebhook":false,"pointer":"/paths/~1user~1publish/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Publish","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Publish information about a gym member to the EGYM system. The method updates or creates a dataset for the regarding user."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1user~1publish/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MemberInformationDTO"}},"schemaId":"components/schemas/MemberInformationDTO","pointer":"/paths/~1user~1publish/post/requestBody","description":"Information about the member"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/user/publish","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MemberInformationDTO"}},"responseCodes":["200","413","4XX"],"pointer":"/user/publish","href":"user/paths/~1user~1publish/post","summary":"Publish"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/MemberInformationDTO","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MemberInformationDTO"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The member's userId","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/UserIdDTO"}},"schemaId":"components/schemas/UserIdDTO"},{"code":"413","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Request Entity Too Large."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Overall request size is limited to 16 MB."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is usually caused by passing extensive data in the field "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"imageData"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1publish/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/UserIdDTO","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/UserIdDTO"}}},{"code":"413"},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1publish/post"}],"panels":[]}]},"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"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Member details","isWebhook":false,"pointer":"/paths/~1user~1profile/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Member details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Get information about a specific EGYM member"},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"userId","in":"query","schemaId":"schema_115","description":"The id of the member"},{"name":"rfid","in":"query","schemaId":"schema_116","description":"The RFID of the member"},{"name":"email","in":"query","schemaId":"schema_117","description":"The E-Mail address of the member"},{"name":"membershipId","in":"query","schemaId":"schema_118","description":"The membership id of the member."},{"name":"gymId","in":"query","schemaId":"schema_115","description":"The id of the gym.","required":true}],"pointer":"/paths/~1user~1profile/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/user/profile","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"userId","in":"query","example":123,"schemaId":"schema_115"},{"name":"rfid","in":"query","example":"0xAA","schemaId":"schema_116"},{"name":"email","in":"query","example":"example@egym.com","schemaId":"schema_117"},{"name":"membershipId","in":"query","example":"23ljlsJKLD","schemaId":"schema_118"},{"name":"gymId","in":"query","required":true,"example":123,"schemaId":"schema_115"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/user/profile","href":"user/paths/~1user~1profile/get","summary":"Member details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The member information.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MemberInformationDTO"}},"schemaId":"components/schemas/MemberInformationDTO"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1profile/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/MemberInformationDTO","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MemberInformationDTO"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1profile/get"}],"panels":[]}]},"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Activated products","isWebhook":false,"pointer":"/paths/~1user~1product/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Activated products","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns a list of products that are activated for the specified user and gym and are active now or in the future."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"userId","in":"query","schemaId":"schema_119","description":"The EGYM user id. Must be given unless membershipId is used.","required":true},{"name":"membershipId","in":"query","schemaId":"schema_118","description":"The membership id of the user."},{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the EGYM gym.","required":true}],"pointer":"/paths/~1user~1product/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/user/product","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"userId","in":"query","required":true,"example":"-qwn9fgz5sa3i","schemaId":"schema_119"},{"name":"membershipId","in":"query","required":false,"example":"23ljlsJKLD","schemaId":"schema_118"},{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/user/product","href":"user/paths/~1user~1product/get","summary":"Activated products"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"An array of active or future products for the user.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_120"}},"schemaId":"schema_120"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1product/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_120","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_120"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1product/get"}],"panels":[]}]},"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Update product","isWebhook":false,"pointer":"/paths/~1user~1product/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Update product","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Activates or updates a product for a user in a gym.\nA product can be activated for a specified user and gym.\nThe product is active starting from the specified start date to the end date.\nIn case the product is already active for the user, the start and end date are updated to the transmitted dates.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"userId","in":"query","schemaId":"schema_119","description":"The EGYM user id. Must be given unless membershipId is used.","required":true},{"name":"membershipId","in":"query","schemaId":"schema_118","description":"The membership id of the user."},{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the EGYM gym.","required":true}],"pointer":"/paths/~1user~1product/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProductInstanceDto"}},"schemaId":"components/schemas/ProductInstanceDto","pointer":"/paths/~1user~1product/put/requestBody","description":"A product with start and end dates to be activated for the user in the given gym."}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/user/product","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"userId","in":"query","required":true,"example":"-qwn9fgz5sa3i","schemaId":"schema_119"},{"name":"membershipId","in":"query","required":false,"example":"23ljlsJKLD","schemaId":"schema_118"},{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ProductInstanceDto"}},"responseCodes":["200","4XX"],"pointer":"/user/product","href":"user/paths/~1user~1product/put","summary":"Update product"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/ProductInstanceDto","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProductInstanceDto"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The product is activated for the user.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ProductInstanceDto"}},"schemaId":"components/schemas/ProductInstanceDto"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1product/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ProductInstanceDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ProductInstanceDto"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1product/put"}],"panels":[]}]},"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Check in","isWebhook":false,"pointer":"/paths/~1user~1checkin/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Check in","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Do a checkin for a member."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1user~1checkin/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"schemaId":"components/schemas/UserInformationDTO","pointer":"/paths/~1user~1checkin/post/requestBody","description":"Information about the member"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/user/checkin","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"responseCodes":["204","4XX"],"pointer":"/user/checkin","href":"user/paths/~1user~1checkin/post","summary":"Check in"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/UserInformationDTO","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"No content"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1checkin/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1checkin/post"}],"panels":[]}]},"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Check out","isWebhook":false,"pointer":"/paths/~1user~1checkout/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Check out","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Do a checkout for a member."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1user~1checkout/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"schemaId":"components/schemas/UserInformationDTO","pointer":"/paths/~1user~1checkout/post/requestBody","description":"Information about the member"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/user/checkout","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"responseCodes":["204","4XX"],"pointer":"/user/checkout","href":"user/paths/~1user~1checkout/post","summary":"Check out"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/UserInformationDTO","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/UserInformationDTO"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"No content"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1user~1checkout/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/user/paths/~1user~1checkout/post"}],"panels":[]}]},"httpPath":"/user/checkout"}],"content":{"contentType":"group","meta":{"name":"user"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"user","showPageActions":true}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/user/publish","summary":"Publish","prefix":{"name":"post","color":"post"},"badges":[],"link":"/user/paths/~1user~1publish/post","deprecated":false},{"title":"/user/profile","summary":"Member details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/user/paths/~1user~1profile/get","deprecated":false},{"title":"/user/product","summary":"Activated products","prefix":{"name":"get","color":"get"},"badges":[],"link":"/user/paths/~1user~1product/get","deprecated":false},{"title":"/user/product","summary":"Update product","prefix":{"name":"put","color":"put"},"badges":[],"link":"/user/paths/~1user~1product/put","deprecated":false},{"title":"/user/checkin","summary":"Check in","prefix":{"name":"post","color":"post"},"badges":[],"link":"/user/paths/~1user~1checkin/post","deprecated":false},{"title":"/user/checkout","summary":"Check out","prefix":{"name":"post","color":"post"},"badges":[],"link":"/user/paths/~1user~1checkout/post","deprecated":false}]}]}]}]}},{"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Alive","isWebhook":false,"pointer":"/paths/~1alive/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Alive","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Notification that the API client is active.\nThis 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.\nGym 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.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1alive/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/alive","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["204","4XX"],"pointer":"/alive","href":"alive/paths/~1alive/post","summary":"Alive"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"No content"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1alive/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/alive/paths/~1alive/post"}],"panels":[]}]},"httpPath":"/alive"}],"content":{"contentType":"group","meta":{"name":"alive"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"alive","showPageActions":true}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/alive","summary":"Alive","prefix":{"name":"post","color":"post"},"badges":[],"link":"/alive/paths/~1alive/post","deprecated":false}]}]}]}]}},{"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Tasks","isWebhook":false,"pointer":"/paths/~1task/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Tasks","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"A list of not yet completed tasks."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"modified-since","in":"query","schemaId":"schema_121","description":"An optional modified since flag, in ISO-8601 date and time format. If not present, only uncompleted tasks will be returned."},{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1task/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/task","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"modified-since","in":"query","example":"2018-09-11","schemaId":"schema_121"},{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/task","href":"task/paths/~1task/get","summary":"Tasks"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The new task ID","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_122"}},"schemaId":"schema_122"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1task/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_122","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_122"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/task/paths/~1task/get"}],"panels":[]}]},"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."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Create task","isWebhook":false,"pointer":"/paths/~1task/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create task","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Creates a new task."},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1task/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"schemaId":"components/schemas/TaskDTO","pointer":"/paths/~1task/post/requestBody","description":"The new task"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/task","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"responseCodes":["200","4XX"],"pointer":"/task","href":"task/paths/~1task/post","summary":"Create task"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/TaskDTO","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The new task ID","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskIdDTO"}},"schemaId":"components/schemas/TaskIdDTO"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1task/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/TaskIdDTO","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskIdDTO"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/task/paths/~1task/post"}],"panels":[]}]},"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\""}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Update task","isWebhook":false,"pointer":"/paths/~1task~1{taskId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Update task","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Updates an existing task; Mark a task as \"completed\""},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"taskId","in":"path","schemaId":"schema_115","description":"The id of the task","required":true}],"pointer":"/paths/~1task~1{taskId}/put/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1task~1{taskId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"schemaId":"components/schemas/TaskDTO","pointer":"/paths/~1task~1{taskId}/put/requestBody","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The task data"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To mark a task completed, only the { \"completed\": true } message is required to be sent"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/task/{taskId}","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[{"name":"taskId","in":"path","required":true,"example":123,"schemaId":"schema_115"}],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"responseCodes":["200","4XX"],"pointer":"/task/{taskId}","href":"task/paths/~1task~1{taskid}/put","summary":"Update task"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"schemaId":"components/schemas/TaskDTO","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The updated task data","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"schemaId":"components/schemas/TaskDTO"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1task~1{taskId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/TaskDTO","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskDTO"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/task/paths/~1task~1{taskid}/put"}],"panels":[]}]},"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"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"name":"Task details","isWebhook":false,"pointer":"/paths/~1task~1{taskId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Task details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Retrieves a task"},{"nodeType":"security","requirements":[{"schemes":[{"name":"accesstoken","scopes":[],"type":"apiKey","in":"header","paramName":"X-ACCESS-TOKEN","description":"The token that will allow access the EGYM gym api for a specific gym."}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"taskId","in":"path","schemaId":"schema_115","description":"The id of the task","required":true}],"pointer":"/paths/~1task~1{taskId}/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"gymId","in":"query","schemaId":"schema_113","description":"The id of the gym","required":true}],"pointer":"/paths/~1task~1{taskId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/task/{taskId}","servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"parameters":{"path":[{"name":"taskId","in":"path","required":true,"example":123,"schemaId":"schema_115"}],"query":[{"name":"gymId","in":"query","required":true,"example":234,"schemaId":"schema_113"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"accesstoken","type":"apiKey","name":"X-ACCESS-TOKEN","in":"header"}],"scopes":[]}],"responseCodes":["200","4XX"],"pointer":"/task/{taskId}","href":"task/paths/~1task~1{taskid}/get","summary":"Task details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","description":"Mock server","isMockServer":true},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The task data","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskDTO"}},"schemaId":"components/schemas/TaskDTO"},{"code":"4XX","description":"Client Error","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}},"schemaId":"components/schemas/ErrorDto"}],"pointer":"/paths/~1task~1{taskId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/TaskDTO","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TaskDTO"}}},{"code":"4XX","schemaId":"components/schemas/ErrorDto","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ErrorDto"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/task/paths/~1task~1{taskid}/get"}],"panels":[]}]},"httpPath":"/task/{taskId}"}],"content":{"contentType":"group","meta":{"name":"task"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"task","showPageActions":true}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/task","summary":"Tasks","prefix":{"name":"get","color":"get"},"badges":[],"link":"/task/paths/~1task/get","deprecated":false},{"title":"/task","summary":"Create task","prefix":{"name":"post","color":"post"},"badges":[],"link":"/task/paths/~1task/post","deprecated":false},{"title":"/task/{taskId}","summary":"Update task","prefix":{"name":"put","color":"put"},"badges":[],"link":"/task/paths/~1task~1{taskid}/put","deprecated":false},{"title":"/task/{taskId}","summary":"Task details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/task/paths/~1task~1{taskid}/get","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/ProductTemplateDto":{"id":"components/schemas/ProductTemplateDto","kind":"json-schema","title":"ProductTemplateDto","data":{"type":"object","description":"This model provides information about an EGYM product.","properties":{"productId":{"type":"integer","format":"int32","description":"The id of a product.","example":"1337","readOnly":true},"productTitle":{"type":"string","description":"The title of a product.","example":"PREMIUM SELECT","readOnly":true},"productDescription":{"type":"string","description":"The description of a product. The description contains more information about a product including where it can be used.","example":"Enables Premium training features for the users on all EGYM machines.","readOnly":true}}}},"components/schemas/ProductInstanceDto":{"id":"components/schemas/ProductInstanceDto","kind":"json-schema","title":"ProductInstanceDto","data":{"type":"object","description":"This model provides information about an active product for a user in the gym.","properties":{"productId":{"type":"integer","format":"int32","description":"The id of the product.","example":"1337"},"productTitle":{"type":"string","description":"The title of the product.","example":"PREMIUM SELECT","readOnly":true},"productDescription":{"type":"string","description":"The description of the product.","example":"Enables Premium training features for the users on all EGYM machines.","readOnly":true},"start":{"type":"string","description":"The date from which the specified product is active and can be used by the user.","format":"date in format \"YYYY-MM-DD\"\n","example":"2018-09-11"},"end":{"type":"string","description":"The date to which the specified product is active and can be used by the user.","format":"date in format \"YYYY-MM-DD\"\n","example":"2018-10-11"}}}},"components/schemas/UserIdDTO":{"id":"components/schemas/UserIdDTO","kind":"json-schema","title":"UserIdDTO","data":{"type":"object","description":"This model provides string representation of a userId.","properties":{"userId":{"type":"string","description":"The id of the member.","example":"id12"}}}},"components/schemas/ErrorDto":{"id":"components/schemas/ErrorDto","kind":"json-schema","title":"ErrorDto","data":{"type":"object","description":"This model provides information about an API error.","properties":{"error":{"type":"integer","format":"int32","description":"The error code.","example":401},"errorText":{"type":"string","description":"The error message.","example":"The provided user name or password is incorrect."}}}},"components/schemas/MemberInformationDTO":{"id":"components/schemas/MemberInformationDTO","kind":"json-schema","title":"MemberInformationDTO","data":{"type":"object","description":"This model provides information about a member.","required":["membershipId","eMail","firstName","lastName","dateOfBirth","gender","endOfContract","rfidList","phone","street","streetNumber","zipCode","city","country"],"properties":{"userId":{"type":"integer","format":"int64","description":"Unique ID that identifies the EGYM user in the EGYM system. Please include the userId that you have received as a response to the previous requests for this user.","example":123},"membershipId":{"type":"string","description":"Member ID of the gym software (must be unique for exactly one member in the gym (chain));\nThe membershipId must be unique for exactly one member in the gym. The membershipId should never changes, i.e. you cannot use a contract id or similar, which would change when the contract is renewed, changed or a new contract is signed.\n","example":"membership_id"},"agreementNumber":{"type":"string","description":"The agreement number is the number of the membership between the member and the gym chain.","example":"agreement_number"},"membershipStatus":{"type":"string","description":"Type of the member's membership to determine available features, can be BASIC/PREMIUM/PROSPECT","example":"BASIC"},"membershipSubType":{"type":"string","description":"Extension of membershipStatus for further customization for this user. One membershipStatus can have multiple membershipSubType.","example":"membership_sub_type"},"activeStatus":{"type":"boolean","description":"Status of the member's membership.","example":"true"},"referringMemberId":{"type":"string","description":"MembershipId of the member who referred this member.","example":"referring_number_id"},"eMail":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The EGYM interface requires that each member has a unique email address."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Before implementing the API in a gym, the software provider needs to run a search for email addresses that are used multiple times for different gym members (think fake addresses or family members). Obvious fake addresses (e.g. test@test.com) should be deleted. A list of email addresses used multiple times shall be given to the gym to enter unique addresses."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Any umlaut in email addresses is not accepted and will be answered by an error message."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A warning must be shown in the software if a member is created without a valid email address - validity check needs to cover typos (such as name@provider. / nameqprovider.com / etc)"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two members can never share an email address and no member can be submitted without an email address."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software vendor must ensure that if two members share an email address, both will not be transmitted to EGYM. A warning should be shown to gym staff if a member is created with the same email address of an existing user until the problem is resolved."},"children":[]}]}]}],"example":"example@egym.com"},"firstName":{"type":"string","description":"First Name of the member","example":"Heinz"},"lastName":{"type":"string","description":"Last Name of the member","example":"Müller"},"dateOfBirth":{"type":"string","format":"date in format \"YYYY-MM-DD\"\n","description":"Birthday of the member as date in format YYYY-MM-DD","example":"1970-01-01"},"gender":{"type":"string","description":"Gender of the member","enum":["MALE","FEMALE"],"example":"MALE"},"imageData":{"type":"string","description":"BASE64 encoded image (JPEG or PNG): Photo of the member. Does not need to be sent with every request but can be transmitted after changes. \nPlease note that the overall request size is limited to 16 MB, so please make sure your images (after base64 encoding) are small enough to fit into the request,\notherwise, we'll throw a 413 and reject the whole request\n","example":"N/A"},"userMotiveList":{"type":"array","items":{"type":"string","enum":["GENERAL_FITNESS","HEALTH","SHAPE","SOCIAL","RELAX","ACTIVATION"]},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Motivation list of the member. Possible Strings: GENERAL_FITNESS, HEALTH, SHAPE, SOCIAL, RELAX, ACTIVATION"},"children":[]}]}]}],"example":"[\"HEALTH\", \"SHAPE\"]\n"},"trainingFrequency":{"type":"integer","format":"int32","description":"Number of training sessions the member wants to conduct per week","example":3},"trainingDuration":{"type":"integer","format":"int32","description":"Time (in minutes) a training session should take for the member","example":90},"endOfContract":{"type":"string","format":"date in format \"YYYY-MM-DD\"\n","description":"Date when the member's contract ends. For gyms with automatic contract renewal, send the date when the contract would run out, if cancelled. Update the field when the contract was renewed.\n\nPlease update the field when the customer renews their contract (manually and automatically renewals).\n","example":"2070-01-01"},"startOfContract":{"type":"string","format":"date in format \"YYYY-MM-DD\"\n","description":"Date when the member joined the gym","example":"2018-01-01"},"rfidList":{"type":"array","items":{"type":"string"},"description":"List of strings representing long numbers OR hex strings (with leading \"0x\").\n\nThis field is used for synchronizing all RFIDs of a user with EGYM.\n\nNote: 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).\nPlease ensure that only RFID information is sent in this field but no other medium like magnetic stripe card numbers or bar codes.\n","example":"[\"0xAA\", \"0xBB\"]\n"},"phone":{"type":"string","description":"telephone number of the member\n\nThere is just one field for the phone number in the EGYM Trainer App, so implement the way that first the mobile phone number is sent, and if that field is empty, the land line phone number.\nIf that field is empty, do not send the phone field at all.\n"},"street":{"type":"string","description":"Street name in member's address","example":"Pranner street"},"streetNumber":{"type":"string","description":"Street number in member's address","example":"2"},"zipCode":{"type":"string","description":"Zip Code in member's address","example":"80333"},"city":{"type":"string","description":"City in member's address","example":"München"},"state":{"type":"string","description":"State in member's address","example":"Bavaria"},"country":{"type":"string","description":"Country of the member's address in ISO 3166-1 alpha-2","example":"DE"},"barcode":{"type":"string","description":"Member's barcode to checkin in the gym. Can be visualised on the Branded Member App and used for lookup to verify membership","example":"123456789-10"},"height":{"type":"number","format":"double","description":"Height of the member in centimeters","example":"168.30"},"dayGuest":{"type":"boolean","description":"Indicates that the member is not a permanent member","example":true},"prospect":{"type":"boolean","description":"Indicates that the member is a prospective member, who has not yet signed up for the gym membership","example":true},"trainer":{"type":"boolean","description":"If true, grants trainer account permissions to this user and this gym.\n\nIf false, revokes trainer permissions.\n\nIf omitted or null, permissions are not changed.\n\nPlease omit this field, unless you explicitly want to set or remove trainer rights.\n","example":true}},"example":{"eMail":"example@egym.com","firstName":"Hans","lastName":"Mustermann","dateOfBirth":"1990-11-20","endOfContract":"2016-12-31","gender":"MALE","rfidList":["0x04AABBCCDDEEFF"]}}},"components/schemas/UserInformationDTO":{"id":"components/schemas/UserInformationDTO","kind":"json-schema","title":"UserInformationDTO","data":{"type":"object","description":"This model provides information about a member.","required":["userId"],"properties":{"userId":{"type":"string","description":"Unique ID that identifies the EGYM user in the EGYM system","example":"-qwn9fgz5sa3i"},"rfidId":{"type":"string","description":"ID that identifies the RFID Chip (either a long number OR a hex string with '0x' as leading characters)","example":"0xAA"},"membershipId":{"type":"string","description":"Member ID of the gym software","example":"membership_id"},"eMail":{"type":"string","description":"Email address of the member","example":"example@egym.com"},"userPresenceTimestamp":{"type":"number","description":"Timestamp in milliseconds since epoch for a checkin / checkout event that happened in the past","example":1606228021}},"example":{"userId":"-qwn9fgz5sa3i"}}},"components/schemas/TaskDTO":{"id":"components/schemas/TaskDTO","kind":"json-schema","title":"TaskDTO","data":{"type":"object","description":"This model provides information about a task.","properties":{"taskId":{"type":"integer","format":"int64","description":"unique ID assigned by EGYM","example":123},"taskName":{"type":"string","description":"The message displayed to the end user of the EGYM Trainer App.\n(The EGYM Trainer App will shorten the title to 140 characters.)\n","example":"task1"},"taskType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The task type"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GENERAL - Used for all general tasks."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ANAMNESIS - Used when an anamnesis should be carried out for a user."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"COORDINATION_FITNESS_TEST - A coordination fitness test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HEALTH_FITNESS_TEST - A health fitness test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PWC_FITNESS_TEST - Physical Working Capacity (PWC) test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MAX_FORCE_FITNESS_TEST - A max force fitness test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MOBILITY_SCREEN_FITNESS_TEST - A mobility screen fitness test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"BLOOD_PRESSURE_FITNESS_TEST - A blood pressure test task."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POLAR_FITNESS_TEST - A Polar (Vo2Max) fitness test task."},"children":[]}]}]}]}],"enum":["GENERAL","ANAMNESIS","COORDINATION_FITNESS_TEST","HEALTH_FITNESS_TEST","PWC_FITNESS_TEST","MAX_FORCE_FITNESS_TEST","MOBILITY_SCREEN_FITNESS_TEST","BLOOD_PRESSURE_FITNESS_TEST","POLAR_FITNESS_TEST"],"example":"GENERAL"},"dueDate":{"type":"string","format":"date in format \"YYYY-MM-DD\"\n","description":"The date when the task has to be completed.","example":"2018-01-01"},"completed":{"type":"boolean","description":"Indicates whether or not the task was completed","example":true},"author":{"type":"object","description":"User (typically gym staff) who created the task","properties":{"userId":{"type":"integer","format":"int64","description":"The unobfuscated EGYM legacy id of the user that created the task.","example":123},"membershipId":{"type":"string","description":"Membership id of the gym software","example":"membership_id"}}},"target":{"type":"object","description":"User (typically gym member) the task relates to","properties":{"userId":{"type":"integer","format":"int64","description":"The unobfuscated EGYM legacy id of the target user.","example":123},"membershipId":{"type":"string","description":"Membership id of the gym software","example":"membership_id"}}},"completer":{"type":"object","description":"User who solved the task","properties":{"userId":{"type":"integer","format":"int64","description":"The unobfuscated EGYM legacy id of the trainer that completed the task.","example":123},"membershipId":{"type":"string","description":"Membership id of the gym software","example":"membership_id"}}},"timestamp":{"type":"integer","format":"int64","description":"Indicates the server time in milliseconds since epoch","example":1479310474987}},"example":{"title":"Do something else","dueDate":"2016-02-20","author":{"userId":"-7414498790635180469"},"target":{"userId":"70043473040802893"},"completer":{"userId":"39820804037434007"},"completed":"false,","taskType":"ANAMNESIS"}}},"components/schemas/TaskIdDTO":{"id":"components/schemas/TaskIdDTO","kind":"json-schema","title":"TaskIdDTO","data":{"type":"object","description":"This model provides the taskId.","properties":{"taskId":{"type":"integer","format":"int64","description":"The id of the task","example":123}}}},"schema_113":{"kind":"json-schema","data":{"type":"number","example":234},"id":"schema_113"},"schema_114":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/ProductTemplateDto"}},"id":"schema_114"},"schema_115":{"kind":"json-schema","data":{"type":"integer","format":"int64","example":123},"id":"schema_115"},"schema_116":{"kind":"json-schema","data":{"type":"string","example":"0xAA"},"id":"schema_116"},"schema_117":{"kind":"json-schema","data":{"type":"string","example":"example@egym.com"},"id":"schema_117"},"schema_118":{"kind":"json-schema","data":{"type":"string","example":"23ljlsJKLD"},"id":"schema_118"},"schema_119":{"kind":"json-schema","data":{"type":"string","example":"-qwn9fgz5sa3i"},"id":"schema_119"},"schema_120":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/ProductInstanceDto"}},"id":"schema_120"},"schema_121":{"kind":"json-schema","data":{"type":"string","format":"date in format \"YYYY-MM-DD\"\n","example":"2018-09-11"},"id":"schema_121"},"schema_122":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/TaskDTO"}},"id":"schema_122"}},"exampleStore":{},"securitySchemeStore":{"accesstoken":{"id":"accesstoken","type":"apiKey","description":"The token that will allow access the EGYM gym api for a specific gym.","in":"header","paramName":"X-ACCESS-TOKEN"}},"servers":[{"url":"/_mock/mms-api-v2/gymapi/api","isMockServer":true,"description":"Mock server"},{"url":"https://mms.api.ed.ts.egym.coffee/v1","description":"Test"},{"url":"https://mms.api.egym.com/v1","description":"Prod"}],"specType":"openapi"},"options":{"mockServer":{"url":"/_mock/mms-api-v2/gymapi/api","position":"first","description":"Mock server"},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/mms-api-v2/gymapi/api.json?download"},{"url":"/_bundle/mms-api-v2/gymapi/api.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"MMS API v1","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"}},"baseSlug":"/mms-api-v2/gymapi/api","routesMapping":{}}