Progress
Metrics
What a client tracks over time, like weight, waist or body fat, and every entry.
A metric is something a client tracks over time, like weight, waist or body fat, in the unit the coach set. Clients log entries in the app or through check-in answers, one value for a day. To compare clients' metrics over a period, use GET /client-summaries with include=metrics.

Attributes
- idstring
Its unique ID.
- namestring
The unit the coach set, as they wrote it (
kg,cm,%).nullif they left it blank. Values are never converted.- entryCountinteger
The entry for the latest day, and of that day's entries the last added.
nullif it has none.
{
"id": "6ad6af776298037662967079",
"name": "Weight",
"unit": "lb",
"entryCount": 24,
"lastEntry": {
"id": "6ad6af4305c6094205c47641",
"date": "2026-10-26",
"value": 182.4
}
}{
"id": "6ad6afb5dd068db4dd04fab3",
"date": "2026-10-26",
"value": 182.4
}https://api.hubfit.com/v1/clients/{clientId}/metricsThe metrics the client tracks, in the order the coach added them, each with how many entries it has and the last one. A client has no more than 25 (MAX_METRICS_PER_CLIENT), so they all come in one response, without paging; a client given more before that limit still gets every one. Empty if the coach turned metrics off for the client. Requires clients:read.
curl https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/metrics \
-H "Authorization: Bearer $HUBFIT_API_KEY"const response = await fetch("https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/metrics", {
headers: {
Authorization: `Bearer ${process.env.HUBFIT_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/metrics",
headers={"Authorization": f"Bearer {os.environ['HUBFIT_API_KEY']}"},
)
data = response.json()["data"]{
"data": [
{
"id": "6ad6af776298037662967079",
"name": "Weight",
"unit": "lb",
"entryCount": 24,
"lastEntry": {
"id": "6ad6af4305c6094205c47641",
"date": "2026-10-26",
"value": 182.4
}
}
]
}https://api.hubfit.com/v1/metrics/{metricId}/entriesWhat the client logged for one metric, latest day first, and of one day's entries the last added first. 404 if the coach turned metrics off for the client. Requires clients:read.
Path parameters
A metric
idfromGET /clients/{clientId}/metrics.
Query parameters
Returns
A page of the metric's entries.
curl -G https://api.hubfit.com/v1/metrics/6ad6af776298037662967079/entries \
-H "Authorization: Bearer $HUBFIT_API_KEY" \
-d startDate=2026-09-01const response = await fetch("https://api.hubfit.com/v1/metrics/6ad6af776298037662967079/entries?startDate=2026-09-01", {
headers: {
Authorization: `Bearer ${process.env.HUBFIT_API_KEY}`,
},
});
const { data, nextCursor } = await response.json();import os
import requests
response = requests.get(
"https://api.hubfit.com/v1/metrics/6ad6af776298037662967079/entries",
headers={"Authorization": f"Bearer {os.environ['HUBFIT_API_KEY']}"},
params={
"startDate": "2026-09-01",
},
)
page = response.json()
data, next_cursor = page["data"], page["nextCursor"]{
"data": [
{
"id": "6ad6afb5dd068db4dd04fab3",
"date": "2026-10-26",
"value": 182.4
}
],
"nextCursor": "eyJpZCI6IjZhZDZhZjNmMjljNTk3ZjE1In0",
"totalCount": 48
}