Club
Every Club API request operates on one club. The club is selected by the Club
API Key in the Authorization header; it is not selected by a URL or query
parameter. The same Subscription Key can be used with Club API Keys for
different clubs.
Verify the selected club
Section titled “Verify the selected club”Call GET /Profile when configuring a
Club API Key and before the first write made with it:
curl --request GET \ --url https://api-gw.uptivo.fit/club/Profile \ --header "X-Sub-Key: <subscription-key>" \ --header "Authorization: Bearer <club-api-key>"The response is the profile of the selected club. Verify at least ClubId and
Name, then associate the credentials and any synchronization checkpoints
with that ClubId in your system.
If an integration works with multiple clubs, keep their Club API Keys and
synchronization state separate. A request cannot switch club by sending a
different ClubId in its payload.
Profile settings useful to integrations
Section titled “Profile settings useful to integrations”GET /Profile returns ClubProfileDTO, a deliberately small public contract
containing the club information useful to an integration:
| Purpose | Fields | How to use them |
|---|---|---|
| Identity | ClubId, Name, ClubCode, BrandId |
Identify and display the selected club. Use ClubId as the stable Uptivo identifier. |
| Presentation | PictureUri |
Display the club’s profile image when available. |
| Contact and location | Address, Latitude, Longitude, Phone, Email, WebSiteUri |
Display club contact information or link records to a location. Coordinates are either both populated or both null. |
| Locale | CountryCode, TimeZoneCode, FirstDayOfWeek, DateFormat, TimeFormat, Language, DefaultCurrency |
Format information for people. These settings do not change the API’s ISO 8601 timestamp format or canonical measurement units. |
Every property in the schema is present in the JSON response. Values that have
not been configured, such as contact details or coordinates, are serialized as
null. Tolerate new properties when deserializing the response. The
GET /Profile reference remains the
source of truth for the complete schema and enum values.
Use only the capabilities described by the public profile schema. Submit the requested operation and use its response as the authoritative decision instead of inferring additional capabilities from the profile.
Keep the profile current
Section titled “Keep the profile current”The Club API exposes the profile as read-only. Club staff can change settings outside your integration, and there is currently no club-profile webhook. Refresh the profile when credentials are configured and periodically if your product displays or relies on club settings.
Do not infer booking, permission, or license decisions from a cached profile. Submit the requested operation and handle the response returned by the API.
Errors
Section titled “Errors”401 Unauthorizedmeans one of the two credentials is missing or invalid.403 Forbiddenmeans the credentials are valid, but the license or Club API Key permissions do not allow profile access.404 Not Foundmeans the club selected by the key is no longer available.
See Authentication for credential handling and Errors for the common response strategy. Continue with the Athletes guide to manage people within the verified club.