Build integrations on top of RF:Manage — member profiles, class bookings, training sessions, guest passes, billing, and trainer portal tools. All endpoints are RESTful and return JSON.
Two layers: API key (server-to-server) and member JWT (mobile app sessions)
Every request must include an Authorization: Bearer <key> header. The primary key is stored as an environment secret and is always active. Additional keys can be registered in Settings → Public API for separate integrations (website, mobile app, partner).
Authorization: Bearer rfm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Call publicMemberLogin with email + password to receive a short-lived JWT (1-hour expiry). Pass it as X-Member-Token on all subsequent calls. When present, the token authenticates the member and theX-Member-Identifier / X-Trainer-Identifierheaders become optional. The API key stays server-side; the JWT is the member's credential.
X-Member-Token: <jwt>
For OAuth-style flows, use publicOAuthAuthorize →publicOAuthToken. For deep-link handoff from the web portal, use publicGenerateLinkToken →publicExchangeLinkToken. These endpoints do not require an API key — the member's web session or one-time token is the credential.
Member profile, activity, and class booking
Login, class browsing, bookings, guest passes, and billing
Class descriptions and categories are only available via the publicClassSessions endpoint below (they are not returned by publicMemberProfile, publicMemberBookings, or publicMemberActivity). Expand the endpoint to see the full response schema.
class_descriptionstring | null — free-text description from the class template. null when unset.
class_categorystring | null — one of: yoga, hiit, cycling, pilates, strength, cardio, dance, martial_arts, other. null when unset.
OAuth 2.0 flow and deep-link handoff for mobile apps
Schedule management, booking actions, and client lookup for trainers
A complete example: authenticate, fetch profile, book a class
// 1. Login to get a session JWT
const loginRes = await fetch('https://manage.getrealfit.com/functions/publicMemberLogin', {
method: 'POST',
headers: {
'Authorization': 'Bearer rfm_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({ email: 'member@example.com', password: '...' })
});
const { token, member_id } = await loginRes.json();
// 2. Fetch the member's profile (includes pack_id for booking)
const profileRes = await fetch('https://manage.getrealfit.com/functions/publicMemberProfile', {
headers: {
'Authorization': 'Bearer rfm_your_api_key',
'X-Member-Token': token
}
});
const profile = await profileRes.json();
// 3. Book a class using a class pack credit
const bookRes = await fetch('https://manage.getrealfit.com/functions/publicBookClass', {
method: 'POST',
headers: {
'Authorization': 'Bearer rfm_your_api_key',
'X-Member-Token': token,
'Content-Type': 'application/json'
},
body: JSON.stringify({
class_session_id: 'session_123',
resource_type: 'class_pack',
resource_id: profile.packs_and_sessions.class_packs[0].id
})
});
const booking = await bookRes.json();
console.log('Booked!', booking.booking_id);RF:Manage Public API · Base URL: https://manage.getrealfit.com/functions/
Need an API key? Contact your club administrator or visit Settings → Public API in the RF:Manage dashboard.