简介

这是面向公众的网站和系统所使用的核心 API。**如果您是希望使用此 API 的第三方开发者,请联系 Performance Hub 支持团队将您的 IP 加入白名单;否则,如果来自同一来源/IP 的请求过多,您将被限速和/或阻止。**

基础 URL

https://uapi.gymsystems.co/

身份验证

Universal API 通过 HTTP 标头使用 API 密钥进行身份验证。

每次请求时,请在 X-API-Key 标头中包含您的 API 密钥。

请妥善保管您的 API 密钥,它们可完全访问您的账户! 切勿在公开代码仓库、客户端应用程序或任何可能导致泄露的地方暴露这些密钥。

API 仅接受安全的 HTTPS 连接。 普通 HTTP 请求会被拒绝,缺少有效身份验证凭据的请求也会被拒绝。

请求示例

curl https://uapi.gymsystems.co/api/v1/clubs \
  -H "X-API-Key: YOUR_API_KEY"

通用联系表单

用于 Example Club 网站及其他对外服务(例如 Training Camp 等)发送“通用联系”消息的 API。

参数

organisationId `string` (可选) 要获取设施数据的组织的 ID。用于确保只返回属于同一组织的设施。 leadForwarding `string` (可选) 是否应将电子邮件转发到任何潜在客户管理系统(gymsales、gymleads 等)?注意:设置为 `onlyForwardIfConfigured` 会将潜在客户转发到任何 CRM,但不会转发到设施的主要电子邮件。

请求正文

通用联系请求正文

端点

POST /api/v1/support/contact-submission

请求示例

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 '{}'

响应

{}

免费试用

为指定设施生成“免费试用”着陆页请求

请求正文

免费试用请求正文

端点

POST /api/v1/leads/free-trial

请求示例

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 '{}'

响应

{}

预约训练

用于 Example Club 网站上“预约训练”表单的 API。

请求正文

预约训练请求正文

端点

POST /api/v1/leads/book-a-workout

请求示例

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 '{}'

响应

{}

Training Camp 潜在客户提交

跟踪从我们主要网站提交的、登记用户对 Training Camp 兴趣的信息。这些信息随后用于将用户引导至 trainingcamp.com 应用/网站,并供设施为会员选择加入 Training Camp。

请求正文

页面正文

端点

POST /api/v1/leads/training-camp

请求示例

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 '{}'

响应

{}

获取单个设施或所有设施的元数据

此 API 返回用于渲染单个设施页面的设施元数据,或数据库中所有设施的元数据。

参数

organisationId `string` (可选) 要获取设施数据的组织的 ID。用于确保只返回属于同一组织的设施。 club `string` (可选) 要获取的设施的 ID。*注意*:如果希望将所有设施作为单个 JSON 对象返回,可以省略此项。

端点

GET /api/v1/club/data

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/club/data \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

获取单个设施或所有设施的元数据

此 API 返回用于渲染单个设施页面的设施元数据,或数据库中所有设施的元数据。

参数

organisationId `string` (可选) 要获取设施数据的组织的 ID。用于确保只返回属于同一组织的设施。 club `string` (可选) 要获取的设施的 ID。*注意*:如果希望将所有设施作为单个 JSON 对象返回,可以省略此项。

端点

GET /api/v2/club/data

请求示例

curl -X GET https://uapi.gymsystems.co//api/v2/club/data \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

按城市和经纬度搜索设施

根据您的纬度、经度和搜索词(例如郊区、城镇或城市)搜索附近的设施

参数

geogroup `string` (可选) 返回设施所在城市/州/国家的“分组”列表 search `string` (可选) 要搜索的词,通常是城镇、城市、郊区或邮政编码 limit `string` (可选) 限制的结果数量 origin `string` (可选) 作为搜索基准的纬度和经度。在搜索同名但位于不同国家/城市(我们在这些地方有多个设施)的城镇/郊区时,这一点至关重要,例如 `Southbank Example City` 或 `Southbank Example City 2` organisationId `string` (可选) 用于筛选设施的组织 ID。用于确保只返回属于同一组织的设施。

