Create a daily check-in entry
One check-in per `calendar_date`. Duplicate POSTs for the same date return `409 Conflict`. When `calendar_date` is omitted, it defaults to today in the member's local timezone (from their profile location), not server UTC; pass explicitly to backfill.
Authorization
MemberBearer Member-scoped JWT minted by POST /v1/auth/token. Required on every /v1/users/{user_id}/... route; the token's sub claim must match the path user_id.
In: header
Path Parameters
uuidHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/daily-check-ins" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"check_in_id": "05884dbc-6e65-477e-a8d8-ec5b760fac82",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
"calendar_date": "2019-08-24",
"status": "pending",
"mood_rating": 1,
"energy_level": 1,
"sleep_quality": 1,
"notes": "string",
"thread_id": "1de43264-67cb-48af-89f9-e865c375bb84",
"session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
"streak_count": 0
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List daily check-in entries with streak summary
Paginated list of check-ins between `start_date` and `end_date` (inclusive). When omitted, the window is the last 30 days ending today. The envelope `summary` block carries current/longest streak and total check-ins for the window.
Read a single daily check-in entry
Returns the entry by id. Lookups are bounded to the last 90 days while the underlying service does not expose a by-id getter — entries older than 90 days return 404 even if persisted (TODO: replace with by-id service lookup).