EGYM Flexibility Measurement API

The Flexibility Measurement API from EGYM — 2 operation(s) for flexibility measurement.

Operations 3

POST /api/v1/measurements/flexibility Create Flexibility Measurement #
GET /api/v1/measurements/flexibility Get Flexibility Measurement #
GET /api/v1/measurements/flexibility/history Get Flexibility History for a user #

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-flexibility-measurement-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 email required.

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

OpenAPI Specification

egym-flexibility-measurement-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Egym Flexibility Measurement API
  contact:
    name: EGYM GmbH
    url: https://egym.com/
    email: support@egym.com
  termsOfService: https://egym.com/us/terms/
  version: '1.0'
  description: 'Operations tagged Flexibility Measurement across 2 of this provider''s published API definitions: egym-equipment-vendor-server-openapi.yml, egym-equipment-vendor-standalone-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://b2b-partner-api.ext-1.test.co.egym.coffee
  description: Generated server url
- 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: Flexibility Measurement
paths:
  /api/v1/measurements/flexibility:
    post:
      tags:
      - Flexibility Measurement
      summary: Create Flexibility Measurement
      description: This endpoint creates a flexibility measurement for the user. See the Flexibility Measurements document for the list of available measurements that can be transferred to EGYM cloud.
      operationId: createFlexibilityMeasurement
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementDTO'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      security:
      - user: []
    get:
      tags:
      - Flexibility Measurement
      summary: Get Flexibility Measurement
      description: This endpoint retrieves the latest flexibility measurement of the user
      operationId: getUserFlexibilityMeasurements
      parameters:
      - name: metrics
        in: query
        description: Subset of FlexibilityMetricType values to include in the response. When omitted, all available metric types are returned.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - RANGE_OF_MOVEMENT_SCORE
            - SYMMETRIC_SCORE
            - HARMONY_SCORE
            - TOTAL_SCORE
            - ADDUCTOR_LEFT_DEGREE
            - ADDUCTOR_LEFT_SCORE
            - ADDUCTOR_RIGHT_DEGREE
            - ADDUCTOR_RIGHT_SCORE
            - ADDUCTOR_RANGE_OF_MOTION_SCORE
            - ADDUCTOR_SYMMETRY_SCORE
            - LEG_BACKSIDE_LYING_LEFT_DEGREE
            - LEG_BACKSIDE_LYING_LEFT_SCORE
            - LEG_BACKSIDE_LYING_RIGHT_DEGREE
            - LEG_BACKSIDE_LYING_RIGHT_SCORE
            - LEG_BACKSIDE_LYING_RANGE_OF_MOTION_SCORE
            - LEG_BACKSIDE_LYING_SYMMETRY_SCORE
            - LEG_BACKSIDE_STANDING_LEFT_DEGREE
            - LEG_BACKSIDE_STANDING_LEFT_SCORE
            - LEG_BACKSIDE_STANDING_RIGHT_DEGREE
            - LEG_BACKSIDE_STANDING_RIGHT_SCORE
            - LEG_BACKSIDE_STANDING_RANGE_OF_MOTION_SCORE
            - LEG_BACKSIDE_STANDING_SYMMETRY_SCORE
            - LEG_EXTENSION_LEFT_DEGREE
            - LEG_EXTENSION_LEFT_SCORE
            - LEG_EXTENSION_RIGHT_DEGREE
            - LEG_EXTENSION_RIGHT_SCORE
            - LEG_EXTENSION_RANGE_OF_MOTION_SCORE
            - LEG_EXTENSION_SYMMETRY_SCORE
            - CHEST_LYING_LEFT_DEGREE
            - CHEST_LYING_LEFT_SCORE
            - CHEST_LYING_RIGHT_DEGREE
            - CHEST_LYING_RIGHT_SCORE
            - CHEST_LYING_RANGE_OF_MOTION_SCORE
            - CHEST_LYING_SYMMETRY_SCORE
            - CHEST_SITTING_LEFT_DEGREE
            - CHEST_SITTING_LEFT_SCORE
            - CHEST_SITTING_RIGHT_DEGREE
            - CHEST_SITTING_RIGHT_SCORE
            - CHEST_SITTING_RANGE_OF_MOTION_SCORE
            - CHEST_SITTING_SYMMETRY_SCORE
            - HIP_FLEXOR_LEFT_DEGREE
            - HIP_FLEXOR_LEFT_SCORE
            - HIP_FLEXOR_RIGHT_DEGREE
            - HIP_FLEXOR_RIGHT_SCORE
            - HIP_FLEXOR_RANGE_OF_MOTION_SCORE
            - HIP_FLEXOR_SYMMETRY_SCORE
            - TORSO_MUSCLES_LYING_LEFT_DEGREE
            - TORSO_MUSCLES_LYING_LEFT_SCORE
            - TORSO_MUSCLES_LYING_RIGHT_DEGREE
            - TORSO_MUSCLES_LYING_RIGHT_SCORE
            - TORSO_MUSCLES_LYING_RANGE_OF_MOTION_SCORE
            - TORSO_MUSCLES_LYING_SYMMETRY_SCORE
            - TORSO_MUSCLES_SITTING_LEFT_DEGREE
            - TORSO_MUSCLES_SITTING_LEFT_SCORE
            - TORSO_MUSCLES_SITTING_RIGHT_DEGREE
            - TORSO_MUSCLES_SITTING_RIGHT_SCORE
            - TORSO_MUSCLES_SITTING_RANGE_OF_MOTION_SCORE
            - TORSO_MUSCLES_SITTING_SYMMETRY_SCORE
            - SHOULDER_NECK_LEFT_DEGREE
            - SHOULDER_NECK_LEFT_SCORE
            - SHOULDER_NECK_RIGHT_DEGREE
            - SHOULDER_NECK_RIGHT_SCORE
            - SHOULDER_NECK_RANGE_OF_MOTION_SCORE
            - SHOULDER_NECK_SYMMETRY_SCORE
            - CALF_LEFT_DEGREE
            - CALF_LEFT_SCORE
            - CALF_RIGHT_DEGREE
            - CALF_RIGHT_SCORE
            - CALF_RANGE_OF_MOTION_SCORE
            - CALF_SYMMETRY_SCORE
            - TORSO_LATERAL_FLEXION_LEFT_DEGREE
            - TORSO_LATERAL_FLEXION_RIGHT_DEGREE
            - TORSO_LATERAL_FLEXION_LEFT_NORMALIZED
            - TORSO_LATERAL_FLEXION_RIGHT_NORMALIZED
            - NECK_LATERAL_FLEXION_LEFT_DEGREE
            - NECK_LATERAL_FLEXION_RIGHT_DEGREE
            - NECK_LATERAL_FLEXION_LEFT_NORMALIZED
            - NECK_LATERAL_FLEXION_RIGHT_NORMALIZED
            - CHEST_EXTENSION_LEFT_DEGREE
            - CHEST_EXTENSION_RIGHT_DEGREE
            - CHEST_EXTENSION_LEFT_NORMALIZED
            - CHEST_EXTENSION_RIGHT_NORMALIZED
            - HIP_EXTENSION_LEFT_DEGREE
            - HIP_EXTENSION_RIGHT_DEGREE
            - HIP_EXTENSION_LEFT_NORMALIZED
            - HIP_EXTENSION_RIGHT_NORMALIZED
            - HAMSTRING_EXTENSION_LEFT_DEGREE
            - HAMSTRING_EXTENSION_RIGHT_DEGREE
            - HAMSTRING_EXTENSION_LEFT_NORMALIZED
            - HAMSTRING_EXTENSION_RIGHT_NORMALIZED
            - SQUAT_DEPTH
            - SQUAT_SHOULDER_DEGREE
            - SQUAT_BACK_DEGREE
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LatestFlexibilityMeasurementsValuesResponseDTO'
        '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: []
    servers:
    - url: https://b2b-partner-api.ext-1.test.co.egym.coffee
      description: Generated server url
  /api/v1/measurements/flexibility/history:
    get:
      tags:
      - Flexibility Measurement
      summary: Get Flexibility History for a user
      description: This endpoint retrieves flexibility measurements history for the user with pagination support
      operationId: getUserFlexibilityHistory
      parameters:
      - name: lastId
        in: query
        description: Cursor for keyset pagination. When provided, only measurements with an ID strictly less than this value are returned, allowing the client to page backwards through the history. Omit on the first request.
        required: false
        schema:
          type: integer
          format: int64
      - name: measurementLimit
        in: query
        description: Maximum number of measurements to return. Must be a positive integer. When omitted, the server applies its default limit.
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlexibilityMeasurementHistoryResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDTO'
      security:
      - user: []
    servers:
    - url: https://partner-api.ext-1.test.co.egym.coffee
      description: Test (ext-1)
    - url: https://partner-api.api.egym.com
      description: Production
