Introduction
Welcome to the 12RND & UBX Performance Hub API. This API Manages club data & key systems that integrate with your club and it's external systems systems, and is not publicly consumable API. For further information about using the various Performance Hub systems this API supports, please refer to our [Internal Wiki](https://portal.hub.gymsystems.co/wiki)'s individual entry for the system you require.
Base URL
https://portal.hub.gymsystems.co
Alternative Environments
https://portal.hub.gymsystems.co - Performance Hub API - Production
https://portal.hub.stage.gymsystems.co/ - Performance Hub API - Staging
Authentication
Authentication details will be provided when your integration is approved.
The initial call to create a new club... Note only the 'template' club object is created - A second API request is then required to update the club with it's data such as Opening Hours, Location, Social URL's etc.
Parameters
body `string` (required) Json Object of the new club to add to the system.Endpoint
POST /api/admin/academy/updateaccess
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/academy/updateaccess \
-H "x-api-key: YOUR_API_KEY"
Response
{}
The initial call to create a new club... Note only the 'template' club object is created - A second API request is then required to update the club with it's data such as Opening Hours, Location, Social URL's etc.
Parameters
body `string` (required) Json Object of the new club to add to the system.Endpoint
POST /api/admin/clubs/addclub
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/clubs/addclub \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all agreements in the system
Endpoint
GET /api/admin/db-sync/list-tables
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/db-sync/list-tables \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Checks for unscheduled sms and schedule them, unless the send date has already passed in which case send the sms immedietly
Parameters
socketID `string` (optional) ID of the websocket (if connected) to return realtime logs to dryRun `string` (required) either a 'true' or 'false' value which specifies if you wish to perform a 'Dry Run' (Just returns a log without modifying data) or actually modify/sync tables. tables `string` (required) Array of tables to sync from prod to stageEndpoint
POST /api/admin/db-sync/sync-from-prod
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/db-sync/sync-from-prod \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns single email mapping based on id
Endpoint
GET /api/admin/email-mapping/:id
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/email-mapping/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns single faq item based on faqId
Endpoint
GET /api/admin/faqs/:faqId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/faqs/:faqId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all faq items that contains the specific category
Endpoint
GET /api/admin/faqs/category/:category
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/faqs/category/:category \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List all hardware devices registered in our system & warranty information (if available)
Endpoint
GET /api/admin/hardware/all-devices
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/hardware/all-devices \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all holidays that are available to country, including global holidays and organisation-specific overrides.
Parameters
countryIso `string` (optional) Country iso. organisationId `string` (optional) Organisation ID. If not provided, returns global holidays only.Endpoint
GET /api/admin/country/{countryIso}/holidays
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/country/{countryIso}/holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update a country's blacklisted holidays.
Parameters
countryIso `string` (optional) Country iso. organisationId `string` (required) Organisation ID. If not provided, updates global holidays. body `string` (required)Endpoint
PUT /api/admin/country/{countryIso}/holidays
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/country/{countryIso}/holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists SMS Bulk history
Parameters
organisationId `string` (required) The organisation ID to filter the SMS history for.Endpoint
GET /api/admin/sms/message-history
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/sms/message-history \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a new SMS to one or more numbers.
Parameters
body `string` (required) Json Object with post params for new message to send.Endpoint
POST /api/admin/sms/new-message
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/sms/new-message \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Schedules an sms to be sent.
Parameters
body `string` (required) Json Object of the user data that you wish to add/update.Endpoint
POST /api/admin/sms/schedule
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/sms/schedule \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds a new user to the system
Parameters
body `string` (required) Json Object of the user data that you wish to add/update.Endpoint
POST /api/users
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/users \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all academy users
Endpoint
GET /api/admin/users/listacademyusers
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listacademyusers \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all users (Google Apps Accounts) that have access to the backoffice system/api
Endpoint
GET /api/admin/users/listusers
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listusers \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List MCP keys for a user (redacted)
Parameters
userId `string` (required)Endpoint
GET /api/users/{userId}/mcp-keys
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create a new MCP API key for a user
Parameters
userId `string` (required) body `object` (optional)Endpoint
POST /api/users/{userId}/mcp-keys
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Revoke/remove an MCP API key
Parameters
userId `string` (required) keyId `string` (required)Endpoint
DELETE /api/users/{userId}/mcp-keys/{keyId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Remove a role from a user
Parameters
userId `string` (optional) The email of the user you wish to remove the role from. roleId `string` (optional) The ID of the role you wish to remove from the user.Endpoint
DELETE /api/users/{userId}/roles/{roleId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Remove a user from performance hub
Parameters
userId `string` (optional) The email of the user you wish to remove the role from. roleId `string` (optional) The ID of the role you wish to remove from the user.Endpoint
DELETE /api/users/{userId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an existing user's profile details (firstName, lastName, phoneNumber)
Parameters
userId `string` (required) User's email address body `object` (required) User profile data to updateEndpoint
PATCH /api/users/{userId}
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/users/{userId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Search Clubpass users
Endpoint
GET /api/admin/users/searchuser
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/searchuser \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upsert a user role
Parameters
body `object` (optional)Endpoint
PUT /api/users/{userId}/roles
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/users/{userId}/roles \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create config block
Parameters
body `string` (required) Json Object of the new config block to add to the system.Endpoint
POST /api/admin/charges-config
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/charges-config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all config blocks available to admin
Endpoint
GET /api/admin/charges-config
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/charges-config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get config block applicable to club
Parameters
club `string` (required) hideInactive `string` (optional) Hide inactive config blocks and only return active ones showDisabledFees `string` (optional) Show all transaction type fees, including failed and chargebackEndpoint
GET /api/club/{club}/charges-config
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/charges-config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete an admin note from a facility.
Parameters
facilityId `string` (required) Internal ID of the facility that you wish to access. noteId `string` (required) ID of the admin note to delete.Endpoint
DELETE /api/facilities/{facilityId}/admin-notes/{noteId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/facilities/{facilityId}/admin-notes/{noteId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List all admin notes for a facility.
Parameters
facilityId `string` (required) Internal ID of the facility that you wish to access. body `object` (optional)Endpoint
GET /api/facilities/{facilityId}/admin-notes
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/admin-notes \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upsert an admin note to a facility.
Parameters
facilityId `string` (required) Internal ID of the facility that you wish to access. body `object` (optional)Endpoint
PUT /api/facilities/{facilityId}/admin-notes
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/facilities/{facilityId}/admin-notes \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates club info in expresscart store v2.
Parameters
clubID `string` (required)Endpoint
PUT /api/admin/store/clubs/{clubID}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/store/clubs/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create a new location entity on yext.
Parameters
facilityId `string` (optional) The facility ID to create the location for.Endpoint
GET /api/admin/yext/location
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/yext/location \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a location entity on yext.
Parameters
entityId `string` (optional) facilityId `string` (optional) The facility ID to delete the location for.Endpoint
DELETE /api/admin/yext/location/{entityId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/yext/location/{entityId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an existing location entity on yext.
Parameters
id `string` (required) Location id facilityId `string` (optional) The facility ID to update the location for.Endpoint
GET /api/admin/yext/location/{id}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/yext/location/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
list all listings given a club.
Parameters
clubId `string` (required)Endpoint
GET /api/admin/club/{clubId}/yext/listings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/club/{clubId}/yext/listings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all agreements in the system
Endpoint
GET /api/admin/agreements/list-agreements
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/agreements/list-agreements \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Uploads an agreement into the system.
Parameters
body `string` (required) Json object containing the agreement and parameters to add/upload to the system ...Endpoint
PUT /api/admin/agreements/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/agreements/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Uploads an agreement into the system.
Parameters
file `string` (optional) File attachment of agreement (pdf/doc)Endpoint
POST /api/admin/agreements/upload-attachment
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/agreements/upload-attachment \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists the number of agreements that are outstanding and require action based on a user and what clubs is associated with it
Endpoint
GET /api/agreements/agreements-outstanding
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/agreements/agreements-outstanding \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all agreements available to a club
Parameters
club `string` (required) Internal ID of the club that you wish to access. contracts-sort `string` (optional) Sort agreements by date-effective or alphabetical. Defaults to date-effective. contracts-acknowledgement `string` (optional) Filter agreements by all, acknowledged or unacknowledged. Defaults to all. contracts-requirement `string` (optional) Filter agreements by all, signature, checkbox, popup or none. Defaults to all. contracts-status `string` (optional) Filter agreements by all, active or archived. Defaults to all.Endpoint
GET /api/agreements/list-agreements/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/agreements/list-agreements/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Signs an agreement based on it's ID.
Parameters
club `string` (required) Internal ID of the club that is signing the agreement. agreementid `string` (required) ID of the agreement that is being signed. body `string` (required) Json object containing the agreement and parameters to add/upload to the system ...Endpoint
POST /api/agreements/sign/{club}/{agreementid}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/agreements/sign/{club}/{agreementid} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Debug Redis keys for audit logs (super-admin only)
Lists all Redis keys related to audit logs for debugging cache structure
Endpoint
GET /api/admin/audit-logs/debug-redis-keys
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/debug-redis-keys \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generate AI summary for audit log error
Uses LLM to generate a human-readable summary of an API error from audit log details
Request Body
Endpoint
POST /api/admin/audit-logs/generate-error-summary
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/audit-logs/generate-error-summary \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Query audit logs by IP address (Global Admin only)
Retrieve all API access logs from a specific IP address
Parameters
ipAddress `string` (required) IP address startTime `number` (optional) Start time (Unix timestamp) endTime `number` (optional) End time (Unix timestamp) limit `number` (optional) Maximum number of resultsEndpoint
GET /api/admin/audit-logs/query-by-ip
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/query-by-ip \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Query audit logs by user email (Global Admin only)
Retrieve all API access logs for a specific user
Parameters
email `string` (required) User email address startTime `number` (optional) Start time (Unix timestamp) endTime `number` (optional) End time (Unix timestamp) limit `number` (optional) Maximum number of resultsEndpoint
GET /api/admin/audit-logs/query-by-user
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/query-by-user \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Search API audit logs (IAM & Admin module access)
Search and filter API access logs with advanced filtering capabilities. Users can only see logs for organisations they have access to.
Parameters
organisationId `string` (optional) Organisation ID for ACL verification (required for non-super-admin users)Request Body
Endpoint
POST /api/admin/audit-logs/search
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/audit-logs/search \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Get cached audit log statistics from Redis (IAM & Admin module access)
Retrieve aggregated statistics from Redis cache for instant dashboard loading
Parameters
timeWindow `string` (optional) Time window for statistics (defaults to 12h)Endpoint
GET /api/admin/audit-logs/statistics-cached
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics-cached \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get audit log statistics (IAM & Admin module access)
Retrieve aggregated statistics for the dashboard. Scoped to user's organisations.
Parameters
startTime `number` (optional) Start time (Unix timestamp), defaults to 24 hours ago endTime `number` (optional) End time (Unix timestamp), defaults to nowEndpoint
GET /api/admin/audit-logs/statistics
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get time series data for audit logs (IAM & Admin module access)
Retrieve bucketed time series data for request timeline visualization
Parameters
timeWindow `string` (optional) Time window for time series data: - 1h: Last 1 hour (10-minute blocks) - 12h: Last 12 hours (10-minute blocks) - 24h: Last 24 hours (10-minute blocks) - 7d: Last 7 days (1-hour blocks) - 14d: Last 14 days (1-hour blocks)Endpoint
GET /api/admin/audit-logs/timeseries
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/timeseries \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get organisations the user has access to for audit logs (IAM & Admin module access)
Returns the list of organisations the current user can view audit logs for
Endpoint
GET /api/admin/audit-logs/user-organisations
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/user-organisations \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of clubs that implements the global agreement templates.
Endpoint
GET /api/admin/club-agreement-variation
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/club-agreement-variation \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create user agreement.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
POST /api/admin/club-user-agreements
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/club-user-agreements \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of agreement.
Endpoint
GET /api/admin/club-user-agreements
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/club-user-agreements \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of default config agreement from table.
Endpoint
GET /api/admin/cua-config-agreements
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/cua-config-agreements \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete user agreement.
Endpoint
DELETE /api/admin/club-user-agreements/:id
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/club-user-agreements/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns specific of agreement.
Endpoint
GET /api/admin/club-user-agreements/:id
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/club-user-agreements/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update user agreement.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
PATCH /api/admin/club-user-agreements/:id
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/admin/club-user-agreements/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create new email mapping record
Parameters
body `string` (required) Json Object of the new email mapping to add to the system.Endpoint
POST /api/admin/email-mapping/add
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/email-mapping/add \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete email mapping
Parameters
id `string` (required) ID of the email mapping body `string` (required) Json Object of email mapping that you wish to update.Endpoint
DELETE /api/admin/email-mapping/delete/{id}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/email-mapping/delete/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all email mappings
Endpoint
GET /api/admin/email-mapping
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/email-mapping \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update email mapping
Parameters
id `string` (required) ID of the email mapping body `string` (required) Json Object of club data that you wish to update.Endpoint
POST /api/email-mapping/update/{id}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/email-mapping/update/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create new faq record
Parameters
body `string` (required) Json Object of the new faq to add to the system.Endpoint
POST /api/admin/faqs/add
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/faqs/add \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete faq item
Parameters
faqId `string` (required) ID of the faq item body `string` (required) Json Object of club data that you wish to update.Endpoint
DELETE /api/admin/faqs/delete/{id}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/faqs/delete/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all faq items
Endpoint
GET /api/admin/faqs
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/faqs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update faq item
Parameters
faqId `string` (required) ID of the faq item body `string` (required) Json Object of club data that you wish to update.Endpoint
POST /api/faqs/update/{id}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/faqs/update/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates new landing page
Parameters
body `string` (required) Json Object of the new landing page to add to the system.Endpoint
POST /api/admin/landing-pages
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/landing-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Deletes a landing page
Parameters
body `string` (required) Json Object of the landing page to delete from the system.Endpoint
DELETE /api/admin/landing-pages
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/landing-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists landing pages
Endpoint
GET /api/admin/landing-pages
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/landing-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a landing page
Parameters
body `string` (optional) Json Object of the landing page to udpate.Endpoint
PATCH /api/admin/landing-pages
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/admin/landing-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create new press record
Parameters
body `string` (required) Json Object of the new press to add to the system.Endpoint
POST /api/admin/press/add
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/press/add \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete press item
Parameters
pressId `string` (required) ID of the press item body `string` (required) Json Object of club data that you wish to update.Endpoint
DELETE /api/admin/press/delete/{id}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/press/delete/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all press items
Endpoint
GET /api/admin/press
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/press \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns single faq item based on pressId
Endpoint
GET /api/admin/press/:pressId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/press/:pressId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update press item
Parameters
pressId `string` (required) ID of the press item body `string` (required) Json Object of club data that you wish to update.Endpoint
POST /api/press/update/{pressId}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/press/update/{pressId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Start the brand regions migration task
Endpoint
GET /api/admin/tasks/brand-regions-migration
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/brand-regions-migration \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually forces GymMaster to start 'syncing' all member data
Endpoint
GET /api/admin/tasks/build-peak-time-insights
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/build-peak-time-insights \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Start the cache mms users cron job.
Parameters
facilityIds `string` (optional) Optional list of facility IDs to cache the users for. userIds `string` (optional) Optional list of user IDs to cache the users for. checkCache `string` (optional) Optional flag to check the cache before querying the database.Endpoint
GET /api/admin/tasks/cache-mms-users
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/cache-mms-users \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete old audit logs (Global Admin only)
Remove audit logs older than specified days (default 90 days) for log rotation/management
Request Body
Endpoint
POST /api/admin/tasks/cleanup-old-audit-logs
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/tasks/cleanup-old-audit-logs \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Run stripe daily payments report cron
Endpoint
GET /api/admin/tasks/daily-payments-report
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/daily-payments-report \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Save a daily saas billing log to DynamoDB for all clubs
Endpoint
GET /api/admin/tasks/daily-saas-billing-log
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/daily-saas-billing-log \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete notifications older than 30 days to improve performance
Endpoint
GET /api/admin/tasks/delete-old-notifications
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/delete-old-notifications \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Triggers club variables function
Parameters
clubId `string` (optional)Endpoint
GET /api/admin/tasks/clubs/{clubId}/variables
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/clubs/{clubId}/variables \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Triggers low battery duress notifications for all clubs.
Parameters
clubId `string` (optional)Endpoint
GET /api/admin/tasks/low-battery-duress-notifs
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/low-battery-duress-notifs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add default ids, objects, etc for the new role integration.
Endpoint
GET /api/admin/tasks/role-migrations
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/role-migrations \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Checks for unscheduled sms and schedule them, unless the send date has already passed in which case send the sms immediately
Endpoint
GET /api/admin/tasks/sms-schedule
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/sms-schedule \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Start the monthly biller cron job.
Parameters
clubID `string` (optional) Optional club ID to run the monthly biller for. forceBilling `string` (optional) Optional flag to force billing for the club. billingMonth `string` (optional) Optional billing month to run the monthly biller for in the format YYYY-MM. simulationTime `string` (optional) Optional unix timestamp to simulate the cron job running at. This will override the billing month.Endpoint
GET /api/admin/tasks/monthly-biller
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/monthly-biller \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually forces GymMaster to start 'syncing' all member data
Endpoint
GET /api/admin/tasks/sync-gm-data
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/sync-gm-data \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually forces GymMaster to start 'syncing' revenue history for our clubs
Parameters
startDate `string` (optional) Start date to report from (YYYY-MM-DD format). endDate `string` (optional) End date to report to (YYYY-MM-DD format).Endpoint
GET /api/admin/tasks/sync-gm-revenue-history
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/sync-gm-revenue-history \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update all clubs yext data.
Endpoint
GET /api/admin/tasks/update-all-clubs-yext-data
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/update-all-clubs-yext-data \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually starts updating the holiday hours of all clubs
Endpoint
GET /api/admin/tasks/club-holidays
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/club-holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually starts updating the holidays of all countries
Endpoint
GET /api/admin/tasks/country-holidays
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/country-holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually starts the cron that auto publishes 5 star reviews to our club pages
Endpoint
GET /api/admin/tasks/published-reviews
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/published-reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Manually forces our cron to update club social reviews...
Endpoint
GET /api/admin/tasks/update-social-reviews
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/tasks/update-social-reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Sends a notification to all clubs that have failed payments.
Parameters
fromDate `string` (optional) Unix timestamp toDate `string` (optional) Unix timestampEndpoint
POST /api/admin/tasks/send-failed-club-payments-notif
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/tasks/send-failed-club-payments-notif \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates all club payment intents for the last 14 days.
Endpoint
PUT /api/admin/tasks/update-all-club-failed-payments-for-14-days
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/tasks/update-all-club-failed-payments-for-14-days \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List the stripe connected account details for all clubs
Endpoint
GET /api/clubs/stripe/connected-account
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/stripe/connected-account \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List stripe records of club.
Parameters
club `string` (required) fromDate `string` (optional) Unix timestamp toDate `string` (optional) Unix timestamp socketID `string` (required) Unique identifier for socket requestEndpoint
GET /api/club/{club}/stripe/records
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/records \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Cancel a payment intent
Parameters
club `string` (required) paymentIntent `string` (optional)Endpoint
GET /api/club/{club}/stripe/payment-intent/:paymentIntent/cancel
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intent/:paymentIntent/cancel \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Enables Apple Pay and Google Pay
Parameters
club `string` (required)Endpoint
GET /api/club/{club}/stripe/enable-apple-pay-google-pay
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/enable-apple-pay-google-pay \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generates a one-time-link for the Stripe KYC page for a connected account.
Parameters
club `string` (required)Endpoint
GET /api/club/{club}/stripe/generate-kyc-token
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/generate-kyc-token \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve a payment intent from stripe.
Parameters
paymentIntentId `string` (optional)Endpoint
GET /api/stripe/payment-intents/{paymentIntentId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/stripe/payment-intents/{paymentIntentId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
returns the platform stripe account id
Endpoint
GET /api/stripe/platform-connected-account-id
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/stripe/platform-connected-account-id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
returns the stripe publishable key
Endpoint
GET /api/stripe/publishable-key
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/stripe/publishable-key \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List stripe balance transactions of club.
Parameters
club `string` (required) payout `string` (optional) type `string` (optional)Endpoint
GET /api/club/{club}/stripe/balance-transactions
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/balance-transactions \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List stripe payment intents of club.
Parameters
club `string` (required) fromDate `string` (optional) Unix timestamp toDate `string` (optional) Unix timestampEndpoint
GET /api/club/{club}/stripe/payment-intents
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intents \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List stripe payouts of club.
Parameters
club `string` (required) fromDate `string` (optional) Unix timestamp toDate `string` (optional) Unix timestampEndpoint
GET /api/club/{club}/stripe/payouts
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payouts \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List club stripe charges.
Parameters
club `string` (required) fromDate `string` (optional) Unix timestamp toDate `string` (optional) Unix timestampEndpoint
GET /api/club/{club}/stripe/charges
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/charges \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets the account details for a Stripe connected account as part of the KYC process.
Parameters
club `string` (required)Endpoint
GET /api/club/{club}/stripe/connect-account-details
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/connect-account-details \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Stream AI agent responses using OpenAI Responses API
Real-time streaming chat with AI agent (Phase 1 - no tools yet)
Request Body
Endpoint
POST /api/ai/agent/stream
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/stream \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Cancel an active streaming session
Cancels an ongoing AI agent streaming session by aborting the request
Request Body
Endpoint
POST /api/ai/agent/cancel
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/cancel \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Health check for LLM agent service
Check if LLM agent service and dependencies are operational
Endpoint
GET /api/ai/agent/health
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/agent/health \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Download or view AI chat attachment
Get attachment metadata and signed URL. Returns metadata even if expired.
Parameters
attachmentId `string` (required) Attachment UUIDEndpoint
GET /api/ai/agent/attachment/{attachmentId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/agent/attachment/{attachmentId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generate a brand-specific system prompt template
Uses OpenAI to generate a custom system prompt template based on brand characteristics
Request Body
Endpoint
POST /api/ai/agent/generate-brand-prompt
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/generate-brand-prompt \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Generate a title for a completed AI agent conversation
After a session completes, the client can call this to generate a short, friendly title based on the conversation context (messages and tools used).
Parameters
body `object` (required)Endpoint
POST /api/ai/agent/generate-title
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/generate-title \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Archive (soft delete) an AI conversation thread
Parameters
threadId `string` (required)Endpoint
DELETE /api/ai/agent/threads/{threadId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/agent/threads/{threadId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get a single AI conversation thread by id
Parameters
threadId `string` (required)Endpoint
GET /api/ai/agent/threads/{threadId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/agent/threads/{threadId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create a new AI conversation thread
Parameters
body `string` (required)Endpoint
POST /api/ai/agent/threads
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/threads \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List AI conversation threads for current user filtered by organisationId
Parameters
organisationId `string` (required)Endpoint
GET /api/ai/agent/threads
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/agent/threads \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update an existing AI conversation thread by id
Parameters
body `string` (required)Endpoint
PUT /api/ai/agent/threads
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ai/agent/threads \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upload file attachment for AI chat
Upload an image or document to be used in AI chat. Max 20MB per file.
Request Body
Endpoint
POST /api/ai/agent/upload-attachment
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/agent/upload-attachment \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Delete a facility access hours
Parameters
facilityId `string` (required) body `object` (required) Json Object of the new access hours.Endpoint
DELETE /api/ai/computer-vision/access-hours/:facilityId
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of facility access hours
Parameters
facilityId `string` (required)Endpoint
GET /api/ai/computer-vision/access-hours/:facilityId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates or creates a facility access hours
Parameters
facilityId `string` (required) body `object` (required) Json Object of the new access hours.Endpoint
POST /api/ai/computer-vision/access-hours/:facilityId
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a facility access zone
Parameters
facilityId `string` (required) body `object` (required) Json Object of the new access zone.Endpoint
DELETE /api/ai/computer-vision/access-zones/:facilityId
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of facility access zones
Parameters
facilityId `string` (required)Endpoint
GET /api/ai/computer-vision/access-zones/:facilityId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates or creates a facility access zone
Parameters
facilityId `string` (required) body `object` (required) Json Object of the new access zone.Endpoint
POST /api/ai/computer-vision/access-zones/:facilityId
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of all organisations
Parameters
includeBrands `string` (optional) Include brands associated with the organisation includeFacilities `string` (optional) Include facilities associated with the organisation includeRegions `string` (optional) Include regions associated with the organisationEndpoint
GET /api/organisations
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/organisations \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upsert an organisation
Parameters
organisationId `string` (optional) The ID of the organisation to update logo `string` (optional) An s3 object including the key and bucket name or an object containing the url of the logo name `string` (required) The name of the organisation modules `string` (optional) A list of the modules the organisation has access to websiteDomain `string` (optional) The domain name of the organisation primaryContactName `string` (optional) The name of the primary contact for the organisation primaryContactPhone `string` (optional) The phone number of the primary contact for the organisation registeredAddress `string` (optional) The registered address of the organisation organisationType `string` (optional) The type of organisation organisationTypeOther `string` (optional) The type of organisation if otherEndpoint
PUT /api/organisations
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/organisations \
-H "x-api-key: YOUR_API_KEY"
Response
{}
A simple AI helper to analise the contents of a support ticket and create suggestions based on available topics as well as suggested algolia search topics...
Parameters
messageBody `string` (required) Body of the message to send topicData `string` (required) Json object/array of the topicData returned from osTicket (ticketing/support system) facilityId `string` (optional) The internal ID of the club needed to determine the correct Algolia index to search against.Endpoint
PUT /api/ai/helpers/analyse-support-ticket
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ai/helpers/analyse-support-ticket \
-H "x-api-key: YOUR_API_KEY"
Response
{}
A simple image generation api
Parameters
type `string` (required) Type of image to generate name `string` (required) Image nameEndpoint
PUT /api/ai/images/:type/:name
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ai/images/:type/:name \
-H "x-api-key: YOUR_API_KEY"
Response
{}
A simple AI helper to analise the contents of a support ticket and create suggestions based on available topics as well as suggested algolia search topics...
Parameters
messageBody `string` (required) Body of the message to send topicData `string` (required) Json object/array of the topicData returned from osTicket (ticketing/support system)Endpoint
PUT /internal/ai/helpers/analyse-support-ticket
Example Request
curl -X PUT https://portal.hub.gymsystems.co/internal/ai/helpers/analyse-support-ticket \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the Algolia configuration including index name, app ID, and API key.
Parameters
facilityId `string` (required)Endpoint
GET /api/facilities/{facilityId}/algolia/config
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/algolia/config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Initializes the Algolia marketing print index
Parameters
organisationId `string` (required)Endpoint
PUT /api/algolia/index
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/algolia/index \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Search for marketing print materials
Request Body
Endpoint
POST /algolia/search-marketing-print
Example Request
curl -X POST https://portal.hub.gymsystems.co/algolia/search-marketing-print \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Search for marketing print materials
Parameters
club `string` (optional) Club ID searchTerms `string` (optional) Search terms algoliaArgs `object` (optional) Additional Algolia search argumentsEndpoint
GET /algolia/search-marketing-print
Example Request
curl -X GET https://portal.hub.gymsystems.co/algolia/search-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Bulk update marketing print objects for a specific club
Endpoint
POST /algolia/bulk-update-marketing-print
Example Request
curl -X POST https://portal.hub.gymsystems.co/algolia/bulk-update-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Fetches marketing print assets from Algolia.
Parameters
organisationId `string` (required) search `string` (optional) limit `string` (optional) brand `string` (optional) tag `string` (optional)Endpoint
GET /api/algolia/marketing/assets
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Initializes the Algolia marketing print index with the facility's configuration.
Parameters
organisationId `string` (required)Endpoint
POST /api/algolia/marketing/assets
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Performs a search against a specified Algolia index based on search terms, club, and/or locale. The search can be further customized using additional Algolia arguments.
Parameters
searchTerms `string` (required) The terms to search for in the Algolia index. club `string` (optional) Internal ID of the club that is making the request. If specified, the search will be filtered based on the region associated with the club. locale `string` (optional) The locale to use for determining the region if a club is not specified. Derived from navigator.languages. algoliaArgs `string` (optional) Additional/custom arguments to pass through to the Algolia search request.Endpoint
POST /api/algolia/search-wiki
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/algolia/search-wiki \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Removes an announcement from the system.
Parameters
body `string` (required) Json Object of the design ID to remove.Endpoint
DELETE /api/announcements/delete
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/announcements/delete \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all announcements
Endpoint
GET /api/announcements/list
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/announcements/list \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Saves/Updates one or more announcements in the system.
Parameters
body `object` (required) Json object containing the announcement to add/update/save in the system...Endpoint
PUT /api/announcements/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/announcements/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Uploads an image for the announcements WYSIWYG editor, and returns response suitable for Froala Image Upload: [https://froala.com/wysiwyg-editor/docs/concepts/image/upload/](https://froala.com/wysiwyg-editor/docs/concepts/image/upload/)
Parameters
file `string` (optional) Name of the file/asset to be uploaded.Endpoint
POST /api/announcements/upload-image
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/announcements/upload-image \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Uploads an asset to a PUBLIC S3 BUCKET (via the Upload API) which then will post-process/optimise the file, generate thumbnails etc. *Note, Assets will be publicly available*
Parameters
file `string` (optional) Name of the file/asset to be uploaded.Endpoint
POST /api/asset-upload
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/asset-upload \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the status of upload by the given uuid of the upload record
Parameters
uuid `string` (required) UUID of the upload recordEndpoint
GET /api/asset-upload/:uuid
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/asset-upload/:uuid \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Send a command to club Sonos
Parameters
body `object` (required) Json Object of the command and input to send to Sonos.Endpoint
PUT /api/audio-control/command/:club
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/command/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve configuration for Audio Control Frontend
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/audio-control/config/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/audio-control/config/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Change configuration for Audio Control Frontend
Parameters
body `object` (required) Json Object of the new config block to add to the system.Endpoint
PUT /api/audio-control/config/:club/:section
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieves brand settings for a specific region
Parameters
brandId `string` (optional) The ID of the brand regionCode `string` (optional) The ISO code of the region to retrieve settings forEndpoint
GET /api/brands/{brandId}/regions/{regionCode}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates multiple brand settings for a specific region
Parameters
brandId `string` (optional) The ID of the brand to update regionCode `string` (optional) The ISO code of the region to update settings for acceptFreeTrialBookingsVisibility `string` (optional) customTrackingCodeVisibility `string` (optional) displayDataSources `string` (optional) displayDefaultDataSource `string` (optional) displayDefaultUI `string` (optional) displayUIOptions `string` (optional) defaultAboutBusiness `string` (optional) defaultAboutBusinessFacebook `string` (optional) facilityCoverImage `string` (optional) digitalProfileSettingsVisibility `string` (optional) facilityHoursVisibility `string` (optional) facilityLocationVisibility `string` (optional) facilityPaymentMethods `string` (optional) facilityPrimaryLogo `string` (optional) facilityStatusVisibility `string` (optional) landingPagesVisibility `string` (optional) lineChatIntegrationVisibility `string` (optional) whatsAppIntegrationVisibility `string` (optional) defaultWhatsAppMessage `string` (optional) socialUrlsVisibility `string` (optional) yextApiKey `string` (optional) websiteUrl `string` (optional) androidAppUrl `string` (optional) iosAppUrl `string` (optional) featuredMessageDescription `string` (optional) yextCategoryIds `string` (optional) customInputFields `string` (optional) customInputFieldsToRemove `string` (optional) brandSystemPrompt `string` (optional) Brand-specific AI agent system prompt to customize AI behavior for this brandEndpoint
PUT /api/brands/{brandId}/regions/{regionCode}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieves brand settings for a specific facility
Parameters
facilityId `string` (optional) The ID of the facility to retrieve brand settings forEndpoint
GET /api/facilities/{facilityId}/brand-settings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/brand-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a new brand
Parameters
name `string` (required) The name of the brand organisationId `string` (required) The ID of the organisation the brand belongs to redirectDashboard `string` (optional) The URL to redirect to after logging in instead of the default dashboardEndpoint
POST /api/brands
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all brands
Endpoint
GET /api/brands
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the brand object
Parameters
brandId `string` (required) The ID of the brand to retrieve includeOrganisation `boolean` (optional) Whether to include the organisation data in the responseEndpoint
GET /api/brands/{brandId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an brand by ID
Parameters
brandId `string` (optional) The ID of the brand to update name `string` (required) The name of the brand brandOrganisationId `string` (optional) The ID of the organisation the brand belongs to redirectDashboard `string` (optional) The URL to redirect to after logging in instead of the default dashboard yextApiKey `string` (optional) The API key used to access the Yext API for this brandEndpoint
PUT /api/brands/{brandId}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all brands associated with the organisation of the club.
Endpoint
GET /api/clubs/{club}/brands
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/brands \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all calendar types
Endpoint
GET /api/programs/calendars/calendar-types
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/programs/calendars/calendar-types \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of bbox upload records in a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/bbox-timeline/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bbox-timeline/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve configuration for CCTV Frontend or UI
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/config/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Change configuration for CCTV Frontend or UI
Parameters
body `object` (required) Json Object of the new config block to add to the system.Endpoint
PUT /api/cctv/config/:club/:section
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of Bucket Region availability for CCTV storage provider config
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/bucket-region/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bucket-region/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Associates/Updates a device to a club
Parameters
body `string` (required) JSON Object for updating CCTV Device registration.Endpoint
POST /api/cctv/devices
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Associates a device to a club
Parameters
body `string` (required) JSON Object for updating CCTV Device registration.Endpoint
POST /api/cctv/devices/associate
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Fires off a MQTT Request to a specific device UUID, And expects a response (via websocket) of the available capabilities of the camera.
Parameters
club `string` (required) Internal ID of the club that owns the device you are querying. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/cctv/devices/list-camera-capabilities/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/list-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List device registrations
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/devices/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/devices/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Saves any/all configured camera capabilities and applies them to the device as a environment variable (via balena)
Parameters
club `string` (required) Internal ID of the club that owns the device you are querying. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/cctv/devices/save-camera-capabilities/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Saves a motion mask (if configured) for the camera and applies it to the device as a environment variable (via balena)
Parameters
club `string` (required) Internal ID of the club that owns the device you are querying. body `string` (required) Json Object of the camera mask.Endpoint
POST /api/cctv/devices/save-camera-mask/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-mask/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Sends a specific v4l2 command (such as brightness, or contrast) to the physical device
Parameters
club `string` (required) Internal ID of the club that owns the device you are querying. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/cctv/devices/set-camera-capability/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/set-camera-capability/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of face detections data of a person
Parameters
club `string` (required) Internal ID of the club that you wish to access. personID `string` (required) ID of person within the face identification systemEndpoint
GET /api/cctv/face-detections/:club/:personID
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of face detections data of a club grouped from range relative to current time
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/face-detections/:club/timeline
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of face detections data of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/face-detections/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of reports about the club facility
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/facility/:club/reports
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/facility/:club/reports \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get the device livestream thumbnail
Parameters
club `string` (required) Internal ID of the club. deviceId `string` (required) Internal ID of the CCTV device.Endpoint
GET /api/cctv/livestream/:club/thumbnail/:deviceId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/livestream/:club/thumbnail/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Tell the CCTV system that you are going to watch a livestream
Parameters
club `string` (required) Internal ID of the club. deviceId `string` (required) Internal ID of the CCTV device.Endpoint
POST /api/cctv/livestream/:club/iswatching/:deviceId
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/livestream/:club/iswatching/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add shadow photos to a person record
Parameters
club `string` (required) Internal ID of the club that you wish to access. personID `string` (required) Record ID of the person body `string` (required) Json Object of the new config block to add to the system.Endpoint
POST /api/cctv/people/:club/shadow-photos/:personID
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Query shadow photos of a person
Parameters
club `string` (required) Internal ID of the club that you wish to access. personID `string` (required) Record ID of the personEndpoint
GET /api/cctv/people/:club/shadow-photos/:personID
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Deletes references and associated rekognition records by a personID
Parameters
club `string` (required) Internal ID of the club that you wish to access. personID `string` (required) Unique ID of the CCTV person.Endpoint
DELETE /api/cctv/people/:club/:personID
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a person record of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access. personID `string` (required) DB ID of the person.Endpoint
GET /api/cctv/people/:club/:personID
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of people data of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/people/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates face detection items with a new personID and associates rekognition records
Parameters
club `string` (required) Internal ID of the club that you wish to access. body `string` (required) Json Object of the new config block to add to the system.Endpoint
POST /api/cctv/people/:club/validate
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/validate \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns an object of all availble filters for CCTV recordings data of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/recordings/filters/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/filters/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Stream recording.
Endpoint
GET /api/cctv/recordings/:club/:dir/:filename
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update info about the recording.
Endpoint
PUT /api/cctv/recordings/:club/:dir/:filename
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a summary of CCTV recordings data of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/recordings/:club/summary
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/summary \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of CCTV recordings data of a club based on range relative to current time
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/recordings/:club/timeline
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of CCTV recordings data of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/recordings/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Recordings are automatically deleted in a set period, use this function to retain recordings
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
POST /api/cctv/recordings/:club/:action
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:action \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns storage details and other metric data for club CCTV
Endpoint
GET /api/cctv/storage-details/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/storage-details/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generate and return heatmap data for specified durations based on timelapse data.
Parameters
club `string` (required) The unique identifier for the club. deviceUUID `string` (required) The unique identifier for the CCTV device. durations `string` (optional) Comma-separated list of durations to generate heatmaps for (Available options are "6h,12h,24h,1w,1m").Endpoint
GET /api/cctv/heatmaps/{club}/{deviceUUID}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/{club}/{deviceUUID} \
-H "x-api-key: YOUR_API_KEY"
Response
{
"heatmaps": {
"6h": "base64_encoded_image_data",
"12h": "base64_encoded_image_data",
"1w": null
}
}
Returns a list of timelapse upload records of a club
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/timelapse/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/timelapse/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List user actions performed on the recordings in CCTV Frontend or UI
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/cctv/ui/actions/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Record a user action performed on the recordings in CCTV Frontend or UI
Parameters
body `string` (required) Json Object of the new config block to add to the system.Endpoint
POST /api/cctv/ui/actions/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get user token for CCTV Frontend or UI
Parameters
club `string` (required) Club IDEndpoint
GET /api/cctv/ui/token/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/token/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generate token for temporary or guest access
Parameters
club `string` (required) The unique identifier for the club. body `string` (required) JSON Object of the token details to issue.Endpoint
POST /api/cctv/token/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{
"accessID": "2cdfde23-5008-4ae7-b830-374abe8d509f"
}
Returns a list of records of tokens for temporary or guest access
Parameters
club `string` (required) The unique identifier for the club.Endpoint
GET /api/cctv/token/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get access token via access ID
Parameters
accessID `string` (required) ID of the token record in the DB.Endpoint
POST /guest/cctv/token/:accessID
Example Request
curl -X POST https://portal.hub.gymsystems.co/guest/cctv/token/:accessID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the KYC asset for a club.
Parameters
clubId `string` (required) The ID of the club. key `string` (required) The key of the KYC asset.Endpoint
GET /api/clubs/{clubId}/kyc-assets/{key}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets/{key} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the club KYC information.
Endpoint
GET /api/clubs/{clubId}/kyc
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the club KYC information.
Parameters
clubId `string` (required) The ID of the club to update. body `object` (required)Endpoint
PUT /api/clubs/{clubId}/kyc
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Uploads a KYC asset for a club.
Parameters
clubId `string` (required) The ID of the club. file `string` (required) The file to upload.Endpoint
POST /api/clubs/{clubId}/kyc-assets
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the club preference settings.
Endpoint
GET /api/club/preferences/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
creates club preferences entry.
Endpoint
POST /api/club/preferences/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of members with agreement.
Endpoint
GET /api/clubpass/user/email/exist/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/email/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of members with agreement.
Endpoint
GET /api/clubpass/user/phone/exist/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/phone/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of users that belong to the specified club
Parameters
club `string` (required) Internal ID of the club that you wish to accessEndpoint
GET /api/clubs/{club}/members
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/members \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns if club is open on given date.
Parameters
club `string` (required) Internal ID of the club that you wish to access. date `string` (required) Date to check for in unix formatEndpoint
GET /api/club-busy-hours/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club-busy-hours/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all metadata for the Club that is displayed on the UBX websites.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/clubs/clubpage/clubdata/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/clubpage/clubdata/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a club's Meta Data with new data provided from the front-end.
Parameters
club `string` (required) Internal ID of the club that you wish to access. body `string` (required) Json Object of club data that you wish to update.Endpoint
POST /api/clubs/clubpage/updateclub/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/clubpage/updateclub/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
add new custom tracking record
Parameters
club `string` (required) id of the club body `string` (required) Array of custom tracking items.Endpoint
POST /api/clubs/{club}/customtracking
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns custom tracking for specific club
Endpoint
GET /api/clubs/customtracking/:clubID
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/customtracking/:clubID \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update custom tracking entries
Parameters
club `string` (required) id of the club body `string` (required) Json Object of club data that you wish to update.Endpoint
POST /api/clubs/{club}/customtracking/update
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking/update \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the default shop front image for a club.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/clubs/{club}/default-shop-front
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/default-shop-front \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List doors available in the facility
Parameters
body `object` (required) JSON Object of club data that you wish to update.Endpoint
POST /api/clubs/integrations/doors/:facilityId
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Unlock a specific door in the facility
Parameters
body `object` (required) JSON Object of club data that you wish to update.Endpoint
POST /api/clubs/integrations/doors/unlock
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/unlock \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all integrations and the configuration details for the specified club.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/clubs/integrations/list/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/integrations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a club's Meta Data with new data provided from the front-end.
Parameters
club `string` (required) Internal ID of the club that you wish to access. body `object` (required) Json Object of club data that you wish to update.Endpoint
POST /api/clubs/integrations/update/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns boolean if club is a European country or not
Parameters
club `string` (required) Internal ID of the club that you wish to access. date `string` (required) Date to check for in unix formatEndpoint
GET /api/clubs/is-eu/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/is-eu/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns high level list of all clubs in our database.
Endpoint
GET /api/clubs/listclubs
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/listclubs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns if club is open on given date.
Parameters
club `string` (required) Internal ID of the club that you wish to access. date `string` (required) Date to check for in unix formatEndpoint
GET /api/clubs/{club}/open-on/{date}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/open-on/{date} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get the club reviews from dynamo db.
Parameters
club `string` (required) Club IDEndpoint
GET /api/clubs/{club}/reviews
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get the club reviews settings from dynamo db.
Parameters
facilityId `string` (required) facility IDEndpoint
GET /api/clubs/{club}/reviews-settings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update the club reviews settings on dynamo db.
Parameters
club `string` (required) Club IDEndpoint
PUT /api/clubs/{club}/reviews-settings
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Re-enable review settings auto pyblish.
Parameters
club `string` (required) Club IDEndpoint
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Publishes a review
Parameters
club `string` (required) Internal ID of the club that you wish to access. review `string` (required) Internal ID of the review that you wish to publish.Endpoint
PUT /api/clubs/{club}/reviews/{review}/publish
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/publish \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Re-enable review settings auto pyblish.
Parameters
club `string` (required) Club IDEndpoint
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Send a response to an interaction.
Parameters
club `string` (required) Club ID reviewId `string` (required) The yext review ID body `string` (required)Endpoint
POST /api/clubs/{club}/reviews/{reviewId}/respond
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{reviewId}/respond \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Un-publishes a review
Parameters
club `string` (required) Internal ID of the club that you wish to access. review `string` (required) Internal ID of the review that you wish to un-publish.Endpoint
PUT /api/clubs/{club}/reviews/{review}/un-publish
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/un-publish \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of owners that belong to the specified club from the PH db
Parameters
clubID `string` (required) Internal ID of the club that you wish to accessEndpoint
GET /api/clubs/{clubID}/owners
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/owners \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates club yext data.
Parameters
club `string` (optional) the club idEndpoint
PUT /api/club/{club}/yext
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/club/{club}/yext \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all membership plans for the facility.
Parameters
facilityId `string` (required) Internal ID of the facilityEndpoint
GET /api/facilities/membership-plans/:facilityId
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a membership plan record.
Parameters
facilityId `string` (required) Internal ID of the facility body `object` (required) JSON Object of membership plan data that you wish to update.Endpoint
PUT /api/facilities/membership-plans/:facilityId
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Re-enable review settings auto pyblish.
Parameters
club `string` (required) Club IDEndpoint
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Re-enable review settings auto pyblish.
Parameters
club `string` (required) Club IDEndpoint
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all available currencies
Endpoint
GET /api/currencies
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/currencies \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the geographical location using IP address.
Parameters
ip `string` (required) IP address to look upEndpoint
GET /api/geo/ip-location/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-location/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the geographical location of the current user based on their IP.
Endpoint
GET /api/geo/ip-current
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-current \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Phone parser.
Parameters
body `string` (required) Json Object of the number you wish to parse.Endpoint
POST /api/phone/parser
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/phone/parser \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/associates a generic IoT device with a club.
Parameters
club `string` (required) Internal ID of the club that you wish to add the device under. body `string` (required) Json Object of the new screen to associate with.Endpoint
POST /api/devices/addGenericDevice/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/devices/addGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the metadata of the device
Parameters
uuid `string` (required) Unique ID of the deviceEndpoint
GET /api/devices/metadata/{uuid}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the metadata of the device
Parameters
deviceSerialNumber `string` (required) Serial Number of the deviceEndpoint
GET /api/devices/metadata/serial/{serialNo}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/serial/{serialNo} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the smart club data for the club.
Parameters
club_id `string` (required) Internal ID of the club that you wish to add the device under.Endpoint
GET /api/clubs/{club_id}/smart-club-data
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club-data \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all devices associated with an individual club.
Parameters
club `string` (required) Internal ID of the club that you wish to list devices from.Endpoint
GET /api/devices/list/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all application releases (versions) for our balena devices..
Endpoint
GET /api/devices/listReleases
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/listReleases \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Moves a device to a new facility (club) and updates related systems.
Parameters
club `string` (required) Source facility ID (current club the device is in) body `object` (required) Move parametersEndpoint
POST /api/devices/move/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/devices/move/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Attempts to establish a connection to a facility's router by selecting the best in-club device and sending an MQTT command to create a tunnel.
Parameters
facilityID `string` (required) Internal ID of the facility for which the router connection is being attempted.Endpoint
GET /api/devices/openRouterWebpage/{facilityID}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/openRouterWebpage/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Tests the connectivity to a facilities Unifi Controller and if the credentials are correct.
Parameters
facilityID `string` (required) Internal ID of the facility that you wish to test unifi connectivity withEndpoint
GET /api/devices/testUnifiController/{facilityID}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/devices/testUnifiController/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a generic IoT device with a club.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
PUT /api/devices/updateGenericDevice/{club}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/devices/updateGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns master clock device
Parameters
club_id `string` (required) Internal ID of the club that you wish to add the device under.Endpoint
GET /api/clubs/{club_id}/smart-club/health-check/master-clock
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club/health-check/master-clock \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns master sonos device
Parameters
club_id `string` (required) Internal ID of the club that you wish to add the device under.Endpoint
GET /api/clubs/{club_id}/smart-club/health-check/sonos-mqtt
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club/health-check/sonos-mqtt \
-H "x-api-key: YOUR_API_KEY"
Response
{}
get low battery duress notifications for a given club.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/clubs/{club}/smart-club/health-check/low-battery-duress
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/smart-club/health-check/low-battery-duress \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns network analysis data
Parameters
club_id `string` (required) Internal ID of the club that you wish to add the device under.Endpoint
GET /api/clubs/{club_id}/smart-club/health-check/network-analysis
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club/health-check/network-analysis \
-H "x-api-key: YOUR_API_KEY"
Response
{}
send low battery duress notifications for a given club.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns device speed test data for each device type
Parameters
club_id `string` (required) Internal ID of the club that you wish to add the device under.Endpoint
GET /api/clubs/{club_id}/smart-club/health-check/speed-test
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club/health-check/speed-test \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/lead-events
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/lead-events \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/page-views
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/page-views \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/referrers
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/referrers \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/socials
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/socials \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/top-cities
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/top-cities \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/total-page-views
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/total-page-views \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a JSON response of club analytics data.
Parameters
clubId `string` (optional) The club ID of the club to retrieve analytics data for. fromDate `string` (optional) The start date of the analytics data to retrieve. toDate `string` (optional) The end date of the analytics data to retrieve.Endpoint
GET /clubs/{clubId}/analytics/traffic
Example Request
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/traffic \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generates a temporary front-end JWT (Json Web Token) for Google Analytics embeddable charts in the front-end 'analytics' page.
Endpoint
GET /api/ga/onetimetoken
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ga/onetimetoken \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns dashboard widgets from 'The Training Camp' if the club has any active members.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/reporting/apps/widgets/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/apps/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all unreviewed club holidays.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/reporting/club/{club}/unreviewed-holidays
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/club/{club}/unreviewed-holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Set all unreviewed club holidays to reviewed.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
PUT /api/reporting/club/{club}/review-holidays
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/reporting/club/{club}/review-holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the KPI Report in a CSV format, broken down in a month-by-month basis over the last 12 months. *NOTE* This creates a single report for ALL Clubs in the system - Do not run this multiple times in parallel or you will over-load GymMaster!
Parameters
months `string` (optional) Number of months (from current date) to fetch (defaults to 12)Endpoint
GET /api/reporting/gymmaster/all-clubs-kpi-report
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/all-clubs-kpi-report \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the MMS's revenue graph(s) for a given club.
Parameters
club `string` (required) Internal ID of the club that you wish to access. range `string` (optional) Range in days (counting back from the current date) that we wan to fetchEndpoint
GET /api/reporting/gymmaster/revenuegraph/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/revenuegraph/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the dashboard's MMS (Member Management System) data/analytics for a given club. Data includes GymMaster/Perfect Gym statistics as well as other internal metrics collected by our system.
Parameters
club `string` (required) Internal ID of the club that you wish to access. range `string` (optional) Range in days (counting back from the current date) that we wan to fetchEndpoint
GET /api/reporting/gymmaster/widgets/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the dashboard's Myzone widget data for a given club.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/reporting/myzone/widgets/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/myzone/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns an object of services which are deemed offline from one or more of our status page/monitoring endpoints - configured via internal 'Uptime Kuma' tool.
Endpoint
GET /api/reporting/statuspage/events
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/statuspage/events \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns upcoming workout bookings for the next 7 days.
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/reporting/clubs/{club}/workout-bookings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/reporting/clubs/{club}/workout-bookings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of historical club holidays for a club.
Parameters
clubId `string` (optional) Club ID fromDate `string` (optional) Unix timestamp of the start date of the range of holidays to return. toDate `string` (optional) Unix timestamp of the end date of the range of holidays to return.Endpoint
GET /api/clubs/{clubId}/historical-holidays
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/historical-holidays \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns device automations associated with club.
Parameters
club `string` (required) Internal ID of the club that you wish to list devices from.Endpoint
GET /api/ics/automations/list/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/automations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the device configuration for an existing display/device.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/ics/automations/update/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/automations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add a new data source for the screen display UI.
Parameters
name `string` (required) Name of the data source type `string` (required) Data source type langShort `string` (required) Short language name lang `string` (optional) Language code data `string` (optional) JSON string of data for static typesEndpoint
POST /api/ics/data-sources
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/data-sources \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List data sources for the screen display UI.
Endpoint
GET /api/ics/data-sources
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/data-sources \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update data source for the screen display UI.
Parameters
id `string` (required) Unique identifier of the data source generated upon creation name `string` (optional) Name of the data source type `string` (optional) Data source type langShort `string` (optional) Short language name lang `string` (optional) Language code data `string` (optional) JSON string of data for static typesEndpoint
PUT /api/ics/data-sources
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ics/data-sources \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/associates a physical screen device/computer with your club.
Parameters
club `string` (required) Internal ID of the club that you wish to add the device under. body `string` (required) Json Object of the new screen to associate with.Endpoint
POST /api/ics/devices/add/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/add/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Instructs device to connect to new SSID based on parameters.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/ics/devices/changewifi/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/changewifi/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the device configuration for an existing display/device.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/ics/devices/command/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/command/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Loads a URL/webpage on a specific device screen.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
POST /api/ics/devices/loadurl/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/loadurl/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the device configuration for an existing display/device.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) Json Object of the update parameters.Endpoint
PUT /api/ics/devices/update/{club}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets widgets and links to off-line media for a club, based on the supplied date.
Parameters
club `string` (required) Internal ID of the club that you wish to change the workout program to. date `string` (required) Date to return widget URLs - Use `YYYY-MM-DD` format.Endpoint
GET /api/ics/external-resources/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/external-resources/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets widgets and links to off-line media for a club, based on the supplied date.
Parameters
club `string` (required) Internal ID of the club that you wish to change the workout program to.Endpoint
GET /api/ics/list-scheduled-workouts/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/list-scheduled-workouts/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Changes the workout program for a given club.
Parameters
club `string` (required) Internal ID of the club that you wish to change the workout program to. body `string` (required) Json Object of the new workout to change.Endpoint
POST /api/ics/loadprogram/{club}
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/loadprogram/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieves the program configuration for an existing display/device.
Parameters
club `string` (required) Internal ID of the club that you wish to retrieve program data of.Endpoint
GET /api/ics/programs/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the program configuration for an existing display/device.
Parameters
club `string` (required) Internal ID of the club that you wish to update the device. body `string` (required) JSON Object of the update parameters.Endpoint
PUT /api/ics/programs/{club}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieves the program configuration options.
Endpoint
GET /api/ics/programs/options/{facilityID}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/options/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add a new UI option for the screen displays.
Parameters
name `string` (required) Name of the UI Option description `string` (required) Short description about this UI url `string` (required) Base URL of the UIEndpoint
POST /api/ics/ui-options
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ics/ui-options \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List UI options for the screen displays.
Endpoint
GET /api/ics/ui-options
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ics/ui-options \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update UI option for the screen displays.
Parameters
id `string` (required) Unique identifier of the data source generated upon creation name `string` (optional) Name of the UI Option description `string` (optional) Short description about this UI url `string` (optional) Base URL of the UIEndpoint
PUT /api/ics/ui-options
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/ics/ui-options \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Queue wiki articles for embedding by synchronising embedding track entries
Request Body
Endpoint
POST /api/llm/articles/queue-sync
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/articles/queue-sync \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Chat with RAG context - This does not have access to tools - only a simple API request|response tool that lets you directly pull knowledge from the knowledge base.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Request Body
Endpoint
POST /api/llm/chat
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/chat \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Delete article embeddings from vector store and update embedding track status
Request Body
Endpoint
DELETE /api/llm/delete-article
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/delete-article \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
List embedding tracker records by organisation and status
Parameters
organisationId `string` (optional) Organisation ID (auto-resolved if omitted) status `string` (required) Status to filter by (must be one of in_queue, done, anomaly, fail, deleted) Limit `string` (optional) Max items per page LastEvaluatedKey `string` (optional) JSON of DynamoDB LastEvaluatedKey for paginationEndpoint
GET /api/llm/embedding-track/by-org-and-status
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org-and-status \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List embedding tracker records by organisation (optionally filter by resource type)
Parameters
organisationId `string` (optional) Organisation ID (auto-resolved if omitted) resourceType `string` (optional) Optional resource type (e.g., "article"). When provided, filters where resourceTypeId begins with "{type}#". Limit `string` (optional) Max items per page LastEvaluatedKey `string` (optional) JSON of DynamoDB LastEvaluatedKey for paginationEndpoint
GET /api/llm/embedding-track/by-org
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Initialize organization vector database collection
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Endpoint
POST /api/llm/init-org
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/init-org \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Trigger reindex of knowledge base
Fetches all published wiki articles for the organisation and generates/updates embeddings in the vector store. This process can take several minutes depending on the number of articles.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Request Body
Endpoint
POST /api/llm/reindex
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/reindex \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Semantic search in knowledge base
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Request Body
Endpoint
POST /api/llm/semantic-search
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/semantic-search \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Start streaming processing of queued articles for embedding with real-time progress updates
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Endpoint
POST /api/llm/start-embedding-stream
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/start-embedding-stream \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upsert article embeddings into vector database
Handles article embedding based on current state: - If article is unpublished OR private: deletes embeddings - If article is published AND public: re-embeds with full content Always requires full article body.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Request Body
Endpoint
POST /api/llm/upsert-embeddings
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/upsert-embeddings \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Test endpoint to batch delete article embeddings by organization and optional status
Parameters
organisationId `string` (optional) Organisation ID (auto-resolved from user context if omitted) status `string` (optional) Status to filter by (optional - if omitted, deletes ALL articles for the organization regardless of status) hardDelete `string` (optional) Whether to hard delete embedding track records (true) or soft delete by updating status (false)Endpoint
DELETE /api/llm/test/batch-delete-by-status
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/batch-delete-by-status \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Transform and chunk text with detailed statistics
Test endpoint that transforms text and chunks it, then provides detailed statistics about chunk distribution including character counts, percentages, and quality metrics to help evaluate chunking effectiveness.
Request Body
Endpoint
POST /api/llm/test/transform-chunk
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/test/transform-chunk \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Get total count of vectors in vector index for organization
Test endpoint to count all vectors in the vector index for the current user's organization
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Endpoint
GET /api/llm/test/vector-count
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-count \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete all vectors for a specific articleId from vector index
Test endpoint to delete all vectors associated with a specific articleId from the vector index for the current user's organization.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided) articleId `string` (required) The articleId to delete vectors for dryRun `string` (optional) If true, only shows what would be deleted without actually deletingEndpoint
DELETE /api/llm/test/vector-delete-article
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/vector-delete-article \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Test Vector SDK by listing all indexes
Test endpoint to verify Vector SDK connectivity and list all indexes in the vector bucket
Endpoint
GET /api/llm/test/vector-indices
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-indices \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Initialize Vector index for an organization
Creates the Vector bucket and index for the current user's organization
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided)Endpoint
POST /api/llm/test/vector-init-index
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/llm/test/vector-init-index \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get all vector metadata for a specific articleId
Test endpoint to retrieve all vector chunks and their metadata for a specific articleId from the vector index. Useful for inspecting how an article is chunked and stored. Filtering is handled by the vector store service.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided) articleId `string` (required) The article ID to retrieve vector metadata forEndpoint
GET /api/llm/test/vector-metadata-by-article
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-metadata-by-article \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get recent vectors with metadata from vector index
Test endpoint to retrieve the 10 most recent vectors with metadata (but without vector data) from the vector index for the current user's organization. Useful for inspecting metadata structure.
Parameters
organisationId `string` (optional) The organisation ID (will be auto-detected if not provided) limit `string` (optional) Number of recent vectors to return (max 100)Endpoint
GET /api/llm/test/vector-recent
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-recent \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Uploads an asset for the Marketing Manager/Designer to S3 Storage.
Parameters
file `string` (optional) Name of the file/asset to be uploaded.Endpoint
POST /api/marketing/design/static/download
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/marketing/design/static/download \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the individual assets JSON format to be loaded into the asset manager.
Parameters
id `string` (required) ID of the asset to get. organisationId `string` (required) The organisation ID of the facility that the asset belongs to.Endpoint
GET /api/marketing/assets/get/{id}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retuns all design assets.
Parameters
body `string` (required) Json Object of club data that you wish to save. organisationId `string` (required) The organisation ID of the facility that the asset belongs to. useCache `string` (optional) search `string` (optional) The search query to filter assets by name or tags. brand `string` (optional) The brand to filter assets by. tag `string` (optional) The tag to filter assets by.Endpoint
GET /api/marketing/assets/get
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of available assets that have been uploaded via the asset manager.
Parameters
organisationId `string` (required)Endpoint
GET /api/marketing/assets/list
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/list \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Saves an asset.
Parameters
body `string` (required) Json Object of club data that you wish to save. organisationId `string` (required) The organisation ID of the facility that the asset belongs to.Endpoint
PUT /api/marketing/assets/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/assets/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Uploads an asset for the Marketing Manager/Designer to S3 Storage.
Parameters
file `string` (optional) Name of the file/asset to be uploaded. organisationId `string` (optional) The ID of the organisation the asset belongs to.Endpoint
POST /api/marketing/assets/upload
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/marketing/assets/upload \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of all custom pages for an organisation.
Parameters
organisationId `string` (required) Internal ID of the organisation to return custom pages for.Endpoint
GET /api/marketing/custom-pages
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Upserts a custom page for an organisation.
Parameters
organisationId `string` (required) Internal ID of the organisation to return custom pages for. body `object` (required) Custom page data to upsert.Endpoint
PUT /api/marketing/custom-pages
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of all custom pages for a facility.
Parameters
facilityId `string` (required) Internal ID of the facility to return custom pages for.Endpoint
GET /api/facilities/{facilityId}/marketing/custom-pages
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all exported/rendered designs for a specific club id.
Parameters
club `string` (required) Internal ID of the club that is making the request. sort `string` (optional) Filter to sort designs by, 'oldest', 'newest', or 'design' supported.Endpoint
GET /api/marketing/designs/{club}/exports
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/exports \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the individual HTML contents for a design in JSON format to be loaded into the editor.
Parameters
id `string` (required) ID of the design to get.Endpoint
GET /api/marketing/designs/get/{id}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of input mapping in marketing and print designs and design templates
Parameters
clubId `string` (required) Internal ID of the club that is making the request. availableFeatures `string` (optional) Return all items with specific features brand `string` (optional) Filters designs by brand features `string` (optional) Filter results based on featuresEndpoint
GET /api/marketing/designs/input-mapping/{clubId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/input-mapping/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of available designs for a given club, that may be used within designs (Print Designs) created within the hub's marketing/print editor.
Parameters
club `string` (required) Internal ID of the club that is making the request. designAdmin `string` (optional) Return all design data (admin view / requires user to be administrator). brand `string` (optional) Filters designs by brandEndpoint
GET /api/marketing/designs/{club}/list
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Forces the system to render/re-render all design thumbnails & previews (Used mainly if we change 'upstream' assets in S3 etc)... **NOTE** You can only call this function once per X minutes (or if a render is already-running you can't call this function). This is to ensure that we don't put excess load on our servers rendering all designs...
Endpoint
GET /api/marketing/designs/render-all-thumbnails
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/render-all-thumbnails \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Initiates render of a Dynamic Design
Parameters
body `string` (required) Json Object of club data you wish to send to the design render processor...Endpoint
POST /api/marketing/designs/dynamic/render-design
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/marketing/designs/dynamic/render-design \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Saves/Updates a design.
Parameters
body `string` (required) Json Object of club data that you wish to save.Endpoint
PUT /api/marketing/designs/{club}/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the individual static design JSON format to be loaded
Parameters
id `string` (required) ID of the static design to get.Endpoint
GET /api/marketing/designs/static/get/{id}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/static/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Saves/Updates an static design template.
Parameters
body `string` (required) Json Object of club data that you wish to save.Endpoint
PUT /api/marketing/designs/static/{club}/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/static/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Removes a user set variable from the system.
Parameters
club `string` (required) Internal ID of the club that is making the request. body `string` (required) Json containing the variable ID to remove.Endpoint
DELETE /api/marketing/variables/{club}/delete
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/marketing/variables/{club}/delete \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of available variables for a given club, that may be used within designs (Print Designs) created within the hub's marketing/print editor.
Parameters
club `string` (required) Internal ID of the club that is making the request.Endpoint
GET /api/marketing/variables/{club}/list
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/marketing/variables/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a single new user based 'variable' for the given club.
Parameters
club `string` (required) Internal ID of the club that is making the request. body `string` (required) Json Object of the new variable.Endpoint
POST /api/marketing/variables/{club}/new
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/marketing/variables/{club}/new \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Adds/Saves/Updates one or more design variables in the system via an array of objects.
Parameters
club `string` (required) Internal ID of the club that is making the request. body `string` (required) Array of One or more Json Object's to be added/updated (This allows for saving of multiple items/objects in one API request).Endpoint
PUT /api/marketing/variables/{club}/save
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/variables/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create user agreement.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
POST /api/member-agreements/contracts-tna/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of agreement.
Endpoint
GET /api/member-agreements/contracts-tna/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete user agreement.
Endpoint
DELETE /api/member-agreements/contracts-tna/:club/:id
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns specific of agreement.
Endpoint
GET /api/member-agreements/contracts-tna/:club/:id
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update user agreement.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
PATCH /api/member-agreements/contracts-tna/:club/:id
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get default agreeents of the club.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
GET /api/member-agreements/default-tna/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Set default agreeent of the club.
Parameters
body `object` (required) Json Object of club data that you wish to save.Endpoint
POST /api/member-agreements/default-tna/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of global or region agreement.
Endpoint
GET /api/member-agreements/global-tna/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/global-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of members with agreement.
Endpoint
GET /api/member-agreements/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all members, combined from all GymMaster API Endpoints configured in the system.
Parameters
export `string` (optional) Return/Export results as a CSV File for import to other systems. trainingcamp `string` (optional) Choses to export the data from the DB "as is", or in a format that can be imported into MailChimp for "The Training Camp". status `string` (optional) Allows to filter members by a specific status - ie "Expired", "Current" etc draw `string` (optional) Enable/disable Datatables Response Pagination by specifying the Draw search `string` (optional) Search Database for specific querystring... length `integer` (optional) Number of items to return when using Datatables pagination ExclusiveStartKey `string` (optional) The "start" key/index (should be an object) to start returning data from (in the database) when paging through multiple pages...Endpoint
GET /api/members-leads/gymmaster/all/members
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/gymmaster/all/members \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of ALL train at home registrations from the mobile v1 app.
Parameters
export `string` (optional) Return/Export results as a CSV File for import to other systems. draw `string` (optional) Enable/disable Datatables Response Pagination by specifying the Draw search `string` (optional) Search Database for specific querystring... length `integer` (optional) Number of items to return when using Datatables pagination ExclusiveStartKey `string` (optional) The "start" key/index (should be an object) to start returning data from (in the database) when paging through multiple pages...Endpoint
GET /api/members-leads/train-at-home/all/users
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/train-at-home/all/users \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of ALL Training Camp App members (For Hub admin Tools)
Parameters
export `string` (optional) Return/Export results as a CSV File for import to other systems. trainingcamp `string` (optional) Choses to export the data from the DB "as is", or in a format that can be imported into MailChimp for "The Training Camp". draw `string` (optional) Enable/disable Datatables Response Pagination by specifying the Draw search `string` (optional) Search Database for specific querystring... length `integer` (optional) Number of items to return when using Datatables pagination ExclusiveStartKey `string` (optional) The "start" key/index (should be an object) to start returning data from (in the database) when paging through multiple pages...Endpoint
GET /api/members-leads/trainingcamp/all/app-members
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/all/app-members \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of ALL Training Camp leads from the 12RND/UBX Websites (For Hub admin Tools)
Parameters
export `string` (optional) Return/Export results as a CSV File for import to other systems. trainingcamp `string` (optional) Choses to export the data from the DB "as is", or in a format that can be imported into MailChimp for "The Training Camp". draw `string` (optional) Enable/disable Datatables Response Pagination by specifying the Draw search `string` (optional) Search Database for specific querystring... length `integer` (optional) Number of items to return when using Datatables pagination ExclusiveStartKey `string` (optional) The "start" key/index (should be an object) to start returning data from (in the database) when paging through multiple pages...Endpoint
GET /api/members-leads/trainingcamp/all/leads
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/all/leads \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of club members by season for the training camp's app.
Parameters
club `string` (required) Internal ID of the club that you wish to access. season `string` (optional) Season of the training camp that you wish to filter. userIds `string` (optional) Array of user ids to filter. useCache `string` (optional) Whether to use the cache. isUserMemberInfo `string` (optional) If enabled, it will filter the data based on userIds (recommended to use only one user id) and include necessary data such as leaderboard and user preferences.Endpoint
GET /api/members-leads/trainingcamp/club/season-members/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/club/season-members/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of ALL Training Camp leads from the 12RND/UBX Websites (For Hub admin Tools)
Parameters
export `string` (optional) Return/Export results as a CSV File for import to other systems. draw `string` (optional) Enable/disable Datatables Response Pagination by specifying the Draw search `string` (optional) Search Database for specific querystring... length `integer` (optional) Number of items to return when using Datatables pagination ExclusiveStartKey `string` (optional) The "start" key/index (should be an object) to start returning data from (in the database) when paging through multiple pages...Endpoint
GET /api/members-leads/website/all/leads
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/website/all/leads \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Deletes multiple workout booking leads.
Parameters
club `string` (required) Internal ID of the club that you wish to access. body `string` (required)Endpoint
DELETE /api/members-leads/workout-booking/club/leads/{club}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of a club's workout booking leads.
Parameters
club `string` (required) Internal ID of the club that you wish to access. all `string` (optional) To show all the leads or just the upcoming ones.Endpoint
GET /api/members-leads/workout-booking/club/leads/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a workout booking lead.
Parameters
club `string` (required) Internal ID of the club that you wish to access. body `string` (required)Endpoint
PUT /api/members-leads/workout-booking/club/leads/{club}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all modules
Endpoint
GET /api/modules
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/modules \
-H "x-api-key: YOUR_API_KEY"
Response
{}
get notification categories.
Endpoint
GET /api/notification/categories
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/notification/categories \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete notification consumed.
Endpoint
DELETE /api/club/notification/consumed/:club
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
creates notification message.
Endpoint
POST /api/club/notification/consumed/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns array of notification consumed.
Endpoint
GET /api/club/notification/consumed/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete notification message.
Endpoint
DELETE /api/club/notification/messages/:club
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns array of notification messages.
Endpoint
GET /api/club/notification/messages/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
updates notification message.
Endpoint
PATCH /api/club/notification/messages/:club
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
creates notification message.
Parameters
body `string` (required)Endpoint
POST /api/club/notification/messages/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
get the viewers of notification by club.
Endpoint
POST /api/club/notification/viewers/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/viewers/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a log of release history/notes generated by OpenAI from all releases across the UBX network.
Endpoint
GET /api/release-history
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/release-history \
-H "x-api-key: YOUR_API_KEY"
Response
{}
get notification categories by user.
Endpoint
GET /api/club/notification/user-categories/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/user-categories/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
creates notification message.
Endpoint
POST /api/notification/webhook
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/notification/webhook \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get VAPID public key for HTML5 push
Returns the VAPID public key used to create browser push subscriptions.
Endpoint
GET /html5-push/vapid-public-key
Example Request
curl -X GET https://portal.hub.gymsystems.co/html5-push/vapid-public-key \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Save or update a HTML5 push subscription
Persists a browser push subscription for the current user.
Request Body
Endpoint
POST /html5-push/subscribe
Example Request
curl -X POST https://portal.hub.gymsystems.co/html5-push/subscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Delete a HTML5 push subscription
Removes a browser push subscription for the current user.
Request Body
Endpoint
POST /html5-push/unsubscribe
Example Request
curl -X POST https://portal.hub.gymsystems.co/html5-push/unsubscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Add a new partner.
Parameters
name `string` (required) Name of the partner description `string` (optional) Description of the partnerEndpoint
POST /api/partners
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/partners \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List all partners.
Endpoint
GET /api/partners
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/partners \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update a partner.
Parameters
partnerId `string` (required) ID of the partner name `string` (optional) Name of the partner description `string` (optional) Description of the partnerEndpoint
PUT /api/partners
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/partners \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a partner.
Parameters
partnerId `string` (required) ID of the partnerEndpoint
DELETE /api/partners/{partnerId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/{partnerId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Migrate GymMaster integration data to facility-partner-config
Queries all clubs with gymMasterAPI and gymMasterDomain fields and creates/updates corresponding facility-partner-config records. This is a one-time migration endpoint.
Parameters
partnerId `string` (required) The GymMaster partner ID to use for all migrated records dryRun `boolean` (optional) If true, only reports what would be migrated without writing to databaseEndpoint
GET /api/partners/migrate-gymmaster
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/partners/migrate-gymmaster \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Enable a partner for an organisation.
Parameters
partnerId `string` (required) ID of the partnerEndpoint
POST /api/partners/organisation-partners/enable
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/partners/organisation-partners/enable \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List organisation partners. Global admins see all, organisation admins see only their organisation's partners.
Endpoint
GET /api/partners/organisation-partners
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/partners/organisation-partners \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Remove an organisation partner.
Parameters
keyId `string` (required) Key ID of the organisation partner organisationId `string` (required) Organisation ID of the partnerEndpoint
DELETE /api/partners/organisation-partners/{keyId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/organisation-partners/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update organisation partner access mode and modules.
Parameters
keyId `string` (required) Key ID of the organisation partner organisationId `string` (required) Organisation ID of the partner accessMode `string` (required) Access mode for the partner modules `string` (optional) List of modules for LIMITED access modeEndpoint
PUT /api/partners/organisation-partners/update-access
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/partners/organisation-partners/update-access \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a partner configuration for a facility
Removes the configuration for a partner integration at a facility
Parameters
facilityId `string` (required) Facility ID (club ID) partnerId `string` (required) Partner IDEndpoint
DELETE /api/partners/config/facility/{facilityId}/{partnerId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/config/facility/{facilityId}/{partnerId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List all partner configurations for a facility
Returns all partner integrations configured for the given facility
Parameters
facilityId `string` (required) Facility ID (club ID)Endpoint
GET /api/partners/config/facility/{facilityId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/partners/config/facility/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create or update a partner configuration for a facility
Upserts the configuration for a partner integration at a facility
Request Body
Endpoint
POST /api/partners/config
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/partners/config \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Creates a new role
Parameters
body `string` (required) Role objectEndpoint
POST /api/roles
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all roles
Endpoint
GET /api/roles
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Deletes an role by ID
Endpoint
DELETE /api/roles/{roleId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an role by ID
Parameters
body `string` (required) Role objectEndpoint
PUT /api/roles/{roleId}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create a new additional line item for the saas billing invoice
Endpoint
POST /api/saas-billing/additional-line-items
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of additional line items for the saas billing invoice
Endpoint
GET /api/saas-billing/additional-line-items
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of additional line items for club's saas billing invoice
Endpoint
GET /api/clubs/{clubId}/saas-billing/additional-line-items
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an additional line item for the saas billing invoice
Endpoint
PUT /api/saas-billing/additional-line-items/{itemId}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items/{itemId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete imported monthly report
Parameters
club `string` (optional) Club ID reportId `string` (optional) Report IDEndpoint
DELETE /api/saas-billing/extended-access/monthly-usage-report/{reportId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{reportId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a pdf invoice for the club for the given period.
Parameters
club `string` (optional) Club ID month `string` (optional) month of the report in number format. 1 = January, 2 = February etc. year `string` (optional) year of the report in number format. e.g. 2021Endpoint
GET /api/saas-billing/extended-access/monthly-usage-report/:club/invoice
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club/invoice \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Import monthly reports for the club.
Parameters
club `string` (optional) Club IDEndpoint
PUT /api/saas-billing/extended-access/usage-report/:club
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a CSV report of the CCTV Usage for the last 30 days for all clubs.
Endpoint
GET /api/saas-billing/extended-access/usage-report/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all the daily reports of the month for the club.
Parameters
club `string` (optional) Club ID month `string` (optional) month of the report in number format. 1 = January, 2 = February etc. year `string` (optional) year of the report in number format. e.g. 2021Endpoint
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of imported monthly reports for the admin
Endpoint
GET /api/saas-billing/extended-access/usage-report/imported
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/imported \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a CSV report of the CCTV Usage for the last 30 days for all clubs.
Parameters
club `string` (optional) Club ID month `string` (optional) month of the report in number format. 1 = January, 2 = February etc. year `string` (optional) year of the report in number format. e.g. 2021Endpoint
GET /api/saas-billing/extended-access/monthly-usage-report/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns the periodical usage report for the club.
Parameters
club `string` (optional) Club ID periodStart `string` (optional) Start of the period in the format of YYYY-MM-DD periodEnd `string` (optional) End of the period in the format of YYYY-MM-DDEndpoint
GET /api/saas-billing/extended-access/periodical-usage-report/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/periodical-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add a note to a monthly record
Parameters
recordID `string` (optional) The ID of the record to get note `string` (optional) The note to add to the recordEndpoint
POST /api/saas-billing/monthly-records/{recordID}/notes
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID}/notes \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of saas billing monthly records
Parameters
club `string` (optional) The ID of the club to get month `string` (optional) The billing month in YYYY-MM formatEndpoint
GET /api/saas-billing/monthly-records/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of saas billing monthly records that have failed or require 3d secure
Parameters
clubID `string` (optional) The ID of the club to get the failed monthly records forEndpoint
GET /api/clubs/:clubID/saas-billing/flagged
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/flagged \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of saas billing monthly records
Parameters
month `string` (optional) Month in MM format. year `string` (optional) Year in YYYY format. filters `string` (optional) Datatable created query string filters. order `string` (optional) Datatable created query string.Endpoint
GET /api/saas-billing/monthly-records
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retry failed payments for a club
Parameters
clubID `string` (optional) The ID of the club to get the failed monthly records forEndpoint
PUT /api/clubs/:clubID/saas-billing/retry-failed-payments
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/retry-failed-payments \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update a monthly record
Parameters
recordID `string` (optional) The ID of the record to get status `string` (optional) The status to update the record toEndpoint
PUT /api/saas-billing/monthly-records/{recordID}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Checks if payments have succeeded and updates the status of the record
Parameters
clubID `string` (optional) recordID `string` (optional) The ID of the record to getEndpoint
PUT /api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Add a payment method for a club.
Parameters
clubID `string` (optional)Endpoint
POST /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Syncs the payment methods for a club with Stripe.
Parameters
clubID `string` (optional)Endpoint
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a payment method from the club's payment settings.
Parameters
clubID `string` (optional) paymentMethodID `string` (optional)Endpoint
DELETE /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get the payment settings for a club.
Parameters
clubID `string` (optional)Endpoint
GET /api/clubs/{clubID}/saas-billing/payment-settings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update a club's payment settings.
Parameters
clubID `string` (optional) lockedOut `boolean` (optional) Whether the club will be locked out of the system. pauseBilling `boolean` (optional) Whether automatic billing for the club will be paused. customerID `string` (optional) Adding this will update the stripe customer ID for the club. deleteSourceID `string` (optional) Wether to delete the source customer from stripe.Endpoint
PUT /api/clubs/{clubID}/saas-billing/payment-settings
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get the earliest billed month for all clubs.
Parameters
clubID `string` (optional)Endpoint
GET /api/saas-billing/payment-settings/earliest-billed-month
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/earliest-billed-month \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Paginate through all clubs in the system and return the customer IDs for each club.
Parameters
clubID `string` (optional)Endpoint
GET /api/saas-billing/payment-settings/customer-ids
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/customer-ids \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Set the primary payment method for a club.
Parameters
clubID `string` (optional)Endpoint
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update the billing profile for a club.
Parameters
clubID `string` (optional) invoiceEntity `string` (optional) billingContacts `string` (optional) List of uuids of kyc contacts ccEmails `string` (optional) List of emails to cc on invoicesEndpoint
PUT /api/clubs/{clubID}/saas-billing/payment-settings/billing-profile
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/billing-profile \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update a payment method for a club.
Parameters
clubID `string` (optional) cardID `string` (optional)Endpoint
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update charges config of specific target
Parameters
target `string` (optional) Can be the clubId or a country code.Endpoint
GET /api/admin/saas-billing/charges-config/{target}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/saas-billing/charges-config/{target} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update charges config of specific target
Parameters
target `string` (optional) Can be the club ID or country code or global body `object` (optional) Body of the requestEndpoint
PUT /api/admin/saas-billing/charges-config/{target}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/saas-billing/charges-config/{target} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns charges config of specific target
Parameters
clubId `string` (optional) The club ID of the club to get the charges config forEndpoint
GET /api/saas-billing/charges-config/{clubId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns list of all charges config.
Endpoint
GET /api/admin/saas-billing/charges-config
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/saas-billing/charges-config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Deletes a secure upload record
Parameters
type `string` (required) key `string` (required) permanent `string` (optional)Endpoint
DELETE /api/admin/secure-upload/{type}/{key}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/secure-upload/{type}/{key} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns object information
Parameters
type `string` (required) key `string` (required)Endpoint
GET /api/admin/secure-upload/{type}/{key}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/{type}/{key} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a signed URL for uploading a file to S3
Parameters
fileName `string` (required) The name of the file to be uploaded including the extension public `string` (optional) Whether the file should be uploaded to the public bucketEndpoint
GET /api/admin/secure-upload/token
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/token \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of files uploaded using the old php uploader that now reside in S3
Endpoint
GET /api/admin/secure-upload/legacy-files
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/legacy-files \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of files uploaded to S3
Endpoint
GET /api/admin/secure-upload/files
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/files \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates/updates a secure upload record
Parameters
body `object` (required)Endpoint
POST /api/admin/secure-upload/files
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/secure-upload/files \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Proxy a file from S3
Parameters
type `string` (optional) The type of file to retrieve key `string` (optional) The key of the file to retrieveEndpoint
GET /api/admin/secure-upload/private/{type}/{key}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/private/{type}/{key} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Proxy a file from S3
Parameters
type `string` (optional) The type of file to retrieve key `string` (optional) The key of the file to retrieveEndpoint
GET /api/admin/secure-upload/public/{type}/{key}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/secure-upload/public/{type}/{key} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Converts pending videos and audio into small chunks and places them in S3
Endpoint
POST /api/admin/media-convert
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/admin/media-convert \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates the progress of a file conversions
Endpoint
PUT /api/admin/media-convert/progress
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/media-convert/progress \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of orders for the facility.
Parameters
facilityID `string` (optional)Endpoint
GET /api/store/facilities/:facilityID/orders
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/store/facilities/:facilityID/orders \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of products available to the club.
Parameters
clubID `string` (required) search `string` (optional) limit `string` (optional) page `string` (optional) The page number for pagination (starts at 1).Endpoint
GET /api/store/clubs/{clubID}/products
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/store/clubs/{clubID}/products \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates club info in expresscart store v2.
Parameters
clubID `string` (required)Endpoint
PUT /api/admin/store/clubs/{clubID}
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/admin/store/clubs/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns all ticket history based on the Club ID
Parameters
club `string` (required) Internal ID of the club that you wish to access.Endpoint
GET /api/ticketing/clubtickets/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/clubtickets/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets the departments
Endpoint
GET /api/ticketing/departments
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/departments \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets the details of a single ticket
Parameters
user `string` (required) email of the user. ticketNumber `string` (required) 6-digit ID of the ticket you wish to access. club `string` (required) the selected club id.Endpoint
GET /api/ticketing/ticket-details/:ticketNumber/:club
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/ticket-details/:ticketNumber/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets the topics
Endpoint
GET /api/ticketing/topics
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/topics \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets all the tickets created by the current logged in user - Note this is set from the headers provided by our google SSO service.
Parameters
user `string` (required) Email of the user that is currently logged-inEndpoint
GET /api/ticketing/usertickets
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/usertickets \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a new ticket
Parameters
club `string` (required) the selected club id.Endpoint
POST /api/ticketing/clubticket/:club
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/clubticket/:club \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a new ticket
Parameters
subject `string` (required) Subject of the ticket. message `string` (required) Full message of the ticket.Endpoint
POST /api/ticketing/userticket
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/userticket \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a reply to an existing ticket
Parameters
subject `string` (required) Subject of the ticket. message `string` (required) Full message of the ticket.Endpoint
POST /api/ticketing/user-reply
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/user-reply \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieves a user's preferences
Endpoint
GET /api/user-preferences
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates a user's preferences
Parameters
body `string` (required)Endpoint
PUT /api/user-preferences
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Response
{}
List the organisations, facilities, and regions the user has access to for a specific module.
Parameters
moduleId `string` (required)Endpoint
POST /api/user/me/modules/{moduleId}/org-access
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/user/me/modules/{moduleId}/org-access \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Creates a 'Linking Request' from an end user, requesting to 'Join' a club.
Parameters
body `string` (required) Json Object of the new club to add to the system.Endpoint
POST /api/user/linkclub
Example Request
curl -X POST https://portal.hub.gymsystems.co/api/user/linkclub \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists all clubs authorised to the user.
Endpoint
GET /api/user/listauthorised
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/user/listauthorised \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Update user's own profile
Allows a user to update their own profile information (first name, last name, phone number)
Request Body
Endpoint
PATCH /api/user/update-profile
Example Request
curl -X PATCH https://portal.hub.gymsystems.co/api/user/update-profile \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Retrieve an icon based on the url.
Endpoint
GET /api/website-icon
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/website-icon \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create a new location entity on yext.
Parameters
facilityId `string` (optional) The facility ID to create the location for.Endpoint
GET /api/admin/yext/location
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/yext/location \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Delete a location entity on yext.
Parameters
entityId `string` (optional) facilityId `string` (optional) The facility ID to delete the location for.Endpoint
DELETE /api/admin/yext/location/{entityId}
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/api/admin/yext/location/{entityId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates an existing location entity on yext.
Parameters
id `string` (required) Location id facilityId `string` (optional) The facility ID to update the location for.Endpoint
GET /api/admin/yext/location/{id}
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/yext/location/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
list all listings given a club.
Parameters
clubId `string` (required)Endpoint
GET /api/admin/club/{clubId}/yext/listings
Example Request
curl -X GET https://portal.hub.gymsystems.co/api/admin/club/{clubId}/yext/listings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Updates club yext data.
Parameters
club `string` (optional) the club idEndpoint
PUT /api/club/{club}/yext
Example Request
curl -X PUT https://portal.hub.gymsystems.co/api/club/{club}/yext \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns metadata for the selected Club's ID.
Parameters
clubID `string` (required) Internal ID of the club that you wish to return data on.Endpoint
GET /internal/clubs/club-data/{clubID}
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/clubs/club-data/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns data for the Facility
Parameters
facilityId `string` (optional) The ID of the facility to retrieve data for. slug `string` (optional) The slug of the facility to retrieve data for.Endpoint
GET /internal/facilities
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/facilities \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of all clubs in the system.
Endpoint
GET /internal/clubs/list-clubs
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/clubs/list-clubs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns an array of user emails that have permission to a club
Parameters
club `string` (optional) Internal ID of the club that you wish to access.Endpoint
GET /internal/clubs/list-user-access/{club}
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/clubs/list-user-access/{club} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of all users and what clubs they have permission to access.
Endpoint
GET /internal/clubs/list-user-access
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/clubs/list-user-access \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns brand settings for the selected facility.
Parameters
facilityId `string` (required) Internal ID of the facility that you wish to return data on.Endpoint
GET /internal/facilities/{facilityId}/brand-settings
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/facilities/{facilityId}/brand-settings \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Internal API to delete article embeddings from vector store
Request Body
Endpoint
DELETE /internal/llm/delete-article
Example Request
curl -X DELETE https://portal.hub.gymsystems.co/internal/llm/delete-article \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Internal API to upsert article embeddings into vector database
Handles article embedding based on current state: - If article is unpublished OR private: deletes embeddings - If article is published AND public: re-embeds with full content Always requires full article body.
Request Body
Endpoint
POST /internal/llm/upsert-embeddings
Example Request
curl -X POST https://portal.hub.gymsystems.co/internal/llm/upsert-embeddings \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Return organisation data
Parameters
orgId `string` (optional) ID of the organisation you wish to retrieve.Endpoint
GET /internal/organisations/{orgId}
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/organisations/{orgId} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns a list of organisations.
Parameters
orgId `string` (optional) ID of the organisation you wish to retrieve.Endpoint
GET /internal/organisations
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/organisations \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Get simplified list of roles for an organisation
Returns a simplified list of roles available to an organisation without user access filtering
Parameters
organisationId `string` (required) The organisation ID to get roles forEndpoint
GET /internal/organisations/{organisationId}/roles
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/organisations/{organisationId}/roles \
-H "x-api-key: YOUR_API_KEY"
Response
[]
Returns the data of user preferences.
Endpoint
GET /user-preferences/get-user-preferences
Example Request
curl -X GET https://portal.hub.gymsystems.co/user-preferences/get-user-preferences \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Return user data and their access to modules
Parameters
email `string` (required) Email of the user you wish to check access for. moduleId `string` (required) Internal ID of the module that you wish to check access for (can be multiple).Endpoint
GET /internal/clubs/get-user-access
Example Request
curl -X GET https://portal.hub.gymsystems.co/internal/clubs/get-user-access \
-H "x-api-key: YOUR_API_KEY"
Response
{}