Workoutlytics

Workoutlytics · GPT Actions

Workoutlytics

Your personal guide to peak performance with Strava. Track heart rate, progress & tips.

  • GET /athleteRetrieve detailed information about an athlete, including associated gear.
  • GET /athlete-zonesRetrieve athlete's heart rate and power zones.
  • GET /athlete-activitiesRetrieve the activities of an athlete.
  • GET /activitiesRetrieve activity details using its ID.
  • GET /athletes-statsRetrieve the statistical data for an athlete.
原始 API 定义
{
  "openapi": "3.0.1",
  "info": {
    "title": "Workoutlytics",
    "description": "Your personal guide to peak performance with Strava. Track heart rate, progress & tips.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.workoutlytics.com/v1"
    }
  ],
  "paths": {
    "/athlete": {
      "get": {
        "operationId": "getAthleteDetails",
        "summary": "Retrieve detailed information about an athlete, including associated gear.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "athleteId": {
                      "type": "integer",
                      "description": "The unique identifier for the athlete."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/athlete-zones": {
      "get": {
        "operationId": "getAthleteZones",
        "summary": "Retrieve athlete's heart rate and power zones.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "heartRateZones": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "Array of heart rate zones."
                    },
                    "powerZones": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "Array of power zones."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/athlete-activities": {
      "get": {
        "operationId": "getAthleteActivities",
        "summary": "Retrieve the activities of an athlete.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items per page. Defaults to 30.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AthleteActivity"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/activities": {
      "get": {
        "operationId": "getActivityById",
        "summary": "Retrieve activity details using its ID.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The identifier of the activity.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AthleteActivity"
                }
              }
            }
          }
        }
      }
    },
    "/athletes-stats": {
      "get": {
        "operationId": "getAthletesStats",
        "summary": "Retrieve the statistical data for an athlete.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "totalRuns": {
                      "type": "integer",
                      "description": "Total number of runs by the athlete."
                    },
                    "totalRides": {
                      "type": "integer",
                      "description": "Total number of rides by the athlete."
                    },
                    "totalSwims": {
                      "type": "integer",
                      "description": "Total number of swims by the athlete."
                    },
                    "totalAlpineSki": {
                      "type": "integer",
                      "description": "Total number of alpine ski activities by the athlete."
                    },
                    "totalBackcountrySki": {
                      "type": "integer",
                      "description": "Total number of backcountry ski activities by the athlete."
                    },
                    "totalCanoeing": {
                      "type": "integer",
                      "description": "Total number of canoeing activities by the athlete."
                    },
                    "totalCrossfit": {
                      "type": "integer",
                      "description": "Total number of crossfit sessions by the athlete."
                    },
                    "totalEBikeRide": {
                      "type": "integer",
                      "description": "Total number of E-Bike rides by the athlete."
                    },
                    "totalElliptical": {
                      "type": "integer",
                      "description": "Total number of elliptical sessions by the athlete."
                    },
                    "totalHike": {
                      "type": "integer",
                      "description": "Total number of hikes by the athlete."
                    },
                    "totalIceSkate": {
                      "type": "integer",
                      "description": "Total number of ice skating sessions by the athlete."
                    },
                    "totalInlineSkate": {
                      "type": "integer",
                      "description": "Total number of inline skating sessions by the athlete."
                    },
                    "totalKayaking": {
                      "type": "integer",
                      "description": "Total number of kayaking sessions by the athlete."
                    },
                    "totalKitesurfSession": {
                      "type": "integer",
                      "description": "Total number of kitesurfing sessions by the athlete."
                    },
                    "totalNordicSki": {
                      "type": "integer",
                      "description": "Total number of nordic ski sessions by the athlete."
                    },
                    "totalRockClimbing": {
                      "type": "integer",
                      "description": "Total number of rock climbing sessions by the athlete."
                    },
                    "totalRollerSki": {
                      "type": "integer",
                      "description": "Total number of roller ski sessions by the athlete."
                    },
                    "totalRowing": {
                      "type": "integer",
                      "description": "Total number of rowing sessions by the athlete."
                    },
                    "totalSnowboard": {
                      "type": "integer",
                      "description": "Total number of snowboarding sessions by the athlete."
                    },
                    "totalSnowshoe": {
                      "type": "integer",
                      "description": "Total number of snowshoeing sessions by the athlete."
                    },
                    "totalStairStepper": {
                      "type": "integer",
                      "description": "Total number of stair-stepper sessions by the athlete."
                    },
                    "totalStandUpPaddle": {
                      "type": "integer",
                      "description": "Total number of stand up paddleboarding sessions by the athlete."
                    },
                    "totalSurfing": {
                      "type": "integer",
                      "description": "Total number of surfing sessions by the athlete."
                    },
                    "totalVirtualRide": {
                      "type": "integer",
                      "description": "Total number of virtual rides by the athlete."
                    },
                    "totalWalk": {
                      "type": "integer",
                      "description": "Total number of walks by the athlete."
                    },
                    "totalWeightTraining": {
                      "type": "integer",
                      "description": "Total number of weight training sessions by the athlete."
                    },
                    "totalWindsurfSession": {
                      "type": "integer",
                      "description": "Total number of windsurfing sessions by the athlete."
                    },
                    "totalYoga": {
                      "type": "integer",
                      "description": "Total number of yoga sessions by the athlete."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AthleteActivity": {
        "type": "object",
        "properties": {
          "resource_state": {
            "type": "integer"
          },
          "athlete": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "resource_state": {
                "type": "integer"
              }
            }
          },
          "name": {
            "type": "string"
          },
          "distance": {
            "type": "number"
          },
          "moving_time": {
            "type": "integer"
          },
          "elapsed_time": {
            "type": "integer"
          },
          "total_elevation_gain": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "sport_type": {
            "type": "string"
          },
          "workout_type": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "start_date_local": {
            "type": "string",
            "format": "date-time"
          },
          "timezone": {
            "type": "string"
          },
          "utc_offset": {
            "type": "number"
          },
          "location_city": {
            "type": "string",
            "nullable": true
          },
          "location_state": {
            "type": "string",
            "nullable": true
          },
          "location_country": {
            "type": "string"
          },
          "achievement_count": {
            "type": "integer"
          },
          "kudos_count": {
            "type": "integer"
          },
          "comment_count": {
            "type": "integer"
          },
          "athlete_count": {
            "type": "integer"
          },
          "photo_count": {
            "type": "integer"
          },
          "map": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "summary_polyline": {
                "type": "string"
              },
              "resource_state": {
                "type": "integer"
              }
            }
          },
          "trainer": {
            "type": "boolean"
          },
          "commute": {
            "type": "boolean"
          },
          "manual": {
            "type": "boolean"
          },
          "private": {
            "type": "boolean"
          },
          "visibility": {
            "type": "string"
          },
          "flagged": {
            "type": "boolean"
          },
          "gear_id": {
            "type": "string"
          },
          "start_latlng": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "end_latlng": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "average_speed": {
            "type": "number"
          },
          "max_speed": {
            "type": "number"
          },
          "average_cadence": {
            "type": "number"
          },
          "average_temp": {
            "type": "integer"
          },
          "average_watts": {
            "type": "number"
          },
          "kilojoules": {
            "type": "number"
          },
          "device_watts": {
            "type": "boolean"
          },
          "has_heartrate": {
            "type": "boolean"
          },
          "average_heartrate": {
            "type": "number"
          },
          "max_heartrate": {
            "type": "number"
          },
          "heartrate_opt_out": {
            "type": "boolean"
          },
          "display_hide_heartrate_option": {
            "type": "boolean"
          },
          "elev_high": {
            "type": "number"
          },
          "elev_low": {
            "type": "number"
          },
          "upload_id": {
            "type": "integer"
          },
          "upload_id_str": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "from_accepted_tag": {
            "type": "boolean"
          },
          "pr_count": {
            "type": "integer"
          },
          "total_photo_count": {
            "type": "integer"
          },
          "has_kudoed": {
            "type": "boolean"
          }
        }
      }
    }
  }
}

