DocsAPI 文件User Profiles API
👤 全部

User Profiles API

使用者資料完整 API — Profile CRUD、區間設定、目標、比賽紀錄。

GET /users/{uid}

取得使用者完整資料。

Headers

Header必填
`x-api-key`API Key

Response (200)

欄位類型說明
`user_id`string使用者 ID(Firebase UID)
`username`string使用者名稱(唯一)
`email`stringEmail
`display_name`string顯示名稱
`gender`string性別(`male`, `female`, `other`)
`weight`number體重(kg)
`height`number身高(cm)
`membership_roles`array角色列表
`org_id`string所屬組織 ID
`coach`boolean是否為教練
`integrations`object第三方整合狀態
`zones`object心率/配速區間
`app_version`stringApp 版本
`platform`string平台(`ios`, `android`)
`language`string語言偏好
`unit_system`string單位系統(`metric`, `imperial`)
`country`string國家
`created_at`number建立時間(epoch ms)
`last_login`number最後登入時間(epoch ms)

Integrations 物件

欄位類型說明
`strava`object`{connected: bool, athlete_id: string}`
`garmin`object`{connected: bool, garmin_user_id: string}`
`apple_health`object`{connected: bool}`

Zones 物件

欄位類型說明
`heartrate`object心率區間
`pace`object配速區間

Heartrate Zones

欄位類型說明
`rest`number安靜心率(bpm)
`max`number最大心率(bpm)
`z1`numberZ1 上限(bpm)
`z2`numberZ2 上限(bpm)
`z3`numberZ3 上限(bpm)
`z4`numberZ4 上限(bpm)
`z5`numberZ5 = max(bpm)

Pace Zones

欄位類型說明
`z1`numberZ1 下限(秒/公里,最慢)
`z2_lower`numberZ2 下限
`z2_upper`numberZ2 上限
`z3_lower`numberZ3 下限
`z3_upper`numberZ3 上限
`z4_lower`numberZ4 下限
`z4_upper`numberZ4 上限
`z5`numberZ5 上限(秒/公里,最快)

GET /users

取得使用者列表。

Query Parameters

參數類型說明
`page_size`int每頁數量

PUT /users/{uid}

更新使用者資料。只傳需要更新的欄位。

Request Body(所有欄位選填)

參數類型說明
`username`string使用者名稱
`display_name`string顯示名稱
`gender`string性別
`weight`number體重(kg)
`height`number身高(cm)
`zones`object區間設定
`language`string語言
`unit_system`string單位系統

POST /users

建立使用者。

Request Body

參數類型必填說明
`username`string使用者名稱
`email`stringEmail

GET /users/{uid}/public

取得使用者的公開資料(有限欄位)。


GET /users/check-username

檢查使用者名稱是否可用。

Query Parameters

參數類型說明
`username`string要檢查的名稱

Response (200)

{"available": true}


PATCH /users/me/preferences

更新偏好設定。

Request Body

參數類型說明
`language`string語言(`zh-TW`, `en`, `ja`)
`unit_system`string單位(`metric`, `imperial`)
`notification_enabled`boolean通知開關

GET /users/{user_id}/goals

取得訓練目標。

Response (200)

欄位類型說明
`monthly_distance`number月跑量目標(km)
`weekly_runs`number每週跑步次數

PUT /users/{user_id}/goals

更新訓練目標。


GET /users/{user_id}/race-histories

取得比賽紀錄列表。


POST /users/{user_id}/race-histories

新增比賽紀錄。

Request Body

參數類型必填說明
`race_name`string比賽名稱
`race_date`string日期(YYYY-MM-DD)
`distance`string距離(`5k`, `10k`, `half`, `full`)
`finish_time`string完賽時間(HH:MM:SS)

PUT /users/{user_id}/race-histories/{race_id}

更新比賽紀錄。

DELETE /users/{user_id}/race-histories/{race_id}

刪除比賽紀錄。