Clients
Notes
Read and add the notes your team keeps on a client, private or shared with them.
Notes your team keeps on a client. A private note is seen only by your team; a shared one also shows in the client's app.
Attributes
- idstring
Its unique ID.
- titlestring
The note's heading. Empty if it has none.
- textstring
- visibilityenum
privateif only your team sees the note.sharedif the client sees it in their app too; adding a shared note sends them a push notification with its text.One ofprivateshared - createdAttimestamp
When it was created.
{
"id": "6ad6af897f67308a7f68c38b",
"title": "Training days",
"text": "Moving to 4 sessions a week from November. Prefers mornings.",
"visibility": "private",
"createdAt": "2026-03-02T15:04:11.000Z"
}https://api.hubfit.com/v1/clients/{clientId}/notesThe notes your team keeps on the client, newest first, private and shared alike. Requires clients:read.
Path parameters
The client's
id.
Query parameters
Returns
A page of the client's notes.
curl https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes \
-H "Authorization: Bearer $HUBFIT_API_KEY"const response = await fetch("https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes", {
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/clients/6ad6af41d3199442d31b2743/notes",
headers={"Authorization": f"Bearer {os.environ['HUBFIT_API_KEY']}"},
)
page = response.json()
data, next_cursor = page["data"], page["nextCursor"]{
"data": [
{
"id": "6ad6af897f67308a7f68c38b",
"title": "Training days",
"text": "Moving to 4 sessions a week from November. Prefers mornings.",
"visibility": "private",
"createdAt": "2026-03-02T15:04:11.000Z"
}
],
"nextCursor": "eyJpZCI6IjZhZDZhZjNmMjljNTk3ZjE1In0",
"totalCount": 48
}https://api.hubfit.com/v1/clients/{clientId}/notesAdds a note to the client, as adding one in the app does. A private note is seen only by your team. A shared one shows in the client's app straight away and sends them a push notification with its text. Each call adds another note, so send an Idempotency-Key to retry safely. A client holds at most 100 notes; past that it's 409 note_limit_reached. Requires clients:write.
Headers
- Idempotency-Keystring
Any unique string, such as a UUID, up to 255 characters. Retrying with the same key within 24 hours returns the first response instead of repeating the write. See Idempotency.
Path parameters
The client's
id.
Body parameters
- titlestring
A heading for the note.
The note. Can't be blank.
privateif only your team sees the note.sharedif the client sees it in their app too; adding a shared note sends them a push notification with its text.One ofprivateshared
Returns
The new note.
curl -X POST https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes \
-H "Authorization: Bearer $HUBFIT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"title": "Training days",
"text": "Moving to 4 sessions a week from November. Prefers mornings.",
"visibility": "private"
}'const response = await fetch("https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HUBFIT_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
title: "Training days",
text: "Moving to 4 sessions a week from November. Prefers mornings.",
visibility: "private",
}),
});
const { data } = await response.json();import os
import uuid
import requests
response = requests.post(
"https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes",
headers={"Authorization": f"Bearer {os.environ['HUBFIT_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={
"title": "Training days",
"text": "Moving to 4 sessions a week from November. Prefers mornings.",
"visibility": "private",
},
)
data = response.json()["data"]{
"data": {
"id": "6ad6af897f67308a7f68c38b",
"title": "Training days",
"text": "Moving to 4 sessions a week from November. Prefers mornings.",
"visibility": "private",
"createdAt": "2026-03-02T15:04:11.000Z"
}
}