components:
  schemas:
    ErrorDTO:
      type: object
      properties:
        timestamp:
          type: string
          description: The timestamp of the request.
          format: date-time
        path:
          type: string
          description: The path requested.
        requestId:
          type: string
          description: The request ID.
          example: de625cf1-1
        status:
          type: integer
          description: The http status code.
          format: int32
        error:
          type: string
          description: The error.
        message:
          type: string
          description: The message to describe the error.
        fieldErrors:
          type: array
          description: The constraint violations.
          items:
            $ref: '#/components/schemas/FieldErrorDTO'
    MeasurementDTO:
      required:
      - data
      - gymId
      - machineName
      - timestamp
      - uniqueMeasurementId
      type: object
      properties:
        timestamp:
          type: integer
          description: The timestamp of when the measurement took place in milliseconds since the epoch time.
          format: int64
          example: 1553074207520
        machineName:
          type: string
          description: The machine name of the equipment that generates the measurement. Machine name needs to be registered at EGYM.
          example: device123
        gymId:
          type: integer
          description: The EGYM Gym Location ID.
          format: int64
          example: 130
        uniqueMeasurementId:
          type: string
          description: Unique identifier for this measurement. The machine should generate a unique id for each measurement submitted.
          example: f5c15c853c1e46de
        data:
          type: object
          additionalProperties:
            type: number
            description: A map of properties that define each measurement for this equipment. Properties need to be registered per machineName at EGYM.
          description: A map of properties that define each measurement for this equipment. Properties need to be registered per machineName at EGYM.
    FieldErrorDTO:
      type: object
      properties:
        name:
          type: string
          description: The field name.
          example: age
        message:
          type: string
          description: The error message.
          example: Must be greater than 10.
        rejectedValue:
          type: object
          description: The rejected value.
          example: 3
      description: The constraint violations.
    FlexibilityMetricDTO:
      type: object
      properties:
        type:
          type: string
          description: The type of the flexibility metric
          enum:
          - RANGE_OF_MOVEMENT_SCORE
          - SYMMETRIC_SCORE
          - HARMONY_SCORE
          - TOTAL_SCORE
          - ADDUCTOR_LEFT_DEGREE
          - ADDUCTOR_LEFT_SCORE
          - ADDUCTOR_RIGHT_DEGREE
          - ADDUCTOR_RIGHT_SCORE
          - ADDUCTOR_RANGE_OF_MOTION_SCORE
          - ADDUCTOR_SYMMETRY_SCORE
          - LEG_BACKSIDE_LYING_LEFT_DEGREE
          - LEG_BACKSIDE_LYING_LEFT_SCORE
          - LEG_BACKSIDE_LYING_RIGHT_DEGREE
          - LEG_BACKSIDE_LYING_RIGHT_SCORE
          - LEG_BACKSIDE_LYING_RANGE_OF_MOTION_SCORE
          - LEG_BACKSIDE_LYING_SYMMETRY_SCORE
          - LEG_BACKSIDE_STANDING_LEFT_DEGREE
          - LEG_BACKSIDE_STANDING_LEFT_SCORE
          - LEG_BACKSIDE_STANDING_RIGHT_DEGREE
          - LEG_BACKSIDE_STANDING_RIGHT_SCORE
          - LEG_BACKSIDE_STANDING_RANGE_OF_MOTION_SCORE
          - LEG_BACKSIDE_STANDING_SYMMETRY_SCORE
          - LEG_EXTENSION_LEFT_DEGREE
          - LEG_EXTENSION_LEFT_SCORE
          - LEG_EXTENSION_RIGHT_DEGREE
          - LEG_EXTENSION_RIGHT_SCORE
          - LEG_EXTENSION_RANGE_OF_MOTION_SCORE
          - LEG_EXTENSION_SYMMETRY_SCORE
          - CHEST_LYING_LEFT_DEGREE
          - CHEST_LYING_LEFT_SCORE
          - CHEST_LYING_RIGHT_DEGREE
          - CHEST_LYING_RIGHT_SCORE
          - CHEST_LYING_RANGE_OF_MOTION_SCORE
          - CHEST_LYING_SYMMETRY_SCORE
          - CHEST_SITTING_LEFT_DEGREE
          - CHEST_SITTING_LEFT_SCORE
          - CHEST_SITTING_RIGHT_DEGREE
          - CHEST_SITTING_RIGHT_SCORE
          - CHEST_SITTING_RANGE_OF_MOTION_SCORE
          - CHEST_SITTING_SYMMETRY_SCORE
          - HIP_FLEXOR_LEFT_DEGREE
          - HIP_FLEXOR_LEFT_SCORE
          - HIP_FLEXOR_RIGHT_DEGREE
          - HIP_FLEXOR_RIGHT_SCORE
          - HIP_FLEXOR_RANGE_OF_MOTION_SCORE
          - HIP_FLEXOR_SYMMETRY_SCORE
          - TORSO_MUSCLES_LYING_LEFT_DEGREE
          - TORSO_MUSCLES_LYING_LEFT_SCORE
          - TORSO_MUSCLES_LYING_RIGHT_DEGREE
          - TORSO_MUSCLES_LYING_RIGHT_SCORE
          - TORSO_MUSCLES_LYING_RANGE_OF_MOTION_SCORE
          - TORSO_MUSCLES_LYING_SYMMETRY_SCORE
          - TORSO_MUSCLES_SITTING_LEFT_DEGREE
          - TORSO_MUSCLES_SITTING_LEFT_SCORE
          - TORSO_MUSCLES_SITTING_RIGHT_DEGREE
          - TORSO_MUSCLES_SITTING_RIGHT_SCORE
          - TORSO_MUSCLES_SITTING_RANGE_OF_MOTION_SCORE
          - TORSO_MUSCLES_SITTING_SYMMETRY_SCORE
          - SHOULDER_NECK_LEFT_DEGREE
          - SHOULDER_NECK_LEFT_SCORE
          - SHOULDER_NECK_RIGHT_DEGREE
          - SHOULDER_NECK_RIGHT_SCORE
          - SHOULDER_NECK_RANGE_OF_MOTION_SCORE
          - SHOULDER_NECK_SYMMETRY_SCORE
          - CALF_LEFT_DEGREE
          - CALF_LEFT_SCORE
          - CALF_RIGHT_DEGREE
          - CALF_RIGHT_SCORE
          - CALF_RANGE_OF_MOTION_SCORE
          - CALF_SYMMETRY_SCORE
          - TORSO_LATERAL_FLEXION_LEFT_DEGREE
          - TORSO_LATERAL_FLEXION_RIGHT_DEGREE
          - TORSO_LATERAL_FLEXION_LEFT_NORMALIZED
          - TORSO_LATERAL_FLEXION_RIGHT_NORMALIZED
          - NECK_LATERAL_FLEXION_LEFT_DEGREE
          - NECK_LATERAL_FLEXION_RIGHT_DEGREE
          - NECK_LATERAL_FLEXION_LEFT_NORMALIZED
          - NECK_LATERAL_FLEXION_RIGHT_NORMALIZED
          - CHEST_EXTENSION_LEFT_DEGREE
          - CHEST_EXTENSION_RIGHT_DEGREE
          - CHEST_EXTENSION_LEFT_NORMALIZED
          - CHEST_EXTENSION_RIGHT_NORMALIZED
          - HIP_EXTENSION_LEFT_DEGREE
          - HIP_EXTENSION_RIGHT_DEGREE
          - HIP_EXTENSION_LEFT_NORMALIZED
          - HIP_EXTENSION_RIGHT_NORMALIZED
          - HAMSTRING_EXTENSION_LEFT_DEGREE
          - HAMSTRING_EXTENSION_RIGHT_DEGREE
          - HAMSTRING_EXTENSION_LEFT_NORMALIZED
          - HAMSTRING_EXTENSION_RIGHT_NORMALIZED
          - SQUAT_DEPTH
          - SQUAT_SHOULDER_DEGREE
          - SQUAT_BACK_DEGREE
          example: RANGE_OF_MOVEMENT_SCORE
        value:
          type: number
          description: The value of the metric
          example: '85.0'
    FieldErrorDTO_2:
      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.
    LatestFlexibilityMeasurementsValuesResponseDTO:
      type: object
      properties:
        data:
          type: object
          additionalProperties: true
          description: Map of flexibility metric types to their latest recorded numeric values. Keys are FlexibilityMetricType enum string values. Score metrics (e.g. TOTAL_SCORE, RANGE_OF_MOVEMENT_SCORE) are on a 0–100 scale; degree metrics (e.g. ADDUCTOR_LEFT_DEGREE) represent the measured angle in degrees. Only metrics that have been measured for the user are present in the response.
          example:
            TOTAL_SCORE: 78
            RANGE_OF_MOVEMENT_SCORE: 85
            SYMMETRIC_SCORE: 72.5
            ADDUCTOR_LEFT_DEGREE: 42
            ADDUCTOR_RIGHT_DEGREE: 44
    MeasurementDTO_2:
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
          description: The timestamp of when the measurement took place in milliseconds since the epoch time. Maximum difference to the past is seven days.
          example: 1672531200000
        uniqueMeasurementId:
          type: string
          description: Unique identifier for this measurement. The machine should generate a unique id for each measurement submitted.
          minLength: 1
        data:
          type: object
          additionalProperties:
            type: number
          description: A map of properties that define each measurement for this equipment.
          minProperties: 1
      required:
      - data
      - timestamp
      - uniqueMeasurementId
    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_2'
        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
    FlexibilityMeasurementHistoryResponseDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The ID of the measurement
          example: 123
        timestamp:
          type: integer
          format: int64
          description: The timestamp when the measurement was created (epoch milliseconds)
          example: 1647685800000
        metrics:
          type: array
          description: List of flexibility metrics for this measurement
          items:
            $ref: '#/components/schemas/FlexibilityMetricDTO'
  securitySchemes:
    user:
      type: http
      scheme: bearer
      bearerFormat: JWT
    partner:
      type: apiKey
      name: x-api-key
      in: header
x-refined-from:
- egym-equipment-vendor-server-openapi.yml
- egym-equipment-vendor-standalone-openapi.yml