EGYM Strength Workouts API

The Strength Workouts API from EGYM — 2 operation(s) for strength workouts.

Operations 2

POST /api/v1/strength/workouts Create Workout #
GET /api/v1/strength/training-plans Get Training Plans #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/egym-strength-workouts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

egym-strength-workouts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Equipment Vendor API (for standalone clients) Strength…
  description: At EGYM, we believe that fitness is the soul of healthy living.
  termsOfService: https://egym.com/us/terms/
  contact:
    name: EGYM GmbH
    url: https://egym.com/
    email: support@egym.com
  license:
    name: Pending License
    url: https://egym.com/
  version: 1.2.0
servers:
- url: https://partner-api.ext-1.test.co.egym.coffee
  description: Test (ext-1)
- url: https://partner-api.api.egym.com
  description: Production
tags:
- name: Strength Workouts
paths:
  /api/v1/strength/workouts:
    post:
      tags:
      - Strength Workouts
      summary: Create Workout
      description: This endpoint creates a strength workout
      operationId: createWorkout
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StrengthWorkoutDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
      security:
      - user: []
  /api/v1/strength/training-plans:
    get:
      tags:
      - Strength Workouts
      summary: Get Training Plans
      description: This endpoint returns a user strength training plan
      operationId: findAllTrainingPlans
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StrengthTrainingPlansDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
      security:
      - user: []
