openapi: 3.0.0
info:
title: TeamPro API
description: Polar TeamPro API documentation
version: 1.1.0
contact:
name: Support
url: 'https://www.polar.com/en/developers'
email: b2bhelpdesk@polar.com
license:
name: License Agreement
url: 'https://www.polar.com/en/legal/polar-api-agreement'
servers:
- url: https://teampro.api.polar.com/
tags:
- name: Team
description: Endpoints for getting teams and team details.
- name: Team training sessions
description: Endpoints for getting team training sessions and details.
- name: Player training sessions
description: "Endpoints for getting players training session and details.
"
paths:
/v1/teams:
get:
tags:
- Team
summary: Get teams.
parameters:
- name: pagination
description: Pagination parameters
in: query
required: false
schema:
$ref: '#/components/schemas/paginationQuery'
responses:
'200':
description: List of teams.
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: List of teams.
items:
$ref: '#/components/schemas/team'
page:
$ref: '#/components/schemas/paginationResponse'
security:
- OAuth2:
- team_read
/v1/teams/{team_id}:
get:
tags:
- Team
summary: Get team details.
parameters:
- name: team_id
in: path
description: Team id to get.
required: true
schema:
type: string
responses:
'200':
description: Response containing team details.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/teamDetails'
'404':
description: Given team_id doesn't match any of user's teams.
security:
- OAuth2:
- team_read
/v1/teams/{team_id}/sport-profiles:
get:
tags:
- Team
summary: Get team sport profiles.
parameters:
- name: team_id
in: path
description: Team ID for retrieving the team's sport profiles.
required: true
schema:
type: string
responses:
'200':
description: Response containing team sport profiles.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/teamSportProfile'
'404':
description: Given team_id doesn't match any of user's teams.
security:
- OAuth2:
- team_read
/v1/teams/{team_id}/training_sessions:
get:
tags:
- Team training sessions
summary: Get team training sessions.
parameters:
- name: team_id
in: path
description: Team whose training session are returned.
required: true
schema:
type: string
- name: since
in: query
description: Return training sessions having record_start_time greater than .
required: false
schema:
type: string
format: date-time
example: '2018-04-14T00:00:00'
- name: until
in: query
description: Return training sessions having record_start_time less than
required: false
schema:
type: string
format: date-time
example: '2018-05-14T00:00:00'
- name: pagination
description: Pagination parameters
in: query
required: false
schema:
$ref: '#/components/schemas/paginationQuery'
responses:
'200':
description: Teams training sessions.
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: List of team training sessions.
items:
$ref: '#/components/schemas/trainingSession'
page:
$ref: '#/components/schemas/paginationResponse'
'404':
description: Given team_id doesn't match any of users's teams.
security:
- OAuth2:
- team_read
/v1/teams/training_sessions/{training_session_id}:
get:
tags:
- Team training sessions
summary: Get team training session details.
parameters:
- name: training_session_id
in: path
description: Training session id.
required: true
schema:
type: string
responses:
'200':
description: Training session details as JSON.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/trainingSessionDetails'
'404':
description: Given training_session_id doesn't match any of user's training sessions.
security:
- OAuth2:
- team_read
/v1/players/{player_id}/training_sessions:
get:
tags:
- Player training sessions
summary: Get player training sessions.
parameters:
- name: player_id
in: path
description: Player id
required: true
schema:
type: string
- name: since
in: query
description: Return training sessions having start_time greater than [since].
required: false
schema:
type: string
format: date-time
example: '2018-04-14T00:00:00'
- name: until
in: query
description: Return training sessions having start_time less than [until].
required: false
schema:
type: string
format: date-time
example: '2018-05-14T00:00:00'
- name: type
in: query
description: Return all, individual or team training sessions.
required: false
schema:
type: string
enum:
- ALL
- TEAM
- INDIVIDUAL
- name: pagination
description: Pagination parameters
in: query
required: false
schema:
$ref: '#/components/schemas/paginationQuery'
responses:
'200': # status code
description: Response containing list of player training sessions.
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: List of player training sessions.
items:
$ref: '#/components/schemas/playerTrainingSession'
page:
$ref: '#/components/schemas/paginationResponse'
'404':
description: Given player_id doesn't match any of user's players.
security:
- OAuth2:
- team_read
/v1/training_sessions/{player_session_id}:
get:
tags:
- Player training sessions
summary: Get player training session details.
parameters:
- name: player_session_id
in: path
description: Players' training session id.
required: true
schema:
type: string
- name: samples
in: query
description: Include requested samples in response. Possible values are "all" or comma-separated list from "distance", "location", "hr", "speed", "cadence", "altitude", "forward_acceleration", "rr".
required: false
schema:
type: string
example: 'distance,location,hr'
responses:
'200':
description: Player training session as JSON.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/playerTrainingSessionDetails'
'404':
description: Given player_session_id doesn't match any of user's training sessions.
security:
- OAuth2:
- team_read
/v1/training_sessions/{player_session_id}/session_summary:
get:
tags:
- Player training sessions
summary: Get player team training session trimmed values.
parameters:
- name: player_session_id
in: path
description: Players' training session id.
required: true
schema:
type: string
responses:
'200':
description: Player team training session trimmed values as JSON.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/playerTeamTrainingSessionDetails'
'404':
description: Given player_session_id doesn't match any of user's training sessions.
security:
- OAuth2:
- team_read
/v1/training_sessions/{player_session_id}/phase_summaries:
get:
tags:
- Player training sessions
summary: Get player team training session phase summaries.
parameters:
- name: player_session_id
in: path
description: Players' training session id.
required: true
schema:
type: string
responses:
'200':
description: List of player team training phase summaries.
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: List of player team training phase summaries.
items:
$ref: '#/components/schemas/playerTeamTrainingSessionPhaseSummary'
'404':
description: Given player_session_id doesn't match any of user's training sessions.
security:
- OAuth2:
- team_read
components:
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: 'https://auth.polar.com/oauth/authorize'
tokenUrl: 'https://auth.polar.com/oauth/token'
scopes:
team_read: Allows read access to user's data
schemas:
marker:
type: object
description: Training session marker.i
properties:
start_time:
type: string
description: Start time of the marker
format: date-time
example: 2017-04-14T09:20:06
end_time:
type: string
description: End time of the marker
format: date-time
example: 2017-04-14T09:50:06
marker_type:
type: string
description: Marker type
example: PHASE
enum:
- PHASE
- NOTE
- RECOVERY
name:
type: string
example: 'Intervals'
description: Marker name
note:
type: string
example: 'Cooling down'
description: Marker note
paginationResponse:
type: object
description: >-
Pagination info in response. Model contains info about response
element count and paging.
properties:
per_page:
type: integer
example: 20
description: Items per page
total_elements:
type: integer
example: 2
description: Total number of items
page_number:
type: integer
example: 0
description: Number of the current page
total_pages:
type: integer
example: 1
description: Total number of pages
paginationQuery:
type: object
description: >-
Endpoints that return multiple items are paginated to
20 items by default. To request next page, use page
parameter in request. Total number of elements and
pages are returned in response in `page` property,
see [paginationResponse](#tocSpaginationresponse).
properties:
page:
type: integer
example: 3
description: Page number, starting from 0
per_page:
type: integer
example: 20
description: Number of elements to be returned per page. Value must be between 1 and 100.
example: "?page=3&per_page=20"
participant:
type: object
description: Training session participant.
properties:
player_id:
type: string
example: 'ZmozZxkr'
description: Player id
player_number:
type: integer
format: int32
example: 12
description: Player number
role:
type: string
example: 'Midfielder'
description: Player role
player_session_id:
type: string
example: 'wp9DQ9ln'
description: Player training session id
player:
type: object
description: Player data.
properties:
player_id:
type: string
example: 'ZmozZxkr'
description: Player id
player_number:
type: integer
format: int32
example: 12
description: Player number
role:
type: string
example: 'Midfielder'
description: Player role
first_name:
type: string
example: 'John'
description: Player first name
last_name:
type: string
example: 'Doe'
description: Player last name
playerTrainingSession:
type: object
description: >-
Player training session data used in
[player training session listing](#list-player-training-sessions).
properties:
id:
type: string
example: 'wp9DQ9ln'
description: Player training session id
type:
type: string
example: "TEAM"
description: >-
Type of the training session. `TEAM` for team training session and
`INDIVIDUAL` for players' personal training session.
enum:
- TEAM
- INDIVIDUAL
created:
type: string
description: Time when the training session is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Last time modified
format: date-time
example: '2017-04-13T21:06:58Z'
sport:
type: string
description: Sport type
example: SOCCER
name:
type: string
description: Training session name
example: Rowing
feeling:
type: string
description: Training session feeling
enum:
- BAD
- NOT_GOOD
- OKAY
- GREAT
- AWESOME
example: AWESOME
note:
type: string
description: Training session note
example: Awesome training.
latitude:
type: number
description: Start latitude of the training session
example: 55.67336654663086
longitude:
type: number
description: Start longitude of the training session
example: 12.49395084381104
start_time:
type: string
description: Start time of the training session
format: date-time
example: '2017-04-14T09:20:06'
stop_time:
type: string
description: End time of the training session
format: date-time
example: '2017-04-14T09:50:06'
duration_ms:
type: number
description: Duration in milliseconds
example: 180000
timezone_offset:
type: integer
description: Timezone offset for training session
example: 120
playerTrainingSessionDetails:
type: object
description: Detailed info about player training session.
properties:
id:
type: string
example: 'wp9DQ9ln'
description: Player training session id
type:
type: string
example: "TEAM"
description: >-
Type of the training session. `TEAM` for team training session and
`INDIVIDUAL` for players personal training session.
enum:
- TEAM
- INDIVIDUAL
created:
type: string
description: Time when the training session is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Time when the training session is modified last
format: date-time
example: '2017-04-13T21:06:58Z'
name:
type: string
description: Training session name
example: Rowing
feeling:
type: string
description: Training session feeling
enum:
- BAD
- NOT_GOOD
- OKAY
- GREAT
- AWESOME
example: AWESOME
note:
type: string
description: Training session note
example: Awesome training.
latitude:
type: number
description: Start latitude of the training session
example: 55.67336654663086
longitude:
type: number
description: Start longitude of the training session
example: 12.49395084381104
start_time:
type: string
description: Start time of the training session
format: date-time
example: '2017-04-14T09:20:06'
stop_time:
type: string
description: End time of the training session
format: date-time
example: '2017-04-14T09:50:06'
duration_ms:
type: number
description: Duration in milliseconds
example: 180000
calories:
type: number
description: Training session calorie consumption in kilocalories
example: 601
distance_meters:
type: number
description: Distance in meters
example: 6566.0
training_load:
type: number
description: Training load of the training session
example: 78
training_benefit:
type: string
description: Training benefit of the training session
example: BASIC_TRAINING
enum:
- NONE
- RECOVERY_TRAINING
- BASIC_TRAINING
- BASIC_TRAINING_LONG
- BASIC_AND_STEADY_STATE_TRAINING
- BASIC_AND_STEADY_STATE_TRAINING_LONG
- STEADY_STATE_TRAINING
- STEADY_STATE_AND_BASIC_TRAINING
- STEADY_STATE_AND_BASIC_TRAINING_LONG
- STEADY_STATE_TRAINING_PLUS
- STEADY_STATE_AND_TEMPO_TRAINING
- TEMPO_AND_STEADY_STATE_TRAINING
- TEMPO_TRAINING
- TEMPO_TRAINING_PLUS
- TEMPO_AND_MAXIMUM_TRAINING
- MAXIMUM_TRAINING
- MAXIMUM_AND_TEMPO_TRAINING
- MAXIMUM_TRAINING_PLUS
cardio_load:
type: number
description: Cardio load of the training session
example: 27.3
muscle_load:
type: number
description: Muscle load of the training session
example: 34
recovery_time_ms:
type: number
description: Recovery time in milliseconds
example: 480277990
fat_percentage:
type: integer
description: Fat percentage
example: 28
carbo_percentage:
type: integer
description: Carbohydrate percentage
example: 44
protein_percentage:
type: integer
description: Protein percentage
example: 30
heart_rate_max:
type: integer
description: Maximum heart rate of the training session
example: 96
heart_rate_avg:
type: integer
description: Average heart rate of the training session
example: 79
sport:
type: string
description: Sport type
example: SOCCER
running_index:
type: integer
description: Running index value from training session
example: 28
ascent:
type: number
example: 46.3
description: Ascent in meters
descent:
type: number
description: Descent in meters
example: 12.5
walking_duration_ms:
type: number
description: Walking duration in milliseconds
example: 180000
walking_distance_meters:
type: number
description: Walking distance in meters
example: 6566.0
sprint_counter:
type: integer
description: Sprint count.
example: 12
product:
type: string
description: Product used to save the training session
example: "Polar Pro"
samples:
type: object
$ref: '#/components/schemas/trainingSessionSamples'
rr_intervals:
type: array
items:
type: integer
example: [ 485,483,null,800,483,486,483,null,950,281 ]
description: List of rr-intervals.
playerTeamTrainingSessionDetails:
type: object
description: Detailed info about player's team training session.
properties:
player_session_id:
type: string
example: 'wp9DQ9ln'
description: Player training session id
created:
type: string
description: Time when the training session is added to team training session
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Time when the team training session is modified last
format: date-time
example: '2017-04-13T21:06:58Z'
trimmed_start_time:
type: string
description: Start time of the team training session - local time
format: date-time
example: '2017-04-14T09:20:06'
duration_ms:
type: number
description: Duration of the team training session in milliseconds
example: 180000
distance_meters:
type: number
description: Distance of the training session in meters
example: 6566.0
kilo_calories:
type: number
description: Calorie consumption of the training session in kilocalories
example: 601
heart_rate_max:
type: integer
description: Maximum heart rate of the training session
example: 160
heart_rate_avg:
type: integer
description: Average heart rate of the training session
example: 120
heart_rate_min:
type: integer
description: Minimum heart rate of the training session
example: 55
heart_rate_max_percent:
type: integer
description: Maximum heart rate percent of the training session
example: 96
heart_rate_avg_percent:
type: integer
description: Average heart rate percent of the training session
example: 79
heart_rate_min_percent:
type: integer
description: Minimum heart rate percent of the training session
example: 55
sprint_counter:
type: integer
description: Sprint count of the training session.
example: 12
speed_avg_kmh:
type: integer
description: Average speed of the training session
example: 7.9
speed_max_kmh:
type: integer
description: Maximum speed of the training session
example: 18.4
cadence_avg:
type: integer
description: Average cadence of the training session
example: 60
cadence_max:
type: integer
description: Maximum cadence of the training session
example: 100
training_load:
type: number
description: Training load of the training session
example: 180
cardio_load:
type: number
description: Cardio load of the training session
example: 27.3
muscle_load:
type: number
description: Muscle load of the training session
example: 34
heart_rate_zones:
type: array
description: List of heart rate zones.
items:
$ref: '#/components/schemas/heart_rate_zone'
speed_zones_kmh:
type: array
description: List of speed zones.
items:
$ref: '#/components/schemas/speed_zone_kmh'
acceleration_zones_ms2:
type: array
description: List of acceleration zones.
items:
$ref: '#/components/schemas/acceleration_zone_ms2'
power_zones:
type: array
description: List of power zones.
items:
$ref: '#/components/schemas/power_zone'
out_of_heart_rate_zones:
type: string
example: PT4S
description: Time duration spent outside zones ISO 8601
out_of_speed_zones:
type: number
example: 222
description: Distance in meters outside zones
out_of_power_zones:
type: string
example: PT4.2S
description: Time duration spent outside zones ISO 8601
minimum_rr:
type: integer
description: Minimum RR interval
example: 200
average_rr:
type: integer
description: Average RR interval
example: 250
maximum_rr:
type: integer
description: Maximum RR interval
example: 300
rmssd:
type: integer
description: RMSSD value
example: 50
cardio_load_interpretation:
type: integer
description: Cardio load interpretation
example: 1
muscle_load_interpretation:
type: integer
description: Muscle load interpretation
example: 2
playerTeamTrainingSessionPhaseSummary:
type: object
description: Detailed info about player's team training session phase.
properties:
player_session_id:
type: string
example: 'wp9DQ9ln'
description: Player training session id
created:
type: string
description: Time when the training session is added to team training session
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Time when the team training session is modified last
format: date-time
example: '2017-04-13T21:06:58Z'
trimmed_start_time:
type: string
description: Start time of the team training session - local time
format: date-time
example: '2017-04-14T09:20:06'
duration_ms:
type: number
description: Duration of the team training session in milliseconds
example: 180000
distance_meters:
type: number
description: Distance of the training session in meters
example: 6566.0
kilo_calories:
type: number
description: Calorie consumption of the training session in kilocalories
example: 601
heart_rate_max:
type: integer
description: Maximum heart rate of the training session
example: 160
heart_rate_avg:
type: integer
description: Average heart rate of the training session
example: 120
heart_rate_min:
type: integer
description: Minimum heart rate of the training session
example: 55
heart_rate_max_percent:
type: integer
description: Maximum heart rate percent of the training session
example: 96
heart_rate_avg_percent:
type: integer
description: Average heart rate percent of the training session
example: 79
heart_rate_min_percent:
type: integer
description: Minimum heart rate percent of the training session
example: 55
sprint_counter:
type: integer
description: Sprint count of the training session.
example: 12
speed_avg_kmh:
type: integer
description: Average speed of the training session
example: 7.9
speed_max_kmh:
type: integer
description: Maximum speed of the training session
example: 18.4
cadence_avg:
type: integer
description: Average cadence of the training session
example: 60
cadence_max:
type: integer
description: Maximum cadence of the training session
example: 100
training_load:
type: number
description: Training load of the training session
example: 180
cardio_load:
type: number
description: Cardio load of the training session
example: 27.5
muscle_load:
type: number
description: Muscle load of the training session
example: 34
heart_rate_zones:
type: array
description: List of heart rate zones.
items:
$ref: '#/components/schemas/heart_rate_zone'
speed_zones_kmh:
type: array
description: List of speed zones.
items:
$ref: '#/components/schemas/speed_zone_kmh'
acceleration_zones_ms2:
type: array
description: List of acceleration zones.
items:
$ref: '#/components/schemas/acceleration_zone_ms2'
power_zones:
type: array
description: List of power zones.
items:
$ref: '#/components/schemas/power_zone'
out_of_heart_rate_zones:
type: string
example: PT4S
description: Time duration spent outside zones ISO 8601
out_of_speed_zones:
type: number
example: 222
description: Distance in meters outside zones
out_of_power_zones:
type: string
example: PT4.2S
description: Time duration spent outside zones ISO 8601
minimum_rr:
type: integer
description: Minimum RR interval
example: 200
average_rr:
type: integer
description: Average RR interval
example: 250
maximum_rr:
type: integer
description: Maximum RR interval
example: 300
rmssd:
type: integer
description: RMSSD value
example: 50
cardio_load_interpretation:
type: integer
description: Cardio load interpretation
example: 1
muscle_load_interpretation:
type: integer
description: Muscle load interpretation
example: 2
heart_rate_zone:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 110
description: Lower heart-rate boundary of the zone
higher_limit:
type: integer
example: 130
description: Upper heart-rate boundary of the zone
in_zone:
type: string
example: PT4S
description: Time duration spent in the zone ISO 8601
description: Heart-rate zone information
speed_zone_kmh:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 3
description: Lower speed boundary of the zone
higher_limit:
type: integer
example: 7
description: Upper speed boundary of the zone
in_zone_meters:
type: number
example: 222
description: Distance in meters in the zone
description: Speed zone information
power_zone:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 3
description: Lower power boundary of the zone
higher_limit:
type: integer
example: 7
description: Upper power boundary of the zone
in_zone:
type: string
example: PT4.2S
description: Time duration spent in the zone ISO 8601
in_zone_muscle_load:
type: number
example: 333
description: Muscle load in the zone
description: Power zone information
acceleration_zone_ms2:
type: object
properties:
limit:
type: integer
example: -3
description: Lower acceleration boundary of the zone in m/s2
counter:
type: number
example: 22
description: Acceleration count of current acceleration zone
description: Acceleration zone information
team:
type: object
description: Basic info of team used in listing.
properties:
id:
type: string
example: 'wMYz6L4w'
description: Team id
name:
type: string
example: 'Team1'
description: Team name
organisation:
type: string
example: 'Organisation1'
description: Organisation name
created:
type: string
description: Time when the team is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Last time modified
format: date-time
example: '2017-04-13T21:06:58Z'
teamDetails:
type: object
description: Detailed team data.
properties:
id:
type: string
example: 'wMYz6L4w'
description: Team id
name:
type: string
example: 'Team1'
description: Team name
organisation:
type: string
example: 'Organisation1'
description: Organisation name
created:
type: string
description: Time when the team is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Last time modified
format: date-time
example: '2017-04-13T21:06:58Z'
players:
type: array
description: Team players
items:
$ref: '#/components/schemas/player'
sport_profiles:
type: array
description: Team sport profiles
items:
$ref: '#/components/schemas/teamSportProfile'
trainingSession:
type: object
description: >-
Team training session data used in
[team training session listing](#get-team-training-sessions).
properties:
id:
type: string
example: 'R8rMB4j7'
description: Training session id
team_id:
type: string
example: 'wMYz6L4w'
description: Team id
name:
type: string
description: Training session name
example: Match against Brazil national team
type:
type: string
description: Training session type
example: MATCH
enum:
- TRAINING
- DRILL
- TEST
- GAME
- MATCH
- STRENGTH AND CONDITION
- OTHER
note:
type: string
description: Notes from training session
example: Game started very well, but we lost 0-8
created:
type: string
description: Time when the training session is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Last time modified
format: date-time
example: '2017-04-13T21:06:58Z'
record_start_time:
type: string
description: Training session record start time
format: date-time
example: '2017-04-14T09:17:22'
record_end_time:
type: string
description: Training session record end time
format: date-time
example: '2017-04-14T09:56:47'
start_time:
type: string
description: Training session start time
format: date-time
example: '2017-04-14T09:20:06'
end_time:
type: string
description: Training session end time
format: date-time
example: '2017-04-14T09:50:06'
latitude:
type: number
description: Start latitude of the training session
example: 55.67336654663086
longitude:
type: number
description: Start longitude of the training session
example: 12.49395084381104
sport:
type: string
description: Sport type
example: SOCCER
trainingSessionDetails:
type: object
description: Team training session details.
properties:
id:
type: string
example: 'R8rMB4j7'
description: Training session id
team_id:
type: string
example: 'wMYz6L4w'
description: Team id
name:
type: string
description: Training session name
example: Match against Brazil national team
type:
type: string
description: Training session type
example: MATCH
note:
type: string
description: Notes from training session
example: Game started very well, but we lost 0-8
created:
type: string
description: Time when the training session is created
format: date-time
example: '2017-04-13T21:06:58Z'
modified:
type: string
description: Last time modified
format: date-time
example: '2017-04-13T21:06:58Z'
record_start_time:
type: string
description: Training session record start time
format: date-time
example: '2017-04-14T09:17:22'
record_end_time:
type: string
description: Training session record end time
format: date-time
example: '2017-04-14T09:56:47'
start_time:
type: string
description: Training session start time
format: date-time
example: '2017-04-14T09:20:06'
end_time:
type: string
description: Training session end time
format: date-time
example: '2017-04-14T09:50:06'
latitude:
type: number
description: Start latitude of the training session
example: 55.67336654663086
longitude:
type: number
description: Start longitude of the training session
example: 12.49395084381104
sport:
type: string
description: Sport type
example: SOCCER
arena:
type: string
description: Game arena
example: Valby old stadium Denmark
distance:
type: number
description: Distance of the training session in meters
example: 6566.0
kilocalories:
type: number
description: Calorie consumption of the training session in kilocalories
example: 601
training_load:
type: number
description: Training load of the training session
example: 78
heart_rate_average:
type: number
description: Average heart rate of the training session
example: 79
cardio_load:
type: number
description: Cardio load of the training session
example: 27.2
cardio_load_interpretation:
type: number
description: Cardio load interpretation of the training session
example: 3
participants:
type: array
items:
$ref: '#/components/schemas/participant'
markers:
type: array
items:
$ref: '#/components/schemas/marker'
heart_rate_zones:
type: array
description: List of heart rate zones.
items:
$ref: '#/components/schemas/team_training_heart_rate_zone'
speed_zones_kmh:
type: array
description: List of speed zones.
items:
$ref: '#/components/schemas/team_training_speed_zone_kmh'
power_zones:
type: array
description: List of power zones.
items:
$ref: '#/components/schemas/team_training_power_zone'
team_training_heart_rate_zone:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 110
description: Lower heart-rate boundary of the zone
higher_limit:
type: integer
example: 130
description: Upper heart-rate boundary of the zone
in_zone:
type: string
example: PT4S
description: Time duration spent in the zone ISO 8601
in_zone_meters:
type: number
example: 222
description: Distance in meters in the zone
description: Heart-rate zone information
team_training_speed_zone_kmh:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 3
description: Lower speed boundary of the zone
higher_limit:
type: integer
example: 7
description: Upper speed boundary of the zone
in_zone:
type: string
example: PT4.2S
description: Time duration spent in the zone ISO 8601
in_zone_meters:
type: number
example: 222
description: Distance in meters in the zone
description: Speed zone information
team_training_power_zone:
type: object
properties:
index:
type: integer
example: 1
description: Zone list index
lower_limit:
type: integer
example: 3
description: Lower power boundary of the zone
higher_limit:
type: integer
example: 7
description: Upper power boundary of the zone
in_zone:
type: string
example: PT4.2S
description: Time duration spent in the zone ISO 8601
in_zone_muscle_load:
type: number
example: 333
description: Muscle load in the zone
description: Power zone information
trainingSessionSamples:
type: object
description: >-
Sample model contains two properties, `fields` and `values`.
`Fields` contains list of sample types which are available in `values`.
`Values` contains list of sample value lists. Each sample value list has
duration as first item which tells the record time (from the beginning
of the training) of the samples. Next values in array contains the sample
value itself.
properties:
fields:
type: array
description: List of sample types which are present in `values` property.
items:
type: string
enum:
- time: Timestamp of sample in ISO 8601 string format, starting from 0.
- distance: Total distance moved in meters, double.
- hr: Heart rate, double.
- speed: Current speed, double.
- cadence: Current cadence, double.
- lat: Location latitude coordinate, double.
- lon: Location longitude coordinate, double.
- altitude: Location altitude, double.
- forward_acceleration: Forward acceleration, double.
- power: Current power, integer.
example: [ "time", "distance", "hr", "speed", "cadence", "lat", "lon", "altitude", "forward_acceleration", "power" ]
values:
type: array
description: List of sample value lists.
items:
type: array
items: { }
example: [ [ "PT0S",0.0,94.0,0.0,0,55.67336654663086,12.49395084381104,null,0.0 ],[ "PT0.1S",0.0,null,0.0,0,null,null,null,null,0.04 ],[ "PT0.2S",0.0,null,0.0,0,null,null,null,null,-0.02, 125 ] ]
teamSportProfile:
type: object
description: >-
Team sport profile
properties:
sport:
type: string
description: Sport type
example: SOCCER
created:
type: string
description: Time when the sport profile was created
format: date-time
example: '2025-05-16T11:52:54Z'
modified:
type: string
description: Time when the sport profile was last modified
format: date-time
example: '2025-05-16T11:52:54Z'
sprint_threshold_type:
type: string
description: Sprint threshold type
example: ACCELERATION
enum:
- ACCELERATION
- SPEED
sprint_threshold:
type: number
description: Sprint threshold
example: 2.8
gps_state:
type: string
description: GPS state
example: ON_NORMAL
enum:
- OFF
- ON_NORMAL
- ON_LONG
- GPS_ON_10_HZ
- GPS_ON_MEDIUM
muscle_load_setting:
type: string
description: Is muscle load enabled
example: ON
enum:
- OFF
- ON
heart_rate_zone_type:
type: string
description: Heart rate zone type
example: THRESHOLD
enum:
- DEFAULT
- FREE
- THRESHOLD
speed_zone_type:
type: string
description: Speed zone type
example: FREE
enum:
- DEFAULT
- FREE
power_zone_type:
type: string
description: Power zone type
example: DEFAULT
enum:
- DEFAULT
- FREE
zones:
$ref: '#/components/schemas/sportProfileZones'
acceleration_zones:
$ref: '#/components/schemas/sportProfileAccelerationZones'
sportProfileZones:
description: Sport zones created for the sport profile
properties:
heart_rate:
type: array
description: Heart rate zones in beats per minute if sport profile has them.
example: [
{ "lower_limit": 100.0, "higher_limit": 120.0 },
{ "lower_limit": 120.0, "higher_limit": 140.0 },
{ "lower_limit": 140.0, "higher_limit": 160.0 },
{ "lower_limit": 160.0, "higher_limit": 180.0 },
{ "lower_limit": 180.0, "higher_limit": 200.0 }
]
items:
$ref: '#/components/schemas/sportProfileZone'
speed:
type: array
description: Speed zones in kilometers per hour if sport profile has them.
example: [
{ "lower_limit": 10.0, "higher_limit": 12.0 },
{ "lower_limit": 12.0, "higher_limit": 15.0 },
{ "lower_limit": 15.0, "higher_limit": 17.1 },
{ "lower_limit": 17.1, "higher_limit": 20.0 },
{ "lower_limit": 20.0, "higher_limit": 399.0 }
]
items:
$ref: '#/components/schemas/sportProfileZone'
power:
type: array
description: Power zones in watts if sport profile has them.
example: [
{ "lower_limit": 70.0, "higher_limit": 85.0 },
{ "lower_limit": 85.0, "higher_limit": 100.0 },
{ "lower_limit": 100.0, "higher_limit": 130.0 },
{ "lower_limit": 130.0, "higher_limit": 180.0 },
{ "lower_limit": 180.0, "higher_limit": 400.0 }
]
items:
$ref: '#/components/schemas/sportProfileZone'
sportProfileZone:
description: Single sport profile zone
properties:
lower_limit:
type: number
description: Lower limit of the zone (inclusive)
higher_limit:
type: number
description: Higher limit of the zone (exclusive)
sportProfileAccelerationZones:
description: Acceleration zones for the sport profile
properties:
free_acceleration_zones:
type: boolean
description: Free acceleration zones in use
example: true
acceleration_zones:
type: array
description: List of four acceleration zone thresholds from lowest to highest.
example: [ 0.5, 1.0, 2.0, 3.0 ]
items:
type: number
deceleration_zones:
type: array
description: List of four deceleration zone thresholds from lowest to highest.
example: [ -0.5, -1.0, -2.0, -3.0 ]
items:
type: number