get_tags
List user-annotated tags (caffeine, alcohol, late meal, custom notes) over a date range. Use to correlate behaviors with sleep/readiness or to recall what was logged. Pass user's LOCAL dates as strict YYYY-MM-DD.
get_heart_rate_series
Get intraday heart-rate time series within a 24-hour window, bucketed to 5min/15min/raw. Use for HR patterns within a day (sleep, workout, stress events). For multi-day trends, use get_date_range with metric=resting_hr instead.
compare_to_baseline
Compare a single day's metric to the user's personal 30-day and 90-day rolling baselines. Use when the user asks 'is this normal for me?' or 'how does today compare to my usual?'. Returns value alongside personal context so answers can be 'good for you' rather than absolute.
get_stress
Get daily stress metrics (high-stress and recovery seconds) for a date. Pass user's LOCAL date as strict YYYY-MM-DD.
get_spo2
Get nightly blood-oxygen (SpO2) average and breathing disturbance index for a date. Useful for altitude effects, suspected sleep apnea, or illness tracking. Pass user's LOCAL date as strict YYYY-MM-DD.
get_resilience
Get the resilience score for a date — Oura's long-term stress recovery capacity metric. Levels: limited / adequate / solid / strong / exceptional. Pass user's LOCAL date as strict YYYY-MM-DD.
get_cardio_age
Get Oura's cardiovascular-age estimate for a date — a heart-health proxy derived from HRV, resting HR, and other signals. Pass user's LOCAL date as strict YYYY-MM-DD.
get_vo2_max
Get the most recent VO2 max measurement within 30 days of the queried date. Oura computes VO2 max from outdoor walks/runs, so measurements may be sparse. Pass user's LOCAL date as strict YYYY-MM-DD.
get_recommended_sleep_time
Get Oura's recommended bedtime window for a date as start/end HH:MM in user's local time, with a status and recommendation field. Pass user's LOCAL date as strict YYYY-MM-DD.
get_rest_mode_periods
List rest-mode periods (illness/recovery markers) over a date range. Pass user's LOCAL dates as strict YYYY-MM-DD; max 365-day range.
get_morning_briefing
Get a structured 'how am I today' snapshot: today's readiness + recommended sleep time + yesterday's sleep, activity, stress, and tags. Use this when the user opens the day and wants a single overview call. Server returns raw fields — you decide what to highlight. Pass user's LOCAL date as strict YYYY-MM-DD.
get_weekly_recap
Get a 1-28 day window of daily Oura metrics with per-metric mean/min/max. Default 7 days. Use this when the user asks 'how was my week' or wants to scan the past N days at a glance. Pass user's LOCAL end_date as strict YYYY-MM-DD.
find_anomalies
Flag days whose metric value deviates more than threshold_sigma standard deviations from the rolling-window mean. Default window 90 days, default threshold 2σ. Use when the user asks 'when did my HRV crash?' or 'pick out my worst sleep weeks'. Returns empty list (and insufficient_baseline=true) if fewer than 14 non-null days. Pass user's LOCAL end_date as strict YYYY-MM-DD.
correlate_tag_with_metric
Compute mean/median/stdev of a metric on tagged days vs untagged days, plus mean_delta_pct. Use when the user asks 'does alcohol hurt my sleep?' or 'are tagged days worse for HRV?'. Provide exactly one of tag_type_code (Oura's tag taxonomy) or custom_name (user-defined). small_sample_warning=true when either group has <5 days. Pass user's LOCAL end_date as strict YYYY-MM-DD.