components:
  schemas:
    StrengthWorkoutSetDTO:
      type: object
      properties:
        setId:
          type: integer
          format: int32
          description: 'The set id, the set IDs should be a sequential number, 1st set: 1, 2nd set: 2, etc.'
          example: 1
        weight:
          type: number
          format: double
          description: The weight setting, in Kilogram <b>(kg)</b>, used in this set.
          example: 100
        repetitions:
          type: integer
          format: int32
          description: The number of repetitions of this set.
          example: 12
        rangeOfMotion:
          type: number
          format: double
          description: The length between start and returning point, in millimetres <b>(mm)</b>.
          example: 250
        duration:
          type: integer
          format: int64
          description: The duration in milliseconds.
          example: 60000
        kiloCalories:
          type: number
          format: double
          description: The kilo calories <b>(kcal)</b> burned during the set.
          example: 10
        restTime:
          type: integer
          format: int64
          description: Rest/Recovery time in milliseconds.
          example: 20000
      required:
      - repetitions
      - setId
      - weight
    StrengthTrainingPlansDTO:
      type: object
      properties:
        trainer:
          type: array
          description: The training plan exercises prescribed by a trainer.
          items:
            $ref: '#/components/schemas/TrainerStrengthWorkoutDTO'
        genius:
          type: array
          description: The AI (Genius) generated training plan exercises.
          items:
            $ref: '#/components/schemas/GeniusStrengthWorkoutDTO'
    StrengthWorkoutDTO:
      type: object
      properties:
        uniqueExerciseId:
          type: string
          description: Unique identifier for this exercise. The machine should generate a unique id for each exercise submitted.
          minLength: 1
        startTimestamp:
          type: integer
          format: int64
          description: The start of the exercise in milliseconds since the epoch time. It can not be older than seven days.
          example: 1672531200000
        exerciseName:
          type: string
          description: The name that the partner will give to its exercise.
          minLength: 1
        kiloCalories:
          type: number
          format: double
          description: The kilo calories <b>(kcal)</b> burned during the exercise.
          example: 100
        trainingPlanId:
          type: integer
          format: int64
          description: Training Plan ID. When the user selects an exercise from the training plan, this field should contain the training plan id from that exercise when submitting the workout.
          example: 7189234126347912000
        trainingPlanExerciseId:
          type: integer
          format: int64
          description: Training Plan Exercise ID. When the user selects an exercise from the training plan, this field should contain the training plan exercise id from that exercise when submitting the workout.
          example: -767612783462
        orderNumber:
          type: integer
          format: int32
          description: Order number of the exercise in the session of the training plan. This can be used for sorting.
          example: 1
        sets:
          type: array
          description: The strength workout sets. A set should represent the repetitions done by the user using the same parameters.
          items:
            $ref: '#/components/schemas/StrengthWorkoutSetDTO'
          minItems: 1
      required:
      - exerciseName
      - sets
      - startTimestamp
      - uniqueExerciseId
    ApiErrorResponseDTO:
      type: object
      description: Standard error response returned by the API for all error status codes.
      properties:
        timestamp:
          type: integer
          format: int64
          description: Unix epoch milliseconds when the error occurred.
          example: 1775122463109
        path:
          type: string
          description: The request path that triggered the error.
          example: /api/v1/measurements/body/history
        status:
          type: integer
          format: int32
          description: HTTP status code.
          example: 400
        error:
          type: string
          description: Short textual description of the HTTP status.
          example: Bad Request
        requestId:
          type: string
          description: Unique identifier for the request, useful for correlating logs and support tickets.
          example: d0c0fd9e-236
        message:
          type: string
          description: Human-readable description of the error.
          example: 'Invalid request parameters: value must be greater than or equal to 1 and less than or equal to 1000'
        fieldErrors:
          type: array
          description: List of field-level validation errors. Only present when the error was caused by request-body binding failures or custom form validation.
          items:
            $ref: '#/components/schemas/FieldErrorDTO'
        errorCode:
          type: string
          description: Machine-readable error code for domain-specific errors. Only present for exceptions that carry a custom error code.
          example: USER_NOT_FOUND
    FieldErrorDTO:
      type: object
      properties:
        name:
          type: string
          description: The field name.
        message:
          type: string
          description: The error message.
          example: Must not be null.
        rejectedValue:
          description: The rejected value.
          example: Must not be null.
    TrainerStrengthWorkoutDTO:
      type: object
      properties:
        author:
          $ref: '#/components/schemas/UserDTO'
          description: Information about the author of the workout.
        exerciseName:
          type: string
          description: The name that the partner will give to its exercise.
        sessionName:
          type: string
          description: The name that the trainer will give to their exercise.
        startTimestamp:
          type: integer
          format: int64
          description: The start of the exercise in milliseconds since the epoch time.
          example: 1672531200000
        endTimestamp:
          type: integer
          format: int64
          description: The end of the exercise in milliseconds since the epoch time.
        frequency:
          type: integer
          format: int32
          description: The number of times this exercise should be repeated per week.
          example: 2
        timezone:
          type: string
          description: The timezone where the workout is taking place.
        trainingPlanId:
          type: integer
          format: int64
          description: Training Plan ID. When the user selects an exercise from the training plan, this field should contain the training plan id from that exercise when submitting the workout.
          example: 7189234126347912000
        trainingPlanExerciseId:
          type: integer
          format: int64
          description: Training Plan Exercise ID. When the user selects an exercise from the training plan, this field should contain the training plan exercise id from that exercise when submitting the workout.
          example: -767612783462
        orderNumber:
          type: integer
          format: int32
          description: Order number of the exercise in the session of the training plan. This can be used for sorting.
          example: 1
        sets:
          type: array
          description: The strength workout sets. A set should represent the repetitions done by the user using the same parameters.
          items:
            $ref: '#/components/schemas/StrengthWorkoutSetDTO'
    GeniusStrengthWorkoutDTO:
      type: object
      properties:
        exerciseName:
          type: string
          description: The name that the partner will give to its exercise.
        sessionName:
          type: string
          description: The name that identifies the session for the user.
        startTimestamp:
          type: integer
          format: int64
          description: The start of the exercise in milliseconds since the epoch time.
          example: 1672531200000
        endTimestamp:
          type: integer
          format: int64
          description: The end of the exercise in milliseconds since the epoch time.
        frequency:
          type: integer
          format: int32
          description: The number of times this exercise should be repeated per week.
          example: 2
        timezone:
          type: string
          description: The timezone where the workout is taking place.
        trainingPlanId:
          type: integer
          format: int64
          description: Training Plan ID. When the user selects an exercise from the training plan, this field should contain the training plan id from that exercise when submitting the workout.
          example: 7189234126347912000
        trainingPlanExerciseId:
          type: integer
          format: int64
          description: Training Plan Exercise ID. When the user selects an exercise from the training plan, this field should contain the training plan exercise id from that exercise when submitting the workout.
          example: -767612783462
        orderNumber:
          type: integer
          format: int32
          description: Order number of the exercise in the session of the training plan. This can be used for sorting.
          example: 1
        sets:
          type: array
          description: The strength workout sets. A set should represent the repetitions done by the user using the same parameters.
          items:
            $ref: '#/components/schemas/StrengthWorkoutSetDTO'
    ImageReferenceDTO:
      type: object
      properties:
        imageType:
          type: string
          enum:
          - EXERCISE
          - EQUIPMENT
          - AVATAR
          - COVER
          - GYM_BANNER
          - GYM_PROFILE
          - GYM_HEADER
          - GYM
          - CHART
          - BLOG
          - PARTNER
          - MOBILESPLASH
          - SIGNATURE
          - CARDIOSCAN
          - MUSCLES
          - SHARED
        imageId:
          type: string
    UserDTO:
      type: object
      properties:
        userId:
          type: string
          description: The userId assigned by EGYM, for example -1c2yqo37vn9m. Can be null on xID authentication if BMA User is not linked to EGYM account.
          example: -1c2yqo37vn9m
        bmaUserId:
          type: string
          description: Temporary solution for Matrix. The BMA userId assigned by egym, for example d101df00-ab9d-40f5-8f03-3c50aaa364d6. Only available during xID authentication
          example: d101df01-ab9d-40f5-8f03-3c50aaa364d6
        firstName:
          type: string
          description: The user's first name.
        lastName:
          type: string
          description: The user's last name.
        image:
          $ref: '#/components/schemas/ImageReferenceDTO'
          description: The user profile image.
      required:
      - firstName
  securitySchemes:
    user:
      type: http
      scheme: bearer
      bearerFormat: JWT
    partner:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /api/v1/oauth/token
          scopes: {}
x-tagGroups:
- name: Authentication
  tags:
  - OAuth
- name: Partners Information
  tags:
  - Partners
- name: Measurements
  tags:
  - Body Measurement
  - Cardio Measurement
  - Flexibility Measurement
- name: User
  tags:
  - User
  - Image
  - Statistics
- name: Machine
  tags:
  - Machine
- name: Resource
  tags:
  - Resource
- name: Workouts
  tags:
  - Strength Workouts
  - Cardio Workouts
  - Open Exercise Workouts
- name: Cardio Test
  tags:
  - Cardio Test
- name: Logging
  tags:
  - Logging