Manager or Admin role in the
company you want to integrate with.
1
Create OAuth client credentials
A Manager or Admin coach creates Public API credentials from the coach
dashboard:
- Open Settings → Plugins in the FITsociety coach dashboard.
- Open the Public API plugin.
- On the OAuth clients tab, click Create OAuth client.
- Give the client a recognizable name (for example
CRM sync), pick the scopes it needs, and optionally set a default assigned coach for records created through the API. - Copy the client secret immediately. It is shown once; FITsociety stores only a hash.
fspc_ and a client secret prefixed fsps_.The Public API plugin must be available for your company. If you do not
see it under Settings → Plugins, ask FITsociety support to enable it.You can also create clients programmatically with
POST /app/v1/integrations/public-api/clients. That endpoint requires an
authenticated coach session token from the FITsociety app — coach tokens
are not part of the Public API surface, so the dashboard is the practical
path for most integrators.2
Exchange credentials for an access token
Call the token endpoint with HTTP Basic auth
(Response:Access tokens live for 1 hour. If you omit
client_id as username, client_secret as password):scope, the token gets all
scopes assigned to the client; requested scopes must be a subset of the
client’s assigned scopes.3
Make your first call
GET /public/v1/me returns the profile of the authenticated API client —
a safe read that confirms auth works end to end:401, check that the token has not expired and that you are
sending Authorization: Bearer fspt_... — the Public API does not accept
x-api-key.4
Pick a starter scope set
Start minimal and read-only, then add scopes as your integration grows:
Useful next additions:
bookings:read, calendar_events:read,
finance_invoices:read. Only add *:write scopes once the read path
works, because writes hit live company data. The full catalog is on the
Authentication page, or fetch it live from
GET /public/v1/scopes.The starter scopes above need no consent. Scopes that expose health data or
private communication are
consent-gated and require
the matching consents flag when the API client is created.5
Where to go next
- Contracts — response envelopes, pagination, idempotency, and rate limits. Read this before writing production code.
- Errors — the error envelope and error keys you should handle.
- The API Reference tab — endpoint-level request and response detail, generated from the OpenAPI contract.
- The domain guides in the sidebar (clients, bookings, finance, progress, forms, reports, webhooks) — validation rules and privacy guardrails per domain.