Polar Team training sessions API

Endpoints for getting team training sessions and details.

OpenAPI Specification

polar-team-training-sessions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Polar AccessLink API documentation
  version: v3
  title: Polar AccessLink Cardio load Team training sessions API
  contact:
    name: Support
    url: https://www.polar.com/accesslink
    email: b2bhelpdesk@polar.com
  license:
    name: Polar Electro AccessLink Limited License Agreement
    url: https://www.polar.com/en/legal/polar-api-agreement
servers:
- url: https://www.polaraccesslink.com/
tags:
- name: Team training sessions
  description: Endpoints for getting team training sessions and details.
paths:
  /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 <since>.
        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 <until>
        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
components:
  schemas:
    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_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
    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
    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
    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'
    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
    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-14 09:20:06
        end_time:
          type: string
          description: End time of the marker
          format: date-time
          example: 2017-04-14 09: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
    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
    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
  securitySchemes:
    Basic:
      type: http
      scheme: basic
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://flow.polar.com/oauth2/authorization
          tokenUrl: https://polarremote.com/v2/oauth2/token
          scopes:
            accesslink.read_all: Allows read access to user's data