Skip to content

Physical Information Endpoint

polar_flow.endpoints.physical_info.PhysicalInfoEndpoint

Physical information endpoint.

Use :meth:get to fetch the user's current physical information via the non-transactional GET /v3/users/physical-info endpoint.

The transaction-based methods remain for backwards compatibility but the underlying API endpoints were deprecated by Polar (13.01.2026 changelog).

__init__(client)

Initialize physical info endpoint.

Parameters:

Name Type Description Default
client PolarFlow

PolarFlow client instance

required

commit_transaction(user_id, transaction_id) async

Commit transaction and mark data as retrieved.

This should be called after retrieving all physical information to indicate the data has been successfully processed.

Parameters:

Name Type Description Default
user_id int | str

Polar user ID

required
transaction_id int

Transaction ID to commit

required

create_transaction(user_id) async

Create transaction to access new physical information.

.. deprecated:: 1.5.0 Deprecated by Polar. Use :meth:get instead.

Parameters:

Name Type Description Default
user_id int | str

Polar user ID

required

Returns:

Type Description
PhysicalInfoTransaction | None

Transaction metadata if new data available, None if no new data

Raises:

Type Description
NotFoundError

If user not found

get() async

Get the user's current physical information.

Uses the non-transactional endpoint added to AccessLink on 13.01.2026. The user is identified by the access token.

Returns:

Type Description
UserPhysicalInfo

Current physical information (weight, height, VO2 max,

UserPhysicalInfo

resting/max heart rate, aerobic/anaerobic thresholds, ...)

Raises:

Type Description
AuthenticationError

If access token is invalid

NotFoundError

If no physical information exists

Example
async with PolarFlow(access_token="token") as client:
    info = await client.physical_info.get()
    print(f"VO2 max: {info.vo2_max}")
    print(f"Resting HR: {info.resting_heart_rate}")

get_all(user_id) async

Convenience method to get all new physical information.

This creates a transaction, retrieves all physical info, and commits.

.. deprecated:: 1.5.0 Deprecated by Polar. Use :meth:get instead.

Parameters:

Name Type Description Default
user_id int | str

Polar user ID

required

Returns:

Type Description
list[PhysicalInformation]

List of physical information records (empty if no new data)

get_physical_info(user_id, transaction_id, physical_info_id) async

Get specific physical information entity.

Parameters:

Name Type Description Default
user_id int | str

Polar user ID

required
transaction_id int

Transaction ID

required
physical_info_id int

Physical information entity ID

required

Returns:

Type Description
PhysicalInformation

Physical information with body metrics

Raises:

Type Description
NotFoundError

If physical info not found

list_physical_info(user_id, transaction_id) async

List physical information URLs in transaction.

Parameters:

Name Type Description Default
user_id int | str

Polar user ID

required
transaction_id int

Transaction ID from create_transaction

required

Returns:

Type Description
list[str]

List of physical information resource URLs