Skip to content

Sleep Endpoint

polar_flow.endpoints.sleep.SleepEndpoint

Sleep data endpoint handler.

This class provides methods for accessing sleep tracking data from the Polar AccessLink API. Sleep data is non-transactional and can be retrieved multiple times.

get(user_id, date) async

Get sleep data for a specific date.

Parameters:

Name Type Description Default
user_id str

Polar user ID

required
date str | date

Date in YYYY-MM-DD format or date object (the day user woke up)

required

Returns:

Type Description
SleepData

Sleep data for the specified date

Raises:

Type Description
NotFoundError

If no sleep data exists for the date

AuthenticationError

If access token is invalid

ValidationError

If date format is invalid

Example
async with PolarFlow(access_token="token") as client:
    sleep = await client.sleep.get(user_id="123", date="2026-01-09")
    print(f"Sleep score: {sleep.sleep_score}/100")
    print(f"Total sleep: {sleep.total_sleep_hours} hours")

list(user_id=None, *, days=None, since=None, end_date=None) async

Get sleep data for multiple days.

Parameters:

Name Type Description Default
user_id str | None

(Deprecated) Polar user ID - not needed, API uses token

None
days int | None

Number of days to fetch (1-30). Defaults to 7.

None
since str | None

Fetch data since this date (YYYY-MM-DD). Alternative to days.

None
end_date str | date | None

End date (inclusive). Defaults to today.

None

Returns:

Type Description
list[SleepData]

List of sleep data, ordered by date (most recent first)

Raises:

Type Description
ValueError

If both days and since specified, or if since is invalid

AuthenticationError

If access token is invalid

Example
async with PolarFlow(access_token="token") as client:
    # Get last 7 days of sleep
    sleep_list = await client.sleep.list(days=7)

    # Get sleep since specific date
    sleep_list = await client.sleep.list(since="2026-01-01")

    for sleep in sleep_list:
        print(f"{sleep.date}: {sleep.sleep_score}/100")