Skip to main content

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
  • private if only your team sees the note. shared if 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.

Note object
{
  "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"
}
GET/v1/clients/{clientId}/notes

The notes your team keeps on the client, newest first, private and shared alike. Requires clients:read.

Path parameters

Query parameters

  • limitinteger

    How many notes a page holds. 10 unless you ask for more, and at most 50, fewer than other lists, as a note can be 5,000 characters.

    Default 10
  • cursorstring

    The nextCursor from the previous page.

Returns

A page of the client's notes.

GET /v1/clients/{clientId}/notes
curl https://api.hubfit.com/v1/clients/6ad6af41d3199442d31b2743/notes \
  -H "Authorization: Bearer $HUBFIT_API_KEY"
Response200 OK
{
  "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
}
POST/v1/clients/{clientId}/notes

Adds 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

  • 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

Body parameters

  • titlestring

    A heading for the note.

  • textstringRequired

    The note. Can't be blank.

  • visibilityenumRequired

    private if only your team sees the note. shared if 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.

POST /v1/clients/{clientId}/notes
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"
  }'
Response201 Created
{
  "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"
  }
}