Workoutlytics

Your personal guide to peak performance with Strava. Track heart rate, progress & tips.

  • GET /athleteRetrieve detailed information about an athlete, including associated gear.
  • GET /athlete-zonesRetrieve athlete's heart rate and power zones.
  • GET /athlete-activitiesRetrieve the activities of an athlete.
  • GET /activitiesRetrieve activity details using its ID.
  • GET /athletes-statsRetrieve the statistical data for an athlete.
原始 API 定义
{
  "openapi": "3.0.1",
  "info": {
    "title": "Workoutlytics",
    "description": "Your personal guide to peak performance with Strava. Track heart rate, progress & tips.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.workoutlytics.com/v1"
    }
  ],
  "paths": {
    "/athlete": {
      "get": {
        "operationId": "getAthleteDetails",
        "summary": "Retrieve detailed information about an athlete, including associated gear.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "athleteId": {
                      "type": "integer",
                      "description": "The unique identifier for the athlete."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/athlete-zones": {
      "get": {
        "operationId": "getAthleteZones",
        "summary": "Retrieve athlete's heart rate and power zones.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "heartRateZones": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "Array of heart rate zones."
                    },
                    "powerZones": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "Array of power zones."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/athlete-activities": {
      "get": {
        "operationId": "getAthleteActivities",
        "summary": "Retrieve the activities of an athlete.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items per page. Defaults to 30.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AthleteActivity"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/activities": {
      "get": {
        "operationId": "getActivityById",
        "summary": "Retrieve activity details using its ID.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The identifier of the activity.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AthleteActivity"
                }
              }
            }
          }
        }
      }
    },
    "/athletes-stats": {
      "get": {
        "operationId": "getAthletesStats",
        "summary": "Retrieve the statistical data for an athlete.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "totalRuns": {
                      "type": "integer",
                      "description": "Total number of runs by the athlete."
                    },
                    "totalRides": {
                      "type": "integer",
                      "description": "Total number of rides by the athlete."
                    },
                    "totalSwims": {
                      "type": "integer",
                      "description": "Total number of swims by the athlete."
                    },
                    "totalAlpineSki": {
                      "type": "integer",
                      "description": "Total number of alpine ski activities by the athlete."
                    },
                    "totalBackcountrySki": {
                      "type": "integer",
                      "description": "Total number of backcountry ski activities by the athlete."
                    },
                    "totalCanoeing": {
                      "type": "integer",
                      "description": "Total number of canoeing activities by the athlete."
                    },
                    "totalCrossfit": {
                      "type": "integer",
                      "description": "Total number of crossfit sessions by the athlete."
                    },
                    "totalEBikeRide": {
                      "type": "integer",
                      "description": "Total number of E-Bike rides by the athlete."
                    },
                    "totalElliptical": {
                      "type": "integer",
                      "description": "Total number of elliptical sessions by the athlete."
                    },
                    "totalHike": {
                      "type": "integer",
                      "description": "Total number of hikes by the athlete."
                    },
                    "totalIceSkate": {
                      "type": "integer",
                      "description": "Total number of ice skating sessions by the athlete."
                    },
                    "totalInlineSkate": {
                      "type": "integer",
                      "description": "Total number of inline skating sessions by the athlete."
                    },
                    "totalKayaking": {
                      "type": "integer",
                      "description": "Total number of kayaking sessions by the athlete."
                    },
                    "totalKitesurfSession": {
                      "type": "integer",
                      "description": "Total number of kitesurfing sessions by the athlete."
                    },
                    "totalNordicSki": {
                      "type": "integer",
                      "description": "Total number of nordic ski sessions by the athlete."
                    },
                    "totalRockClimbing": {
                      "type": "integer",
                      "description": "Total number of rock climbing sessions by the athlete."
                    },
                    "totalRollerSki": {
                      "type": "integer",
                      "description": "Total number of roller ski sessions by the athlete."
                    },
                    "totalRowing": {
                      "type": "integer",
                      "description": "Total number of rowing sessions by the athlete."
                    },
                    "totalSnowboard": {
                      "type": "integer",
                      "description": "Total number of snowboarding sessions by the athlete."
                    },
                    "totalSnowshoe": {
                      "type": "integer",
                      "description": "Total number of snowshoeing sessions by the athlete."
                    },
                    "totalStairStepper": {
                      "type": "integer",
                      "description": "Total number of stair-stepper sessions by the athlete."
                    },
                    "totalStandUpPaddle": {
                      "type": "integer",
                      "description": "Total number of stand up paddleboarding sessions by the athlete."
                    },
                    "totalSurfing": {
                      "type": "integer",
                      "description": "Total number of surfing sessions by the athlete."
                    },
                    "totalVirtualRide": {
                      "type": "integer",
                      "description": "Total number of virtual rides by the athlete."
                    },
                    "totalWalk": {
                      "type": "integer",
                      "description": "Total number of walks by the athlete."
                    },
                    "totalWeightTraining": {
                      "type": "integer",
                      "description": "Total number of weight training sessions by the athlete."
                    },
                    "totalWindsurfSession": {
                      "type": "integer",
                      "description": "Total number of windsurfing sessions by the athlete."
                    },
                    "totalYoga": {
                      "type": "integer",
                      "description": "Total number of yoga sessions by the athlete."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AthleteActivity": {
        "type": "object",
        "properties": {
          "resource_state": {
            "type": "integer"
          },
          "athlete": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "resource_state": {
                "type": "integer"
              }
            }
          },
          "name": {
            "type": "string"
          },
          "distance": {
            "type": "number"
          },
          "moving_time": {
            "type": "integer"
          },
          "elapsed_time": {
            "type": "integer"
          },
          "total_elevation_gain": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "sport_type": {
            "type": "string"
          },
          "workout_type": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "start_date_local": {
            "type": "string",
            "format": "date-time"
          },
          "timezone": {
            "type": "string"
          },
          "utc_offset": {
            "type": "number"
          },
          "location_city": {
            "type": "string",
            "nullable": true
          },
          "location_state": {
            "type": "string",
            "nullable": true
          },
          "location_country": {
            "type": "string"
          },
          "achievement_count": {
            "type": "integer"
          },
          "kudos_count": {
            "type": "integer"
          },
          "comment_count": {
            "type": "integer"
          },
          "athlete_count": {
            "type": "integer"
          },
          "photo_count": {
            "type": "integer"
          },
          "map": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "summary_polyline": {
                "type": "string"
              },
              "resource_state": {
                "type": "integer"
              }
            }
          },
          "trainer": {
            "type": "boolean"
          },
          "commute": {
            "type": "boolean"
          },
          "manual": {
            "type": "boolean"
          },
          "private": {
            "type": "boolean"
          },
          "visibility": {
            "type": "string"
          },
          "flagged": {
            "type": "boolean"
          },
          "gear_id": {
            "type": "string"
          },
          "start_latlng": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "end_latlng": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "average_speed": {
            "type": "number"
          },
          "max_speed": {
            "type": "number"
          },
          "average_cadence": {
            "type": "number"
          },
          "average_temp": {
            "type": "integer"
          },
          "average_watts": {
            "type": "number"
          },
          "kilojoules": {
            "type": "number"
          },
          "device_watts": {
            "type": "boolean"
          },
          "has_heartrate": {
            "type": "boolean"
          },
          "average_heartrate": {
            "type": "number"
          },
          "max_heartrate": {
            "type": "number"
          },
          "heartrate_opt_out": {
            "type": "boolean"
          },
          "display_hide_heartrate_option": {
            "type": "boolean"
          },
          "elev_high": {
            "type": "number"
          },
          "elev_low": {
            "type": "number"
          },
          "upload_id": {
            "type": "integer"
          },
          "upload_id_str": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "from_accepted_tag": {
            "type": "boolean"
          },
          "pr_count": {
            "type": "integer"
          },
          "total_photo_count": {
            "type": "integer"
          },
          "has_kudoed": {
            "type": "boolean"
          }
        }
      }
    }
  }
}