Skip to content

Get Trends

GET
/users/{user_id}/trends
curl --request GET \
--url 'https://example.com/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/trends?window_days=30'

Deterministic trends over the user’s daily summaries — direction + significance (Mann–Kendall) and magnitude (Sen’s slope) per metric. No LLM; computed at query time.

user_id
required
User Id
string format: uuid
window_days
Window Days
integer
default: 30 >= 7 <= 365

Successful Response

Media typeapplication/json
TrendsResponse
object
groups
required
Groups
Array<object>
TrendGroup

Display group registry so frontends section the feed data-driven.

object
id
required
Id
string
label
required
Label
string
trends
required
Trends
Array<object>
TrendCard

A deterministic trend for one metric over the window. See app/services/trends.py.

object
baseline
required
Baseline
number
baseline_avg
required
Any of:
number
change_abs
required
Change Abs
number
change_pct
required
Any of:
number
direction
required
Direction
string
group
required
Group
string
higher_is_better
required
Any of:
boolean
label
required
Label
string
latest
required
Latest
number
metric
required
Metric
string
n
required
N
integer
p_value
required
P Value
number
recent_avg
required
Any of:
number
recent_vs_baseline_pct
required
Any of:
number
series
required
Series
Array<object>
TrendPoint

One observed (date, value) for a metric — feeds a sparkline.

object
date
required
Date
string format: date
value
required
Value
number
significant
required
Significant
boolean
slope_per_day
required
Slope Per Day
number
unit
required
Unit
string
window_days
required
Window Days
integer
window_days
required
Window Days
integer
Examplegenerated
{
"groups": [
{
"id": "example",
"label": "example"
}
],
"trends": [
{
"baseline": 1,
"baseline_avg": 1,
"change_abs": 1,
"change_pct": 1,
"direction": "example",
"group": "example",
"higher_is_better": true,
"label": "example",
"latest": 1,
"metric": "example",
"n": 1,
"p_value": 1,
"recent_avg": 1,
"recent_vs_baseline_pct": 1,
"series": [
{
"date": "2026-04-15",
"value": 1
}
],
"significant": true,
"slope_per_day": 1,
"unit": "example",
"window_days": 1
}
],
"window_days": 1
}

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"
}
]
}