Introduction
This is the core API used for UBX public facing sites and systems. **If you are a third party developer wishing to utilise this api, please email `admin@12round.com` to have your IP's whitelisted, otherwise you will be rate-limited and/or blocked if there are too many requests from the same referrer / IP.**
Base URL
https://uapi.gymsystems.co/
Alternative Environments
https://uapi.gymsystems.co/ - Production API (live data)
https://uapi.stage.gymsystems.co/ - Staging API (uses live data, from test servers)
http://localhost:3100/dev/ - Local Dev
Authentication
The Universal API uses API key authentication via HTTP headers.
Include your API key in the X-API-Key header with each request.
Handle your API keys with care—they provide full access to your account! Never expose these keys in public repositories, client-side applications, or anywhere they could be compromised.
The API only accepts secure HTTPS connections. Plain HTTP requests are rejected, as are any requests missing proper authentication credentials.
Example Request
curl https://uapi.gymsystems.co/api/v1/clubs \
-H "X-API-Key: YOUR_API_KEY"
General Contact Form
The API used for 'general contact' messages from the 12RND & UBX wesites, and other external facing services (such as the training camp etc).
Parameters
organisationId `string` (optional) The ID of the organisation you wish to get club data for - This is used to ensure that we only return clubs that are part of the same organisation. leadForwarding `string` (optional) Should we forward emails on to any lead managemt system (gymsales, gymleads etc)? Note setting to `onlyForwardIfConfigured` will forward leads on to any CRM - but not the club's primary email...Request Body
General Contact Body
Endpoint
POST /api/v1/support/contact-submission
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/support/contact-submission \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Free Trial
Generates a 'free trial' landing page request for the specified club
Request Body
Free Trial Body
Endpoint
POST /api/v1/leads/free-trial
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/leads/free-trial \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Book a Workout
The API used for the 'book a workout' form from the 12RND & UBX wesites.
Request Body
Book a Workout body
Endpoint
POST /api/v1/leads/book-a-workout
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/leads/book-a-workout \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Training Camp Lead Submissions
Tracks submissions to register the user's interest for the Training Camp from our main websites - This information is then used to refer the user to the trainingcamp.com app/site and for clubs to opt-in the member to the training camp.
Request Body
Page Body
Endpoint
POST /api/v1/leads/training-camp
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/leads/training-camp \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Gets the meta-data for an individual club, or all clubs
This API will either return the club meta-data used to render a club page for an individual club, or all clubs in the database.
Parameters
organisationId `string` (optional) The ID of the organisation you wish to get club data for - This is used to ensure that we only return clubs that are part of the same organisation. club `string` (optional) The ID of the club you wish to get... *NB* You can omit this if you wish to return ALL clubs as a single JSON Object.Endpoint
GET /api/v1/club/data
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/club/data \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Gets the meta-data for an individual club, or all clubs
This API will either return the club meta-data used to render a club page for an individual club, or all clubs in the database.
Parameters
organisationId `string` (optional) The ID of the organisation you wish to get club data for - This is used to ensure that we only return clubs that are part of the same organisation. club `string` (optional) The ID of the club you wish to get... *NB* You can omit this if you wish to return ALL clubs as a single JSON Object.Endpoint
GET /api/v2/club/data
Example Request
curl -X GET https://uapi.gymsystems.co//api/v2/club/data \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Search for clubs by city and lat/lng
Perform a serch for Clubs nearby, based on your Latitude, Longitude, and Search Terms (such as a Suburb, Town, or City)
Parameters
geogroup `string` (optional) Returns a list of 'grouped' cities/states/countries that clubs reside in search `string` (optional) The term to search for - Generally this will be either a: Town, City, Suburb, or Postcode limit `string` (optional) Number of results to limit origin `string` (optional) The Latitude & Longitude to base your search from - This is critical when searching for towns/suburbs with the same name, but in different countries/cities where we have multiple clubs - I.e. `Southbank Brisbane` or `Southbank Melbourne` organisationId `string` (optional) The organisation ID to filter clubs by - This is used to ensure that we only return clubs that are part of the same organisation.Endpoint
GET /api/v1/club/geosearch
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/club/geosearch \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Lists the pinned reviews for an individual club
This API will return the club's pinned reviews.
Parameters
club `string` (optional) The ID of the club you wish to getEndpoint
GET /api/v2/club/reviews
Example Request
curl -X GET https://uapi.gymsystems.co//api/v2/club/reviews \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve configuration of an app set in the given club
Retrieve configuration of an app set in the given club
Parameters
clubID `string` (optional) The ID of the club you wish to get appID `string` (optional) The ID of the app you wish to getEndpoint
GET /api/v1/club/apps/config
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/club/apps/config \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Latitude & Longitude based on the Users's IP
Returns the estimated latitude & longitude of a user's IP based on Maxmind's GeoIP Database.
Endpoint
GET /api/v1/geo/ip
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/geo/ip \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Parses an address string, and returns it as an object.
Convert the string of address to Object compose of street, city, state and postal code.
Request Body
Page Body
Endpoint
POST /api/v1/user/address-parser
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/user/address-parser \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Tracks email's subitted in our central database.
Track email's subitted to the various parts of our website _(i.e. internal API's, Mailchimp, Hubspot, etc)_ and/or third party API's in our central DynamoDB Table, allowing us to perform more detailed analysis and targeting of members from the 12RND & UBX Ecosystem.
Request Body
Page Body
Endpoint
POST /api/v1/analytics/track-email
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/analytics/track-email \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Beacons data to Graylog
Beacon's data from various front-end services to our internal Log Log Management system (Graylog).
Request Body
Page Body
Endpoint
POST /api/v1/analytics/beacon
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/analytics/beacon \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Checks a Myzone Belt ID is registered with a club
Returns a true or false response if a Myzone Belt ID is associated with the given Club ID.
Parameters
club `string` (optional) The ID of the Club to Query beltid `string` (optional) The ID of the Myzone Belt to SearchEndpoint
GET /api/v1/myzone/belt-registered
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/myzone/belt-registered \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Frequency of Visit Swipes
Retrieve a list of visit swipes by members during a certain period
Parameters
start_date `string` (optional) The period start date used to filter member visits end_date `string` (optional) The period end date used to filter member visits club `string` (optional) The specific club the member is subscribed with to filter which club the member swiped in email `string` (optional) The specific email used for the visit swipeEndpoint
GET /api/v1/members/swipes/frequency
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/members/swipes/frequency \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Webhook for GymMaster checkin events
Webhook for GymMaster checkin events
Endpoint
POST /api/v1/webhooks/gymmaster/checkin
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/webhooks/gymmaster/checkin \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Register/Beacon Device ID
Stores the UUID, IP, and Screen ID (Device ID) of a coaching screen computer in the database allowing for association of the device via the Performance Hub.
Request Body
A JSON object should be posted to this endpoint containing information about the device, such as it's IP, and UUID
Endpoint
POST /api/v1/devices/dashkiosk/register
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/dashkiosk/register \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Updates Device Metadata
Updates the device metadata for a UUID. Note no auth is required to post data to this function, so data should not contain any sensitive information.
Request Body
A JSON object should be posted to this endpoint containing information about the device, such as it's OS Info, Wifi Metrics, Etc...
Endpoint
POST /api/v1/devices/metadata/beacon
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/metadata/beacon \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Returns information about a display based on device UUID.
Gets the configuration for a device based on the devices UUID, and returns information such as which round is associated with the device and what content should be displayed.
Parameters
uuid `string` (required) UUID of device fetching config forEndpoint
GET /api/v1/devices/displayconfig/{uuid}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/devices/displayconfig/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Returns configuration information for a device based on UUID.
Fetches the configuration for a device from multiple tables (Coaching Screens, IoT Devices, CCTV Devices) using the device's UUID, and returns the relevant configuration details as JSON.
Parameters
uuid `string` (required) UUID of the device to fetch the configuration forEndpoint
GET /api/v1/devices/config/{uuid}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/devices/config/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Register a BLE Beacon Device
Saves BLE Beacon device info into our database
Request Body
BLE Beacon Device Data
Endpoint
POST /api/v1/devices/blebeacon/register
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/blebeacon/register \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Lists CCTV Devices associated with ClubID
Lists high level CCTV device details associated with a ClubID - Note only generic/high level information is returned via this API such as local IP Addresses of devices and if they are online|offline. The PerformancE Hub API must be used for advanced device details.
Parameters
clubID `string` (required) ID of the club to query againstEndpoint
GET /api/v1/devices/cctv/list-devices/{clubID}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/devices/cctv/list-devices/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Register a CCTV Device
Saves CCTV device info into our database
Request Body
CCTV Device Data
Endpoint
POST /api/v1/devices/cctv/register
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/cctv/register \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Generates a signed URL to accept CCTV recording uploads
Generates a signed S3 URL to allow the client to directly upload a cctv recording to S3 for post-processing.
Request Body
Device metadata
Endpoint
POST /api/v1/devices/cctv/generate-upload-token
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/cctv/generate-upload-token \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Tells S3 that the multipart upload has been completed
Tells S3 that the multipart upload has been completed by the client
Request Body
Device metadata
Endpoint
POST /api/v1/devices/cctv/complete-upload
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/cctv/complete-upload \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{}
Send Sonos command to club Sonos devices
Send Sonos command to club Sonos devices
Parameters
clubID `string` (required) ID of the club to query againstEndpoint
POST /api/v1/devices/audio-control/command/{clubID}
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/devices/audio-control/command/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve club Audio Control settings
Retrieve club Audio Control settings
Parameters
clubID `string` (required) ID of the club to query againstEndpoint
GET /api/v1/devices/audio-control/config/{clubID}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/devices/audio-control/config/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Create temporary access token
Create temporary access token
Endpoint
POST /api/v1/temporary-access/token
Example Request
curl -X POST https://uapi.gymsystems.co//api/v1/temporary-access/token \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Music Livestream Items
Retrieve Music Livestream Items
Endpoint
GET /api/v1/streams
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/streams \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Music Livestream Item Data
Retrieve Music Livestream Item Data
Parameters
id `string` (required) Unique id that identifies a stream itemEndpoint
GET /api/v1/streams/{id}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/streams/{id} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve FAQ Items
Retrieve FAQ Items
Parameters
location `string` (optional) The location on where you want the faq item to appear. ie: main website (website_main). categories `string` (optional) Categories for the faq item. status `string` (optional) The status of the itemEndpoint
GET /api/v1/faqs
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/faqs \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve FAQ Items
Retrieve FAQ Items
Parameters
category `string` (required) Categories filterEndpoint
GET /api/v1/faqs/{category}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/faqs/{category} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Press Items
Retrieve Press Items
Parameters
location `string` (optional) The location on where you want the press item to appear. ie: main website (website_main). status `string` (optional) The status of the itemEndpoint
GET /api/v1/press
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/press \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Email Mapping
Retrieve Email Mapping
Endpoint
GET /api/v1/email-mapping
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/email-mapping \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Custom Tracking Codes
Retrieve Custom Tracking Codes
Parameters
clubID `string` (required) The club id or club location. ie: MiltonEndpoint
GET /api/v1/customtracking/{clubID}
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/customtracking/{clubID} \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve Landing Pages Items
Retrieve Landing Pages Items
Parameters
region `string` (optional) The region where a club belongs. ie: AU, NZ, US club `string` (optional) Club ID, unique identifier of the club slug `string` (optional) The last part of the URL address that serves as a unique identifier of the pageEndpoint
GET /api/v1/landing-pages
Example Request
curl -X GET https://uapi.gymsystems.co//api/v1/landing-pages \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Generates a signed URL to accept uploads on
Generates a signed S3 URL to allow the client to directly upload a file to S3 for post-processing.
Parameters
x-amz-meta-filekey `string` (optional) Optional ability to specify the UUID of the file you would like to create (otherwise the UUID will be created for you) X-API-Key `string` (optional) API Key required to access this functionEndpoint
POST /upload/v1/generate-upload-token
Example Request
curl -X POST https://uapi.gymsystems.co//upload/v1/generate-upload-token \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Checks the status of an upload's post processing
Gets the processing status of a UUID that was uploaded to the uploads S3 bucket (Via the upload API)
Parameters
uuid `string` (optional) The UUID of the upload to check X-API-Key `string` (optional) API Key required to access this functionEndpoint
GET /upload/v1/status
Example Request
curl -X GET https://uapi.gymsystems.co//upload/v1/status \
-H "x-api-key: YOUR_API_KEY"
Response
{}
Retrieve List of Prerendered Workouts, Exercises, Mealplans, Recipes
Retrieve List of Prerendered Workouts, Exercises, Mealplans, Recipes on a particular scheduled date
Parameters
date `string` (optional) The date used to schedule the workout round `integer` (optional) The workout round used for the exercise and its associated assets id `integer` (optional) The calendar type id used to group workoutsEndpoint
GET /round-display/v1/prerenders
Example Request
curl -X GET https://uapi.gymsystems.co//round-display/v1/prerenders \
-H "x-api-key: YOUR_API_KEY"
Response
{}