List clients
Get a client
Client output fields
List responses return pagination fields plusdata.data[]. Detail responses
return data.client.
Create a client
assignedCoach is omitted, FITsociety uses the OAuth client’s
defaultAssignedCoachId. If neither is available, the request fails with
ASSIGNED_COACH_REQUIRED.
Set hasNoEmail to true to generate a placeholder email address.
Request validation:
New-client responses return:
Existing-account responses return:
If the existing client is already connected to the company, the endpoint returns
409 CLIENT_ALREADY_EXISTS_IN_COMPANY.
Update a client
Archive a client
archived, member status to past, and portal access
status to disabled.
Response fields:
Validation:
The response does not expose
archivedBy, removal outcomes, deletion flags, or
internal retention fields.
Portal access and onboarding
clients:read for portal-access,
client_onboarding:write for invite and relationship decisions.
GET /portal-access returns the current company-client portal access status
without exposing auth state, sessions, devices, password status, or identity
tokens.
Portal access response fields:
Invite endpoints validate that the client belongs to the authenticated company
and has a real email address. Placeholder email accounts cannot be invited. The
endpoints use the existing coach invite flow and return:
Relationship decision endpoints are for clients whose company relation is
pending_approval.
Approve request body:
Reject request body:
Relationship decision response fields:
Not exposed: reviewed-by coach ID, raw approval helper payloads, auth tokens,
password state, registration source internals, private notes, or deletion
metadata.
Custom field definitions
Client custom field values
client_custom_fields:read for reads,
client_custom_fields:write for writes.
Patch body:
Validation:
Assigned coaches
clients:read for reads, clients:write for writes.
Patch body:
coachId to null or an empty value to clear the assignment.
Response fields:
Writes validate that the coach exists and has active access to the company.
Coach email, phone number, last active data, roles, and auth/device fields are
not returned.
Client timeline
Validation:
Client tags
Deleted tags, hidden relationship statuses, and removed client outcomes are not
included in the counts.