端点

GET /api/v1/club/geosearch

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/club/geosearch \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

列出单个设施的置顶评价

此 API 返回设施的置顶评价。

参数

club `string` (可选) 要获取的设施的 ID

端点

GET /api/v2/club/reviews

请求示例

curl -X GET https://uapi.gymsystems.co//api/v2/club/reviews \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索指定设施中设置的应用配置

检索指定设施中设置的应用配置

参数

clubID `string` (可选) 要获取的设施的 ID appID `string` (可选) 要获取的应用的 ID

端点

GET /api/v1/club/apps/config

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/club/apps/config \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

基于用户 IP 的纬度和经度

根据 Maxmind 的 GeoIP 数据库返回用户 IP 的估算纬度和经度。

端点

GET /api/v1/geo/ip

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/geo/ip \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

解析地址字符串,并以对象形式返回。

将地址字符串转换为由街道、城市、州和邮政编码组成的对象。

请求正文

页面正文

端点

POST /api/v1/user/address-parser

请求示例

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 '{}'

响应

{}

在我们的中央数据库中跟踪提交的电子邮件。

在我们的中央 DynamoDB 表中跟踪提交到网站各部分 _(例如内部 API、Mailchimp、Hubspot 等)_ 和/或第三方 API 的电子邮件,以便我们对 Example Club 生态系统的会员进行更详细的分析和定向。

请求正文

页面正文

端点

POST /api/v1/analytics/track-email

请求示例

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 '{}'

响应

{}

将数据上报到 Graylog

将来自各前端服务的数据上报到我们的内部日志管理系统(Graylog)。

请求正文

页面正文

端点

POST /api/v1/analytics/beacon

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/analytics/beacon \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

响应

{}

检查 Myzone 心率带 ID 是否已在设施注册

如果 Myzone 心率带 ID 与指定设施 ID 关联,则返回 true,否则返回 false。

参数

club `string` (可选) 要查询的设施的 ID beltid `string` (可选) 要搜索的 Myzone 心率带的 ID

端点

GET /api/v1/myzone/belt-registered

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/myzone/belt-registered \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索到访刷卡频率

检索会员在特定期间内的到访刷卡列表

参数

start_date `string` (可选) 用于筛选会员到访的期间开始日期 end_date `string` (可选) 用于筛选会员到访的期间结束日期 club `string` (可选) 会员订阅的特定设施,用于筛选会员在哪个设施刷卡 email `string` (可选) 到访刷卡使用的特定电子邮件

端点

GET /api/v1/members/swipes/frequency

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/members/swipes/frequency \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

GymMaster 签到事件的 Webhook

GymMaster 签到事件的 Webhook

端点

POST /api/v1/webhooks/gymmaster/checkin

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/webhooks/gymmaster/checkin \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

注册/上报设备 ID

在数据库中存储显示屏计算机的 UUID、IP 和屏幕 ID(设备 ID),以便通过 Performance Hub 关联该设备。

请求正文

应向此端点提交一个包含设备信息(例如其 IP 和 UUID)的 JSON 对象

端点

POST /api/v1/devices/dashkiosk/register

请求示例

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 '{}'

响应

{}

设置胁迫按钮的状态

将与设施关联的胁迫按钮状态设置为 `true|false`。注意:只能更改已在设施注册的按钮的状态。此操作不适用于尚未设置的设备。

请求正文

胁迫按钮报警状态 JSON 对象

端点

POST /api/v1/devices/duress/setAlarmState

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/devices/duress/setAlarmState \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

响应

{}

返回与设施关联的胁迫按钮

返回与设施关联的胁迫按钮数组,用于扫描更新。

参数

clubID `string` (必填) 要查询的设施的 ID

端点

GET /api/v1/devices/duress/getDuressButtons/{clubID}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/devices/duress/getDuressButtons/{clubID} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

更新设备元数据

