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 stage

Endpoint

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 update

Endpoint

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 chargeback

Endpoint

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 results

Endpoint

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 results

Endpoint

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 now

Endpoint

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 timestamp

Endpoint

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 request

Endpoint

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 timestamp

Endpoint

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 timestamp

Endpoint

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 timestamp

Endpoint

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 UUID

Endpoint

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 organisation

Endpoint

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 other

Endpoint

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 name

Endpoint

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 arguments

Endpoint

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 record

Endpoint

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 for

Endpoint

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 brand

Endpoint

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 for

Endpoint

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 dashboard

Endpoint

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 response

Endpoint

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 brand

Endpoint

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 system

Endpoint

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 person

Endpoint

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 ID

Endpoint

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 access

Endpoint

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 format

Endpoint

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 format

Endpoint

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 format

Endpoint

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 ID

Endpoint

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 ID

Endpoint

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 ID

Endpoint

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 ID

Endpoint

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 ID

Endpoint

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 access

Endpoint

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 id

Endpoint

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 facility

Endpoint

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 ID

Endpoint

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 ID

Endpoint

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 up

Endpoint

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 device

Endpoint

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 device

Endpoint

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 parameters

Endpoint

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 with

Endpoint

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 fetch

Endpoint

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 fetch

Endpoint

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 types

Endpoint

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 types

Endpoint

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 UI

Endpoint

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 UI

Endpoint

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 pagination

Endpoint

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 pagination

Endpoint

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 deleting

Endpoint

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 for

Endpoint

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 features

Endpoint

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 brand

Endpoint

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 partner

Endpoint

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 partner

Endpoint

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 partner

Endpoint

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 database

Endpoint

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 partner

Endpoint

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 partner

Endpoint

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 mode

Endpoint

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 ID

Endpoint

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 object

Endpoint

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 object

Endpoint

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 ID

Endpoint

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. 2021

Endpoint

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 ID

Endpoint

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. 2021

Endpoint

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. 2021

Endpoint

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-DD

Endpoint

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 record

Endpoint

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 format

Endpoint

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 for

Endpoint

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 for

Endpoint

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 to

Endpoint

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 get

Endpoint

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 invoices

Endpoint

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 request

Endpoint

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 for

Endpoint

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 bucket

Endpoint

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 retrieve

Endpoint

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 retrieve

Endpoint

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-in

Endpoint

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 id

Endpoint

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 for

Endpoint

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

{}