- 3. Key Endpoints for Standalone Integrations
Equipment Vendor API (for standalone clients) (1.2.0)
At EGYM, we believe that fitness is the soul of healthy living. Work together with partners to help us bringing new ways of working out to millions of gym members, and new ways of prescribing exercises to hundred of thousands of gym trainers, all around the world.
EGYM provides a Fitness Platform for the Connected Gym so you can help us with the mission to make the gym work for everyone. EGYM provides a global account that is not scoped for a specific tenant, brand or gym. The account is called EGYM ID. The EGYM ID allows users to use different services of the gym. The EGYM ID is used for the login to EGYM hardware and software products and conneceted equipment.
EGYM works with the best of breed of the fitness industry. In this documentation, we provide tools and info needed to build a variety of workout experiences that integrate directly with the EGYM Ecosystem. We are happy to welcome you as a partner of EGYM.
| Version | Changes |
|---|---|
| 1.2.0 | ✅ Added support for Genius Training Plans — see [GET /api/v1/cardio/training-plans] and [GET /api/v1/strength/training-plans] |
| 1.1.0 | 🔐 Introduced NFC-based login via Apple/Google Wallet — see POST /api/v1/oauth/token |
The Equipment Vendor API authentication is based on the OAuth 2.0 as specified in the RFC6749, more concretely on the Resource Owner Password Credentials Grant due to constraint environment that can be found in our partner devices, i.e. devices with no screen or using the RFID for user identification.
Currently, different methods for obtaining the Access Token are made available:
- By specifying user credentials
- By specifying RFID
- By specifying NFC (Wallet) credentials (since v1.1.0)
The OAuth client_id and client_secret are issued by EGYM to each partner (vendor) for each gym. These are used in a Basic authentication header as:
Authorization: Basic Base64(client_id:client_secret)Introduced in v1.1.0
This method uses NFC payloads from Apple/Google Wallet. Use grant_type=nfc and supply:
payload: the NFC data stringtransponder_type: eitherAPPLEorGOOGLE- One of:
issuer_id: the Wallet issuer identifier (e.g.,com.egym.apple)configuration_index: the DotOrigin VTAP slot ID
Examples:
POST /api/v1/oauth/token
Authorization: Basic <Base64(client_id:client_secret)>
Content-Type: application/x-www-form-urlencoded
grant_type=nfc&machine_type=bike&serial_number=ser123&payload=abc123&transponder_type=APPLE&issuer_id=com.egym.applePOST /api/v1/oauth/token
Authorization: Basic <Base64(client_id:client_secret)>
Content-Type: application/x-www-form-urlencoded
grant_type=nfc&machine_type=bike&serial_number=ser123&payload=abc123&transponder_type=GOOGLE&issuer_id=123456789POST /api/v1/oauth/token
Authorization: Basic <Base64(client_id:client_secret)>
Content-Type: application/x-www-form-urlencoded
grant_type=nfc&machine_type=bike&serial_number=ser123&payload=abc123&configuration_index=2[Authenticate (POST /oauth/token)]
↓
[Get User Details (GET /users)]
↓
┌────────────────────────────┬────────────────────────────┐
│ │ │
│ Fitness Equipment │ Measurement Devices │
│ │ │
│ - Get Training Plan │ - Submit Measurements │
│ → GET /training-plans │ → POST /measurements/* │
│ - Submit Workout │ │
│ → POST /workouts │ │
└────────────────────────────┴────────────────────────────┘| Code | Meaning | Notes |
|---|---|---|
| 200 | OK | Success |
| 204 | No Content | Success, no response body |
| 400 | Bad Request | Validation or field error |
| 401 | Unauthorized | Missing or invalid auth - credentials are invalid |
| 403 | Forbidden | Insufficient permission - endpoint is not available for equipment type |
| 404 | Not Found | Resource doesn't exist - unknown RFID |
| 500 | Internal Error | Something unexpected |
{
"message": "Invalid input",
"fieldErrors": [
{
"name": "username",
"message": "Must not be null"
}
]
}If you have any questions or need help integrating, contact us at integrations@egym.com.
This section addresses common technical integration questions specific to the Standalone Devices model.
- 401 Unauthorized: Invalid/missing credentials or token
- 403 Forbidden: Permission issue
- 429 Too Many Requests: Rate limit exceeded; retry after delay
- Important: Provide meaningful error messages to the user (not just error codes, ideally with localized description), or silently retry when user experience requires