openapi: 3.2.0 info: title: Hevy Exercise History API version: '1.0' description: 'Operations tagged ExerciseHistory across 2 of this provider''s published API definitions: hevy-gpt-action-openapi.json, hevy-public-api-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: https://hevy.com tags: - name: ExerciseHistory paths: /v1/exercise_history/{exerciseTemplateId}: get: summary: Get exercise history for a specific exercise template operationId: get-exercise-history security: - oauth2: - read:exercise_history tags: - ExerciseHistory parameters: - in: path name: exerciseTemplateId description: The id of the exercise template required: true schema: type: string - in: query name: start_date schema: type: string format: date-time description: Optional start date for filtering exercise history (ISO 8601 format) example: '2024-01-01T00:00:00Z' required: false - in: query name: end_date schema: type: string format: date-time description: Optional end date for filtering exercise history (ISO 8601 format) example: '2024-12-31T23:59:59Z' required: false responses: '200': description: A list of exercise history entries content: application/json: schema: type: object properties: exercise_history: type: array items: $ref: '#/components/schemas/ExerciseHistoryEntry' '400': description: Invalid request parameters servers: - url: https://hevy.com components: schemas: ExerciseHistoryEntry: type: object properties: workout_id: type: string description: The workout ID example: b459cba5-cd6d-463c-abd6-54f8eafcadcb workout_title: type: string description: The workout title example: Morning Workout 💪 workout_start_time: type: string description: ISO 8601 timestamp of when the workout was recorded to have started. example: '2024-01-01T12:00:00Z' workout_end_time: type: string description: ISO 8601 timestamp of when the workout was recorded to have ended. example: '2024-01-01T13:00:00Z' exercise_template_id: type: string description: The exercise template ID example: D04AC939 weight_kg: type: number nullable: true description: The weight in kilograms example: 100 reps: type: integer nullable: true description: The number of repetitions example: 10 distance_meters: type: integer nullable: true description: The distance in meters example: null duration_seconds: type: integer nullable: true description: The duration in seconds example: null rpe: type: number nullable: true description: The Rating of Perceived Exertion example: 8.5 custom_metric: type: number nullable: true description: A custom metric for the set example: null set_type: type: string description: The type of set (warmup, normal, failure, dropset) example: normal ExerciseHistoryEntry_2: type: object properties: workout_id: type: string description: The workout ID example: b459cba5-cd6d-463c-abd6-54f8eafcadcb workout_title: type: string description: The workout title example: Morning Workout 💪 workout_start_time: type: string description: ISO 8601 timestamp of when the workout was recorded to have started. example: '2024-01-01T12:00:00Z' workout_end_time: type: string description: ISO 8601 timestamp of when the workout was recorded to have ended. example: '2024-01-01T13:00:00Z' exercise_template_id: type: string description: The exercise template ID example: D04AC939 weight_kg: type: - number - 'null' description: The weight in kilograms example: 100 reps: type: - integer - 'null' description: The number of repetitions example: 10 distance_meters: type: - integer - 'null' description: The distance in meters example: null duration_seconds: type: - integer - 'null' description: The duration in seconds example: null rpe: type: - number - 'null' description: The Rating of Perceived Exertion example: 8.5 custom_metric: type: - number - 'null' description: A custom metric for the set example: null set_type: type: string description: The type of set (warmup, normal, failure, dropset) example: normal x-refined-from: - hevy-gpt-action-openapi.json - hevy-public-api-openapi.json