Workoutlytics
Workoutlytics · GPT 작업
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"
}
}
}
}
}
}