Skip to content

Multiple Sleep Documents

GET
/v2/usercollection/sleep
curl --location --request GET 'https://api.ouraring.com/v2/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score' \
--header 'Authorization: Bearer <token>'
start_date
Start Date
string format: date
end_date
End Date
string format: date
next_token
Any of:
string
fields
Any of:
string

Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided.

Successful Response

Media typeapplication/json
MultiDocumentResponse[PublicModifiedSleepModel]
object
data
required
Data
Array<object>
PublicModifiedSleepModel
object
id
required

Unique identifier of the object.

string
>= 1 characters
average_breath
Any of:
number
average_heart_rate
Any of:
number
average_hrv
Any of:
integer
awake_time
Any of:
integer
bedtime_end
required

Bedtime end of the sleep.

string
bedtime_start
required

Bedtime start of the sleep.

string
day
required

Day that the sleep belongs to.

string
deep_sleep_duration
Any of:
integer
efficiency
Any of:
integer
heart_rate
Any of:
PublicSample

Object defining a recorded sample.

object
interval
required

Interval in seconds between the sampled items.

number
items
required

Recorded sample items.

Array
timestamp
required

Timestamp when the sample recording started.

string
hrv
Any of:
PublicSample

Object defining a recorded sample.

object
interval
required

Interval in seconds between the sampled items.

number
items
required

Recorded sample items.

Array
timestamp
required

Timestamp when the sample recording started.

string
latency
Any of:
integer
light_sleep_duration
Any of:
integer
low_battery_alert
required

Flag indicating if a low battery alert occurred.

boolean
lowest_heart_rate
Any of:
integer
movement_30_sec
Any of:
string
period
required

ECore sleep period identifier.

integer
readiness
Any of:
PublicReadiness

Object defining readiness.

object
contributors
required

Contributors of the readiness score.

object
activity_balance
Any of:
integer
body_temperature
Any of:
integer
hrv_balance
Any of:
integer
previous_day_activity
Any of:
integer
previous_night
Any of:
integer
recovery_index
Any of:
integer
resting_heart_rate
Any of:
integer
sleep_balance
Any of:
integer
sleep_regularity
Any of:
integer
score
Any of:
integer
temperature_deviation
Any of:
number
temperature_trend_deviation
Any of:
number
readiness_score_delta
Any of:
integer
rem_sleep_duration
Any of:
integer
restless_periods
Any of:
integer
sleep_algorithm_version
Any of:
PublicSleepAlgorithmVersion

Oura Sleep Staging Algorithms. v1 = original aka legacy aka OSSA 1.0, v2 = latest sleep algorithm

string
Allowed values: v1 v2
sleep_analysis_reason
Any of:
PublicSleepAnalysisReason

Possible sleep analysis reasons.

string
Allowed values: foreground_sleep_analysis bedtime_edit background_sleep_analysis background_created_foreground_updated
sleep_phase_30_sec
Any of:
string
sleep_phase_5_min
Any of:
string
sleep_score_delta
Any of:
integer
time_in_bed
required

Duration spent in bed in seconds.

integer
total_sleep_duration
Any of:
integer
type
Any of:
PublicSleepType

Possible sleep period types. ‘deleted’ = deleted sleep by user. ‘sleep’ = user confirmed sleep / nap, min 15 minutes, max 3 hours, contributes to daily scores ‘late_nap’ = user confirmed sleep / nap, min 15 minutes, ended after sleep day change (6 pm), contributes to next days daily scores ‘long_sleep’ = sleep that is long enough (>3h) to automatically contribute to daily scores ‘rest’ = Falsely detected sleep / nap, rejected in confirm prompt by user

string
Allowed values: deleted sleep long_sleep late_nap rest
ring_id
Any of:
string
app_sleep_phase_5_min
Any of:
string
next_token
required
Any of:
string
Example
{
"data": [
{
"sleep_algorithm_version": "v1",
"sleep_analysis_reason": "foreground_sleep_analysis",
"type": "deleted"
}
]
}

Client Exception

Unauthorized access exception. Usually means the access token is expired, malformed or revoked.

Access forbidden. Usually means the user’s subscription to Oura has expired and their data is not available via the API.

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}

Request Rate Limit Exceeded.