openapi: 3.0.0 info: description: Polar AccessLink API documentation version: v3 title: Polar AccessLink Cardio load Team 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 description: Endpoints for getting teams and team 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 components: schemas: 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' 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 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 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' 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 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) 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' 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 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: - false - ON_NORMAL - ON_LONG - GPS_ON_10_HZ - GPS_ON_MEDIUM muscle_load_setting: type: string description: Is muscle load enabled example: true enum: - false - true 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' 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