更新某个 UUID 的设备元数据。注意:向此函数提交数据无需认证,因此数据不应包含任何敏感信息。

请求正文

应向此端点提交一个包含设备信息(例如操作系统信息、Wi-Fi 指标等)的 JSON 对象

端点

POST /api/v1/devices/metadata/beacon

请求示例

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 '{}'

响应

{}

根据设备 UUID 返回显示屏的相关信息。

根据设备的 UUID 获取设备配置,并返回与设备关联的轮次以及应显示的内容等信息。

参数

uuid `string` (必填) 要获取配置的设备的 UUID

端点

GET /api/v1/devices/displayconfig/{uuid}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/devices/displayconfig/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

根据 UUID 返回设备的配置信息。

使用设备的 UUID 从多个表(Display Screens、IoT 设备、CCTV 设备)中获取设备配置,并以 JSON 形式返回相关配置详细信息。

参数

uuid `string` (必填) 要获取配置的设备的 UUID

端点

GET /api/v1/devices/config/{uuid}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/devices/config/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

注册 BLE 信标设备

将 BLE 信标设备信息保存到我们的数据库

请求正文

BLE 信标设备数据

端点

POST /api/v1/devices/blebeacon/register

请求示例

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 '{}'

响应

{}

列出与 ClubID 关联的 CCTV 设备

列出与 ClubID 关联的 CCTV 设备的概要信息。注意:此 API 只返回通用/概要信息,例如设备的本地 IP 地址以及设备是在线还是离线。如需高级设备详细信息,必须使用 Performance Hub API。

参数

clubID `string` (必填) 要查询的设施的 ID

端点

GET /api/v1/devices/cctv/list-devices/{clubID}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/devices/cctv/list-devices/{clubID} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

注册 CCTV 设备

将 CCTV 设备信息保存到我们的数据库

请求正文

CCTV 设备数据

端点

POST /api/v1/devices/cctv/register

请求示例

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 '{}'

响应

{}

注册 AI Edge Processor 设备

将 AI Edge Processor 设备信息保存到我们的数据库

请求正文

AI Edge Processor 设备数据

端点

POST /api/v1/devices/ai-edge-processor/register

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/devices/ai-edge-processor/register \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

响应

{}

生成用于接收 CCTV 录像上传的签名 URL

生成签名的 S3 URL,使客户端可以直接将 CCTV 录像上传到 S3 以进行后期处理。

请求正文

设备元数据

端点

POST /api/v1/devices/cctv/generate-upload-token

请求示例

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 '{}'

响应

{}

通知 S3 分段上传已完成

通知 S3 客户端已完成分段上传

请求正文

设备元数据

端点

POST /api/v1/devices/cctv/complete-upload

请求示例

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 '{}'

响应

{}

向设施的 Sonos 设备发送 Sonos 命令

向设施的 Sonos 设备发送 Sonos 命令

参数

clubID `string` (必填) 要查询的设施的 ID

端点

POST /api/v1/devices/audio-control/command/{clubID}

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/devices/audio-control/command/{clubID} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索设施的音频控制设置

检索设施的音频控制设置

参数

clubID `string` (必填) 要查询的设施的 ID

端点

GET /api/v1/devices/audio-control/config/{clubID}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/devices/audio-control/config/{clubID} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

创建临时访问令牌

创建临时访问令牌

端点

POST /api/v1/temporary-access/token

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/temporary-access/token \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索音乐直播流条目

检索音乐直播流条目

端点

GET /api/v1/streams

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/streams \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索音乐直播流条目数据

检索音乐直播流条目数据

参数

id `string` (必填) 标识流条目的唯一 ID

端点

GET /api/v1/streams/{id}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/streams/{id} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索常见问题条目

检索常见问题条目

参数

location `string` (可选) 常见问题条目要显示的位置,例如:主网站(website_main)。 categories `string` (可选) 常见问题条目的类别。 status `string` (可选) 条目的状态

端点

GET /api/v1/faqs

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/faqs \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索常见问题条目

检索常见问题条目

参数

category `string` (必填) 类别筛选条件

端点

GET /api/v1/faqs/{category}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/faqs/{category} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索新闻条目

检索新闻条目

参数

location `string` (可选) 新闻条目要显示的位置,例如:主网站(website_main)。 status `string` (可选) 条目的状态

端点

GET /api/v1/press

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/press \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索电子邮件映射

检索电子邮件映射

端点

GET /api/v1/email-mapping

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/email-mapping \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索自定义跟踪代码

检索自定义跟踪代码

参数

clubID `string` (必填) 设施 ID 或设施位置,例如:Milton

端点

GET /api/v1/customtracking/{clubID}

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/customtracking/{clubID} \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

检索着陆页条目

检索着陆页条目

参数

region `string` (可选) 设施所属的区域,例如:AU、NZ、US club `string` (可选) 设施 ID,设施的唯一标识符 slug `string` (可选) URL 地址的最后一部分,用作页面的唯一标识符

端点

GET /api/v1/landing-pages

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/landing-pages \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

Performance Hub 网站联系表单

接收来自 Performance Hub 网站的表单提交(演示申请、销售咨询、抢先体验订单),并通过 SES 发送通知电子邮件。

端点

POST /api/v1/performancehub/website-contact

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/performancehub/website-contact \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

请求 Door/Gate Access OTP

向提供的电话或电子邮件发送一次性验证码。始终返回 200,以防止标识符枚举。按标识符和按 IP 限速(Redis 滑动窗口)。

端点

POST /api/v1/door-gate-access/auth/otp/request

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/auth/otp/request \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

验证 Door/Gate Access OTP 并签发令牌

验证 OTP,解析所有设施中关联的人员资料,并返回一个短期有效的 JWT 和一个不透明的轮换刷新令牌。

端点

POST /api/v1/door-gate-access/auth/otp/verify

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/auth/otp/verify \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

轮换 Door/Gate Access 刷新令牌

端点

POST /api/v1/door-gate-access/auth/refresh

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/auth/refresh \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

撤销 Door/Gate Access 刷新令牌

端点

POST /api/v1/door-gate-access/auth/logout

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/auth/logout \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

当前 Door/Gate Access 会话

端点

GET /api/v1/door-gate-access/me

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/door-gate-access/me \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

更新可编辑的个人资料字段

更新与 JWT 标识符匹配的每个 ph-door-access-users 行上的 firstName / lastName。此处无法更改电子邮件和电话。

端点

PATCH /api/v1/door-gate-access/me

请求示例

curl -X PATCH https://uapi.gymsystems.co//api/v1/door-gate-access/me \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

列出 Door/Gate Access 用户的设施

端点

GET /api/v1/door-gate-access/me/facilities

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/door-gate-access/me/facilities \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

设置用户当前选择的设施

端点

POST /api/v1/door-gate-access/me/facility

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/me/facility \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

列出用户可在设施中打开的门

参数

facilityId `string` (可选) 设施标识符(clubID)。

端点

GET /api/v1/door-gate-access/me/doors

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/door-gate-access/me/doors \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

当前用户最近的解锁尝试

端点

GET /api/v1/door-gate-access/me/access-history

请求示例

curl -X GET https://uapi.gymsystems.co//api/v1/door-gate-access/me/access-history \
  -H "x-api-key: YOUR_API_KEY"

响应

{}

从 Door/Gate Access 移动应用解锁门

在发布到 MQTT 之前进行严格的服务器端检查。对于永久规则、附加的 Access Time Windows、明确的门阻止、维护模式和地理围栏,服务器是唯一可信来源。客户端状态仅用于用户体验。

参数

doorId `string` (必填) 门控制器的 balenaUUID。

端点

POST /api/v1/door-gate-access/doors/{doorId}/unlock

请求示例

curl -X POST https://uapi.gymsystems.co//api/v1/door-gate-access/doors/{doorId}/unlock \
  -H "x-api-key: YOUR_API_KEY"

响应

{}