Pengenalan
Selamat datang ke Performance Hub API. API ini mengurus data kelab dan sistem utama yang berintegrasi dengan kelab Anda serta sistem luarannya, dan bukan API untuk kegunaan awam. Untuk maklumat lanjut tentang penggunaan pelbagai sistem Performance Hub yang disokong oleh API ini, sila rujuk entri individu bagi sistem yang Anda perlukan dalam [dokumentasi Performance Hub](https://docs.performancehub.co).
URL Asas
https://portal.hub.gymsystems.co
Pengesahan
Butiran pengesahan akan diberikan apabila integrasi Anda diluluskan.
Peristiwa "giliran ejen selesai" yang dilaporkan oleh peranti (pencetus web push)
Dipanggil oleh sidecar peranti Ejen AI yang dipasangkan (tidak sekali-kali oleh pelayar) apabila larian ejen yang dimulakan daripada UI web selesai dan berjalan lebih lama daripada ambang pemberitahuan peranti. Disahkan dengan JWT HS256 jangka pendek bagi setiap peranti (aud 'events'). Pendua dibuang bagi setiap peranti+sesi+permulaan dan kadar dihadkan bagi setiap peranti, kemudian dihantar ke langganan push HTML5 pengguna yang memulakannya dengan pautan dalam ke perbualan tersebut.
Badan Permintaan
Titik akhir
POST /ai/events/agent-turn-complete
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/ai/events/agent-turn-complete \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Pemberitahuan push yang dimulakan oleh ejen (kemahiran ph-notify)
Dipanggil oleh sidecar peranti Ejen AI yang dipasangkan bagi pihak ejen pada peranti (kemahiran ph-notify) untuk menghantar pemberitahuan sebarangan ke pelayar dan peranti mudah alih pengguna. Disahkan dengan JWT HS256 jangka pendek bagi setiap peranti (aud 'events'). Pengguna sasaran mesti mempunyai akses kepada peranti (dasar akses bagi setiap ejen); jika tidak dinyatakan, pemberitahuan dihantar kepada pemilik peranti. Kadar dihadkan bagi setiap peranti, berasingan daripada peristiwa giliran selesai.
Badan Permintaan
Titik akhir
POST /ai/events/agent-notify
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/ai/events/agent-notify \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Muat naik imej pemberitahuan (kemahiran ph-notify)
Menerima badan imej mentah daripada peranti yang dipasangkan (JWT aud 'events') dan menyimpannya dalam baldi awam notify-media di bawah kunci UUID yang tidak boleh diteka. Objek dipadam secara automatik selepas 7 hari (kitaran hayat S3). Memulangkan URL https awam untuk digunakan sebagai `imageUrl` dalam /ai/events/agent-notify. Had 5 MB; png/jpeg/gif/webp sahaja.
Badan Permintaan
Titik akhir
POST /ai/media/notify-image
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/ai/media/notify-image \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Geganti MCP peranti untuk Connected Apps (alat SaaS luaran)
Titik akhir MCP Streamable-HTTP untuk peranti Ejen AI yang dipasangkan (pelayan MCP "connected_apps" pada pendengar :8790 sidecar peranti). Disahkan dengan JWT HS256 jangka pendek bagi setiap peranti (aud 'mcp' — bukti kelayakan yang sama seperti /mcp) dan dihadkan oleh bendera Connected Apps enabled milik EJEN (sambungan adalah bagi setiap peranti ejen, bukan bagi setiap kemudahan). Permintaan distrim terus ke pelayan MCP sesi platform alat huluan ejen itu sendiri dengan pengepala sesi disuntik di bahagian pelayan; bukti kelayakan huluan tidak pernah sampai ke peranti. Nama alat dan penjenamaan vendor dilabel putih secara dua hala semasa transit. 401/410 huluan (sesi tamat tempoh) mencetuskan satu penciptaan semula sesi + cubaan semula.
Titik akhir
POST /mcp/apps
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/mcp/apps \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari log audit API (akses modul IAM & Admin)
Cari dan tapis log akses API dengan keupayaan penapisan lanjutan. Pengguna hanya boleh melihat log bagi organisasi yang boleh mereka akses.
Parameter
organisationId `string` (pilihan) ID Organisasi untuk pengesahan ACL (wajib)Badan Permintaan
Titik akhir
POST /api/admin/audit-logs/search
Contoh Permintaan
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 '{}'
Respons
{}
Dapatkan statistik log audit yang dicache daripada Redis (akses modul IAM & Admin)
Dapatkan statistik agregat daripada cache Redis untuk pemuatan papan pemuka serta-merta
Parameter
timeWindow `string` (pilihan) Tetingkap masa untuk statistik (lalai 12h)Titik akhir
GET /api/admin/audit-logs/statistics-cached
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics-cached \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan statistik log audit (akses modul IAM & Admin)
Dapatkan statistik agregat untuk papan pemuka. Diskopkan kepada organisasi pengguna.
Parameter
startTime `number` (pilihan) Masa mula (cap masa Unix), lalai 24 jam yang lalu endTime `number` (pilihan) Masa tamat (cap masa Unix), lalai masa kiniTitik akhir
GET /api/admin/audit-logs/statistics
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan data siri masa untuk log audit (akses modul IAM & Admin)
Dapatkan data siri masa berbaldi untuk visualisasi garis masa permintaan
Parameter
timeWindow `string` (pilihan) Tetingkap masa untuk data siri masa: - 1h: 1 jam terakhir (blok 10 minit) - 12h: 12 jam terakhir (blok 10 minit) - 24h: 24 jam terakhir (blok 10 minit) - 7d: 7 hari terakhir (blok 1 jam) - 14d: 14 hari terakhir (blok 1 jam)Titik akhir
GET /api/admin/audit-logs/timeseries
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/timeseries \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan organisasi yang boleh diakses oleh pengguna untuk log audit (akses modul IAM & Admin)
Memulangkan senarai organisasi yang log auditnya boleh dilihat oleh pengguna semasa
Titik akhir
GET /api/admin/audit-logs/user-organisations
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/user-organisations \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Panggilan awal untuk mencipta kelab baharu... Ambil perhatian bahawa hanya objek kelab 'template' yang dicipta - Permintaan API kedua kemudiannya diperlukan untuk mengemas kini kelab dengan datanya seperti Waktu Operasi, Lokasi, URL Sosial dsb.
Parameter
body `string` (wajib) Objek Json kelab baharu untuk ditambah ke sistem.Titik akhir
POST /api/admin/clubs/addclub
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/admin/clubs/addclub \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah pengguna baharu ke sistem
Parameter
body `string` (wajib) Objek Json data pengguna yang ingin Anda tambah/kemas kini.Titik akhir
POST /api/users
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/users \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan semua pengguna (Akaun Google Apps) yang mempunyai akses kepada sistem/api pejabat belakang
Titik akhir
GET /api/admin/users/listusers
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listusers \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan kunci MCP bagi pengguna (disunting). Pengguna boleh menyenaraikan kunci mereka sendiri.
Parameter
userId `string` (wajib)Titik akhir
GET /api/users/{userId}/mcp-keys
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta kunci API MCP baharu bagi pengguna. Pengguna boleh mencipta kunci mereka sendiri.
Parameter
userId `string` (wajib) body `object` (pilihan)Titik akhir
POST /api/users/{userId}/mcp-keys
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Batalkan/alih keluar kunci API MCP. Pengguna boleh memadam kunci mereka sendiri.
Parameter
userId `string` (wajib) keyId `string` (wajib)Titik akhir
DELETE /api/users/{userId}/mcp-keys/{keyId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Alih keluar peranan daripada pengguna
Parameter
userId `string` (pilihan) E-mel pengguna yang peranannya ingin Anda alih keluar. roleId `string` (pilihan) ID peranan yang ingin Anda alih keluar daripada pengguna.Titik akhir
DELETE /api/users/{userId}/roles/{roleId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini butiran profil pengguna sedia ada (firstName, lastName, phoneNumber)
Parameter
userId `string` (wajib) Alamat e-mel pengguna body `object` (wajib) Data profil pengguna untuk dikemas kiniTitik akhir
PATCH /api/users/{userId}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/users/{userId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Upsert peranan pengguna
Parameter
body `object` (pilihan)Titik akhir
PUT /api/users/{userId}/roles
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/users/{userId}/roles \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Live Services yang berjalan pada Ejen AI kemudahan (pemilih terbitan)
Mengambil Live Services yang dikesan oleh bridge peranti melalui terowong untuk pemilih "Publish to Performance Hub" applet. Memerlukan modul ph-ai-agent DAN akses 'open' bagi setiap peranti (syarat yang sama seperti penerbitan itu sendiri). Setiap perkhidmatan dianotasi dengan publishedAppId apabila Custom App sudah wujud untuk port tersebut.
Parameter
club `string` (wajib) device `string` (wajib)Titik akhir
GET /api/agent-apps/services/{club}/{device}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/services/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Indeks nama ikon MDI yang terbina dalam Ejen AI kemudahan (pemilih ikon)
Memproksi indeks ikon MDI terbina dalam bridge peranti (GET /__services/icons/mdi/index.json) melalui terowong. Pemilih terbitan/suntingan menggunakan katalog yang dibundel bersama applet (pin 7.4.47 yang sama); SVG published-app diselesaikan daripada pek @mdi/js tempatan portal-server. Syarat akses yang sama seperti pemilih perkhidmatan (modul ph-ai-agent + akses 'open' bagi setiap peranti).
Parameter
club `string` (wajib) device `string` (wajib)Titik akhir
GET /api/agent-apps/mdi-index/{club}/{device}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/mdi-index/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ambil sekumpulan SVG ikon MDI daripada Ejen AI kemudahan (pratonton pemilih)
Menyelesaikan sehingga 60 glif MDI bernama daripada set ikon terbina dalam peranti dalam satu panggilan, dibersihkan di sisi pelayan dengan senarai benar yang sama seperti yang digunakan pada ikon aplikasi yang disimpan. Digunakan oleh pemilih ikon untuk memaparkan hasil carian; nama yang tidak dikenali dipulangkan sebagai null.
Parameter
club `string` (wajib) device `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/mdi-icons/{club}/{device}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/mdi-icons/{club}/{device} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Skop audiens yang boleh diterbitkan oleh peminta daripada kemudahan ini
Sampul audiens yang boleh diberikan oleh penerbit untuk pemilih terbitan/suntingan: kemudahan yang dicapai oleh peranan ph-ai-agent mereka (skop berbilang kemudahan), serta sama ada mereka mempunyai kedudukan peringkat organisasi yang diperlukan untuk audiens seluruh jenama / seluruh organisasi pada jenama/organisasi kemudahan ini. Peraturan yang sama dikuatkuasakan semula di sisi pelayan semasa penerbitan/kemas kini (validatePublishAudience) — titik akhir ini hanya membentuk UI.
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-apps/audience-options/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/audience-options/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Autolengkap rakan untuk audiens aplikasi pengguna bernama
Mencari HANYA pengguna yang sudah boleh dilihat oleh peminta — orang yang peranannya bertindih sekurang-kurangnya satu kemudahan/wilayah/organisasi dalam akses ph-ai-agent peminta sendiri. Pertanyaan minimum 2 aksara dan had 10 hasil menjadikan titik akhir ini tidak berguna untuk pengikisan data; set kebolehcapaian yang sama dikuatkuasakan semula di sisi pelayan apabila audiens disimpan.
Parameter
club `string` (wajib) q `string` (wajib)Titik akhir
GET /api/agent-apps/user-search/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/user-search/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Terbitkan Live Service Ejen AI sebagai Custom App Performance Hub
Mendaftarkan aplikasi web yang dihoskan oleh Ejen AI kemudahan (Live Service yang dikesan oleh bridge) sebagai item menu sisi "Custom Apps" untuk audiens yang dipilih. Memerlukan modul ph-ai-agent di kemudahan ini DAN akses 'open' bagi setiap peranti; audiens dihadkan oleh skop peranan penerbit sendiri (Anda tidak boleh menerbitkan lebih luas daripada yang boleh Anda capai). Identiti perkhidmatan diselesaikan SECARA LANGSUNG daripada senarai /__services peranti; skema http/https tidak pernah disimpan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/publish/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/publish/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Custom Apps diterbitkan yang kelihatan di kemudahan ini
Memulangkan aplikasi diterbitkan yang aktif dan audiensnya meliputi kemudahan ini, dalam bentuk yang dipaparkan oleh menu sisi (appId, name, icon, description). Audiens diselesaikan semula secara langsung pada setiap panggilan supaya perubahan akses berkuat kuasa serta-merta.
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-apps/menu/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/menu/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Aplikasi diterbitkan yang diurus daripada kemudahan ini (paparan penerbit)
Baris aplikasi penuh bagi aplikasi yang kemudahan HOME-nya ialah kelab ini, untuk senarai urus "Published Apps" applet. Setiap baris dianotasi dengan canManage untuk pengguna yang membuat permintaan (penerbit).
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-apps/manage/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jana token penonton berskop perkhidmatan untuk Custom App yang diterbitkan
Memulangkan URL bertandatangan + token jangka pendek yang digunakan oleh pelayar untuk membuka SATU aplikasi diterbitkan secara langsung pada gateway geganti serantau peranti. Token membawa tuntutan svc yang menamakan port perkhidmatan, jadi gateway mengehadkan sesi kepada /__services/proxy/
Parameter
club `string` (wajib) appId `string` (wajib)Titik akhir
POST /api/agent-apps/access/{club}/{appId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/access/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Atribusi sokongan untuk Custom App yang diterbitkan (hubungan pemilik)
Siapa yang menyokong aplikasi terbitan pengguna ini: e-mel penerbit (atau pemilik ejen pengehos jika tiada). Dipaparkan pada panel luar talian/ralat penonton supaya permintaan sokongan dihantar kepada pemilik aplikasi dan bukannya Performance Hub — aplikasi diterbitkan bukan sebahagian daripada sokongan teras PH. Audiens aplikasi disemak semula terlebih dahulu; penonton yang tidak pernah dikongsikan aplikasi tidak mendapat sebarang maklumat. Aplikasi yang dijeda masih diselesaikan (pemilik juga menjawab soalan "mengapa aplikasi ini dijeda?").
Parameter
club `string` (wajib) appId `string` (wajib)Titik akhir
GET /api/agent-apps/support-info/{club}/{appId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/support-info/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Hantar e-mel permintaan sokongan kepada pemilik Custom App yang diterbitkan
Menghantar mesej penonton kepada hubungan sokongan aplikasi (penerbit, atau pemilik ejen jika tiada) sebagai e-mel berjenama — Kepada pemilik, CC kepada penonton (rekod permintaan mereka), Reply-To penonton supaya pemilik membalas terus kepada mereka. Aplikasi diterbitkan diselenggara oleh pengguna, jadi ini mengasingkan sokongannya daripada baris gilir Performance Hub. Audiens disemak semula; satu permintaan bagi setiap penonton bagi setiap aplikasi setiap 15 minit (tempoh bertenang Redis, gagal-buka).
Parameter
club `string` (wajib) appId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/support-request/{club}/{appId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/support-request/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemas kini Custom App yang diterbitkan (nama, ikon, perihalan, status, audiens)
Penerbit sahaja. Perubahan audiens disahkan semula berdasarkan skop peranan PENYUNTING dengan peraturan pengehadan yang sama seperti penerbitan. Status bertukar antara aktif dan dijeda (aplikasi yang dijeda hilang daripada menu dan menolak penjanaan token).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/update/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/update/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Nyahterbit Custom App (padam lembut)
Penerbit sahaja. Memadam lembut baris pendaftaran - aplikasi hilang daripada menu serta-merta dan penjanaan token penonton ditolak; sesi gateway yang telah dikeluarkan tamat apabila token luput.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/unpublish/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/unpublish/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Pindahkan pemilikan Custom App yang diterbitkan
Mencerminkan aliran tukar pemilik Ejen AI: penerbit semasa atau pemilik akaun (modul billing) boleh menyerahkan aplikasi kepada pengguna lain, yang kemudiannya akan mengurusnya. Pemilik baharu mesti mempunyai akses kemudahan di kelab asal aplikasi.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-apps/transfer-owner/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/transfer-owner/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Laporan imbasan penuh (+ semakan LLM) untuk satu versi kemahiran
Senarai dapatan lengkap untuk satu versi — penerbit dan pentadbir organisasi (semakan kelulusan) sahaja; pemasang sebaliknya melihat kiraan ringkasan pada butiran kemahiran.
Parameter
club `string` (wajib) skillId `string` (wajib) version `string` (wajib)Titik akhir
GET /api/agent-skills/scan-report/{club}/{skillId}/{version}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/scan-report/{club}/{skillId}/{version} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Serahkan versi draf kemahiran (terbitkan atau masukkan ke baris gilir kelulusan)
Memajukan versi draf mengikut tadbir urus organisasi. Apabila organisasi telah memilih semakan LLM, semakan arahan dijalankan terlebih dahulu (usaha terbaik; keputusan 'fail' menolak, keputusan 'flag' memaksa baris gilir kelulusan). Perkongsian peringkat kemudahan diterbitkan serta-merta melainkan tadbir urus memerlukan kelulusan; perkongsian pustaka organisasi (audiens jenama/organisasi) secara lalai memerlukan kelulusan. Penerbitan menetapkan latestVersion kemahiran — pemasangan dengan dasar 'auto' menerimanya pada sapuan reconcile seterusnya.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/submit/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/submit/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Pustaka kemahiran yang kelihatan di kemudahan ini (ditapis mengikut audiens)
Kemahiran aktif dengan sekurang-kurangnya satu versi diterbitkan yang audiensnya meliputi kemudahan ini (atau menamakan penonton), dianotasi dengan ringkasan versi terbitan terkini dan jejak penggunaan organisasi (kemudahan berbeza, tidak sekali-kali kiraan pemasangan mentah). Audiens diselesaikan semula secara langsung pada setiap panggilan.
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-skills/library/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/library/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Butiran kemahiran (versi, keperluan, ringkasan imbasan, penggunaan)
Butiran penuh untuk satu kemahiran pustaka: sejarah versi dengan log perubahan dan ringkasan imbasan (senarai titik akhir bagi setiap versi menggerakkan perbezaan imbasan kemas kini), keperluan yang diisytiharkan daripada manifest, asal usul penerbit dan isyarat penggunaan berdasarkan kiraan kemudahan. Audiens disemak semula — penonton yang tidak pernah dikongsikan kemahiran tidak mendapat sebarang maklumat (penerbit dan pentadbir organisasi sentiasa melihatnya).
Parameter
club `string` (wajib) skillId `string` (wajib)Titik akhir
GET /api/agent-skills/skill/{club}/{skillId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/skill/{club}/{skillId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemahiran yang diterbitkan daripada kemudahan ini (senarai urus penerbit)
Baris kemahiran penuh yang kemudahan HOME-nya ialah kelab ini, setiap satu dianotasi dengan canManage untuk pengguna yang membuat permintaan dan ringkasan versi terkininya (termasuk draf dan kelulusan belum selesai — ini ialah paparan kerja penerbit).
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-skills/manage/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pasang kemahiran pustaka pada Ejen AI kemudahan
Dikawal oleh tadbir urus: installSources organisasi mesti membenarkannya, audiens kemahiran mesti meliputi kemudahan ini (atau menamakan peminta), versi mesti telah diterbitkan dan peminta mesti melepasi peringkat whoCanInstall untuk peranti sasaran (pemilik / pengguna yang dibenarkan / pentadbir kemudahan / pentadbir organisasi — lihat tadbir urus). Menulis baris kitaran hayat pemasangan (sumber kebenaran) dan membuat push usaha terbaik serta-merta; cron reconcile menjamin penghantaran sebaik sahaja peranti boleh dicapai.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/install/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/install/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Luluskan kemas kini kemahiran yang belum selesai untuk satu pemasangan
Mengalihkan desiredVersion pemasangan ke versi terbitan terkini (langkah manual bagi dasar 'notify' dan 'pinned', dan laluan apabila tadbir urus menetapkan updatePosture 'approvalRequired'). Mengekalkan versi semasa sebagai sasaran gulung balik satu langkah dan mengosongkan sebarang pin kemas kini selepas gulung balik (skipVersion). Peringkat kebenaran whoCanInstall yang sama seperti pemasangan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/update-approve/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/update-approve/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Gulung balik kemahiran yang dipasang ke versi sebelumnya
Menetapkan desiredVersion kepada previousVersion baris pemasangan (disimpan pada setiap pertukaran versi) dan membenarkan laluan penghantaran biasa memasangnya semula. Satu langkah: versi bertukar tempat, jadi menggulung balik dua kali akan kembali ke titik permulaan. Juga mengepin kemas kini (skipVersion = versi asal sebelum gulung balik) supaya dasar auto/notify mengekalkan gulung balik — pin dikosongkan apabila versi yang benar-benar lebih baharu diterbitkan, semasa update-approve atau semasa set-policy.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/rollback/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/rollback/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Nyahpasang kemahiran daripada Ejen AI kemudahan
Menandakan baris pemasangan sebagai pending-uninstall dan menolak keadaan yang dikehendaki; baris dipadam sebaik sahaja peranti mengesahkan penyingkiran (baca balik reconcile). Peringkat kebenaran whoCanInstall yang sama seperti pemasangan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/uninstall/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/uninstall/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Tetapkan dasar kemas kini bagi setiap pemasangan untuk kemahiran pada satu peranti
auto (reconcile menggunakan versi terbitan baharu secara automatik, melainkan updatePosture organisasi memerlukan kelulusan), notify (pemilik dimaklumkan sekali bagi setiap versi baharu dan menggunakannya secara manual) atau pinned (tidak sekali-kali berubah tanpa update-approve yang jelas). Menukar dasar mengosongkan sebarang pin kemas kini selepas gulung balik (skipVersion). Peringkat kebenaran whoCanInstall yang sama seperti pemasangan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/set-policy/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/set-policy/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Pemasangan kemahiran pada Ejen AI kemudahan (tab Skills)
Baris kitaran hayat pemasangan untuk satu peranti, setiap satu dianotasi dengan medan penyenaraian kemahiran dan sama ada versi terbitan yang lebih baharu wujud. Memerlukan akses 'open' bagi setiap peranti (tab Skills terletak di dalam laci ejen).
Parameter
club `string` (wajib) device `string` (wajib)Titik akhir
GET /api/agent-skills/installs/{club}/{device}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/installs/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Versi kemahiran yang menunggu kelulusan dalam organisasi kemudahan ini
Baris gilir kelulusan pentadbir organisasi: setiap versi yang menunggu kelulusan merentas kemahiran organisasi, dengan penyenaraian kemahiran dan ringkasan imbasan/LLM. Pentadbir organisasi sahaja.
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-skills/approvals/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/approvals/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Luluskan versi kemahiran yang belum selesai (menerbitkannya)
Pentadbir organisasi sahaja. Versi menjadi diterbitkan, latestVersion kemahiran berubah dan penerbit dimaklumkan. Pemasangan dengan dasar 'auto' menerima versi tersebut pada sapuan reconcile seterusnya.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/approve/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/approve/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Tolak versi kemahiran yang belum selesai
Pentadbir organisasi sahaja. Versi menjadi ditolak dengan sebab daripada penyemak dan penerbit dimaklumkan — mereka boleh membetulkan dapatan dan menyerahkan versi baharu (versi tidak boleh diubah).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/reject/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/reject/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Tadbir urus Agent Skill yang berkuat kuasa untuk organisasi kemudahan ini
Dasar bagi setiap organisasi yang disimpan, digabungkan di atas lalai platform (organisasi tanpa baris tersimpan hanya melihat lalai). Pentadbir organisasi sahaja.
Parameter
club `string` (wajib)Titik akhir
GET /api/agent-skills/governance/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/governance/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini tadbir urus Agent Skill untuk organisasi kemudahan ini
Kemas kini separa — hanya medan yang diberikan berubah; semua yang lain mengekalkan nilai tersimpan/lalainya. Pentadbir organisasi sahaja. Penggantian bagi setiap peranti terletak pada baris pendaftaran melalui laluan konfigurasi peranti sedia ada.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/agent-skills/governance/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/governance/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan data persekitaran untuk kemudahan
Memulangkan keadaan cuaca semasa termasuk waktu matahari terbit/terbenam (melalui Open-Meteo) dan suhu dalaman kemudahan (daripada penderia duress) untuk kelab yang dinyatakan. Dicache dalam Redis selama 30 minit.
Parameter
clubId `string` (wajib) ID dalaman kelab/kemudahanTitik akhir
GET /api/clubs/{clubId}/environment
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/environment \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/mengaitkan peranti IoT generik dengan kelab.
Parameter
club `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti. body `string` (wajib) Objek Json skrin baharu untuk dikaitkan.Titik akhir
POST /api/devices/addGenericDevice/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/addGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Alih keluar dan tetapkan semula kilang skrin paparan
Mengalih keluar perkaitan kemudahan aktif skrin dan menyediakan tetapan semula kilang yang kekal. Skrin yang dimatikan akan menggunakan tetapan semula selepas ia dihidupkan dan bersambung semula, kemudian kembali ke halaman pemasangan HDMI-nya. Rekod pengebilan sejarah dikekalkan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/display-screens/reset/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/display-screens/reset/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mengaitkan pengawal pintu dengan kemudahan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/door-controllers/associate/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/associate/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mengemas kini tetapan pengawal pintu untuk kemudahan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/door-controllers/update/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/update/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Menyahtauliahkan pengawal pintu daripada kemudahan.
Parameter
club `string` (wajib)Titik akhir
POST /api/devices/door-controllers/decommission/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan konfigurasi geganti untuk pengawal pintu.
Parameter
uuid `string` (wajib)Titik akhir
GET /api/devices/door-controllers/config/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/door-controllers/config/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan metadata peranti
Parameter
uuid `string` (wajib) ID unik perantiTitik akhir
GET /api/devices/metadata/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan metadata peranti. Respons ialah baris metadata pada peringkat atas (bentuk warisan) serta `detectedType` (camera | ai-edge-processor | door-controller | ph-ai-agent | null) dan `online` (true apabila dikemas kini dalam tempoh 5 minit).
Parameter
deviceSerialNumber `string` (wajib) Nombor Siri perantiTitik akhir
GET /api/devices/metadata/serial/{serialNo}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/serial/{serialNo} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan data smart club untuk kelab.
Parameter
club_id `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti.Titik akhir
GET /api/clubs/{club_id}/smart-club-data
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club-data \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan semua peranti yang dikaitkan dengan kelab individu.
Parameter
club `string` (wajib) ID dalaman kelab yang perantinya ingin Anda senaraikan.Titik akhir
GET /api/devices/list/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan semua keluaran aplikasi (versi) untuk peranti balena kami.
Titik akhir
GET /api/devices/listReleases
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/listReleases \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengalihkan peranti ke kemudahan (kelab) baharu dan mengemas kini sistem yang berkaitan.
Parameter
club `string` (wajib) ID kemudahan sumber (kelab semasa tempat peranti berada) body `object` (wajib) Parameter pemindahanTitik akhir
POST /api/devices/move/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/move/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cuba mewujudkan sambungan ke penghala kemudahan dengan memilih peranti terbaik di dalam kelab dan menghantar arahan MQTT untuk mencipta terowong.
Parameter
facilityID `string` (wajib) ID dalaman kemudahan yang sambungan penghalanya sedang dicuba.Titik akhir
GET /api/devices/openRouterWebpage/{facilityID}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/openRouterWebpage/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Katalog Cloud Agent (zon, saiz, harga jualan langsung)
Parameter
club `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/cloud/catalog/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/catalog/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sebut harga Cloud Agent (perisian + pengehosan)
Titik akhir
POST /api/devices/ph-ai-agent/cloud/quote/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/quote/{club} \
-H "x-api-key: YOUR_API_KEY"
Lancarkan Cloud Agent (masukkan peruntukan ke baris gilir + kaitkan secara automatik)
Titik akhir
POST /api/devices/ph-ai-agent/cloud/launch/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/launch/{club} \
-H "x-api-key: YOUR_API_KEY"
Status kerja Cloud Agent
Titik akhir
GET /api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId} \
-H "x-api-key: YOUR_API_KEY"
Hapuskan Cloud Agent (VM + balena + pendaftaran)
Titik akhir
POST /api/devices/ph-ai-agent/cloud/delete/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete/{club} \
-H "x-api-key: YOUR_API_KEY"
Selesaikan pengalihan keluar Cloud Agent yang ditangguhkan (cuba semula sandaran, padam tanpa sandaran atau batalkan)
Titik akhir
POST /api/devices/ph-ai-agent/cloud/delete-decision/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete-decision/{club} \
-H "x-api-key: YOUR_API_KEY"
Senaraikan Connected Apps ejen (suite + aplikasi dengan akaun yang disambungkan)
Memulangkan keadaan Connected Apps ejen: bendera didayakan, gulungan bagi setiap suite (Google Workspace, Microsoft 365) dan katalog aplikasi pilihan dengan akaun yang disambungkan bagi setiap aplikasi (berbilang akaun — ejen boleh memegang beberapa akaun bagi setiap aplikasi, masing-masing dengan alias pilihan) yang diselesaikan daripada sesi huluan ejen.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Titik akhir
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Katalog pasaran Connected Apps penuh untuk ejen
Memulangkan setiap aplikasi yang boleh disambungkan (katalog toolkit pengesahan terurus penuh, dicache di sisi pelayan selama ~12h) dengan peringkat featured/suite dan akaun yang disambungkan oleh ejen bagi setiap aplikasi, serta gulungan bagi setiap suite dan permintaan sambungan ejen yang belum selesai — satu muatan untuk pasaran aplikasi yang boleh dicari di sisi klien.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Titik akhir
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/catalog
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/catalog \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ketepikan permintaan sambungan ejen yang belum selesai
Menandakan permintaan sambungan ejen yang belum selesai bagi sesuatu toolkit sebagai diketepikan (ia hilang daripada bahagian "Requested by your agent" dalam pasaran). Idempoten — mengetepikan permintaan yang tidak belum selesai tidak melakukan apa-apa.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/requests/dismiss
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/requests/dismiss \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dayakan atau nyahdayakan Connected Apps untuk ejen
Menyimpan suis Connected Apps ejen dan menolak pemboleh ubah peranti Balena PH_APPS_MCP_ENABLED ke peranti tersebut sahaja (usaha terbaik — bendera di sisi PH ialah kawalan muktamad pada geganti MCP).
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/enable
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/enable \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mula menyambungkan satu aplikasi kepada ejen (aliran OAuth Connect Link)
Memulakan aliran Connect Link yang dihoskan untuk satu toolkit dan memulangkan URL untuk menghantar pengguna. Alias pilihan melabelkan akaun baharu (berbilang akaun — menyambungkan aplikasi yang sudah disambungkan akan menambah akaun LAIN, sehingga 10 bagi setiap aplikasi). Berjalan melalui panggilan balik berantai yang sama seperti sambungan suite (suite satu toolkit), jadi penyelesaian kembali ke halaman applet ph-ai-agent.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Muatan persediaan sambungan untuk satu aplikasi (mod, medan kelayakan, panduan persediaan)
Segala yang diperlukan oleh dialog sambungan sebelum memulakan sambungan: cara aplikasi bersambung (oauth = aliran persetujuan yang dihoskan, credentials = borang dalam produk), medan kelayakan untuk dikumpulkan bagi mod credentials dan panduan persediaan dalam produk (ditulis untuk aplikasi keutamaan, jika tidak dijana daripada metadata medan aplikasi — tidak sekali-kali pautan ke dokumentasi luaran). Aplikasi OAuth bring-your-own juga membawa maklumat sama ada aplikasi OAuth pelanggan sudah didaftarkan untuk ejen INI (byoConfigured) dan URL ubah hala untuk didaftarkan dengan pembekal.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen. toolkit `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-info/{toolkit}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-info/{toolkit} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sambungkan aplikasi dengan kelayakan yang diberikan oleh pengguna (kunci API dsb., tanpa OAuth)
Mencipta akaun yang disambungkan untuk aplikasi mod credentials terus daripada borang dalam produk — tanpa aliran persetujuan yang dihoskan. Medan kelayakan datang daripada muatan connect-info aplikasi; setiap medan wajib mesti diberikan. Kelayakan disahkan dengan pembekal jika disokong (usaha terbaik — sesetengah aplikasi hanya menolak kunci yang salah pada panggilan alat pertama ejen). Alias pilihan melabelkan akaun baharu (berbilang akaun — menyambungkan aplikasi yang sudah disambungkan akan menambah akaun LAIN).
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-credentials
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-credentials \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Daftarkan aplikasi OAuth milik pelanggan untuk aplikasi BYO dan mulakan aliran sambungannya
Untuk aplikasi OAuth bring-your-own (Xero, Shopify, ...): mengambil ID klien dan rahsia klien aplikasi OAuth yang dicipta oleh pelanggan dengan pembekal (dibimbing oleh panduan persediaan aplikasi), mendaftarkannya untuk ejen INI (rahsia hanya disimpan dengan platform integrasi huluan — tidak sekali-kali dalam Performance Hub) dan terus memulakan aliran log masuk yang dihoskan terhadapnya. Memulangkan URL persetujuan untuk menghantar pengguna, kontrak yang sama seperti titik akhir sambungan. Menghantar semula akan menggantikan aplikasi berdaftar ejen (cth. selepas penggiliran rahsia) — akaun yang disambungkan sedia ada terus berfungsi.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-oauth-app
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-oauth-app \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mulakan sambungan suite satu klik untuk ejen (aliran Connect Link berantai)
Memulakan aliran sambungan berantai untuk keseluruhan suite (cth. google-workspace). URL yang dipulangkan membuka skrin persetujuan toolkit pertama; setiap penyelesaian melakukan 302 terus ke aliran toolkit seterusnya, dan berakhir pada halaman applet ph-ai-agent. Ahli suite yang sudah mempunyai akaun yang disambungkan DILANGKAU, jadi mencuba semula selepas kegagalan di tengah rantaian akan menyambung dengan aplikasi yang tiada dan bukannya mencipta akaun pendua. Apabila setiap ahli sudah disambungkan, keseluruhan rantaian dijalankan semula — itulah aliran "tambah akaun lain" yang jelas.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Putuskan satu akaun yang disambungkan daripada ejen
Memadam satu akaun yang disambungkan (berbilang akaun — akaun lain bagi aplikasi yang sama kekal disambungkan). Akaun disahkan sebagai milik ejen ini sebelum dipadam; apabila ia ialah akaun TERAKHIR aplikasi, toolkit dialih keluar daripada set yang disambungkan ejen (sesi dicipta semula secara malas supaya senarai alat ejen dikemas kini).
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/disconnect
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/disconnect \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Namakan semula (tukar alias) salah satu akaun yang disambungkan ejen
Menetapkan alias paparan bagi satu akaun yang disambungkan. Alias biasanya ditetapkan secara automatik selepas OAuth (daripada identiti yang log masuk); titik akhir ini menyokong penamaan semula manual dalam dialog butiran aplikasi. Alias kosong mengosongkan label. Akaun disahkan sebagai milik ejen ini sebelum kemas kini huluan.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen.Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/rename-account
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/rename-account \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Togol perkhidmatan terbina dalam Performance Hub untuk ejen
Menghidupkan atau mematikan satu perkhidmatan terbina dalam yang sentiasa aktif (Smart Search, Weather, ...) untuk ejen ini. Perkhidmatan terbina dalam tidak memerlukan sambungan atau OAuth — ia disertakan dengan setiap ejen dan aktif secara lalai; togol ini menyimpan penggantian bagi setiap ejen dan mencipta semula sesi huluan ejen serta-merta supaya set alat dikemas kini. Ambil perhatian bahawa suis "External apps" yang berasingan (laluan /enable) ialah suis mati muktamad ke atas keseluruhan pelayan MCP aplikasi — apabila ia dimatikan, perkhidmatan terbina dalam juga tidak tersedia tanpa mengira togol individunya.
Parameter
facilityId `string` (wajib) deviceId `string` (wajib) UUID balena peranti ejen. slug `string` (wajib) Slug perkhidmatan terbina dalam.Badan Permintaan
Titik akhir
PATCH /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/built-in/{slug}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/built-in/{slug} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kaitkan peranti Ejen AI dengan kemudahan
Perkaitan yang mengutamakan metadata. Mencari peranti mengikut nombor siri dalam metadata peranti langsung, memerlukan peranti berada dalam talian, kemudian mencipta baris pendaftaran secara malas, menetapkan wilayah geganti Chisel + port terowong + rahsia, mendaftarkan slot itu pada geganti dan menolak konfigurasi kemudahan + terowong ke peranti melalui Balena. Peranti baharu juga diberikan akaun perkhidmatan MCP lalai (didayakan, diskopkan kepada kemudahan ini, semua keupayaan); pemasangan semula mengekalkan sebarang pemberian MCP sedia ada. Tetapan lanjutan pilihan menggantikan nilai lalai yang ditetapkan semasa pemasangan — konfigurasi sandaran, MCP hidup/mati, sekatan akses — dan `restoreFrom` mengisi peranti baharu daripada sandaran awan peranti kemudahan lain (sumber aktif atau yang telah dinyahtauliah; memasukkan pemulihan rentas repo ke baris gilir, dipulangkan sebagai `restoreRequest` untuk tinjauan kemajuan).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/associate/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/associate/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan peranti Ejen AI untuk kemudahan
Memulangkan peranti Ejen AI kemudahan dengan status dalam talian + terowong secara langsung (digunakan oleh penukar peranti applet).
Parameter
club `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/list/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini + status dalam talian Ejen AI
Memulangkan sama ada peranti berada dalam talian, sama ada kemas kini tersedia/belum selesai dan keluaran yang ditawarkan (pin armada apabila armada dipin; keluaran berjaya tertinggi apabila armada menjejak versi terkini).
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/update-status/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Status peranti langsung + metrik Ejen AI
Memulangkan petikan pilihan untuk jalur metrik dan laci pengurusan applet: medan identiti + pendaftaran, keaktifan + sambungan, versi perisian dan metrik denyutan terkini (CPU, suhu, memori, storan bagi setiap mount, masa hidup, rangkaian). Meratakan suar metadata peranti + status kemas kini Balena; mana-mana separuh mungkin tiada semasa gangguan sementara.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/device-status/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/device-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Naratif AI untuk laporan kesihatan peranti
Memulangkan penjelasan ringkas untuk pengendali tentang isu kesihatan semasa yang diterbitkan. Fakta dan langkah buku panduan sentiasa ada dalam device-status; perenggan tambahan ini adalah usaha terbaik dan mungkin null.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
POST /api/devices/ph-ai-agent/health/{club}/{uuid}/explain
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/health/{club}/{uuid}/explain \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jana token akses terus-ke-geganti untuk Ejen AI
Memulangkan URL bertandatangan jangka pendek yang digunakan oleh pelayar untuk bersambung TERUS ke gateway geganti serantau peranti (memintas lompatan global PH/Sydney), serta token HS256. PH kekal sebagai pihak berkuasa (Google SSO + semakan modul/kemudahan di sini); relay-gateway mengesahkan token. Proksi /ai-agent-ui kekal sebagai sandaran.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/access/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Hantar mesej sembang ke dalam sesi Ejen AI (balasan sebaris pemberitahuan)
Geganti di sisi pelayan yang digunakan oleh tindakan balasan sebaris pemberitahuan web push - service worker melakukan POST ke sini (asal yang sama, kuki SSO) supaya balasan berfungsi tanpa tab Performance Hub dibuka. PH menyelesaikan sasaran geganti peranti (carian yang sama seperti proksi /ai-agent-ui), menetapkan x-ph-user untuk atribusi giliran (push penyelesaian yang terhasil dihantar semula kepada pengguna ini) dan memajukan ke /api/chat/start peranti dengan ID sesi.
Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/reply
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/reply \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Baca tetapan kawalan akses Ejen AI (pemilik)
Memulangkan blok akses peranti (mod, senarai benar, keterlihatan, togol PH Support) serta sebarang permintaan akses yang belum selesai. Boleh dibaca oleh pemilik peranti; pengguna lain menerima 403.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/access-settings/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-settings/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini tetapan kawalan akses Ejen AI (pemilik)
Penulisan mod (org/restricted), senarai benar terhad, keterlihatan senarai (all/admins) dan togol "permit access from Performance Hub Support". Dibenarkan untuk pemilik peranti. Pemilik itu sendiri hanya boleh ditukar melalui reallocate-owner. Permintaan akses yang diluluskan adalah kekal — peminta yang masih diluluskan digabungkan semula ke dalam senarai benar yang disimpan; mengalih keluar seseorang daripada senarai yang dihantar akan membatalkan kelulusannya (permintaan bertukar kepada ditolak; mereka boleh memohon semula).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/access-settings/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-settings/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Tetapkan semula pemilik Ejen AI
Menetapkan semula pemilikan peranti kepada pengguna Performance Hub lain. Terhad kepada pemilik akaun (akses modul pengebilan SaaS) — jalan keluar apabila pemilik ejen terhad meninggalkan organisasi. Kedua-dua pemilik terdahulu dan pemilik baharu dimaklumkan (dalam aplikasi + push + e-mel).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/reallocate-owner/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/reallocate-owner/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senarai pengguna kemudahan untuk pemilih senarai benar / pemilik Ejen AI
Memulangkan e-mel + nama (+ bendera isOrgAdmin) bagi setiap pengguna yang peranannya memberi mereka akses kepada kemudahan INI. Terhad kepada pemilik peranti dan pihak yang boleh menetapkan semula pemilik (pemilik akaun) supaya pengguna biasa tidak dapat menyenaraikan pangkalan pengguna.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/org-users/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/org-users/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mohon akses kepada Ejen AI yang terhad
Mencipta (atau membuka semula) permintaan akses peminta bagi peranti terhad — idempoten bagi setiap pengguna+peranti. Pemilik dimaklumkan melalui dalam aplikasi, web push dan e-mel dengan pautan dalam ke modul ejen.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/access-request/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-request/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Luluskan atau tolak permintaan akses Ejen AI (pemilik)
Penyelesaian permintaan yang belum selesai oleh pemilik peranti. Kelulusan menambah peminta ke senarai benar peranti; kedua-dua keputusan memaklumkan peminta (dalam aplikasi + push + e-mel).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/access-request-resolve/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-request-resolve/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Benarkan + gunakan kemas kini Ejen AI
Mengepin peranti kepada keluaran yang ditawarkan (pin armada, atau keluaran berjaya tertinggi apabila armada menjejak versi terkini) dan melepaskan kunci kemas kini supaya penyelia balena menggunakannya. Keadaan pada volum data peranti kekal selepas kemas kini.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/update/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Jadualkan kemas kini Ejen AI untuk kemudian
Menyimpan masa pemasangan yang dijadualkan pada pendaftaran peranti. Kerja bahagian belakang berulang (setiap 5 minit) menggunakan kemas kini (pin + buka kunci) sebaik sahaja masa yang dijadualkan berlalu. Penjadualan menggantikan sebarang jadual sedia ada untuk peranti.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/update-schedule/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-schedule/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Batalkan kemas kini Ejen AI yang dijadualkan
Mengosongkan pemasangan berjadual yang belum selesai untuk peranti (tiada tindakan apabila tiada apa-apa yang dijadualkan).
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
DELETE /api/devices/ph-ai-agent/update-schedule/{club}/{uuid}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-schedule/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jalankan arahan jauh pada peranti Ejen AI
Menerbitkan arahan MQTT dalam senarai benar (but semula, mulakan semula bekas, kunci/buka kunci kemas kini, pengurusan Wi-Fi) ke device-controller yang berjalan pada Ejen AI. Peranti mesti dikaitkan dengan kemudahan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/command/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/command/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemas kini konfigurasi Ejen AI yang berkaitan dengan kemudahan
Menyimpan tetapan yang boleh diedit oleh pengendali untuk Ejen AI yang berkaitan: nama peranti, lokasi fizikal peranti dan kekerapan but semula berjadual. Jadual but semula juga ditolak ke peranti sebagai pemboleh ubah persekitaran Balena REBOOT_DEVICE (2 pagi waktu tempatan), sama seperti tingkah laku Display Screens.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/config/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/config/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemudahan yang boleh menjadi destinasi pemindahan Ejen AI di kemudahan ini
Mengembalikan kemudahan dalam organisasi yang sama yang boleh diakses oleh pengguna yang log masuk (tidak termasuk kemudahan semasa), untuk pemilih "Pindah ke kemudahan lain". Pemindahan itu sendiri dilakukan oleh POST /api/devices/move/:club, yang menguatkuasakan peraturan organisasi yang sama dan akses sasaran yang sama di bahagian pelayan.
Parameter
club `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/move-targets/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/move-targets/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Had akses MCP yang boleh diberikan oleh peminta untuk Ejen AI sesebuah kemudahan
Mengembalikan perkara yang dibenarkan untuk diberikan oleh pengguna yang log masuk kepada akaun perkhidmatan MCP Ejen AI dalam organisasi kemudahan ini: kemudahan/kawasan dalam akses mereka sendiri, sama ada mereka boleh memberikan skop seluruh organisasi, set modul yang mereka pegang dan katalog alat MCP penuh (untuk topeng lanjutan bagi setiap alat). UI menggunakannya supaya pengguna hanya melihat pilihan dalam had kebenaran mereka sendiri; titik akhir POST mcp-access menguatkuasakan pengehadan yang sama di bahagian pelayan.
Parameter
club `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/mcp-grantable/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-grantable/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan konfigurasi akaun perkhidmatan MCP Ejen AI
Mengembalikan konfigurasi akses MCP peranti (skop, modul, topeng alat, medan audit).
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/mcp-access/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-access/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Konfigurasikan akaun perkhidmatan MCP Ejen AI
Menyimpan konfigurasi akses MCP peranti dengan pengehadan semasa pemberian. Peminta hanya boleh memberikan kemudahan/kawasan dalam akses mereka sendiri, skop organisasi hanya apabila mereka memegang peranan seluruh organisasi, dan modul yang mereka sendiri pegang dalam organisasi kemudahan tersebut. Bendera enabled juga ditolak ke peranti sebagai pemboleh ubah persekitaran Balena PH_MCP_ENABLED.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/mcp-access/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-access/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan konfigurasi VPN Ejen AI (disunting)
Mengembalikan bendera sokongan VPN dan senarai sambungan peranti. Kandungan profil dan nilai bukti kelayakan tidak pernah dikembalikan — hanya metadata semasa import (remotes, laluan, DNS) dan bendera has-credential. Keadaan langsung setiap sambungan datang daripada titik akhir device-status (beacon metadata.vpn).
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Togol sokongan VPN Ejen AI
Menghidupkan/mematikan ciri VPN peranti. Menolak pemboleh ubah peranti balena PH_VPN_ENABLED dan memberi isyarat kepada peranti (MQTT vpnConfigChanged); sambungan dikekalkan apabila dimatikan (terowong berhenti; konfigurasi kekal untuk didayakan semula).
Parameter
club `string` (wajib) uuid `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Import profil OpenVPN ke Ejen AI
Menerima muat naik berkod base64 — satu fail .ovpn/.conf, himpunan fail berpecah (konfigurasi + sijil/kunci) dan arkib (.zip, eksport Pritunl .tar/.tgz, Tunnelblick .tblk, Viscosity .visc/.visz). Profil dinormalkan kepada bentuk sebaris kanonik; setiap profil menjadi satu sambungan (diimport dalam keadaan terputus — masukkan bukti kelayakan, kemudian sambungkan). Ralat 400 yang boleh diambil tindakan untuk muat naik yang tidak boleh digunakan.
Parameter
club `string` (wajib) uuid `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/vpn-import/{club}/{uuid}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-import/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemas kini sambungan VPN Ejen AI (nama / bukti kelayakan / split-DNS)
Mengemas kini sambungan yang disimpan. Medan bukti kelayakan hanya boleh ditulis (diabaikan = kekalkan nilai yang disimpan; rentetan kosong = kosongkan). Perubahan bukti kelayakan/split-DNS menaikkan semakan sambungan supaya terowong yang aktif dimulakan semula dengan nilai baharu.
Parameter
club `string` (wajib) uuid `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-connection/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam sambungan VPN Ejen AI
Mengeluarkan sambungan daripada pendaftaran dan memberi isyarat kepada peranti, yang akan menutup terowong dan membuang profil/bukti kelayakan yang dicache.
Parameter
club `string` (wajib) uuid `string` (wajib) connectionId `string` (wajib)Titik akhir
DELETE /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}/{connectionId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}/{connectionId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sambung / putuskan sambungan VPN Ejen AI
Model keadaan yang dikehendaki — menetapkan bendera enabled sambungan pada pendaftaran dan memberi isyarat kepada peranti (MQTT vpnConfigChanged tanpa muatan); peranti menarik keadaan berautoriti melalui panggilan universal-api yang disahkan dengan JWT dan menyelaraskan terowongnya. Isyarat yang terlepas akan diselaraskan pada penyegerakan berkala.
Parameter
club `string` (wajib) uuid `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/vpn-command/{club}/{uuid}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-command/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan konfigurasi + status sandaran awan Ejen AI
Mengembalikan tetapan sandaran peranti (enabled, tempoh simpanan, kawasan storan), status sandaran berterusan (sandaran terakhir, saiz, ralat), kawasan automatik yang ditentukan dan kawasan storan yang tersedia untuk pemilih. Kata laluan repo restic tidak pernah dikembalikan.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-config/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini konfigurasi sandaran awan Ejen AI
Menyimpan enabled/tempoh simpanan/kawasan. Berkuat kuasa pada detik sandaran setiap jam peranti yang seterusnya (peranti meminta konteks larian daripada PH sebelum setiap larian), jadi peranti tidak perlu dimulakan semula.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/backup-config/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-config/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan sumber pemulihan sandaran untuk memasangkan Ejen AI baharu
Paparan seluruh kemudahan untuk pilihan "pulihkan daripada sandaran" dalam dialog tambah ejen: setiap pendaftaran dalam kemudahan — aktif DAN dinyahtauliah/diganti — yang masih mempunyai repo sandaran yang boleh dinyahsulit dan sekurang-kurangnya satu titik pemulihan yang boleh digunakan, bersama syot kilat terbaharunya. Juga mengembalikan senarai pilihan konfigurasi sandaran (allowedRetentionDays, availableRegions) supaya dialog tidak memerlukan UUID peranti untuk mengisi pilihannya.
Parameter
club `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-sources/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-sources/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan titik pemulihan sandaran Ejen AI
Mengembalikan indeks syot kilat peranti (terbaharu dahulu) daripada DynamoDB — tanpa perjalanan pergi balik ke peranti atau repo — serta keadaan permintaan sandaran manual / pemulihan semasa untuk tinjauan laci. Permintaan lapuk (tidak pernah diambil, atau tiada denyutan kemajuan) dipaparkan sebagai gagal supaya UI sentiasa boleh menghantar permintaan baharu.
Parameter
club `string` (wajib) uuid `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Minta sandaran manual Ejen AI sekarang
Menulis permintaan larian manual (bersama nota pengguna) pada baris pendaftaran dan memberi isyarat kepada peranti melalui MQTT. Peranti mengambil permintaan yang disahkan melalui panggilan konteks larian universal-api yang disahkan dengan JWT — walaupun tanpa MQTT, ia diambil pada detik penjadual yang seterusnya. Ditolak semasa sandaran atau pemulihan lain sedang berjalan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/backup-run/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-run/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Sematkan atau nyahsemat titik pemulihan Ejen AI
Titik pemulihan yang disematkan dilindungi daripada pemangkasan tempoh simpanan — penyelenggaraan malam peranti menerima ID syot kilat yang disematkan melalui panggilan konteks lariannya dan mengecualikannya daripada restic forget — dan baris indeksnya tidak pernah tamat tempoh TTL. Menyahsemat memulihkan tingkah laku tempoh simpanan biasa.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/backup-pin/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-pin/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Pulihkan Ejen AI daripada titik pemulihan sandaran
Menulis permintaan pemulihan pada baris pendaftaran dan memberi isyarat kepada peranti. Pemulihan penuh menulis ganti /data dan /home/hermeswebui (peranti terlebih dahulu mengambil syot kilat keselamatan pra-pemulihan automatik dan menghentikan ejen semasa pemulihan) dan memerlukan nama peranti ditaip sebagai pengesahan. Menghantar `paths` melakukan pemulihan peringkat fail yang tidak mengganggu bagi laluan tersebut sahaja. Secara pilihan, menyematkan semula peranti kepada keluaran perisian syot kilat setelah pemulihan data selesai (lihat backup-restore-release).
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/backup-restore/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-restore/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Gunakan keluaran perisian yang direkodkan pada pemulihan yang selesai
Langkah terakhir pemulihan yang meminta versi perisian syot kilat: setelah peranti melaporkan pemulihan data selesai, ini menyematkan peranti kepada keluaran yang disimpan dan membuka kunci kemas kini (mekanisme yang sama seperti titik akhir kemas kini). Dipacu oleh tinjauan laci; idempoten — sematan yang disimpan dikosongkan setelah digunakan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/backup-restore-release/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-restore-release/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Semak imbas fail dalam titik pemulihan sandaran
Menyenaraikan satu peringkat direktori syot kilat restic, disediakan sepenuhnya di bahagian pelayan daripada repo Wasabi (berfungsi walaupun peranti di luar talian). Hanya metadata pepohon dibaca — tiada data fail dimuat turun untuk penyenaraian.
Parameter
club `string` (wajib) uuid `string` (wajib) takenAt `number` (wajib) path `string` (pilihan)Titik akhir
GET /api/devices/ph-ai-agent/backup-files/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-files/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari nama fail dalam titik pemulihan sandaran
Carian nama fail tidak sensitif huruf besar/kecil dari satu direktori ke bawah, disediakan di bahagian pelayan daripada metadata pepohon restic (tiada data fail dibaca; berfungsi walaupun peranti di luar talian). Menstrim penyenaraian dan berhenti pada 200 padanan pertama.
Parameter
club `string` (wajib) uuid `string` (wajib) takenAt `number` (wajib) q `string` (wajib) path `string` (pilihan)Titik akhir
GET /api/devices/ph-ai-agent/backup-search/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-search/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Perubahan antara dua titik pemulihan sandaran
Menjalankan restic diff di bahagian pelayan antara dua syot kilat peranti (metadata pepohon sahaja) dan mengembalikan senarai fail yang ditambah/dikeluarkan/diubah suai (dihadkan kepada 500 perubahan) serta statistik ringkasan. Hasil dicache — syot kilat tidak boleh diubah.
Parameter
club `string` (wajib) uuid `string` (wajib) fromTakenAt `number` (wajib) toTakenAt `number` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-diff/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-diff/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sejarah versi satu fail merentas semua titik pemulihan
Satu restic find di bahagian pelayan merentas setiap syot kilat dalam repo peranti, diringkaskan kepada versi BERBEZA (padanan berturut-turut dengan saiz+mtime yang sama digabungkan) dan dicantumkan dengan baris indeks syot kilat untuk tarikh/jenis/nota.
Parameter
club `string` (wajib) uuid `string` (wajib) path `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-file-versions/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-file-versions/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari setiap titik pemulihan sandaran peranti mengikut nama fail
Laluan pemulihan fail yang dipadam: satu restic find di bahagian pelayan merentas SEMUA syot kilat dalam repo (tidak sensitif huruf besar/kecil, subrentetan atau glob), dikumpulkan mengikut laluan bersama titik pemulihan tempat setiap fail muncul. Fail yang dipadam daripada peranti masih boleh ditemui di sini selagi mana-mana titik pemulihan mengandunginya.
Parameter
club `string` (wajib) uuid `string` (wajib) q `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-find/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-find/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Muat turun satu fail daripada titik pemulihan sandaran
Menstrim satu fail terus daripada repo restic ke pelayar (lampiran). Direktori distrim sebagai arkib tar. Saiz dihadkan; disediakan di bahagian pelayan, jadi ia berfungsi walaupun peranti di luar talian.
Parameter
club `string` (wajib) uuid `string` (wajib) takenAt `number` (wajib) path `string` (wajib)Titik akhir
GET /api/devices/ph-ai-agent/backup-file-download/{club}/{uuid}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-file-download/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Nyahtauliah Ejen AI daripada kemudahan
Parameter
club `string` (wajib)Titik akhir
POST /api/devices/ph-ai-agent/decommission/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Keluarkan Ejen AI daripada kemudahan dan tetapkan semula perkakasan kepada tetapan kilang
Memutuskan sepenuhnya perkaitan peranti supaya ia boleh dipasangkan di MANA-MANA kemudahan, dan memadam semua data pada NUC. Pemadaman disediakan melalui pemboleh ubah peranti balena PH_FACTORY_RESET (nonce sekali guna) SEBELUM peleraian awan, jadi ia kekal walaupun peranti di luar talian semasa dikeluarkan — pemadaman berjalan apabila peranti bersambung semula. Isyarat MQTT factoryReset menjadikan kes dalam talian serta-merta. Peleraian awan kemudian membatalkan setiap bukti kelayakan dan pemberian akses, mengosongkan pengikatan kemudahan Balena (pemboleh ubah peranti + tag kelab) dan clubID metadata, memadam permintaan akses dan rekod DNS LAN. Sandaran awan DIKEKALKAN: indeks syot kilat dan kata laluan repo kekal pada pendaftaran yang dipadam lembut, dan boleh digunakan sebagai sumber pemulihan apabila menambah pengganti. Memerlukan nama peranti ditaip sebagai pengesahan.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/reset/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/reset/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Gantikan Ejen AI yang rosak dengan NUC baharu (pemulihan bencana)
Penggantian peranti sekali jalan: mengaitkan NUC pengganti (slot terowong, rahsia, pemboleh ubah balena, benih sandaran), membawa nama, lokasi, jadual but semula, tetapan sandaran, sekatan akses dan pemberian MCP peranti lama, menukar kunci indeks syot kilat lama kepada peranti baharu (supaya sejarah sandaran penuhnya kekal boleh disemak imbas), menyahtauliah pendaftaran lama (ditanda replacedBy / replacedFrom), dan — kecuali `restore` ialah false — menjadualkan pemulihan penuh titik pemulihan yang dipilih daripada repo sandaran peranti LAMA ke perkakasan baharu. Berfungsi walaupun peranti lama rosak/di luar talian; memerlukan nama peranti lama ditaip sebagai pengesahan. Kemudahan yang sama sahaja.
Parameter
club `string` (wajib)Badan Permintaan
Titik akhir
POST /api/devices/ph-ai-agent/replace/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/replace/{club} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Menukar pautan pendek QR peranti Performance Hub kepada pautan dalam yang ditujunya, supaya pengimbas Tambah Peranti dapat mengesan jenis peranti. Hanya hos performancehub.co diikuti.
Parameter
url `string` (wajib) Pautan pendek yang diimbasTitik akhir
GET /api/devices/resolve-qr
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/resolve-qr \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menguji ketersambungan ke Unifi Controller kemudahan dan sama ada bukti kelayakan adalah betul.
Parameter
facilityID `string` (wajib) ID dalaman kemudahan yang ingin anda uji ketersambungan UnifinyaTitik akhir
GET /api/devices/testUnifiController/{facilityID}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/devices/testUnifiController/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini peranti IoT generik dengan kemudahan.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
PUT /api/devices/updateGenericDevice/{club}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/devices/updateGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan bilangan perjanjian yang tertunggak dan memerlukan tindakan berdasarkan pengguna dan kelab yang dikaitkan dengannya
Titik akhir
GET /api/agreements/agreements-outstanding
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agreements/agreements-outstanding \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan semua perjanjian yang tersedia untuk kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. contracts-sort `string` (pilihan) Isih perjanjian mengikut tarikh berkuat kuasa atau abjad. Lalai: tarikh berkuat kuasa. contracts-acknowledgement `string` (pilihan) Tapis perjanjian mengikut semua, diakui atau tidak diakui. Lalai: semua. contracts-requirement `string` (pilihan) Tapis perjanjian mengikut semua, tandatangan, kotak semak, pop timbul atau tiada. Lalai: semua. contracts-status `string` (pilihan) Tapis perjanjian mengikut semua, aktif atau diarkibkan. Lalai: semua.Titik akhir
GET /api/agreements/list-agreements/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/agreements/list-agreements/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menandatangani perjanjian berdasarkan ID-nya.
Parameter
club `string` (wajib) ID dalaman kelab yang menandatangani perjanjian. agreementid `string` (wajib) ID perjanjian yang sedang ditandatangani. body `string` (wajib) Objek Json yang mengandungi perjanjian dan parameter untuk ditambah/dimuat naik ke sistem ...Titik akhir
POST /api/agreements/sign/{club}/{agreementid}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/agreements/sign/{club}/{agreementid} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ringkasan Model Router kemudahan (konfigurasi, baki, perbelanjaan).
Parameter
clubID `string` (wajib) tz `string` (pilihan) Zon waktu IANA penonton — sandaran untuk tetingkap perbelanjaan harian/bulanan apabila kemudahan tidak mempunyai data zon waktu.Titik akhir
GET /api/clubs/{clubID}/ai-credits/overview
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/overview \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Katalog model yang tersedia dengan keadaan didayakan bagi setiap kemudahan (lalai: semua didayakan).
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/models
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/models \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Guardrails yang tersedia dan templat pratetap PH.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/guardrails
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/guardrails \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Perkhidmatan Model Router yang disambungkan. Termasuk peranti Ejen AI yang dipasangkan, ejen luaran yang dijeniskan secara jelas dan perkhidmatan Workflow kemudahan. Konfigurasi disunting melalui PATCH /keys/{keyHash}.
Parameter
clubID `string` (wajib) tz `string` (pilihan) Zon waktu IANA penonton — sandaran untuk tetingkap perbelanjaan harian/bulanan apabila kemudahan tidak mempunyai data zon waktu.Titik akhir
GET /api/clubs/{clubID}/ai-credits/agents
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/agents \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan Model Router untuk kemudahan dan peruntukkan akses inferensnya.
Parameter
clubID `string` (wajib)Titik akhir
POST /api/clubs/{clubID}/ai-credits/enable
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/enable \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini pelan, senarai benar model, guardrails, penapis kandungan (redact/block regex di sisi PH), had perbelanjaan dan konfigurasi caj semula automatik.
Parameter
clubID `string` (wajib)Titik akhir
PATCH /api/clubs/{clubID}/ai-credits/config
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/config \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tetapkan semula pembilang had keras sepanjang hayat kepada 0 (garis dasar semula kepada perbelanjaan semasa) dan log tempoh yang ditutup ke sejarah.
Parameter
clubID `string` (wajib)Titik akhir
POST /api/clubs/{clubID}/ai-credits/spend-limit/reset-total
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/reset-total \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sejarah penetapan semula had keras (terbaharu dahulu) — had, perbelanjaan dan cap masa bagi setiap tempoh yang ditutup.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/spend-limit/history
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/history \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta kunci API phk_ baharu untuk kemudahan (teks biasa dipulangkan sekali sahaja). Menerima had perbelanjaan, senarai benar model, guardrails, penapis kandungan dan had kadar rpmLimit/tpmLimit secara pilihan.
Parameter
clubID `string` (wajib)Titik akhir
POST /api/clubs/{clubID}/ai-credits/keys
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys \
-H "x-api-key: YOUR_API_KEY"
Kemas kini medan kunci yang boleh disunting: label, had perbelanjaan bagi setiap kunci, senarai benar model, guardrails, penapis kandungan dan had kadar rpmLimit/tpmLimit (disegerakkan ke kunci).
Parameter
clubID `string` (wajib) keyHash `string` (wajib)Titik akhir
PATCH /api/clubs/{clubID}/ai-credits/keys/{keyHash}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys/{keyHash} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Log inferens bagi setiap permintaan untuk kemudahan (langsung, metadata sahaja).
Parameter
clubID `string` (wajib) page `string` (pilihan) pageSize `string` (pilihan) status `string` (pilihan) model `string` (pilihan) provider `string` (pilihan) source `string` (pilihan) `key` atau `agent` keyHash `string` (pilihan) Tapis kepada satu kunci/ejen mengikut keyHash PH-nya. q `string` (pilihan) Carian teks bebas merentas ID permintaan, label kunci/ejen, model, pembekal dan pengguna akhir. minutes `string` (pilihan) Tetingkap kurang daripada sehari (cth. Live=1440); menggantikan startDate/endDate. startTs `string` (pilihan) Permulaan tetingkap dalam saat epoch (klik untuk zum); menggantikan minit/tarikh. endTs `string` (pilihan) Penghujung tetingkap dalam saat epoch (klik untuk zum); menggantikan minit/tarikh.Titik akhir
GET /api/clubs/{clubID}/ai-credits/logs
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Histogram permintaan mengikut masa untuk paparan Logs. Penapis yang sama seperti laluan senarai, tetapi diagregatkan di sisi pelayan ke dalam baldi masa (kiraan berjaya/gagal) supaya respons sangat kecil tanpa mengira jumlah log. Saiz baldi dipilih secara automatik mengikut tempoh.
Parameter
clubID `string` (wajib) status `string` (pilihan) model `string` (pilihan) provider `string` (pilihan) source `string` (pilihan) keyHash `string` (pilihan) q `string` (pilihan) minutes `string` (pilihan) startDate `string` (pilihan) endDate `string` (pilihan) startTs `string` (pilihan) endTs `string` (pilihan)Titik akhir
GET /api/clubs/{clubID}/ai-credits/logs/histogram
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs/histogram \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Baldi analitik penggunaan + jumlah bagi setiap model untuk satu julat (langsung).
Parameter
clubID `string` (wajib) range `string` (pilihan) 24h | 7 | 30 | 90 | year | all (diabaikan jika startDate/endDate diberikan) startDate `string` (pilihan) endDate `string` (pilihan) groupBy `string` (pilihan) model (lalai) | key | source | provider | status — dimensi untuk baldi + kumpulan subgroupBy `string` (pilihan) dimensi kedua pilihan yang bersarang di bawah setiap kumpulan (Explore) keyHash `string` (pilihan) penapis terperinci — skop kepada satu kunci/ejen model `string` (pilihan) penapis terperinci — skop kepada satu model provider `string` (pilihan) source `string` (pilihan) compare `string` (pilihan) tetapkan kepada "prev" untuk turut memulangkan groupsPrev (tempoh sama panjang yang sejurus sebelumnya)Titik akhir
GET /api/clubs/{clubID}/ai-credits/stats
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/stats \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kalendar aktiviti harian sepanjang setahun terakhir secara bergolek (gaya GitHub, ~53 minggu).
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/activity
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/activity \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Caj kad pengebilan SaaS yang disimpan untuk menambah kredit prabayar Model Router.
Parameter
clubID `string` (wajib) body `object` (pilihan)Titik akhir
POST /api/clubs/{clubID}/ai-credits/topup
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Muktamadkan tambah nilai selepas applet melengkapkan pengesahan 3DS.
Parameter
clubID `string` (wajib)Titik akhir
POST /api/clubs/{clubID}/ai-credits/topup/confirm
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ringkasan kad pengebilan SaaS yang disimpan yang akan dicaj untuk tambah nilai / tambah nilai automatik.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/payment-method
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/payment-method \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Transaksi lejar untuk kemudahan, terbaharu dahulu. Boleh ditapis mengikut jenis secara pilihan (cth. `types=topup,adjustment` untuk sejarah pergerakan wang, atau `types=charge-reconcile` dengan `from`/`to` untuk potongan penggunaan sebulan).
Parameter
clubID `string` (wajib) limit `integer` (pilihan) Baris maksimum (lalai 50, maks 200) types `string` (pilihan) Jenis transaksi yang dipisahkan dengan koma (topup, charge-reconcile, refund, adjustment, trueup-shortfall) from `integer` (pilihan) Hanya transaksi dengan createdAt >= from (saat unix) to `integer` (pilihan) Hanya transaksi dengan createdAt <= to (saat unix)Titik akhir
GET /api/clubs/{clubID}/ai-credits/transactions
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Bulan `YYYY-MM` yang berbeza (UTC, terbaharu dahulu) yang mengandungi sekurang-kurangnya satu transaksi daripada jenis yang diminta. Menggerakkan senarai juntai bawah penapis tahun/bulan berasaskan data supaya UI hanya menawarkan tempoh yang benar-benar mempunyai data.
Parameter
clubID `string` (wajib) types `string` (pilihan) Jenis transaksi yang dipisahkan dengan koma (topup, charge-reconcile, refund, adjustment, trueup-shortfall)Titik akhir
GET /api/clubs/{clubID}/ai-credits/transactions/available-periods
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/available-periods \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Resit pembayaran PDF berjenama untuk satu transaksi Model Router.
Parameter
clubID `string` (wajib) txId `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Himpunan resit pembayaran PDF berjenama untuk transaksi tambah nilai yang dipilih, sebagai ZIP. Setiap ID mesti merupakan tambah nilai milik kemudahan — potongan penggunaan dan pelarasan pentadbir tidak mempunyai resit dan akan ditolak.
Parameter
clubID `string` (wajib) ids `string` (wajib) ID transaksi yang dipisahkan dengan koma (maks 50)Titik akhir
GET /api/clubs/{clubID}/ai-credits/transactions/receipts.zip
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Gulungan bagi setiap bulan kalendar (UTC) untuk potongan penggunaan kemudahan, terbaharu dahulu. Bulan semasa sentiasa disertakan dan ditandakan `isCurrentMonth` (bulan hingga kini).
Parameter
clubID `string` (wajib) months `integer` (pilihan) Tetingkap imbas kembali dalam bulan (lalai 12, maks 24; diabaikan apabila `year` ditetapkan) year `integer` (pilihan) Skopkan gulungan kepada satu tahun kalendar UTC (cth. 2026)Titik akhir
GET /api/clubs/{clubID}/ai-credits/usage-statements
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
PDF Penyata Penggunaan bulanan berjenama — ringkasan potongan penggunaan bulan tersebut (subjumlah harian + jumlah). Secara jelas bukan invois atau resit; tiada bayaran dikutip melalui potongan penggunaan.
Parameter
clubID `string` (wajib) month `string` (wajib) Bulan kalendar UTC, `YYYY-MM`Titik akhir
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/statement.pdf
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements/{month}/statement.pdf \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Item baris potongan penggunaan mentah untuk sebulan sebagai CSV (ID transaksi, cap masa UTC, amaun, baki selepas, petikan perbelanjaan sepanjang hayat) — eksport terperinci yang sepadan dengan jumlah penyata bulan tersebut.
Parameter
clubID `string` (wajib) month `string` (wajib) Bulan kalendar UTC, `YYYY-MM`Titik akhir
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/detail.csv
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements/{month}/detail.csv \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ringkasan penggunaan/perbelanjaan untuk kemudahan (langsung serta lejar yang telah disesuaikan).
Parameter
clubID `string` (wajib) tz `string` (pilihan) Zon waktu IANA penonton — sandaran untuk tetingkap perbelanjaan harian/bulanan apabila kemudahan tidak mempunyai data zon waktu.Titik akhir
GET /api/clubs/{clubID}/ai-credits/usage
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengaitkan/Mengemas kini peranti AI Edge Processor kepada kelab
Parameter
body `string` (wajib) Objek JSON untuk mengemas kini pendaftaran Peranti AI Edge Processor.Titik akhir
POST /api/ai-edge-processor/devices
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengaitkan peranti AI Edge Processor kepada kelab. Menyelesaikan peranti dengan mengutamakan metadata (denyutan langsung diutamakan), mengisi semula baris pendaftaran jika peranti tidak pernah mendaftar sendiri dan membersihkan baris pendaftaran lapuk yang ditinggalkan oleh perkakasan yang diperuntukkan semula.
Parameter
body `string` (wajib) Objek JSON untuk mengemas kini pendaftaran Peranti AI Edge Processor.Titik akhir
POST /api/ai-edge-processor/devices/associate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai rekod muat naik bbox dalam kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/bbox-timeline/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bbox-timeline/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Indeks carian pangkalan data kamera
Memproksi indeks carian camera-db dokumentasi awam (pengeluar, siri, model, alias) yang digunakan oleh dialog Find my camera semasa menambah kamera rangkaian. Dicache di sisi pelayan selama 12 jam.
Titik akhir
GET /api/cctv/camera-db/search-index
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/search-index \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Templat pengeluar pangkalan data kamera
Memproksi templat URL RTSP dan nilai lalai bagi satu pengeluar daripada pangkalan data kamera dokumentasi awam. Slug disahkan untuk mengelakkan traversal laluan. Dicache di sisi pelayan selama 12 jam.
Parameter
slug `string` (wajib) Slug pengeluar (cth. hikvision)Titik akhir
GET /api/cctv/camera-db/manufacturers/{slug}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/manufacturers/{slug} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data daftar masuk untuk kemudahan
Parameter
club `string` (wajib) ID dalaman kelab/kemudahan yang ingin Anda akses. startDate `string` (pilihan) Tarikh mula dalam format YYYY-MM-DD endDate `string` (pilihan) Tarikh tamat dalam format YYYY-MM-DD timezone `string` (pilihan) Zon waktu untuk tafsiran tarikh (lalai Australia/Brisbane) nextToken `string` (pilihan) Token penomboran halaman untuk mengambil halaman seterusnyaTitik akhir
GET /api/cctv/check-ins/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/check-ins/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan konfigurasi untuk Bahagian Hadapan atau UI CCTV
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/config/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan konfigurasi penghantaran kandungan CCTV
Memulangkan domain kandungan yang digunakan oleh klien CCTV untuk menyelesaikan aset media. Domain ditentukan oleh pemboleh ubah persekitaran CONTENT_DOMAIN, dengan sandaran kepada nilai lalai mengikut peringkat (pengeluaran menyajikan /cctv, peringkat lain menyajikan /cctv-stg).
Titik akhir
GET /api/cctv/content-config
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/content-config \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ubah konfigurasi untuk Bahagian Hadapan atau UI CCTV
Parameter
body `object` (wajib) Objek Json blok konfigurasi baharu untuk ditambah ke sistem.Titik akhir
PUT /api/cctv/config/:club/:section
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai ketersediaan Wilayah Baldi untuk konfigurasi pembekal storan CCTV
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/bucket-region/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bucket-region/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tetapkan semula koleksi wajah yang tidak dikenal pasti
Menetapkan semula koleksi CompreFace tidak dikenal pasti bagi kemudahan dengan memadam semua subjek. Rekod orang DynamoDB, pengesanan wajah dan blok garis masa OpenSearch TIDAK terjejas. Hanya data pengecaman wajah asas yang dikosongkan. Profil bayangan baharu akan dicipta secara automatik semasa sistem memproses pengesanan kamera baharu.
Parameter
facilityId `string` (wajib)Titik akhir
DELETE /api/cctv/config/{facilityId}/unidentified-collection
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan maklumat koleksi tidak dikenal pasti
Memulangkan kiraan subjek semasa untuk koleksi CompreFace tidak dikenal pasti bagi kemudahan.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/cctv/config/{facilityId}/unidentified-collection-info
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection-info \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah kamera rangkaian (kamera OEM/IP) melalui URL strim (RTSP, HTTP, HTTPS)
Parameter
body `string` (wajib) Objek JSON untuk menambah kamera rangkaian.Titik akhir
POST /api/cctv/devices/add-network-camera
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-camera \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tambah kamera rangkaian secara pukal ke Edge Processor
Mendaftarkan berbilang kamera rangkaian RTSP/HTTP pada satu Edge Processor, kemudian menolak FEED_CONFIG sekali supaya peranti memuat semula konfigurasi sekali sahaja.
Parameter
body `object` (wajib)Titik akhir
POST /api/cctv/devices/add-network-cameras
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-cameras \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengaitkan/Mengemas kini peranti kepada kelab
Parameter
body `string` (wajib) Objek JSON untuk mengemas kini pendaftaran Peranti CCTV.Titik akhir
POST /api/cctv/devices
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengaitkan peranti kepada kelab
Parameter
body `string` (wajib) Objek JSON untuk mengemas kini pendaftaran Peranti CCTV.Titik akhir
POST /api/cctv/devices/associate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menghantar Permintaan MQTT ke UUID peranti tertentu dan menjangkakan respons (melalui websocket) tentang keupayaan kamera yang tersedia.
Parameter
club `string` (wajib) ID dalaman kelab yang memiliki peranti yang sedang Anda tanya. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/cctv/devices/list-camera-capabilities/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/list-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan pendaftaran peranti
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/devices/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/devices/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengalih keluar kamera rangkaian dengan menandakannya sebagai dipadam dan mengalih keluarnya daripada FEED_CONFIG Edge Processor
Parameter
club `string` (wajib) ID dalaman kelab yang memiliki peranti. balenaUUID `string` (wajib) UUID kamera rangkaian yang akan dialih keluar.Titik akhir
DELETE /api/cctv/devices/remove-network-camera/{club}/{balenaUUID}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/devices/remove-network-camera/{club}/{balenaUUID} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyimpan mana-mana/semua keupayaan kamera yang dikonfigurasikan dan menggunakannya pada peranti sebagai pemboleh ubah persekitaran (melalui balena)
Parameter
club `string` (wajib) ID dalaman kelab yang memiliki peranti yang sedang Anda tanya. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/cctv/devices/save-camera-capabilities/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyimpan topeng gerakan (jika dikonfigurasikan) untuk kamera dan menggunakannya pada peranti sebagai pemboleh ubah persekitaran (melalui balena)
Parameter
club `string` (wajib) ID dalaman kelab yang memiliki peranti yang sedang Anda tanya. body `string` (wajib) Objek Json topeng kamera.Titik akhir
POST /api/cctv/devices/save-camera-mask/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-mask/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menghantar arahan v4l2 tertentu (seperti kecerahan atau kontras) ke peranti fizikal
Parameter
club `string` (wajib) ID dalaman kelab yang memiliki peranti yang sedang Anda tanya. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/cctv/devices/set-camera-capability/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/set-camera-capability/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Uji URL strim kamera rangkaian
Menghantar arahan ujian ke Edge Processor untuk mengesahkan URL strim kamera menggunakan ffprobe
Badan Permintaan
Titik akhir
POST /api/cctv/devices/test-stream
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/test-stream \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Memadam secara kekal satu rekod pengesanan wajah daripada pangkalan data. Digunakan untuk mengalih keluar entri jejak yang tidak sepadan atau salah daripada log aktiviti seseorang.
Parameter
club `string` (wajib) fdID `string` (wajib)Titik akhir
DELETE /api/cctv/face-detections/:club/:fdID
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:fdID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data pengesanan wajah bagi seseorang
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personID `string` (wajib) ID orang dalam sistem pengenalpastian wajahTitik akhir
GET /api/cctv/face-detections/:club/:personID
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan pengesanan wajah yang merujuk imej potongan orang tertentu, ditanya melalui GSI personCropImage.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personCropImage `string` (wajib) URL imej potongan orang yang disimpan pada rekod pengesanan wajah. limit `string` (pilihan) Bilangan maksimum pengesanan untuk dipulangkan. nextToken `string` (pilihan) Token penomboran halaman daripada respons sebelumnya.Titik akhir
GET /api/cctv/face-detections-by-person-crop-image/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections-by-person-crop-image/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data pengesanan wajah bagi kelab yang dikumpulkan daripada julat relatif kepada masa semasa
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/face-detections/:club/timeline
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data pengesanan wajah bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/face-detections/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari blok garis masa pengesanan wajah dalam kemudahan menggunakan OpenSearch
Parameter
facilityId `string` (wajib) ID dalaman kemudahan untuk dicari timezone `string` (wajib) Zon waktu IANA untuk penukaran tarikh (cth. Pacific/Auckland) startDate `string` (pilihan) Penapis tarikh mula (YYYY-MM-DD), ditukar kepada startUnix menggunakan zon waktu endDate `string` (pilihan) Penapis tarikh tamat (YYYY-MM-DD), ditukar kepada endUnix menggunakan zon waktu personId `string` (pilihan) Tapis mengikut ID orang tertentu query `string` (pilihan) Carian teks bebas (cth. nama orang) limit `string` (pilihan) Hasil setiap halaman (lalai 20, maks 100) filters `string` (pilihan) Objek penapis berkod JSON (cth. {"matchType":"identified"}) sortBy `string` (pilihan) Medan untuk mengisih (startUnix, endUnix, created). Lalai ialah endUnix. page `string` (pilihan) Nombor halaman untuk penomboran halaman (lalai 1) sortOrder `string` (pilihan) Arah isihan (asc atau desc). Lalai ialah desc.Titik akhir
GET /api/cctv/search/face-detections/timeline-blocks/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/face-detections/timeline-blocks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai laporan tentang kemudahan kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/facility/:club/reports
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/facility/:club/reports \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cetuskan penjanaan peta haba atas permintaan. Memanggil logik Starter yang sama yang digunakan oleh cron berjadual, tetapi membenarkan sasaran kemudahan tertentu, tarikh/masa dan set tempoh tertentu. Apabila dipanggil tanpa badan, ia berkelakuan sama seperti cron — mengimbas semua kemudahan yang layak dan memasukkan setiap peranti ke dalam baris gilir.
Badan Permintaan
Titik akhir
POST /api/cctv/heatmaps/generate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/heatmaps/generate \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Selesaikan lokasi PNG peta haba tetingkap bergolek yang digubah untuk satu peranti. Memulangkan metadata JSON sahaja — bait PNG terletak pada domain kandungan, dan bahagian hadapan membina URL seperti berikut: `${contentDomain}/cctv/${storageService}/${region}/${filePath}?s=${token}` Tertib penyelesaian: 1. Padanan indeks `composed#…` DynamoDB → pulangkan serta-merta (~10 ms). 2. HEAD Wasabi pada kunci cache deterministik. Jika ditemui, tulis baris indeks isi semula dan pulangkan. 3. Sandaran lapuk: sebarang rekod gubahan wujud untuk tupel (device, range, hour) ini, walaupun daripada tarikh yang berbeza. Dipulangkan serta-merta dengan `cache: 'HIT-STALE'` supaya FE boleh memaparkan *sesuatu*. Gubahan baharu dicetuskan secara tak segerak. 4. Laluan sejuk: tiada rekod langsung. Lambda gubahan dimasukkan ke baris gilir melalui `InvocationType: 'Event'` dan titik akhir memulangkan `202 { cache: 'PENDING' }`. FE meninjau sehingga rekod tiba (biasanya 3-5 saat). Pengendalian hari ini: apabila `endDate` ialah "hari ini" tempatan kemudahan, titik akhir menyajikan PNG semalam sebagai ganti — hirisan hari ini masih sedang ditulis oleh cron Starter dan gubahan baharu akan menjadi tidak lengkap. Respons mengulangi `endDate` yang diminta dan menyertakan `endDateUsed` (= semalam). Enum `cache`: - `HIT` — disajikan daripada indeks DDB untuk tarikh yang diminta. - `HIT-FALLBACK` — hari ini diminta; baris indeks semalam disajikan. - `HIT-BACKFILL` — tiada dalam DDB tetapi Wasabi mempunyai PNG; baris baru sahaja ditulis. - `HIT-FALLBACK-BACKFILL` — isi semula pada sandaran semalam. - `HIT-STALE` — tiada rekod untuk tarikh yang diminta tetapi rekod wujud daripada tarikh lain untuk tupel ini; disajikan serta-merta dan gubahan baharu dimasukkan ke baris gilir di latar belakang. - `PENDING` — tiada rekod langsung; gubahan telah dimasukkan ke baris gilir. FE harus meninjau. Respons ialah `202 Accepted`, tiada `filePath`.
Parameter
facilityId `string` (wajib) deviceUUID `string` (wajib) Peranti untuk digubah. Gubahan adalah bagi setiap peranti. hour `integer` (wajib) Jam dalam hari 0–23 untuk digubah merentas tetingkap imbas kembali. endDate `string` (pilihan) Tarikh terakhir dalam tetingkap (YYYY-MM-DD). Lalai kepada hari ini (zon waktu kemudahan). range `string` (pilihan) Tetingkap imbas kembali. Mesti salah satu julat dalam senarai benar. nocache `integer` (pilihan) Tetapkan kepada `1` untuk memintas lapisan cache DDB + HEAD dan memaksa gubahan baharu.Titik akhir
GET /api/cctv/heatmaps/hourly/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kenal pasti jam dalam hari yang mempunyai rekod hirisan `1h` untuk peranti sepanjang tetingkap imbas kembali bergolek. Bahagian hadapan menggunakan ini untuk mengisi pemilih jam bersama pemilih tarikh + julat sebelum mencetuskan titik akhir gubahan (`/api/cctv/heatmaps/hourly/...`). Contoh: `GET /api/cctv/heatmaps/query-hourly/Birkdale?deviceUUID=abc123&endDate=2026-04-16&range=30d` Secara dalaman: satu pertanyaan julat DynamoDB pada `cctvheatmaps` (`sk BETWEEN 1h#{start}-00 AND 1h#{end}-23`), dikumpulkan mengikut jam. Memulangkan satu entri bagi setiap jam yang mempunyai sekurang-kurangnya satu hirisan, termasuk JPEG rujukan yang mewakili (diambil daripada hari terkini dalam tetingkap — rujukan dikongsi bagi setiap peranti setiap hari).
Parameter
facilityId `string` (wajib) deviceUUID `string` (wajib) Peranti untuk ditanya. Hirisan setiap jam adalah bagi setiap peranti. endDate `string` (pilihan) Tarikh terakhir dalam tetingkap (YYYY-MM-DD). Lalai kepada hari ini (zon waktu kemudahan). range `string` (pilihan) Tetingkap imbas kembali. Mesti salah satu julat dalam senarai benar.Titik akhir
GET /api/cctv/heatmaps/query-hourly/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/query-hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tanya rekod peta haba yang dijana terlebih dahulu untuk kemudahan. **Semua rekod untuk satu jenis tempoh:** - `/api/cctv/heatmaps/Birkdale?periodType=1y` - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&periodType=1d` **Julat tarikh — satu jenis tempoh:** - `/api/cctv/heatmaps/Birkdale?periodType=1d&from=2026-03-01&to=2026-03-31` - `/api/cctv/heatmaps/Birkdale?periodType=6h&from=2026-03-31&to=2026-03-31` **Julat tarikh — semua jenis tempoh yang berkenaan (tinggalkan periodType):** - `/api/cctv/heatmaps/Birkdale?from=2026-03-01&to=2026-03-31` Memulangkan rekod tahunan, setengah tahunan, suku tahunan dsb. hingga rekod 6h yang bertindih dengan julat yang diberikan. **Titik masa — kesemua 9 jenis tempoh untuk satu peranti:** - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&date=2026-03-15T14:30` Memulangkan sehingga 9 rekod (1y, 6m, 3m, 2m, 1m, 1w, 1d, 12h, 6h).
Parameter
facilityId `string` (wajib) Pengecam kemudahan. deviceUUID `string` (pilihan) Tanya peranti tertentu. Jika ditinggalkan, pertanyaan dibuat merentas semua peranti (GSI). periodType `string` (pilihan) Tapis kepada satu jenis tempoh. Jika ditinggalkan bersama from/to, semua jenis ditanya. from `string` (pilihan) Tarikh mula (yyyy-mm-dd). Mesti digunakan bersama `to`. to `string` (pilihan) Tarikh tamat (yyyy-mm-dd). Mesti digunakan bersama `from`. date `string` (pilihan) Carian titik masa (yyyy-mm-dd atau yyyy-mm-ddTHH:mm). Memerlukan deviceUUID. Memulangkan satu rekod bagi setiap jenis tempoh.Titik akhir
GET /api/cctv/heatmaps/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan gambar kecil strim langsung peranti
Parameter
club `string` (wajib) ID dalaman kelab. deviceId `string` (wajib) ID dalaman peranti CCTV.Titik akhir
GET /api/cctv/livestream/:club/thumbnail/:deviceId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/livestream/:club/thumbnail/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Maklumkan sistem CCTV bahawa Anda akan menonton strim langsung
Parameter
club `string` (wajib) ID dalaman kelab. deviceId `string` (wajib) ID dalaman peranti CCTV.Titik akhir
POST /api/cctv/livestream/:club/iswatching/:deviceId
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/livestream/:club/iswatching/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Luluskan padanan persilangan
Menetapkan status padanan kepada disahkan dan merekodkan penyemak.
Parameter
club `string` (wajib) matchId `string` (wajib)Titik akhir
POST /api/cctv/matching/{club}/detail/{matchId}/approve
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/approve \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan satu padanan persilangan dengan butiran lawatan
Memulangkan rekod padanan dan pecahan masa bagi setiap lawatan.
Parameter
club `string` (wajib) matchId `string` (wajib)Titik akhir
GET /api/cctv/matching/{club}/detail/{matchId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pautkan orang yang tidak dipadankan kepada ahli secara manual
Mengaitkan personId CCTV dengan ahli tertentu, dan menetapkan padanan kepada disahkan.
Parameter
club `string` (wajib) matchId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/cctv/matching/{club}/detail/{matchId}/link
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/link \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan padanan persilangan untuk kemudahan
Memulangkan padanan bernombor halaman yang ditapis mengikut status.
Parameter
club `string` (wajib) status `string` (pilihan) limit `integer` (pilihan) nextToken `string` (pilihan)Titik akhir
GET /api/cctv/matching/{club}/list
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tolak padanan persilangan
Menetapkan status padanan kepada ditolak dan merekodkan penyemak.
Parameter
club `string` (wajib) matchId `string` (wajib)Titik akhir
POST /api/cctv/matching/{club}/detail/{matchId}/reject
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/reject \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan kiraan ringkasan pemadanan persilangan
Memulangkan kiraan padanan yang dikumpulkan mengikut status untuk kemudahan.
Parameter
club `string` (wajib) ID KemudahanTitik akhir
GET /api/cctv/matching/{club}/summary
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/summary \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Nyahpaut padanan profil yang dipelajari secara automatik
Mengembalikan padanan yang dipautkan kepada status ditolak dan mengosongkan autoLearnedFrom pada rekod ahli.
Parameter
club `string` (wajib) matchId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/cctv/matching/{club}/detail/{matchId}/unlink
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/unlink \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Baca status operasi "upsert identified person" yang sedang berjalan (meliputi cipta dan sunting). Membaca baris terus daripada jadual `people-ops` milik cctv-rekognition-api; tiada lompatan Lambda. Digunakan oleh bahagian hadapan CCTV untuk meninjau kemajuan selepas POST /api/cctv/people/{facility}/identified. Laluan ini bersebelahan dengan `/cctv/people/...` (bukan bersarang di bawahnya) supaya penghala express tidak tersalah padan `operationId` sebagai `:personID` pada `/cctv/people/:club/:personID`. Lihat tertib glob createAPIRouter. Memulangkan pemegang tempat `pending` semasa Lambda upsertIdentifiedPerson belum menulis entri peringkat pertamanya (tetingkap permulaan sejuk). Cangkuk tinjauan FE melayan pemegang tempat dan pending secara sama, jadi ini memastikan kontrak stabil untuk pemanggil.
Parameter
operationId `string` (wajib)Titik akhir
GET /api/cctv/people-operations/{operationId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people-operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah imej wajah (daripada pengesanan jejak sedia ada) ke subjek pengecaman CompreFace orang tersebut dan menyimpan rujukan dalam jadual foto bayangan. TIDAK memuat naik imej ke Wasabi — imej sudah berada di sana sebagai tangkapan pengesanan wajah.
Parameter
club `string` (wajib) personID `string` (wajib) body `string` (wajib)Titik akhir
POST /api/cctv/people/:club/:personID/add-face
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID/add-face \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tambah foto bayangan pada rekod orang
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personID `string` (wajib) ID rekod orang body `string` (wajib) Objek Json blok konfigurasi baharu untuk ditambah ke sistem.Titik akhir
POST /api/cctv/people/:club/shadow-photos/:personID
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tanya foto bayangan seseorang
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personID `string` (wajib) ID rekod orangTitik akhir
GET /api/cctv/people/:club/shadow-photos/:personID
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengalih keluar secara kekal rekod foto bayangan daripada CCTVShadowPhotosTable dan mengalih keluar wajah yang sepadan daripada CompreFace (jika faceId disimpan).
Parameter
club `string` (wajib) personID `string` (wajib) id `string` (wajib) ID rekod foto bayangan (kunci primer)Titik akhir
DELETE /api/cctv/people/:club/shadow-photos/:personID/:id
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID/:id \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memadam rujukan dan rekod rekognition yang berkaitan mengikut personID
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personID `string` (wajib) ID unik orang CCTV.Titik akhir
DELETE /api/cctv/people/:club/:personID
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan rekod orang bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. personID `string` (wajib) ID DB orang.Titik akhir
GET /api/cctv/people/:club/:personID
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan zon akses yang dipadankan dengan profil keahlian seseorang
Menyelesaikan jenis ahli, tag dan pelan keahlian orang tersebut, kemudian memulangkan zon akses sebenar (origin=membership-plan, tidak diserap) yang dipadankan dengan peraturan include/exclude. accessRestriction pada setiap zon dipangkas kepada peraturan yang sepadan dengan orang tersebut sahaja. Kamera zon anak digabungkan ke dalam zon induk.
Parameter
club `string` (wajib) ID dalaman kemudahan personID `string` (wajib) ID orang daripada jadual orang CCTVTitik akhir
GET /api/cctv/people/{club}/{personID}/allowed-zones
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/{club}/{personID}/allowed-zones \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan status semasa kerja penggabungan termasuk hasil bagi setiap sumber. Tinjau titik akhir ini setiap 3-5 saat semasa status ialah IN_PROGRESS.
Parameter
club `string` (wajib) mergeJobID `string` (wajib)Titik akhir
GET /api/cctv/people/:club/merge-status/:mergeJobID
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-status/:mergeJobID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulakan penggabungan latar belakang bagi berbilang profil orang tidak dikenal pasti ke dalam satu profil kekal. Membalas 202 serta-merta dengan mergeJobID. Tinjau /merge-status/:mergeJobID untuk kemajuan.
Parameter
club `string` (wajib) body `string` (wajib)Titik akhir
POST /api/cctv/people/:club/merge-unidentified
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-unidentified \
-H "x-api-key: YOUR_API_KEY"
Tambah wajah ke koleksi senarai hitam untuk kemudahan
Parameter
facilityId `string` (wajib) ID dalaman kemudahanBadan Permintaan
Titik akhir
POST /api/cctv/people/{facilityId}/blacklist
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{facilityId}/blacklist \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Upsert orang yang dikenal pasti dalam kemudahan — mencipta rekod baharu atau mengemas kini rekod sedia ada. Memproksi ke Lambda upsertIdentifiedPerson, yang menulis rekod orang, memuat naik sebarang foto yang diberikan ke Wasabi dan mengindeks semula wajah dalam CompreFace. Apabila `isNewRecord` ialah true (lalai), Lambda menjalankan cabang cipta (cctvPeople.save) dan `personID` dijana jika tidak diberikan. Apabila `isNewRecord` ialah false, Lambda menjalankan cabang kemas kini (cctvPeople.update) — `personID` diperlukan dan mesti mengenal pasti rekod sedia ada.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/cctv/people/{facilityId}/identified
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{facilityId}/identified \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Kemas kini set medan rakan kongsi pilihan yang disegerakkan ke dalam jadual orang CCTV untuk kemudahan.
Parameter
facilityId `string` (wajib) ID dalaman kemudahanBadan Permintaan
Titik akhir
PUT /api/cctv/people/{facilityId}/sync-fields
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/people/{facilityId}/sync-fields \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Memulangkan senarai data orang bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/people/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari orang dalam kemudahan mengikut imej wajah. Memanggil Lambda imageFaceSearch cctv-rekognition-api dengan imej base64 yang dimuat naik dan ID kemudahan daripada laluan. Memulangkan padanan berkedudukan serta ringkasan atribut DeepFace.
Parameter
club `string` (wajib) ID Kemudahan / kelab body `string` (wajib)Titik akhir
POST /api/cctv/people/{club}/search-by-face
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{club}/search-by-face \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari orang dalam kemudahan menggunakan OpenSearch
Parameter
facilityId `string` (wajib) ID dalaman kemudahan untuk dicari query `string` (pilihan) Istilah carian (cth. nama) page `string` (pilihan) Nombor halaman (lalai 1) limit `string` (pilihan) Hasil setiap halaman (lalai 20, maks 100) filters `string` (pilihan) Objek penapis berkod JSON (cth. {"membershipStatus":"active"}) sortBy `string` (pilihan) Medan untuk mengisih (created, lastName, firstName, membershipUpdatedOn). Lalai ialah created. sortOrder `string` (pilihan) Arah isihan (asc atau desc). Lalai ialah desc.Titik akhir
GET /api/cctv/search/people/:facilityId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/people/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini item pengesanan wajah dengan personID baharu dan mengaitkan rekod rekognition
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. body `string` (wajib) Objek Json blok konfigurasi baharu untuk ditambah ke sistem.Titik akhir
POST /api/cctv/people/:club/validate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/validate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan objek semua penapis yang tersedia untuk data rakaman CCTV bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/recordings/filters/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/filters/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Strim rakaman.
Titik akhir
GET /api/cctv/recordings/:club/:dir/:filename
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini maklumat tentang rakaman.
Titik akhir
PUT /api/cctv/recordings/:club/:dir/:filename
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan ringkasan data rakaman CCTV bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/recordings/:club/summary
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/summary \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data rakaman CCTV bagi kelab berdasarkan julat relatif kepada masa semasa
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/recordings/:club/timeline
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai data rakaman CCTV bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/recordings/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Rakaman dipadam secara automatik dalam tempoh yang ditetapkan; gunakan fungsi ini untuk mengekalkan rakaman
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
POST /api/cctv/recordings/:club/:action
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:action \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari petikan laporan untuk kemudahan dalam julat tarikh
Parameter
facilityId `string` (wajib) ID dalaman kemudahan startDate `string` (wajib) Penapis tarikh mula (YYYY-MM-DD) endDate `string` (wajib) Penapis tarikh tamat (YYYY-MM-DD) deviceIds `string` (pilihan) Senarai ID kamera/peranti yang dipisahkan dengan koma untuk ditapis view `string` (pilihan) Paparan laporan alternatif untuk dikira (dihantar ke Lambda laporan)Titik akhir
GET /api/cctv/reports/search-report-snapshots/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/reports/search-report-snapshots/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Carian vektor merentas media CCTV yang diindeks bagi kemudahan. Membalas dengan text/event-stream yang digeganti daripada Lambda searchAnything, supaya klien boleh memaparkan kemajuan semasa bekas sejuk memuatkan pengekod. Peristiwa ialah `status`, kemudian sama ada `result` atau `error`. Terdapat tiga cara untuk bertanya, dua daripadanya pada kata kerja ini. Hantar `query` untuk mencari mengikut teks bebas. Hantar `seedIndex` + `seedKey` untuk mencari mengikut contoh — "lagi seperti ini" — menggunakan vektor baris yang sudah ada dalam indeks, iaitu cara untuk mencari lebih banyak hasil yang serupa dengan yang sedang dilihat oleh pengguna. Untuk mencari mengikut imej yang dimiliki pengguna, `POST` bait ke laluan yang sama ini sebagai ganti. Hantar perkataan bersama gambar untuk menyempitkan satu dengan yang lain: **teks menapis, imej menentukan kedudukan**. Calon datang daripada benih, perkataan menentukan calon mana yang kekal dan persamaan visual menentukan tertib — jadi hasil masih kelihatan seperti gambar dan perkataan menyingkirkan yang tidak sepadan. Kedua-duanya tidak pernah digabungkan menjadi satu vektor, sebab itulah `queryKind` kekal `similar` untuk carian gabungan; kehadiran `query` pada hasil yang menunjukkan bahawa penapis teks telah digunakan. Jangkakan carian gabungan agak kerap tidak memulangkan apa-apa, dan anggap itu sebagai hasil yang tersendiri: `perIndex.
Parameter
facilityId `string` (wajib) ID dalaman kemudahan untuk dicari query `string` (pilihan) Perihalan teks bebas tentang perkara yang hendak dicari. Diperlukan melainkan warm=1 atau benih dihantar. Apabila digabungkan dengan benih, ia tidak lagi menjadi perkara yang disusun kedudukannya tetapi menjadi penapis ke atas calon benih, menggugurkan calon yang skor teksnya di bawah lantai kerelevanan indeks. seedIndex `string` (pilihan) Cari mengikut contoh dan bukannya mengikut teks: indeks tempat baris benih berada (person-crops, recording-frames, timelapse-frames). Ini ialah `index` padanan yang diklik oleh pengguna. Mesti dihantar bersama seedKey. seedKey `string` (pilihan) `key` baris benih, diambil sebiji-sebiji daripada padanan. Benih dikecualikan daripada hasilnya sendiri — bagi rakaman, ini bermakna keseluruhan klip, kerana bingkai lainnya berjarak 2s dan hampir serupa. seedFrameId `string` (pilihan) Diperlukan apabila seedIndex ialah recording-frames: indeks itu menyimpan satu baris bagi setiap bingkai yang disampel dan kesemuanya berkongsi kunci klip, jadi kunci sahaja menamakan klip dan bukannya satu detik. Hantar `frameId` padanan. Baris lama tidak mempunyainya — hantar seedOffsetMs sebagai ganti. seedOffsetMs `string` (pilihan) Pengecam bingkai sandaran untuk benih recording-frames yang barisnya wujud sebelum `frame_id`. Hantar `offsetMs` padanan. Diabaikan apabila seedFrameId diberikan. warm `string` (pilihan) Sediakan bekas Lambda tanpa menjalankan carian. Cetuskan ini semasa halaman dimuatkan. warmTarget `string` (pilihan) Pengekod yang dimuatkan oleh `warm`: `text` (lalai), `image` atau `both`. Menara penglihatan bersaiz 355 MB berbanding 283 MB bagi menara teks, jadi penyediaannya adalah pilihan — minta `image` hanya selepas pengguna benar-benar menyediakan gambar, bukan semasa halaman dimuatkan. index `string` (pilihan) Set data yang dipisahkan dengan koma untuk dicari: person-crops, recording-frames, timelapse-frames. Hasil digabungkan menjadi satu senarai yang diisih mengikut skor. Ketiga-tiganya dicari secara lalai; hantar senarai yang jelas untuk menyempitkannya. timelapse-frames meliputi kamera yang tidak merakam apa-apa dan hanya menghasilkan satu bingkai seminit, dan lantai kerelevanannya belum ditentukur. model `string` (pilihan) Pengekod untuk digunakan dalam pertanyaan. Mesti sepadan dengan pengekod yang digunakan untuk mengindeks set data. limit `string` (pilihan) Hasil untuk dipulangkan bagi setiap indeks (lalai 50, maks 100) — bukan jumlah keseluruhan, jadi mencari kesemua tiga indeks boleh memulangkan sehingga tiga kali ganda jumlah ini. Bagi rakaman, ia mengira klip dan bukannya bingkai yang sepadan. from `string` (pilihan) Hanya padankan media yang ditangkap pada atau selepas masa ini, dalam milisaat sejak epoch. Ambil perhatian bahawa ini ialah masa tangkapan, bukan masa muat naik. to `string` (pilihan) Hanya padankan media yang ditangkap sebelum masa ini (eksklusif), dalam milisaat sejak epoch. cameraId `string` (pilihan) balenaUUID kamera yang dipisahkan dengan koma untuk disempitkan — medan `balenaUUID` bagi setiap entri yang dipulangkan oleh /api/cctv/recordings/filters/:club. Penapis kamera yang diutamakan: setiap indeks menyimpan nilai yang sama ini, jadi satu penapis menyempitkan kesemuanya. Ambil perhatian bahawa hanya potongan yang gabungan pengesanan wajahnya berjaya diselesaikan membawa nilai ini (~1% pada masa ini), jadi menyempitkan potongan mengikut kamera akan memulangkan sedikit atau tiada hasil sehingga isi semula potongan dijalankan; rakaman diisi sepenuhnya dan ditapis dengan tepat. camera `string` (pilihan) Nama kamera yang dipisahkan dengan koma untuk disempitkan. Secara berkesan untuk rakaman sahaja: person-crops menyimpan nama kamera kosong pada setiap baris, jadi sebarang nilai di sini mengecualikan semua potongan. Utamakan cameraId. cameraGroup `string` (pilihan) Kumpulan kamera yang dipisahkan dengan koma untuk disempitkan. Diisi pada semua rakaman tetapi hanya ~1% potongan, atas sebab yang sama seperti cameraId. minScore `string` (pilihan) Gantikan lantai kosinus bagi setiap indeks yang menapis hingar. Tinggalkan dalam pengeluaran; setiap indeks membawa nilai lalai yang ditentukur (dan nilai berasingan yang belum ditentukur untuk carian berbenih). Hantar 0 untuk melihat jiran terdekat yang tidak ditapis semasa menyahpepijat kerelevanan.Titik akhir
GET /api/cctv/search/anything/:facilityId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari mengikut imej yang dimiliki pengguna, dan bukannya mengikut perkataan atau hasil yang sudah ada pada skrin. Sama seperti GET dalam semua aspek lain — parameter pertanyaan yang sama, strim peristiwa yang sama, bentuk hasil yang sama — jadi ini hanya mendokumenkan perbezaannya. Hantar **bait fail asal** sebagai badan permintaan dengan Content-Type `image/*`. Jangan ubah saiz, pangkas atau kod semula imej dalam pelayar terlebih dahulu: pelayan memadankan pengubahan saiz yang sangat khusus (pemampatan kepada 256x256 dengan kernel bilinear antialias) yang digunakan untuk membina vektor yang diindeks, dan penskalaan kanvas menggunakan kaedah yang berbeza. Berdasarkan ukuran, penggantian itu menghasilkan jarak kira-kira 0.93 kosinus daripada jawapan yang betul, iaitu lebih jauh daripada dua imej yang benar-benar berbeza — jadi hasil dipulangkan dengan kedudukan yang kelihatan munasabah tetapi salah, tanpa sebarang ralat. Dihadkan kepada 4 MB, iaitu kekangan pengangkutan dan bukannya kekangan kualiti: bait bergerak di dalam muatan panggilan Lambda, yang terhad kepada 6 MB, dan base64 membesarkannya sebanyak satu pertiga. Hasil diskor imej-ke-imej, jadi `queryKind` ialah `image` dan skor berada pada skala jauh lebih tinggi yang sama seperti carian berbenih — tidak sekali-kali boleh dibandingkan dengan skor teks. Jangkakan skor ini sedikit *lebih rendah* daripada carian berbenih yang setara: vektor benih ditulis oleh peranti itu sendiri, manakala muat naik dikod semula di sini oleh enjin yang berbeza, yang meletakkannya beberapa perseratus jauhnya daripada kedudukan yang akan diberikan oleh peranti. Berdasarkan ukuran, hasilnya sama berkualiti walaupun begitu; cuma setnya tidak sama. Menambah `query` menapis hasil mengikut perkataan tersebut, sama seperti untuk benih. Menghantar benih *dan* imej akan ditolak: kedua-duanya ialah perkara yang disusun kedudukannya, jadi pasangan itu tidak bermakna. Ini ialah permintaan paling mahal yang disajikan oleh titik akhir. Imej yang dimuat naik memuatkan menara penglihatan, dan menambah perkataan turut memuatkan menara teks — kedua-duanya pada bekas sejuk. `warm=1&warmTarget=image` sebaik sahaja pengguna menyediakan gambar akan mengeluarkannya daripada laluan kritikal.
Parameter
facilityId `string` (wajib) ID dalaman kemudahan untuk dicari body `string` (wajib) Bait imej mentah, tidak diubah suai, maksimum 4 MB query `string` (pilihan) Perkataan pilihan untuk menyempitkan hasil imej, menggugurkan padanan yang skor teksnya di bawah lantai kerelevanan indeks.Titik akhir
POST /api/cctv/search/anything/:facilityId
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan butiran storan dan data metrik lain untuk CCTV kelab
Titik akhir
GET /api/cctv/storage-details/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/storage-details/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai rekod muat naik timelapse bagi kelab
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/timelapse/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/timelapse/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan tindakan pengguna yang dilakukan pada rakaman dalam Bahagian Hadapan atau UI CCTV
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/cctv/ui/actions/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Rekodkan tindakan pengguna yang dilakukan pada rakaman dalam Bahagian Hadapan atau UI CCTV
Parameter
body `string` (wajib) Objek Json blok konfigurasi baharu untuk ditambah ke sistem.Titik akhir
POST /api/cctv/ui/actions/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan token pengguna untuk Bahagian Hadapan atau UI CCTV
Parameter
club `string` (wajib) ID KelabTitik akhir
GET /api/cctv/ui/token/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/token/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jana token untuk akses sementara atau tetamu
Parameter
club `string` (wajib) Pengecam unik untuk kelab. body `string` (wajib) Objek JSON butiran token yang akan dikeluarkan.Titik akhir
POST /api/cctv/token/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{
"accessID": "00000000-0000-0000-0000-000000000014"
}
Memulangkan senarai rekod token untuk akses sementara atau tetamu
Parameter
club `string` (wajib) Pengecam unik untuk kelab.Titik akhir
GET /api/cctv/token/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan token akses melalui ID akses
Parameter
accessID `string` (wajib) ID rekod token dalam pangkalan data.Titik akhir
POST /guest/cctv/token/:accessID
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/guest/cctv/token/:accessID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam waktu akses kemudahan
Parameter
facilityId `string` (wajib) body `object` (wajib) Objek Json waktu akses baharu.Titik akhir
DELETE /api/ai/computer-vision/access-hours/:facilityId
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai waktu akses kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/ai/computer-vision/access-hours/:facilityId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini atau mencipta waktu akses kemudahan
Parameter
facilityId `string` (wajib) body `object` (wajib) Objek Json waktu akses baharu.Titik akhir
POST /api/ai/computer-vision/access-hours/:facilityId
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam zon akses kemudahan
Parameter
facilityId `string` (wajib) body `object` (wajib) Objek Json zon akses baharu.Titik akhir
DELETE /api/ai/computer-vision/access-zones/:facilityId
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai zon akses kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/ai/computer-vision/access-zones/:facilityId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini atau mencipta zon akses kemudahan
Parameter
facilityId `string` (wajib) body `object` (wajib) Objek Json zon akses baharu.Titik akhir
POST /api/ai/computer-vision/access-zones/:facilityId
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan gabungan semua ID modul pentadbir merentas jenama dan kemudahan untuk organisasi, diisi sebagai objek modul.
Parameter
organisationId `string` (wajib) ID OrganisasiTitik akhir
GET /api/organisations/{organisationId}/admin-modules
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/organisations/{organisationId}/admin-modules \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai semua organisasi
Parameter
includeBrands `string` (pilihan) Sertakan jenama yang dikaitkan dengan organisasi includeFacilities `string` (pilihan) Sertakan kemudahan yang dikaitkan dengan organisasi includeRegions `string` (pilihan) Sertakan kawasan yang dikaitkan dengan organisasiTitik akhir
GET /api/organisations
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/organisations \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pembantu AI ringkas untuk menganalisis kandungan tiket sokongan dan mencipta cadangan berdasarkan topik yang tersedia serta topik carian Algolia yang dicadangkan...
Parameter
messageBody `string` (wajib) Badan mesej untuk dihantar topicData `string` (wajib) Objek/tatasusunan Json topicData yang dipulangkan daripada osTicket (sistem tiket/sokongan) facilityId `string` (pilihan) ID dalaman kelab yang diperlukan untuk menentukan indeks Algolia yang betul untuk dicari.Titik akhir
PUT /api/ai/helpers/analyse-support-ticket
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/ai/helpers/analyse-support-ticket \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
API penjanaan imej ringkas
Parameter
type `string` (wajib) Jenis imej untuk dijana name `string` (wajib) Nama imej maxSize `string` (pilihan) Saiz respons maksimum pilihan, cth. 200KB, 1MB atau kiraan bait biasa. Imej dikecilkan/dimampatkan supaya muat.Titik akhir
PUT /api/ai/images/:type/:name
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/ai/images/:type/:name \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pertanyaan LLM ringkas
Titik akhir ringan untuk pertanyaan LLM ringkas tanpa keadaan. Menggunakan model murah tanpa penaakulan (gpt-4o-mini) dengan had token yang ketat. Tiada sejarah perbualan, tiada alat, tiada penstriman — hanya gesaan masuk, teks keluar.
Badan Permintaan
Titik akhir
POST /api/ai/llm/query
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ai/llm/query \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Memulangkan konfigurasi Algolia termasuk nama indeks, ID aplikasi dan kunci API.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/facilities/{facilityId}/algolia/config
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/algolia/config \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulakan indeks cetakan pemasaran Algolia
Parameter
organisationId `string` (wajib)Titik akhir
PUT /api/algolia/index
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/algolia/index \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari bahan cetakan pemasaran
Badan Permintaan
Titik akhir
POST /algolia/search-marketing-print
Contoh Permintaan
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 '{}'
Respons
{}
Cari bahan cetakan pemasaran
Parameter
club `string` (pilihan) ID Kelab searchTerms `string` (pilihan) Istilah carian algoliaArgs `object` (pilihan) Argumen carian Algolia tambahanTitik akhir
GET /algolia/search-marketing-print
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/algolia/search-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini pukal objek cetakan pemasaran untuk kelab tertentu
Titik akhir
POST /algolia/bulk-update-marketing-print
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/algolia/bulk-update-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengambil aset cetakan pemasaran daripada Algolia.
Parameter
organisationId `string` (wajib) search `string` (pilihan) limit `string` (pilihan) brand `string` (pilihan) tag `string` (pilihan)Titik akhir
GET /api/algolia/marketing/assets
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulakan indeks cetakan pemasaran Algolia dengan konfigurasi kemudahan.
Parameter
organisationId `string` (wajib)Titik akhir
POST /api/algolia/marketing/assets
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Melakukan carian terhadap indeks Algolia yang ditentukan berdasarkan istilah carian, kelab dan/atau tempatan. Carian boleh disesuaikan lagi menggunakan argumen Algolia tambahan.
Parameter
searchTerms `string` (wajib) Istilah untuk dicari dalam indeks Algolia. club `string` (pilihan) ID dalaman kelab yang membuat permintaan. Jika dinyatakan, carian akan ditapis berdasarkan wilayah yang dikaitkan dengan kelab tersebut. locale `string` (pilihan) Tempatan yang digunakan untuk menentukan wilayah jika kelab tidak dinyatakan. Diperoleh daripada navigator.languages. algoliaArgs `string` (pilihan) Argumen tambahan/tersuai untuk dihantar terus ke permintaan carian Algolia.Titik akhir
POST /api/algolia/search-wiki
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/algolia/search-wiki \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan semua pengumuman
Titik akhir
GET /api/announcements/list
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/announcements/list \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memuat naik aset ke BALDI S3 AWAM (melalui Upload API) yang kemudiannya akan memproses lanjut/mengoptimumkan fail, menjana gambar kecil dsb. *Ambil perhatian, Aset akan tersedia secara awam*
Parameter
file `string` (pilihan) Nama fail/aset yang akan dimuat naik.Titik akhir
POST /api/asset-upload
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/asset-upload \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan status muat naik berdasarkan uuid rekod muat naik yang diberikan
Parameter
uuid `string` (wajib) UUID rekod muat naikTitik akhir
GET /api/asset-upload/:uuid
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/asset-upload/:uuid \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Hantar arahan ke Sonos kelab
Parameter
body `object` (wajib) Objek Json arahan dan input untuk dihantar ke Sonos.Titik akhir
PUT /api/audio-control/command/:club
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/command/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan konfigurasi untuk Bahagian Hadapan Kawalan Audio
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/audio-control/config/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/audio-control/config/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ubah konfigurasi untuk Bahagian Hadapan Kawalan Audio
Parameter
body `object` (wajib) Objek Json blok konfigurasi baharu untuk ditambah ke sistem.Titik akhir
PUT /api/audio-control/config/:club/:section
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan tetapan jenama untuk wilayah tertentu
Parameter
brandId `string` (pilihan) ID jenama regionCode `string` (pilihan) Kod ISO wilayah yang tetapannya ingin didapatkanTitik akhir
GET /api/brands/{brandId}/regions/{regionCode}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini berbilang tetapan jenama untuk wilayah tertentu
Parameter
brandId `string` (pilihan) ID jenama yang akan dikemas kini regionCode `string` (pilihan) Kod ISO wilayah yang tetapannya akan dikemas kini acceptFreeTrialBookingsVisibility `string` (pilihan) customTrackingCodeVisibility `string` (pilihan) displayDataSources `string` (pilihan) displayDefaultDataSource `string` (pilihan) displayDefaultUI `string` (pilihan) displayUIOptions `string` (pilihan) defaultAboutBusiness `string` (pilihan) defaultAboutBusinessFacebook `string` (pilihan) facilityCoverImage `string` (pilihan) digitalProfileSettingsVisibility `string` (pilihan) facilityHoursVisibility `string` (pilihan) facilityLocationVisibility `string` (pilihan) facilityPaymentMethods `string` (pilihan) facilityPrimaryLogo `string` (pilihan) facilityStatusVisibility `string` (pilihan) landingPagesVisibility `string` (pilihan) lineChatIntegrationVisibility `string` (pilihan) whatsAppIntegrationVisibility `string` (pilihan) defaultWhatsAppMessage `string` (pilihan) socialUrlsVisibility `string` (pilihan) yextApiKey `string` (pilihan) Kunci API yang digunakan oleh integrasi Yext untuk wilayah jenama ini. Hanya dirujuk apabila `directorySyncMode` ialah `yext`. directorySyncMode `string` (pilihan) Bahagian belakang penyegerakan yang harus dijalankan untuk kemudahan di bawah wilayah jenama ini. Lalai kepada `yext` jika tiada, untuk keserasian ke belakang dengan jenama yang wujud sebelum pelancaran Directory Publishers. websiteUrl `string` (pilihan) androidAppUrl `string` (pilihan) iosAppUrl `string` (pilihan) featuredMessageDescription `string` (pilihan) yextCategoryIds `string` (pilihan) Kunci storan warisan — ini sebenarnya ID kategori Google Business Profile (cth. gcid:gym). Awalan "yext" wujud sebelum Yext ditamatkan; dikekalkan untuk keserasian ke belakang dengan baris DB sedia ada. customInputFields `string` (pilihan) customInputFieldsToRemove `string` (pilihan)Titik akhir
PUT /api/brands/{brandId}/regions/{regionCode}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan tetapan jenama untuk kemudahan tertentu
Parameter
facilityId `string` (pilihan) ID kemudahan yang tetapan jenamanya ingin didapatkanTitik akhir
GET /api/facilities/{facilityId}/brand-settings
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/brand-settings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta jenama baharu
Parameter
name `string` (wajib) Nama jenama organisationId `string` (wajib) ID organisasi yang memiliki jenama redirectDashboard `string` (pilihan) URL untuk diubah hala selepas log masuk dan bukannya papan pemuka lalaiTitik akhir
POST /api/brands
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai semua jenama
Titik akhir
GET /api/brands
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan objek jenama
Parameter
brandId `string` (wajib) ID jenama yang ingin didapatkan includeOrganisation `boolean` (pilihan) Sama ada untuk menyertakan data organisasi dalam responsTitik akhir
GET /api/brands/{brandId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini jenama mengikut ID
Parameter
brandId `string` (pilihan) ID jenama yang akan dikemas kini name `string` (wajib) Nama jenama brandOrganisationId `string` (pilihan) ID organisasi yang memiliki jenama redirectDashboard `string` (pilihan) URL untuk diubah hala selepas log masuk dan bukannya papan pemuka lalai yextApiKey `string` (pilihan) Kunci API yang digunakan untuk mengakses API Yext bagi jenama ini customMenuLayout `object` (pilihan) Pepohon susun atur menu sisi bagi setiap jenama (bahagian / kumpulan / item dengan rujukan kepada modul sistem atau URL tersuai). Hanya boleh ditetapkan oleh pentadbir organisasi bagi organisasi jenama ini.Titik akhir
PUT /api/brands/{brandId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan kemudahan untuk jenama
Memulangkan senarai ringkas kemudahan (ID, nama, kod ISO wilayah) milik jenama. Digunakan untuk mengisi pemilih sasaran kemudahan dalam konfigurasi jenama.
Parameter
brandId `string` (wajib) ID jenama yang kemudahannya ingin disenaraikanTitik akhir
GET /api/brands/{brandId}/facilities
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/facilities \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai semua jenama yang dikaitkan dengan organisasi kelab.
Titik akhir
GET /api/clubs/{club}/brands
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/brands \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai semua jenis kalendar
Titik akhir
GET /api/programs/calendars/calendar-types
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/programs/calendars/calendar-types \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan aset KYC untuk kelab.
Parameter
clubId `string` (wajib) ID kelab. key `string` (wajib) Kunci aset KYC.Titik akhir
GET /api/clubs/{clubId}/kyc-assets/{key}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets/{key} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan maklumat KYC kelab.
Titik akhir
GET /api/clubs/{clubId}/kyc
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini maklumat KYC kelab.
Parameter
clubId `string` (wajib) ID kelab yang akan dikemas kini. body `object` (wajib)Titik akhir
PUT /api/clubs/{clubId}/kyc
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memuat naik aset KYC untuk kelab.
Parameter
clubId `string` (wajib) ID kelab. file `string` (wajib) Fail yang akan dimuat naik.Titik akhir
POST /api/clubs/{clubId}/kyc-assets
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan tetapan keutamaan kelab.
Titik akhir
GET /api/club/preferences/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta atau mengemas kini entri keutamaan kelab.
Badan Permintaan
Titik akhir
POST /api/club/preferences/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Memulangkan senarai ahli yang mempunyai perjanjian.
Titik akhir
GET /api/clubpass/user/email/exist/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/email/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai ahli yang mempunyai perjanjian.
Titik akhir
GET /api/clubpass/user/phone/exist/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/phone/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai pengguna yang tergolong dalam kelab yang dinyatakan
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda aksesTitik akhir
GET /api/clubs/{club}/members
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/members \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan sama ada kelab dibuka pada tarikh yang diberikan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. date `string` (wajib) Tarikh untuk disemak dalam format unixTitik akhir
GET /api/club-busy-hours/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club-busy-hours/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan semua metadata untuk Kelab yang dipaparkan pada laman web Example Club.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/clubs/clubpage/clubdata/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/clubpage/clubdata/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini Metadata kelab dengan data baharu yang diberikan daripada bahagian hadapan. Medan yang tiada dalam badan permintaan dikekalkan (tiada SET, tiada REMOVE). Medan yang dihantar sebagai `null` atau rentetan kosong dikosongkan. Hantar `updateAll: false` untuk menggunakan laluan gabungan separa khusus; walau apa pun, pemanggil tidak perlu menghantar medan yang bukan milik mereka.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. body `string` (wajib) Objek Json data kelab yang ingin Anda kemas kini.Titik akhir
POST /api/clubs/clubpage/updateclub/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/clubpage/updateclub/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
tambah rekod penjejakan tersuai baharu
Parameter
club `string` (wajib) ID kelab body `string` (wajib) Tatasusunan item penjejakan tersuai.Titik akhir
POST /api/clubs/{club}/customtracking
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan penjejakan tersuai untuk kelab tertentu
Titik akhir
GET /api/clubs/customtracking/:clubID
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/customtracking/:clubID \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini entri penjejakan tersuai
Parameter
club `string` (wajib) ID kelab body `string` (wajib) Objek Json data kelab yang ingin Anda kemas kini.Titik akhir
POST /api/clubs/{club}/customtracking/update
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking/update \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan imej hadapan kedai lalai untuk kelab.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/clubs/{club}/default-shop-front
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/default-shop-front \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan pintu yang tersedia di kemudahan
Parameter
body `object` (wajib) Objek JSON data kelab yang ingin Anda kemas kini.Titik akhir
POST /api/clubs/integrations/doors/:facilityId
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Buka kunci pintu tertentu di kemudahan
Parameter
body `object` (wajib) Objek JSON data kelab yang ingin Anda kemas kini.Titik akhir
POST /api/clubs/integrations/doors/unlock
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/unlock \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan semua integrasi dan butiran konfigurasi untuk kelab yang dinyatakan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/clubs/integrations/list/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/integrations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini Metadata kelab dengan data baharu yang diberikan daripada bahagian hadapan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. body `object` (wajib) Objek Json data kelab yang ingin Anda kemas kini.Titik akhir
POST /api/clubs/integrations/update/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan boolean sama ada kelab berada di negara Eropah atau tidak
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. date `string` (wajib) Tarikh untuk disemak dalam format unixTitik akhir
GET /api/clubs/is-eu/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/is-eu/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai peringkat tinggi semua kelab dalam pangkalan data kami.
Titik akhir
GET /api/clubs/listclubs
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/listclubs \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan sama ada kelab dibuka pada tarikh yang diberikan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. date `string` (wajib) Tarikh untuk disemak dalam format unixTitik akhir
GET /api/clubs/{club}/open-on/{date}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/open-on/{date} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan ulasan kelab daripada dynamo db.
Parameter
club `string` (wajib) ID KelabTitik akhir
GET /api/clubs/{club}/reviews
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan tetapan ulasan kelab daripada dynamo db.
Parameter
facilityId `string` (wajib) ID kemudahanTitik akhir
GET /api/clubs/{club}/reviews-settings
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini tetapan ulasan kelab pada dynamo db.
Parameter
club `string` (wajib) ID KelabTitik akhir
PUT /api/clubs/{club}/reviews-settings
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan semula terbitan automatik tetapan ulasan.
Parameter
club `string` (wajib) ID KelabTitik akhir
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menerbitkan ulasan
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. review `string` (wajib) ID dalaman ulasan yang ingin Anda terbitkan.Titik akhir
PUT /api/clubs/{club}/reviews/{review}/publish
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/publish \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan semula terbitan automatik tetapan ulasan.
Parameter
club `string` (wajib) ID KelabTitik akhir
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Siarkan respons kepada ulasan kembali melalui penerbit asalnya (Google dsb.).
Parameter
club `string` (wajib) ID Kemudahan reviewId `string` (wajib) ID ulasan PH (dicari dalam jadual club-social-reviews) body `string` (wajib)Titik akhir
POST /api/clubs/{club}/reviews/{reviewId}/respond
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{reviewId}/respond \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyahterbitkan ulasan
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. review `string` (wajib) ID dalaman ulasan yang ingin Anda nyahterbitkan.Titik akhir
PUT /api/clubs/{club}/reviews/{review}/un-publish
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/un-publish \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai pemilik yang tergolong dalam kelab yang dinyatakan daripada db PH
Parameter
clubID `string` (wajib) ID dalaman kelab yang ingin Anda aksesTitik akhir
GET /api/clubs/{clubID}/owners
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/owners \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan semua pelan keahlian untuk kemudahan.
Parameter
facilityId `string` (wajib) ID dalaman kemudahanTitik akhir
GET /api/facilities/membership-plans/:facilityId
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini rekod pelan keahlian.
Parameter
facilityId `string` (wajib) ID dalaman kemudahan body `object` (wajib) Objek JSON data pelan keahlian yang ingin Anda kemas kini.Titik akhir
PUT /api/facilities/membership-plans/:facilityId
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan semula terbitan automatik tetapan ulasan.
Parameter
club `string` (wajib) ID KelabTitik akhir
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan semula terbitan automatik tetapan ulasan.
Parameter
club `string` (wajib) ID KelabTitik akhir
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai semua mata wang yang tersedia
Titik akhir
GET /api/currencies
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/currencies \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan lokasi geografi menggunakan alamat IP.
Parameter
ip `string` (wajib) Alamat IP untuk dicariTitik akhir
GET /api/geo/ip-location/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-location/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan lokasi geografi pengguna semasa berdasarkan IP mereka.
Titik akhir
GET /api/geo/ip-current
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-current \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan alamat IP awam klien yang membuat permintaan sahaja (tiada carian geolokasi, tiada panggilan API pihak ketiga). Digunakan oleh aplet Ejen AI untuk membandingkan IP awam pelayar dengan IP WAN yang dihantar oleh peranti bagi mengesan rangkaian yang sama.
Titik akhir
GET /api/geo/client-ip
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/geo/client-ip \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Penghurai telefon.
Parameter
body `string` (wajib) Objek Json bagi nombor yang ingin anda huraikan.Titik akhir
POST /api/phone/parser
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/phone/parser \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan peranti jam induk
Parameter
club_id `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti.Titik akhir
GET /api/clubs/{club_id}/smart-club/health-check/master-clock
Contoh Permintaan
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"
Respons
{}
Memulangkan peranti sonos induk
Parameter
club_id `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti.Titik akhir
GET /api/clubs/{club_id}/smart-club/health-check/sonos-mqtt
Contoh Permintaan
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"
Respons
{}
dapatkan pemberitahuan bateri lemah duress untuk kelab tertentu.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/clubs/{club}/smart-club/health-check/low-battery-duress
Contoh Permintaan
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"
Respons
{}
Memulangkan data analisis rangkaian
Parameter
club_id `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti.Titik akhir
GET /api/clubs/{club_id}/smart-club/health-check/network-analysis
Contoh Permintaan
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"
Respons
{}
hantar pemberitahuan bateri lemah duress untuk kelab tertentu.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs
Contoh Permintaan
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"
Respons
{}
Memulangkan data ujian kelajuan peranti bagi setiap jenis peranti
Parameter
club_id `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti.Titik akhir
GET /api/clubs/{club_id}/smart-club/health-check/speed-test
Contoh Permintaan
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"
Respons
{}
Dapatkan cerapan penyenaraian untuk kemudahan. Mengembalikan jumlah harian teragregat merentas penerbit secara lalai, atau satu penerbit apabila `publisherId` diberikan.
Parameter
facilityId `string` (wajib) publisherId `string` (pilihan) startDate `string` (wajib) endDate `string` (wajib)Titik akhir
GET /api/facilities/{facilityId}/directory-insights
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan cerapan penyenaraian teragregat untuk jenama merentas semua penerbit.
Parameter
brandId `string` (wajib) startDate `string` (wajib) endDate `string` (wajib)Titik akhir
GET /api/brands/{brandId}/directory-insights
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kata kunci carian teratas (dengan pecahan berjenama/tidak berjenama) untuk kemudahan, kini diperoleh daripada Google Business Profile.
Parameter
facilityId `string` (wajib) publisherId `string` (pilihan) Lalai kepada "google" — hanya Google disokong pada masa ini. startDate `string` (wajib) endDate `string` (wajib) limit `string` (pilihan)Titik akhir
GET /api/facilities/{facilityId}/directory-search-keywords
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kata kunci carian teratas untuk jenama, diagregatkan merentas semua kemudahan.
Parameter
brandId `string` (wajib) startDate `string` (wajib) endDate `string` (wajib) limit `string` (pilihan)Titik akhir
GET /api/brands/{brandId}/directory-search-keywords
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan soal jawab untuk kemudahan.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/facilities/{facilityId}/qna
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jawab soalan.
Titik akhir
POST /api/facilities/{facilityId}/qna/{questionId}/answer
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam jawapan.
Titik akhir
DELETE /api/facilities/{facilityId}/qna/{questionId}/answer/{answerId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer/{answerId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan penerbit yang didayakan untuk organisasi kemudahan, bersama status sambungannya.
Parameter
facilityId `string` (wajib) organisationId `string` (wajib)Titik akhir
GET /api/facilities/{facilityId}/directory-publishers/resolved
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-publishers/resolved \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan Access Policies untuk kemudahan
Konfigurasi akses sedia ada ditukar secara automatik kepada dasar berkuat kuasa yang setara pada bacaan pertama.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/policies/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Gantikan Access Policies menggunakan semakan versi optimistik
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/policies/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Cipta Access Policy
Parameter
facilityId `string` (wajib)Titik akhir
POST /api/door-access/policies/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini satu Access Policy
Parameter
facilityId `string` (wajib) policyId `string` (wajib)Titik akhir
PATCH /api/door-access/policies/{facilityId}/{policyId}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam satu Access Policy
Parameter
facilityId `string` (wajib) policyId `string` (wajib) revision `integer` (wajib)Titik akhir
DELETE /api/door-access/policies/{facilityId}/{policyId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pendua Access Policy dengan ID stabil baharu
Parameter
facilityId `string` (wajib) policyId `string` (wajib)Titik akhir
POST /api/door-access/policies/{facilityId}/{policyId}/duplicate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kira pengguna dan pintu yang terjejas bagi semua Access Policies
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/policies/{facilityId}/impacts
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/impacts \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kira pengguna dan pintu yang terjejas oleh Access Policy
Parameter
facilityId `string` (wajib) policyId `string` (wajib)Titik akhir
GET /api/door-access/policies/{facilityId}/{policyId}/impact
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/impact \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan pengawal pintu di kemudahan bersama peraturan Door/Gate Access berkesannya
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/doors/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Simpan penggantian setiap pintu, ikon dan konfigurasi bahagian peranti
Satu permukaan tulis untuk semua yang diedit oleh aplet pentadbir DGA pada pintu: - `accessRulesOverride` / `geofenceOverride` — hantar `null` untuk mengosongkan dan kembali kepada lalai kemudahan. - `icon` — kunci wayar yang stabil (lihat services/door-access/door-icons.js); nilai yang tidak dikenali menghasilkan 400. - `holdTimeSeconds` (1–30), `maintenanceMode` (`off` / `force-open` / `force-closed`), `doorLocation` (teks bebas, ≤64 aksara), `playNotificationSoundOnRelayToggle` (boolean), `autoUnlockSchedule` (grid tetingkap mingguan). Ini dahulunya medan Pengurusan Peranti sahaja tetapi aplet kini menulisnya di tempat supaya pentadbir tidak perlu meninggalkan laci pintu untuk perubahan konfigurasi harian. Apabila mana-mana medan bahagian peranti disentuh, laluan juga menolak pemboleh ubah persekitaran Balena yang sepadan (`RELAY_NOTIFICATION_SOUND`, `DOOR_MAINTENANCE_MODE`, `DOOR_AUTO_UNLOCK_SCHEDULE`) dan menghantar arahan MQTT `unlockUpdates` supaya peranti mengambil konfigurasi baharu tanpa menunggu penyegaran persekitaran Balena seterusnya. Usaha terbaik — respons tetap 200 walaupun Balena tidak dapat dicapai buat sementara waktu.
Parameter
facilityId `string` (wajib) doorId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/doors/{facilityId}/{doorId}/override
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/override \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Probe status Balena ringan untuk notis muat semula laci pintu
Laci aplet DGA mengambil ini secara malas apabila pentadbir membuka pintu supaya ia boleh memaparkan teks "menyimpan akan memuat semula pengawal" yang betul: varian lalai "beberapa saat", atau varian "beberapa minit" yang lebih kuat apabila kemas kini keluaran juga belum selesai. Mengembalikan syot kilat rata yang diperoleh daripada `balena.models.device.get()`. Gagal secara lembut kepada `data: null` (bukannya 5xx) supaya gangguan Balena hanya menjejaskan teks notis dan bukannya menghalang laci daripada dibuka.
Parameter
facilityId `string` (wajib) doorId `string` (wajib)Titik akhir
GET /api/door-access/doors/{facilityId}/{doorId}/device-status
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/device-status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Penggantian pentadbir — buka kunci pintu daripada aplet
Menogol geganti seketika menggunakan `holdTimeSeconds` semasa pintu, menulis baris audit `admin-override` ke ph-door-app-access-events supaya tindakan itu boleh dikaitkan dalam Access Logs. Sentiasa berjaya tanpa mengira `maintenanceMode === 'force-closed'` — ini ialah jalan keluar kecemasan pentadbir. Mengembalikan 200 sebaik sahaja penerbitan MQTT dihantar; keadaan disahkan / gagal / tamat masa tidak ditunggu di sini (aliran lama /api/devices/door-controllers + /api/ics/devices/command juga hantar-dan-lupa).
Parameter
facilityId `string` (wajib) doorId `string` (wajib)Titik akhir
POST /api/door-access/doors/{facilityId}/{doorId}/unlock
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/unlock \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mainkan corak bip pencari pada pengawal pintu
Menerbitkan arahan MQTT `beep` supaya pengawal mengeluarkan tiga bip sederhana panjang (~500 ms setiap satu, jarak ~350 ms, jumlah ~2 s). Digunakan oleh pentadbir untuk mencari pengawal pintu secara fizikal di tapak. Butang Pengurusan Peranti lama menggunakan letusan ~30 s bip pendek tetapi pemacu pembaz perisian tegar hanya mengeluarkan bip pertama dengan boleh dipercayai, jadi aplet menghantar corak yang lebih pendek dan lebih boleh dipercayai sebaliknya. Tiada baris audit — tindakan diagnostik tanpa kesan sampingan kawalan akses.
Parameter
facilityId `string` (wajib) doorId `string` (wajib)Titik akhir
POST /api/door-access/doors/{facilityId}/{doorId}/identify
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/identify \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
But semula pengawal pintu dari jauh
Menerbitkan arahan MQTT `rebootDevice` hantar-dan-lupa yang sama seperti butang Pengurusan Peranti lama "Remotely Reboot Device", tetapi diberi akses melalui modul `door-gate-access` supaya pentadbir DGA boleh but semula pengawal daripada bahagian Advanced laci pintu tanpa pemberian `device-management` yang berasingan. Mengembalikan 200 sebaik sahaja penerbitan dihantar; peranti menjadi luar talian sepanjang tempoh but semula.
Parameter
facilityId `string` (wajib) doorId `string` (wajib)Titik akhir
POST /api/door-access/doors/{facilityId}/{doorId}/reboot
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/reboot \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan baris User Access di kemudahan
Mengembalikan setiap baris akses pengguna yang tidak dipadam di kemudahan. Menyokong penapis bahagian klien (source, search, accessEnabled, hasGrants). Pengiraan `hideExcluded` bahagian pelayan Fasa 4 akan ditambah setelah penilai pemberian hibrid tersedia; buat masa ini parameter diterima tetapi mengembalikan set penuh.
Parameter
facilityId `string` (wajib) search `string` (pilihan) source `string` (pilihan) accessEnabled `string` (pilihan) hasGrants `string` (pilihan) hideExcluded `boolean` (pilihan) Apabila true, pengguna yang disegerakkan (source != manual) yang tidak dapat melalui mana-mana pintu pada bila-bila masa di kemudahan ini disembunyikan. Respons merangkumi sampul `hidden: { count, sample }`.Titik akhir
GET /api/door-access/users/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta baris User Access secara manual di kemudahan
Mencipta baris baharu dengan `source: 'manual'`. Mengembalikan 409 dengan `existingUserId` jika telefon atau e-mel yang diberikan sudah dipetakan kepada baris di kemudahan ini.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/users/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Dapatkan satu baris User Access
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
GET /api/door-access/users/{facilityId}/{userId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini separa baris User Access
Mengedit mana-mana subset medan identiti / kebenaran. Hantar `null` untuk mengosongkan medan pilihan. Mengembalikan 409 jika telefon atau e-mel baharu bertembung dengan baris lain di kemudahan yang sama. `appMessage` menerima bentuk yang sama seperti mesej seluruh kemudahan pada PUT /api/door-access/rules/{facilityId} — teks kandungan, tahap keterukan, pautan pilihan, jadual mula/tamat pilihan. Aplikasi mudah alih memaparkan ini pada papan pemuka hanya untuk pengguna yang disasarkan.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Badan Permintaan
Titik akhir
PATCH /api/door-access/users/{facilityId}/{userId}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam lembut baris User Access
Menandakan baris `deleted: true` dan menyahdayakan akses. Pautan log audit kepada userId dikekalkan; pentadbir boleh mendayakan semula secara manual.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
DELETE /api/door-access/users/{facilityId}/{userId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Atribusi akses setiap pintu untuk pengguna
Bagi setiap pintu, mengembalikan kebenaran deterministik semasa (`allowedNow`, `allowedVia`, `deniedReason`) dan laluan yang dikonfigurasikan untuk Access Policies, pemberian kekal, jadual dasar, pemberian tetingkap masa pentadbir dan tetingkap sumber rakan kongsi terpeta yang terkini. Juga mengembalikan ketersediaan aktif/seterusnya dan kesegaran sumber. blockAllAccess pintu dan penyelenggaraan dinilai sebelum semua laluan kebenaran.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
GET /api/door-access/users/{facilityId}/{userId}/effective-access
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/effective-access \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta pukal baris User Access daripada import CSV
Mencipta berbilang baris `source: 'manual'` dalam satu permintaan, menggunakan semula pengesahan, penormalan telefon/e-mel, semakan pertembungan setiap kemudahan, pemesejan automatik dan logik jemputan (pilihan) yang sama seperti penciptaan tunggal. Baris diproses mengikut urutan, jadi baris kemudian yang bertembung dengan baris yang dicipta lebih awal dilaporkan sebagai pendua. Pemberian dibekalkan sebagai ID pintu/kumpulan yang sudah ditentukan (klien menukar nama kepada ID). Pemberian tetingkap masa sengaja ditolak dalam operasi pukal dan mesti ditambah melalui titik akhir penggantian setiap pengguna selepas import. Tidak pernah gagal bagi setiap baris; hasil setiap baris dilaporkan secara berasingan.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/users/{facilityId}/bulk
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/bulk \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Gantikan pemberian Access Time Window tambahan pada baris User Access
Hanya menggantikan `timeWindowGrants`; `grants` kekal dan `sourceTimeWindows` integrasi tidak disentuh. Setiap item memerlukan skop (`facilityWide`, `doors` atau `groups`) dan `window` mutlak atau mingguan. Menghantar tatasusunan kosong secara jelas mengosongkan semua tetingkap pentadbir.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/users/{facilityId}/{userId}/time-window-grants
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/time-window-grants \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Bekukan baris User Access daripada kemas kini penyegerakan yang dipacu sumber
Menetapkan `decoupledFromSource: true`, mengosongkan semua `sourceTimeWindows` milik integrasi, dan menyebabkan penyegerakan (cron + strim) merekod log + melangkau baris ini sehingga pentadbir mengosongkan bendera melalui /recouple.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
POST /api/door-access/users/{facilityId}/{userId}/decouple
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/decouple \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sambungkan semula baris User Access kepada kemas kini penyegerakan yang dipacu sumber
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
POST /api/door-access/users/{facilityId}/{userId}/recouple
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/recouple \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Batalkan semua token muat semula aplikasi Door/Gate Access untuk pengguna
Membatalkan mengikut telefon/e-mel pengguna yang disimpan (jadual token muat semula dikunci oleh `sha256(plaintext)`; GSI byMobilePhone / byEmail membolehkan kami memadam secara berbilang daripada satu pengguna). Pengguna lain yang berkongsi telefon/e-mel yang sama di kemudahan lain juga akan dilog keluar.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
POST /api/door-access/users/{facilityId}/{userId}/logout
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/logout \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Hantar (semula) e-mel jemputan aplikasi Door/Gate Access kepada pengguna
Memaksa penghantaran e-mel jemputan muat turun aplikasi ke alamat e-mel pengguna yang disimpan (e-mel sahaja; tiada SMS). Mengabaikan semakan kelayakan dan semakan sudah-dihantar yang digunakan oleh laluan penyegerakan automatik — ini ialah tindakan pentadbir yang jelas. Mengembalikan 400 jika pengguna tiada e-mel dalam rekod.
Parameter
facilityId `string` (wajib) userId `string` (wajib)Titik akhir
POST /api/door-access/users/{facilityId}/{userId}/resend-invite
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/resend-invite \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pratonton penerima penghantaran pukal jemputan aplikasi
Mengira set pengguna yang akan menerima e-mel jemputan aplikasi. Kumpulan asas ialah setiap pengguna yang tidak dipadam dengan e-mel yang tidak pernah menggunakan aplikasi (`appLastSeenAt` kosong). Secara lalai kumpulan ini dihadkan kepada pengguna yang kini mempunyai akses (padanan peraturan atau pemberian) dan tidak pernah dijemput; `includeAlreadyInvited` dan `includeNoAccess` meluaskannya. Tiada e-mel dihantar — mengembalikan kiraan, sampel kecil dan userIds calon untuk titik akhir pelaksanaan.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/users/{facilityId}/bulk-invite/preview
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/bulk-invite/preview \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Hantar e-mel jemputan aplikasi kepada sekumpulan pengguna
Menghantar e-mel jemputan muat turun aplikasi kepada setiap userIds yang diberikan (maksimum 50 setiap permintaan; klien membahagikan senarai calon penuh daripada pratonton kepada kelompok). Setiap pengguna disahkan semula semasa penghantaran — baris yang tidak lagi wujud, tiada e-mel atau telah menggunakan aplikasi sejak pratonton dilangkau, tidak pernah dianggap gagal. Hasil setiap pengguna dilaporkan secara berasingan supaya klien boleh meringkaskan dihantar / gagal / dilangkau.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/users/{facilityId}/bulk-invite
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/bulk-invite \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan Kumpulan Pintu di kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/door-groups/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta Kumpulan Pintu
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/door-groups/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Dapatkan satu Kumpulan Pintu
Parameter
facilityId `string` (wajib) groupId `string` (wajib)Titik akhir
GET /api/door-access/door-groups/{facilityId}/{groupId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini Kumpulan Pintu
Parameter
facilityId `string` (wajib) groupId `string` (wajib)Badan Permintaan
Titik akhir
PATCH /api/door-access/door-groups/{facilityId}/{groupId}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam lembut Kumpulan Pintu
Parameter
facilityId `string` (wajib) groupId `string` (wajib)Titik akhir
DELETE /api/door-access/door-groups/{facilityId}/{groupId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan integrasi rakan kongsi yang dikonfigurasikan di kemudahan
Mengembalikan integrasi rakan kongsi kemudahan (id, nama, logo, enabled) dengan mencantumkan ph-facility-partner-config dengan katalog ph-partners. Berskop door-gate-access (supaya pentadbir tanpa akses external-integrations masih boleh memaparkan lencana rakan kongsi dan senarai penyegerakan setiap rakan kongsi).
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/partners/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/partners/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Baca konfigurasi penyegerakan User Access untuk kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/sync-config/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini konfigurasi penyegerakan User Access untuk kemudahan
Hanya medan yang dikawal oleh pentadbir (`enabled`, `requireIdentifier` dan peta `partners` rakan kongsi) diterima; `lastRunAt` dan `lastRunCounts` ditulis oleh enjin penyegerakan itu sendiri. `partner.partners` ialah peta pendayaan setiap rakan kongsi yang dikunci oleh partnerId (tarik diri): apabila `partner.enabled` induk dihidupkan, rakan kongsi disegerakkan kecuali ia mempunyai entri `{ enabled: false }` yang jelas di sini.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/sync-config/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/sync-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Baca konfigurasi pemesejan automatik setiap pengguna untuk kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/auto-messages/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini konfigurasi pemesejan automatik setiap pengguna untuk kemudahan
Menyimpan peraturan, kemudian serta-merta menilai semula setiap baris User Access di kemudahan supaya pengguna sedia ada mendapat/kehilangan mesej automatik mereka dengan segera. Mesej manual dan baris yang dinyahgandingkan tidak disentuh.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/auto-messages/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Status sapuan penilaian semula mesej automatik di latar belakang
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/auto-messages/{facilityId}/sweep-status
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId}/sweep-status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jalankan penyegerakan User Access atas permintaan untuk kemudahan
Menyapu secara segerak setiap sumber yang didayakan (partner / cctv) di kemudahan dan menyelaraskan baris ph-door-access-users melalui aliran nyahpendua. Mengembalikan kiraan setiap sumber. Sumber yang dinyahdayakan dipaparkan sebagai `skippedSyncDisabled: 1` dan bukannya tiada, supaya UI boleh memaparkan kedua-dua baris secara konsisten.
Parameter
facilityId `string` (wajib)Titik akhir
POST /api/door-access/sync/{facilityId}/run
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/run \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pratonton larian percubaan pemadaman pukal yang disegerakkan rakan kongsi
Mengembalikan kiraan + sampel baris akses pengguna yang akan dipadam lembut, serta confirmToken yang mesti dihantar semula ke titik akhir pelaksanaan. Tiada data diubah suai. Log akses tidak pernah terjejas.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/sync/{facilityId}/bulk-delete/preview
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/bulk-delete/preview \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Laksanakan pemadaman pukal yang disegerakkan rakan kongsi (padam lembut)
Memadam lembut setiap baris akses pengguna yang disegerakkan rakan kongsi dalam skop. Memerlukan confirmToken yang dikembalikan oleh pratonton; jika set langsung telah berubah sejak pratonton, token tidak akan sepadan dan permintaan ditolak (409) supaya pentadbir menyemak semula. Log akses dikekalkan.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/door-access/sync/{facilityId}/bulk-delete
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/bulk-delete \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Aktiviti penyegerakan User Access terkini (log penyelesaian masalah)
Mengembalikan hasil penyegerakan terkini untuk kemudahan (dicipta / dilangkau / dinyahdayakan) bersama sebabnya, supaya pentadbir dapat melihat mengapa ahli disegerakkan atau tidak. Terbaharu dahulu.
Parameter
facilityId `string` (wajib) limit `integer` (pilihan)Titik akhir
GET /api/door-access/sync/{facilityId}/log
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/log \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan peristiwa Door/Gate Access untuk kemudahan
Mengembalikan peristiwa buka kunci mudah alih, penggantian pentadbir dan Partner API luaran dalam satu suapan kronologi terbalik.
Parameter
facilityId `string` (wajib) from `integer` (pilihan) to `integer` (pilihan) limit `integer` (pilihan)Titik akhir
GET /api/door-access/events/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/events/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Larian percubaan penilaian geofence untuk pin mod ujian pentadbir
Badan Permintaan
Titik akhir
POST /api/door-access/geofence/test
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/door-access/geofence/test \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan status orientasi / pengaktifan untuk kemudahan
Memacu halaman pendaratan "Get Started" dan sepanduk kemajuan persediaan aplet. Mengembalikan kiraan pintu + pengguna langsung, dua langkah teras yang diperoleh (pengguna wujud, pintu wujud), bendera "reviewed" pilihan yang disimpan, dan sama ada kemudahan telah diaktifkan (kedua-dua langkah teras selesai). Kali pertama kemudahan diaktifkan, cap masa activatedAt direkodkan.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/door-access/onboarding/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/door-access/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini bendera orientasi "reviewed" pilihan untuk kemudahan
Menyimpan bendera senarai semak persediaan pilihan yang ditandakan oleh pentadbir (peraturan akses, tetapan penyegerakan, geofencing). Langkah teras dan pengaktifan diperoleh secara langsung daripada kiraan data dan tidak boleh ditetapkan di sini. Mengembalikan status orientasi penuh yang telah dimuat semula.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/door-access/onboarding/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/door-access/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/lead-events
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/lead-events \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/page-views
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/page-views \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/referrers
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/referrers \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/socials
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/socials \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/top-cities
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/top-cities \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/total-page-views
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/total-page-views \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan respons JSON data analitik kemudahan.
Parameter
clubId `string` (pilihan) ID kemudahan yang data analitiknya hendak diambil. fromDate `string` (pilihan) Tarikh mula data analitik yang hendak diambil. toDate `string` (pilihan) Tarikh tamat data analitik yang hendak diambil.Titik akhir
GET /clubs/{clubId}/analytics/traffic
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/traffic \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menjana JWT (Json Web Token) bahagian hadapan sementara untuk carta Google Analytics boleh benam dalam halaman 'analytics' bahagian hadapan.
Titik akhir
GET /api/ga/onetimetoken
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ga/onetimetoken \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan widget papan pemuka daripada 'The Training Camp' jika kemudahan mempunyai ahli aktif.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/reporting/apps/widgets/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/apps/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan semua cuti kemudahan yang belum disemak.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/reporting/club/{club}/unreviewed-holidays
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/club/{club}/unreviewed-holidays \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tetapkan semua cuti kemudahan yang belum disemak kepada telah disemak.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
PUT /api/reporting/club/{club}/review-holidays
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/reporting/club/{club}/review-holidays \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan Laporan KPI dalam format CSV, dipecahkan mengikut bulan bagi tempoh 12 bulan yang lalu. *NOTA* Ini mencipta satu laporan untuk SEMUA kemudahan dalam sistem - Jangan jalankan ini berbilang kali secara selari atau anda akan membebankan GymMaster!
Parameter
months `string` (pilihan) Bilangan bulan (dari tarikh semasa) untuk diambil (lalai 12)Titik akhir
GET /api/reporting/gymmaster/all-clubs-kpi-report
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/all-clubs-kpi-report \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan graf hasil MMS untuk kemudahan tertentu.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. range `string` (pilihan) Julat dalam hari (dikira ke belakang dari tarikh semasa) yang hendak diambilTitik akhir
GET /api/reporting/gymmaster/revenuegraph/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/revenuegraph/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan data/analitik MMS (Member Management System) papan pemuka untuk kemudahan tertentu. Data merangkumi statistik GymMaster/Perfect Gym serta metrik dalaman lain yang dikumpulkan oleh sistem kami.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. range `string` (pilihan) Julat dalam hari (dikira ke belakang dari tarikh semasa) yang hendak diambilTitik akhir
GET /api/reporting/gymmaster/widgets/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan data widget Myzone papan pemuka untuk kemudahan tertentu.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/reporting/myzone/widgets/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/myzone/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan objek perkhidmatan yang dianggap di luar talian daripada satu atau lebih titik akhir halaman status/pemantauan kami - dikonfigurasikan melalui alat dalaman 'Uptime Kuma'.
Titik akhir
GET /api/reporting/statuspage/events
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/statuspage/events \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan tempahan sesi latihan yang akan datang untuk 7 hari seterusnya.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/reporting/clubs/{club}/workout-bookings
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/reporting/clubs/{club}/workout-bookings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai sejarah cuti untuk kemudahan.
Parameter
clubId `string` (pilihan) ID Kelab fromDate `string` (pilihan) Cap masa Unix bagi tarikh mula julat cuti yang hendak dikembalikan. toDate `string` (pilihan) Cap masa Unix bagi tarikh tamat julat cuti yang hendak dikembalikan.Titik akhir
GET /api/clubs/{clubId}/historical-holidays
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/historical-holidays \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan automasi peranti yang dikaitkan dengan kemudahan.
Parameter
club `string` (wajib) ID dalaman kelab yang perantinya ingin Anda senaraikan.Titik akhir
GET /api/ics/automations/list/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ics/automations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini konfigurasi peranti untuk paparan/peranti sedia ada.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/ics/automations/update/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/automations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/mengaitkan peranti skrin fizikal/komputer dengan kemudahan anda.
Parameter
club `string` (wajib) ID dalaman kelab tempat Anda ingin menambah peranti. body `string` (wajib) Objek Json skrin baharu untuk dikaitkan.Titik akhir
POST /api/ics/devices/add/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/add/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengarahkan peranti untuk bersambung ke SSID baharu berdasarkan parameter.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/ics/devices/changewifi/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/changewifi/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini konfigurasi peranti untuk paparan/peranti sedia ada.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/ics/devices/command/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/command/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memuatkan URL/halaman web pada skrin peranti tertentu.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
POST /api/ics/devices/loadurl/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/loadurl/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini konfigurasi peranti untuk paparan/peranti sedia ada.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek Json parameter kemas kini.Titik akhir
PUT /api/ics/devices/update/{club}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menamakan semula paparan/peranti. Pendaftaran sahaja - tidak seperti titik akhir kemas kini, ini tidak menolak apa-apa ke peranti, jadi ia juga tersedia untuk skrin yang menjalankan binaan perisian yang telah tamat hayat.
Parameter
club `string` (wajib) ID dalaman kemudahan yang memiliki peranti tersebut. body `string` (wajib) Objek Json bagi parameter penamaan semula.Titik akhir
PUT /api/ics/devices/rename/{club}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/rename/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan widget dan pautan ke media luar talian untuk kemudahan, berdasarkan tarikh yang diberikan.
Parameter
club `string` (wajib) ID dalaman kemudahan yang program senamannya ingin anda tukar. date `string` (wajib) Tarikh untuk mengembalikan URL widget - Gunakan format `YYYY-MM-DD`.Titik akhir
GET /api/ics/external-resources/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ics/external-resources/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan widget dan pautan ke media luar talian untuk kemudahan, berdasarkan tarikh yang diberikan.
Parameter
club `string` (wajib) ID dalaman kemudahan yang program senamannya ingin anda tukar.Titik akhir
GET /api/ics/list-scheduled-workouts/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ics/list-scheduled-workouts/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menukar program senaman untuk kemudahan tertentu.
Parameter
club `string` (wajib) ID dalaman kemudahan yang program senamannya ingin anda tukar. body `string` (wajib) Objek Json bagi senaman baharu yang hendak ditukar.Titik akhir
POST /api/ics/loadprogram/{club}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ics/loadprogram/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan konfigurasi program untuk paparan/peranti sedia ada.
Parameter
club `string` (wajib) ID dalaman kemudahan yang data programnya ingin anda dapatkan.Titik akhir
GET /api/ics/programs/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini konfigurasi program untuk paparan/peranti sedia ada.
Parameter
club `string` (wajib) ID dalaman kemudahan yang perantinya ingin anda kemas kini. body `string` (wajib) Objek JSON bagi parameter kemas kini.Titik akhir
PUT /api/ics/programs/{club}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan pilihan konfigurasi program.
Titik akhir
GET /api/ics/programs/options/{facilityID}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/options/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sembang dengan konteks RAG - Ini tidak mempunyai akses kepada alat - hanya alat permintaan|respons API mudah yang membolehkan anda menarik pengetahuan terus daripada pangkalan pengetahuan.
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Badan Permintaan
Titik akhir
POST /api/llm/chat
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/llm/chat \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam benaman artikel daripada stor vektor dan kemas kini status penjejakan benaman
Badan Permintaan
Titik akhir
DELETE /api/llm/delete-article
Contoh Permintaan
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 '{}'
Respons
{}
Senaraikan rekod penjejak benaman mengikut organisasi dan status
Parameter
organisationId `string` (pilihan) ID organisasi (ditentukan secara automatik jika diabaikan) status `string` (wajib) Status untuk ditapis (mesti salah satu daripada in_queue, done, anomaly, fail, deleted) Limit `string` (pilihan) Bilangan item maksimum setiap halaman LastEvaluatedKey `string` (pilihan) JSON LastEvaluatedKey DynamoDB untuk penomboran halamanTitik akhir
GET /api/llm/embedding-track/by-org-and-status
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org-and-status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan rekod penjejak benaman mengikut organisasi (secara pilihan tapis mengikut jenis sumber)
Parameter
organisationId `string` (pilihan) ID organisasi (ditentukan secara automatik jika diabaikan) resourceType `string` (pilihan) Jenis sumber pilihan (cth., "article"). Apabila diberikan, menapis rekod yang resourceTypeId bermula dengan "{type}#". Limit `string` (pilihan) Bilangan item maksimum setiap halaman LastEvaluatedKey `string` (pilihan) JSON LastEvaluatedKey DynamoDB untuk penomboran halamanTitik akhir
GET /api/llm/embedding-track/by-org
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mulakan koleksi pangkalan data vektor organisasi
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Titik akhir
POST /api/llm/init-org
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/llm/init-org \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Carian semantik dalam pangkalan pengetahuan
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Badan Permintaan
Titik akhir
POST /api/llm/semantic-search
Contoh Permintaan
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 '{}'
Respons
{}
Mulakan pemprosesan penstriman artikel dalam baris gilir untuk benaman dengan kemas kini kemajuan masa nyata
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Titik akhir
POST /api/llm/start-embedding-stream
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/llm/start-embedding-stream \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Upsert benaman artikel ke dalam pangkalan data vektor
Mengendalikan benaman artikel berdasarkan keadaan semasa: - Jika artikel tidak diterbitkan ATAU peribadi: memadam benaman - Jika artikel diterbitkan DAN awam: membenam semula dengan kandungan penuh Sentiasa memerlukan kandungan penuh artikel.
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Badan Permintaan
Titik akhir
POST /api/llm/upsert-embeddings
Contoh Permintaan
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 '{}'
Respons
{}
Titik akhir ujian untuk memadam benaman artikel secara kelompok mengikut organisasi dan status pilihan
Parameter
organisationId `string` (pilihan) ID organisasi (ditentukan secara automatik daripada konteks pengguna jika diabaikan) status `string` (pilihan) Status untuk ditapis (pilihan - jika diabaikan, memadam SEMUA artikel untuk organisasi tanpa mengira status) hardDelete `string` (pilihan) Sama ada untuk memadam keras rekod penjejakan benaman (true) atau memadam lembut dengan mengemas kini status (false)Titik akhir
DELETE /api/llm/test/batch-delete-by-status
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/batch-delete-by-status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ubah dan cebiskan teks dengan statistik terperinci
Titik akhir ujian yang mengubah teks dan mencebiskannya, kemudian menyediakan statistik terperinci tentang taburan cebisan termasuk kiraan aksara, peratusan dan metrik kualiti untuk membantu menilai keberkesanan pencebisan.
Badan Permintaan
Titik akhir
POST /api/llm/test/transform-chunk
Contoh Permintaan
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 '{}'
Respons
{}
Dapatkan jumlah kiraan vektor dalam indeks vektor untuk organisasi
Titik akhir ujian untuk mengira semua vektor dalam indeks vektor bagi organisasi pengguna semasa
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Titik akhir
GET /api/llm/test/vector-count
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-count \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam semua vektor bagi articleId tertentu daripada indeks vektor
Titik akhir ujian untuk memadam semua vektor yang dikaitkan dengan articleId tertentu daripada indeks vektor bagi organisasi pengguna semasa.
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan) articleId `string` (wajib) articleId yang vektornya hendak dipadam dryRun `string` (pilihan) Jika true, hanya menunjukkan perkara yang akan dipadam tanpa benar-benar memadamnyaTitik akhir
DELETE /api/llm/test/vector-delete-article
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/vector-delete-article \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Uji Vector SDK dengan menyenaraikan semua indeks
Titik akhir ujian untuk mengesahkan ketersambungan Vector SDK dan menyenaraikan semua indeks dalam baldi vektor
Titik akhir
GET /api/llm/test/vector-indices
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-indices \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mulakan indeks Vector untuk organisasi
Mencipta baldi dan indeks Vector untuk organisasi pengguna semasa
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan)Titik akhir
POST /api/llm/test/vector-init-index
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/llm/test/vector-init-index \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan semua metadata vektor bagi articleId tertentu
Titik akhir ujian untuk mendapatkan semua cebisan vektor dan metadatanya bagi articleId tertentu daripada indeks vektor. Berguna untuk memeriksa cara artikel dicebiskan dan disimpan. Penapisan dikendalikan oleh perkhidmatan stor vektor.
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan) articleId `string` (wajib) ID artikel yang metadata vektornya hendak diambilTitik akhir
GET /api/llm/test/vector-metadata-by-article
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-metadata-by-article \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan vektor terkini bersama metadata daripada indeks vektor
Titik akhir ujian untuk mendapatkan 10 vektor terkini bersama metadata (tetapi tanpa data vektor) daripada indeks vektor bagi organisasi pengguna semasa. Berguna untuk memeriksa struktur metadata.
Parameter
organisationId `string` (pilihan) ID organisasi (akan dikesan secara automatik jika tidak diberikan) limit `string` (pilihan) Bilangan vektor terkini untuk dikembalikan (maksimum 100)Titik akhir
GET /api/llm/test/vector-recent
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-recent \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memuat naik aset untuk Marketing Manager/Designer ke Storan S3.
Parameter
file `string` (pilihan) Nama fail/aset yang akan dimuat naik.Titik akhir
POST /api/marketing/design/static/download
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/marketing/design/static/download \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan format JSON aset individu untuk dimuatkan ke dalam pengurus aset.
Parameter
id `string` (wajib) ID aset yang hendak diambil. organisationId `string` (wajib) ID organisasi kemudahan yang memiliki aset tersebut.Titik akhir
GET /api/marketing/assets/get/{id}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan semua aset reka bentuk.
Parameter
body `string` (wajib) Objek Json data kemudahan yang ingin anda simpan. organisationId `string` (wajib) ID organisasi kemudahan yang memiliki aset tersebut. useCache `string` (pilihan) search `string` (pilihan) Pertanyaan carian untuk menapis aset mengikut nama atau tag. brand `string` (pilihan) Jenama untuk menapis aset. tag `string` (pilihan) Tag untuk menapis aset.Titik akhir
GET /api/marketing/assets/get
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan satu halaman aset cetakan pemasaran untuk organisasi. Menggunakan Algolia untuk carian mengikut kerelevanan + penomboran berasaskan halaman (dengan jumlah kiraan), dan beralih kepada DynamoDB apabila Algolia tidak tersedia.
Parameter
organisationId `string` (wajib) ID organisasi kemudahan yang memiliki aset tersebut. search `string` (pilihan) Pertanyaan carian untuk menapis aset mengikut nama atau tag. brand `string` (pilihan) Jenama untuk menapis aset. tag `string` (pilihan) Tag untuk menapis aset. page `string` (pilihan) Nombor halaman berindeks sifar untuk diambil. limit `string` (pilihan) Bilangan aset setiap halaman (maksimum 300). useCache `string` (pilihan) Apabila false, memintas Algolia dan membuat pertanyaan terus kepada DynamoDB.Titik akhir
GET /api/marketing/assets
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai aset tersedia yang telah dimuat naik melalui pengurus aset.
Parameter
organisationId `string` (wajib)Titik akhir
GET /api/marketing/assets/list
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/list \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/Menyimpan aset.
Parameter
body `string` (wajib) Objek Json data kemudahan yang ingin anda simpan. organisationId `string` (wajib) ID organisasi kemudahan yang memiliki aset tersebut.Titik akhir
PUT /api/marketing/assets/save
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/assets/save \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memuat naik aset untuk Marketing Manager/Designer ke Storan S3.
Parameter
file `string` (pilihan) Nama fail/aset yang akan dimuat naik. organisationId `string` (pilihan) ID organisasi yang memiliki aset tersebut.Titik akhir
POST /api/marketing/assets/upload
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/marketing/assets/upload \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai semua halaman tersuai untuk organisasi.
Parameter
organisationId `string` (wajib) ID dalaman organisasi yang halaman tersuainya hendak dikembalikan.Titik akhir
GET /api/marketing/custom-pages
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Upsert halaman tersuai untuk organisasi.
Parameter
organisationId `string` (wajib) ID dalaman organisasi yang halaman tersuainya hendak dikembalikan. body `object` (wajib) Data halaman tersuai untuk di-upsert.Titik akhir
PUT /api/marketing/custom-pages
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai semua halaman tersuai untuk kemudahan.
Parameter
facilityId `string` (wajib) ID dalaman kemudahan yang halaman tersuainya hendak dikembalikan.Titik akhir
GET /api/facilities/{facilityId}/marketing/custom-pages
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan semua reka bentuk yang dieksport/dipaparkan untuk ID kemudahan tertentu.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan. sort `string` (pilihan) Penapis untuk mengisih reka bentuk, 'oldest', 'newest' atau 'design' disokong.Titik akhir
GET /api/marketing/designs/{club}/exports
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/exports \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan kandungan HTML individu bagi reka bentuk dalam format JSON untuk dimuatkan ke dalam editor.
Parameter
id `string` (wajib) ID reka bentuk yang hendak diambil.Titik akhir
GET /api/marketing/designs/get/{id}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai pemetaan input dalam reka bentuk pemasaran dan cetakan serta templat reka bentuk
Parameter
clubId `string` (wajib) ID dalaman kemudahan yang membuat permintaan. availableFeatures `string` (pilihan) Kembalikan semua item dengan ciri tertentu brand `string` (pilihan) Menapis reka bentuk mengikut jenama features `string` (pilihan) Tapis hasil berdasarkan ciriTitik akhir
GET /api/marketing/designs/input-mapping/{clubId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/input-mapping/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai reka bentuk yang tersedia untuk kemudahan tertentu, yang boleh digunakan dalam reka bentuk (Print Designs) yang dicipta dalam editor pemasaran/cetakan hub.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan. designAdmin `string` (pilihan) Kembalikan semua data reka bentuk (paparan pentadbir / memerlukan pengguna menjadi pentadbir). brand `string` (pilihan) Menapis reka bentuk mengikut jenamaTitik akhir
GET /api/marketing/designs/{club}/list
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memaksa sistem memaparkan/memaparkan semula semua imej kecil & pratonton reka bentuk (Digunakan terutamanya jika kami menukar aset 'huluan' dalam S3 dan sebagainya)... **NOTA** Anda hanya boleh memanggil fungsi ini sekali setiap X minit (atau jika pemaparan sedang berjalan, anda tidak boleh memanggil fungsi ini). Ini untuk memastikan kami tidak memberikan beban berlebihan kepada pelayan kami semasa memaparkan semua reka bentuk...
Titik akhir
GET /api/marketing/designs/render-all-thumbnails
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/render-all-thumbnails \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulakan pemaparan Reka Bentuk Dinamik
Parameter
body `string` (wajib) Objek Json data kemudahan yang ingin anda hantar ke pemproses pemaparan reka bentuk...Titik akhir
POST /api/marketing/designs/dynamic/render-design
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/marketing/designs/dynamic/render-design \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/Menyimpan/Mengemas kini reka bentuk.
Parameter
body `string` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
PUT /api/marketing/designs/{club}/save
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan format JSON reka bentuk statik individu untuk dimuatkan
Parameter
id `string` (wajib) ID reka bentuk statik yang hendak diambil.Titik akhir
GET /api/marketing/designs/static/get/{id}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/static/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/Menyimpan/Mengemas kini templat reka bentuk statik.
Parameter
body `string` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
PUT /api/marketing/designs/static/{club}/save
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/static/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengeluarkan pemboleh ubah yang ditetapkan pengguna daripada sistem.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan. body `string` (wajib) Json yang mengandungi ID pemboleh ubah yang hendak dikeluarkan.Titik akhir
DELETE /api/marketing/variables/{club}/delete
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/marketing/variables/{club}/delete \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai pemboleh ubah yang tersedia untuk kemudahan tertentu, yang boleh digunakan dalam reka bentuk (Print Designs) yang dicipta dalam editor pemasaran/cetakan hub.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan.Titik akhir
GET /api/marketing/variables/{club}/list
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/marketing/variables/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta satu 'pemboleh ubah' berasaskan pengguna yang baharu untuk kemudahan tertentu.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan. body `string` (wajib) Objek Json bagi pemboleh ubah baharu.Titik akhir
POST /api/marketing/variables/{club}/new
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/marketing/variables/{club}/new \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menambah/Menyimpan/Mengemas kini satu atau lebih pemboleh ubah reka bentuk dalam sistem melalui tatasusunan objek.
Parameter
club `string` (wajib) ID dalaman kemudahan yang membuat permintaan. body `string` (wajib) Tatasusunan satu atau lebih Objek Json untuk ditambah/dikemas kini (Ini membolehkan berbilang item/objek disimpan dalam satu permintaan API).Titik akhir
PUT /api/marketing/variables/{club}/save
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/variables/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan manifes dokumentasi MCP untuk pengguna yang log masuk
Menggerakkan halaman `/mcp-docs` dalam aplikasi. Mengembalikan URL pelayan MCP, pengepala pengesahan yang disokong, identiti/bendera pentadbir pemanggil, dan senarai alat yang ditapis (ditapis secara sama seperti `/mcp/tools/list`, jadi halaman dokumentasi tidak pernah menunjukkan alat yang tidak boleh digunakan oleh pemanggil).
Titik akhir
GET /api/mcp/docs-manifest
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/mcp/docs-manifest \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta perjanjian pengguna.
Parameter
body `object` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
POST /api/member-agreements/contracts-tna/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai perjanjian.
Titik akhir
GET /api/member-agreements/contracts-tna/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam perjanjian pengguna.
Titik akhir
DELETE /api/member-agreements/contracts-tna/:club/:id
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan butiran perjanjian tertentu.
Titik akhir
GET /api/member-agreements/contracts-tna/:club/:id
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini perjanjian pengguna.
Parameter
body `object` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
PATCH /api/member-agreements/contracts-tna/:club/:id
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan perjanjian lalai kemudahan.
Parameter
body `object` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
GET /api/member-agreements/default-tna/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tetapkan perjanjian lalai kemudahan.
Parameter
body `object` (wajib) Objek Json data kemudahan yang ingin anda simpan.Titik akhir
POST /api/member-agreements/default-tna/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai perjanjian global atau kawasan.
Titik akhir
GET /api/member-agreements/global-tna/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/global-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memulangkan senarai ahli yang mempunyai perjanjian.
Titik akhir
GET /api/member-agreements/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai ahli kemudahan mengikut musim untuk aplikasi kem latihan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. season `string` (pilihan) Musim kem latihan yang ingin anda tapis. userIds `string` (pilihan) Tatasusunan ID pengguna untuk ditapis. useCache `string` (pilihan) Sama ada untuk menggunakan cache. isUserMemberInfo `string` (pilihan) Jika didayakan, ia akan menapis data berdasarkan userIds (disyorkan untuk menggunakan satu ID pengguna sahaja) dan menyertakan data yang diperlukan seperti papan pendahulu dan keutamaan pengguna.Titik akhir
GET /api/members-leads/trainingcamp/club/season-members/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/club/season-members/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memadam berbilang prospek tempahan sesi latihan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. body `string` (wajib)Titik akhir
DELETE /api/members-leads/workout-booking/club/leads/{club}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai prospek tempahan sesi latihan kemudahan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. all `string` (pilihan) Sama ada untuk menunjukkan semua prospek atau yang akan datang sahaja.Titik akhir
GET /api/members-leads/workout-booking/club/leads/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini prospek tempahan sesi latihan.
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses. body `string` (wajib)Titik akhir
PUT /api/members-leads/workout-booking/club/leads/{club}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menogol keadaan bertanda bagi prospek tempahan sesi latihan.
Parameter
club `string` (wajib) ID dalaman kelab. body `string` (wajib)Titik akhir
PATCH /api/members-leads/workout-booking/club/leads/{club}/flag
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club}/flag \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan modul berkesan untuk kemudahan
Mengembalikan semua modul yang tersedia untuk kemudahan dengan menentukan hierarki: keutamaan kemudahan → modul jenama → modul organisasi. Hasil dicache dalam Redis untuk prestasi.
Parameter
facilityId `string` (wajib) ID kemudahan yang modulnya hendak ditentukanTitik akhir
GET /api/facilities/{facilityId}/modules
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/modules \
-H "x-api-key: YOUR_API_KEY"
Respons
[]
Mengembalikan katalog modul serta konfigurasi pemaparan menu sisi. Senarai modul penuh dikembalikan supaya pemapar bahagian hadapan boleh menentukan keterlihatan bagi setiap pengguna; ACL masih dikuatkuasakan di bahagian pelayan melalui `auth.checkModuleAccess()`.
Titik akhir
GET /api/modules
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/modules \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
dapatkan kategori pemberitahuan.
Titik akhir
GET /api/notification/categories
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/notification/categories \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam pemberitahuan yang telah digunakan.
Titik akhir
DELETE /api/club/notification/consumed/:club
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
mencipta mesej pemberitahuan.
Titik akhir
POST /api/club/notification/consumed/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan tatasusunan pemberitahuan yang telah digunakan.
Titik akhir
GET /api/club/notification/consumed/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam mesej pemberitahuan.
Titik akhir
DELETE /api/club/notification/messages/:club
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan tatasusunan mesej pemberitahuan.
Titik akhir
GET /api/club/notification/messages/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
mengemas kini mesej pemberitahuan.
Titik akhir
PATCH /api/club/notification/messages/:club
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
mencipta mesej pemberitahuan.
Parameter
body `string` (wajib)Titik akhir
POST /api/club/notification/messages/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
dapatkan penonton pemberitahuan mengikut kemudahan.
Titik akhir
POST /api/club/notification/viewers/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/viewers/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
dapatkan kategori pemberitahuan mengikut pengguna.
Titik akhir
GET /api/club/notification/user-categories/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/user-categories/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
mencipta mesej pemberitahuan.
Titik akhir
POST /api/notification/webhook
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/notification/webhook \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan kunci awam VAPID untuk tolakan HTML5
Mengembalikan kunci awam VAPID yang digunakan untuk mencipta langganan tolakan pelayar.
Titik akhir
GET /html5-push/vapid-public-key
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/html5-push/vapid-public-key \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Simpan atau kemas kini langganan tolakan HTML5
Menyimpan langganan tolakan pelayar untuk pengguna semasa.
Badan Permintaan
Titik akhir
POST /html5-push/subscribe
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/html5-push/subscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam langganan tolakan HTML5
Mengeluarkan langganan tolakan pelayar untuk pengguna semasa.
Badan Permintaan
Titik akhir
POST /html5-push/unsubscribe
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/html5-push/unsubscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan status orientasi lokasi untuk pengguna yang memanggil
Mengembalikan dua bahagian orientasi untuk kemudahan — persediaan (butiran + pilihan produk, disimpan pada keutamaan kemudahan) dan pembayaran (diperoleh secara langsung daripada rekod payment-settings pengebilan SaaS) — serta bendera `required` yang diperibadikan untuk pemanggil yang menjadi syarat kepada cangkerang aplikasi. Lokasi tindanan teknologi sahaja; lokasi tindanan perniagaan sentiasa mengembalikan required=false.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/onboarding/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Simpan kemajuan wizard orientasi yang sedang berjalan untuk kemudahan
Menyimpan keadaan wizard separa (pilihan produk, teks bebas "Other", butiran perniagaan yang disemak, langkah semasa) supaya muat semula/meninggalkan halaman akan menyambung semula di tempat pengguna berhenti. Tidak pernah merekodkan penyelesaian — lihat titik akhir penyelesaian.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/onboarding/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Jana cadangan prapengisian AI untuk wizard orientasi
Menggunakan konteks kemudahan/jenama/organisasi sedia ada untuk mencadangkan butiran kemudahan (teks perihal, medan hubungan yang dikemaskan), pilihan produk yang dicadangkan dan petua ringkas yang diperibadikan. Hasil dicache dalam Redis selama 7 hari. Cadangan adalah nasihat sahaja — klien memaparkannya dalam borang semakan yang boleh diedit. Sentiasa membalas 200; `suggestions` ialah null apabila AI tidak tersedia supaya wizard tetap berfungsi dengan baik.
Parameter
facilityId `string` (wajib)Titik akhir
POST /api/onboarding/{facilityId}/ai-prefill
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/onboarding/{facilityId}/ai-prefill \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Lengkapkan bahagian persediaan orientasi lokasi
Mengesahkan pilihan/butiran yang disahkan, menyimpan butiran perniagaan ke rekod kemudahan, membenihkan susun atur menu teknologi kemudahan daripada pilihan produk (kecuali susun atur tersuai sudah wujud), dan merekodkan penyelesaian persediaan. Bahagian pembayaran sengaja TIDAK boleh dilengkapkan di sini — ia diperoleh secara langsung daripada rekod payment-settings pengebilan SaaS, jadi keperluan kad wajib tidak boleh dipintas dengan memanggil titik akhir ini. Mengembalikan status yang dimuat semula.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/onboarding/{facilityId}/complete
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/onboarding/{facilityId}/complete \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Cetuskan tindakan integrasi rakan kongsi yang diisytiharkan untuk kemudahan
Menjalankan tindakan "Run integration" yang diisytiharkan pada rekod rakan kongsi (ph-partners.actions[]), berskop kepada kemudahan. Kunci single-flight Redis menghalang larian manual serentak untuk tindakan+kemudahan yang sama.
Parameter
partnerId `string` (wajib) actionId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/partners/{partnerId}/actions/{actionId}/run
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/{partnerId}/actions/{actionId}/run \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Baca status larian tindakan integrasi rakan kongsi
Mengembalikan sama ada larian manual sedang berjalan (kunci single-flight dipegang) serta larian terakhir yang diminta, untuk ditinjau oleh butang tetapan.
Parameter
partnerId `string` (wajib) actionId `string` (wajib) facilityId `string` (wajib)Titik akhir
GET /api/partners/{partnerId}/actions/{actionId}/status
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/{partnerId}/actions/{actionId}/status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan semua konfigurasi rakan kongsi untuk jenama
Parameter
brandId `string` (wajib) ID jenamaTitik akhir
GET /api/partners/brand-config/{brandId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/brand-config/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Respons
[]
Cipta atau kemas kini konfigurasi rakan kongsi jenama
Parameter
body `object` (wajib)Titik akhir
PUT /api/partners/brand-config
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/partners/brand-config \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pindahkan data integrasi GymMaster ke facility-partner-config
Membuat pertanyaan terhadap semua kemudahan yang mempunyai medan gymMasterAPI dan gymMasterDomain serta mencipta/mengemas kini rekod facility-partner-config yang sepadan. Ini ialah titik akhir pemindahan sekali sahaja.
Parameter
partnerId `string` (wajib) ID rakan kongsi GymMaster untuk digunakan bagi semua rekod yang dipindahkan dryRun `boolean` (pilihan) Jika true, hanya melaporkan perkara yang akan dipindahkan tanpa menulis ke pangkalan dataTitik akhir
GET /api/partners/migrate-gymmaster
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/migrate-gymmaster \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan rakan kongsi untuk organisasi.
Parameter
partnerId `string` (wajib) ID rakan kongsiTitik akhir
POST /api/partners/organisation/enable
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/organisation/enable \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan rakan kongsi organisasi. Pentadbir organisasi hanya melihat rakan kongsi organisasi mereka.
Titik akhir
GET /api/partners/organisation
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/organisation \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Keluarkan rakan kongsi organisasi.
Parameter
keyId `string` (wajib) ID kunci rakan kongsi organisasi organisationId `string` (wajib) ID organisasi rakan kongsiTitik akhir
DELETE /api/partners/organisation/{keyId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/organisation/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini mod akses dan modul rakan kongsi organisasi.
Parameter
keyId `string` (wajib) ID kunci rakan kongsi organisasi organisationId `string` (wajib) ID organisasi rakan kongsi partnerId `string` (wajib) ID Rakan Kongsi accessMode `string` (wajib) Mod akses untuk rakan kongsi modules `string` (pilihan) Senarai modul untuk mod akses LIMITEDTitik akhir
PUT /api/partners/organisation/update-access
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/partners/organisation/update-access \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta daftar masuk untuk kemudahan
Menerima tatasusunan objek daftar masuk dan memajukannya ke Partner API untuk diproses. Maksimum 25 daftar masuk setiap permintaan.
Badan Permintaan
Titik akhir
POST /api/partners/check-ins
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/check-ins \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam konfigurasi rakan kongsi untuk kemudahan
Mengeluarkan konfigurasi bagi integrasi rakan kongsi di kemudahan
Parameter
facilityId `string` (wajib) ID Kemudahan (ID kelab) partnerId `string` (wajib) ID Rakan KongsiTitik akhir
DELETE /api/partners/facility-config/{facilityId}/{partnerId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId}/{partnerId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan semua konfigurasi rakan kongsi untuk kemudahan
Mengembalikan semua integrasi rakan kongsi yang dikonfigurasikan untuk kemudahan tertentu
Parameter
facilityId `string` (wajib) ID Kemudahan (ID kelab)Titik akhir
GET /api/partners/facility-config/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta atau kemas kini konfigurasi rakan kongsi untuk kemudahan
Upsert konfigurasi bagi integrasi rakan kongsi di kemudahan
Badan Permintaan
Titik akhir
POST /api/partners/facility-config
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/facility-config \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam ahli mengikut memberId
Memadam rekod ahli sedia ada menggunakan memberId.
Parameter
memberId `string` (wajib) Pengecam unik bagi ahliTitik akhir
DELETE /api/partners/members/{memberId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/members/{memberId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini ahli mengikut memberId
Mengemas kini rekod ahli sedia ada menggunakan memberId.
Parameter
memberId `string` (wajib) Pengecam unik bagi ahliBadan Permintaan
Titik akhir
PUT /api/partners/members/{memberId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/partners/members/{memberId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Dapatkan status operasi penyegerakan ahli
Mengembalikan keadaan semasa operasi cipta/padam ahli tak segerak yang dimulakan melalui POST /api/partners/members atau DELETE /api/partners/members/{memberId}. Bahagian hadapan meninjau titik akhir ini untuk menggantikan aliran tinjauan senarai + padanan nama yang lama. NOTA Skop partnerId/facilityId peringkat baris diwajibkan oleh peraturan pengasingan berbilang penyewa tetapi ditangguhkan ke PR pengukuhan Phase 3a.1 — operationIds ialah UUID 128-bit dan laluan ini sudah dihadkan oleh akses modul `external-integrations`. Sesiapa yang mempunyai operationId yang sah dan akses modul pentadbir boleh membuat pertanyaan tentang statusnya.
Parameter
operationId `string` (wajib) UUID yang dikembalikan daripada POST/DELETETitik akhir
GET /api/partners/members/operations/{operationId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/partners/members/operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta atau kemas kini ahli untuk kemudahan
Menerima tatasusunan objek ahli dan memajukannya ke Partner API untuk diproses. Maksimum 25 ahli setiap permintaan.
Badan Permintaan
Titik akhir
POST /api/partners/members
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/members \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Cipta atau kemas kini pelan keahlian untuk kemudahan
Menerima tatasusunan objek pelan keahlian dan memajukannya ke Partner API untuk diproses. Maksimum 25 pelan keahlian setiap permintaan.
Badan Permintaan
Titik akhir
POST /api/partners/membership-plans
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/partners/membership-plans \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Mencipta peranan baharu
Parameter
body `string` (wajib) Objek perananTitik akhir
POST /api/roles
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai semua peranan
Titik akhir
GET /api/roles
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Memadam peranan mengikut ID
Titik akhir
DELETE /api/roles/{roleId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini peranan mengikut ID
Parameter
body `string` (wajib) Objek perananTitik akhir
PUT /api/roles/{roleId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta item baris tambahan baharu untuk invois pengebilan SaaS
Parameter
organisationId `string` (pilihan) ID organisasi yang item baris tambahannya hendak dicipta body `string` (pilihan) Kandungan permintaanTitik akhir
POST /api/saas-billing/additional-line-items
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai item baris tambahan untuk invois pengebilan SaaS
Parameter
organisationId `string` (wajib) ID organisasiTitik akhir
GET /api/saas-billing/additional-line-items
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai item baris tambahan untuk invois pengebilan SaaS kemudahan
Titik akhir
GET /api/clubs/{clubId}/saas-billing/additional-line-items
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini item baris tambahan untuk invois pengebilan SaaS
Parameter
itemId `string` (wajib) ID item baris tambahan yang hendak dikemas kini body `string` (wajib) Kandungan permintaanTitik akhir
PUT /api/saas-billing/additional-line-items/{itemId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items/{itemId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kadar sejam Cloud Agent gabungan untuk Your Rates
Mengembalikan saiz Cloud Agent yang ditawarkan dengan satu harga sejam gabungan (pengehosan + perisian). Pecahannya tidak disertakan. usedPlans ialah SKU yang dijalankan oleh kemudahan ini dalam 30 hari yang lalu.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/cloud-agent-rates
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/cloud-agent-rates \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam laporan bulanan yang diimport
Parameter
club `string` (pilihan) ID Kelab reportId `string` (pilihan) ID laporanTitik akhir
DELETE /api/saas-billing/extended-access/monthly-usage-report/{reportId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{reportId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan laporan storan CCTV terkini untuk kemudahan
Mengembalikan syot kilat storan CCTV harian terkini untuk kemudahan daripada log pengebilan yang disimpan (sehingga 31 hari yang lalu). Merangkumi totalStorage, tarikh dan caj berkaitan storan.
Parameter
club `string` (wajib) ID KelabTitik akhir
GET /api/saas-billing/extended-access/latest-cctv-storage-report/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/latest-cctv-storage-report/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan invois PDF untuk kemudahan bagi tempoh yang diberikan.
Parameter
club `string` (pilihan) ID Kelab month `string` (pilihan) bulan laporan dalam format nombor. 1 = Januari, 2 = Februari dan seterusnya. year `string` (pilihan) tahun laporan dalam format nombor. cth. 2021Titik akhir
GET /api/saas-billing/extended-access/monthly-usage-report/:club/invoice
Contoh Permintaan
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"
Respons
{}
Himpunan PDF invois platform untuk bulan penggunaan yang dipilih, sebagai ZIP. Rakan pukal kepada titik akhir .../invoice tunggal — menggerakkan muat turun berbilang pilihan pada tab Invoices & Receipts dalam aplet Billing & Cost Management.
Parameter
club `string` (pilihan) ID Kelab months `string` (pilihan) Bulan penggunaan/laporan dipisahkan koma dalam format YYYY-MM (maksimum 24)Titik akhir
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/invoices.zip
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{club}/invoices.zip \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan laporan penggunaan bulanan untuk berbilang bulan penggunaan dalam satu panggilan. Menggerakkan carta Cost History dan perbezaan bulan ke bulan dalam aplet Billing & Cost Management. Bulan yang belum mempunyai penggunaan mengembalikan report: null (sepadan dengan 404 → UI $0 titik akhir bulan tunggal).
Parameter
club `string` (pilihan) ID Kelab months `string` (pilihan) Bulan penggunaan dipisahkan koma dalam format YYYY-MM (maksimum 12)Titik akhir
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/batch
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{club}/batch \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Import laporan bulanan untuk kemudahan.
Parameter
club `string` (pilihan) ID KelabTitik akhir
PUT /api/saas-billing/extended-access/usage-report/:club
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan laporan CSV Penggunaan CCTV untuk 30 hari yang lalu bagi semua kemudahan.
Titik akhir
GET /api/saas-billing/extended-access/usage-report/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan semua laporan harian bulan itu untuk kemudahan.
Parameter
club `string` (pilihan) ID Kelab month `string` (pilihan) bulan laporan dalam format nombor. 1 = Januari, 2 = Februari dan seterusnya. year `string` (pilihan) tahun laporan dalam format nombor. cth. 2021Titik akhir
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports
Contoh Permintaan
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"
Respons
{}
Mengembalikan senarai laporan bulanan yang diimport untuk pentadbir
Parameter
organisationId `string` (wajib) ID OrganisasiTitik akhir
GET /api/saas-billing/extended-access/usage-report/imported
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/imported \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan laporan CSV Penggunaan CCTV untuk 30 hari yang lalu bagi semua kemudahan.
Parameter
club `string` (pilihan) ID Kelab month `string` (pilihan) bulan laporan dalam format nombor. 1 = Januari, 2 = Februari dan seterusnya. year `string` (pilihan) tahun laporan dalam format nombor. cth. 2021Titik akhir
GET /api/saas-billing/extended-access/monthly-usage-report/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan laporan penggunaan berkala untuk kemudahan.
Parameter
club `string` (pilihan) ID Kelab periodStart `string` (pilihan) Permulaan tempoh dalam format YYYY-MM-DD periodEnd `string` (pilihan) Penghujung tempoh dalam format YYYY-MM-DDTitik akhir
GET /api/saas-billing/extended-access/periodical-usage-report/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/periodical-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Himpunan PDF dokumen pengebilan sebagai satu ZIP, menggabungkan jenis dokumen: invois platform (mengikut bulan penggunaan), resit tambah nilai dompet SaaS dan resit tambah nilai Model Router. Rakan pukal kepada titik akhir invoices.zip / receipts.zip mengikut jenis untuk tab Invoices & Receipts yang disatukan. Setiap bulan/ID yang diminta mesti merujuk kepada dokumen milik kemudahan — sebarang nilai yang salah menggagalkan keseluruhan himpunan.
Parameter
clubID `string` (wajib) invoiceMonths `string` (pilihan) Bulan penggunaan dipisahkan koma dalam format YYYY-MM walletIds `string` (pilihan) ID transaksi tambah nilai dompet SaaS dipisahkan koma aiIds `string` (pilihan) ID transaksi tambah nilai Model Router dipisahkan komaTitik akhir
GET /api/clubs/{clubID}/saas-billing/documents.zip
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/documents.zip \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tambah nota pada rekod bulanan
Parameter
recordID `string` (pilihan) ID rekod yang hendak diambil note `string` (pilihan) Nota untuk ditambah pada rekodTitik akhir
POST /api/saas-billing/monthly-records/{recordID}/notes
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID}/notes \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai rekod bulanan pengebilan SaaS
Parameter
club `string` (pilihan) ID kemudahan yang hendak diambil month `string` (pilihan) Bulan pengebilan dalam format YYYY-MMTitik akhir
GET /api/saas-billing/monthly-records/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai rekod bulanan pengebilan SaaS yang gagal atau memerlukan 3D Secure
Parameter
clubID `string` (pilihan) ID kemudahan yang rekod bulanan gagalnya hendak diambilTitik akhir
GET /api/clubs/:clubID/saas-billing/flagged
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/flagged \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan SEMUA rekod bulanan pengebilan SaaS (lejar invois) untuk kemudahan, bulan pengebilan terbaharu dahulu. Rakan berskop kemudahan kepada titik akhir paginate-monthly-records khusus pentadbir — menggerakkan tab "Invoices & Receipts" pelanggan dalam aplet Billing & Cost Management.
Parameter
clubID `string` (pilihan) ID kemudahan yang rekod bulanannya hendak disenaraikanTitik akhir
GET /api/clubs/{clubID}/saas-billing/monthly-records
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai rekod bulanan pengebilan SaaS
Parameter
organisationId `string` (pilihan) ID Organisasi month `string` (pilihan) Bulan dalam format MM. year `string` (pilihan) Tahun dalam format YYYY. filters `string` (pilihan) Penapis rentetan pertanyaan yang dicipta oleh Datatable. order `string` (pilihan) Rentetan pertanyaan yang dicipta oleh Datatable.Titik akhir
GET /api/saas-billing/monthly-records
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cuba semula pembayaran yang gagal untuk kemudahan
Parameter
clubID `string` (pilihan) ID kemudahan yang rekod bulanan gagalnya hendak diambilTitik akhir
PUT /api/clubs/:clubID/saas-billing/retry-failed-payments
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/retry-failed-payments \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini rekod bulanan
Parameter
recordID `string` (pilihan) ID rekod yang hendak diambil status `string` (pilihan) Status untuk dikemas kini pada rekodTitik akhir
PUT /api/saas-billing/monthly-records/{recordID}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyemak sama ada pembayaran telah berjaya dan mengemas kini status rekod
Parameter
clubID `string` (pilihan) recordID `string` (pilihan) ID rekod yang hendak diambilTitik akhir
PUT /api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tambah kaedah pembayaran untuk kemudahan.
Parameter
clubID `string` (pilihan)Titik akhir
POST /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyegerakkan kaedah pembayaran untuk kemudahan dengan Stripe.
Parameter
clubID `string` (pilihan)Titik akhir
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan belanjawan perbelanjaan kemudahan serta MTD/ramalan yang dikira.
Parameter
clubID `string` (pilihan)Titik akhir
GET /api/clubs/{clubID}/saas-billing/budget
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta/kemas kini/kosongkan belanjawan perbelanjaan kemudahan.
Parameter
clubID `string` (pilihan) body `object` (pilihan)Titik akhir
PUT /api/clubs/{clubID}/saas-billing/budget
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Padam kaedah pembayaran daripada tetapan pembayaran kemudahan.
Parameter
clubID `string` (pilihan) paymentMethodID `string` (pilihan)Titik akhir
DELETE /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}
Contoh Permintaan
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"
Respons
{}
Dapatkan tetapan pembayaran untuk kemudahan.
Parameter
clubID `string` (pilihan)Titik akhir
GET /api/clubs/{clubID}/saas-billing/payment-settings
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini tetapan pembayaran kemudahan.
Parameter
clubID `string` (pilihan) lockedOut `boolean` (pilihan) Sama ada kemudahan akan dikunci daripada sistem. pauseBilling `boolean` (pilihan) Sama ada pengebilan automatik untuk kemudahan akan dijeda. customerID `string` (pilihan) Menambah ini akan mengemas kini ID pelanggan Stripe untuk kemudahan. deleteSourceID `string` (pilihan) Sama ada untuk memadam pelanggan sumber daripada Stripe.Titik akhir
PUT /api/clubs/{clubID}/saas-billing/payment-settings
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan bulan terawal yang dibilkan untuk semua kemudahan.
Parameter
clubID `string` (pilihan)Titik akhir
GET /api/saas-billing/payment-settings/earliest-billed-month
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/earliest-billed-month \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan akaun yang boleh mengosongkan sekatan pengebilan untuk kemudahan, mengikut peringkat: pengguna yang memegang modul pengebilan dahulu, pentadbir organisasi hanya sebagai sandaran apabila tiada sesiapa yang memegangnya.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/lockout-contacts
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/lockout-contacts \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyemak semua kemudahan dalam sistem mengikut halaman dan mengembalikan ID pelanggan bagi setiap kemudahan.
Parameter
clubID `string` (pilihan) organisationId `string` (pilihan) ID OrganisasiTitik akhir
GET /api/saas-billing/payment-settings/customer-ids
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/customer-ids \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tetapkan kaedah pembayaran utama untuk kemudahan.
Parameter
clubID `string` (pilihan)Titik akhir
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary
Contoh Permintaan
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"
Respons
{}
Kemas kini profil pengebilan untuk kemudahan.
Parameter
clubID `string` (pilihan) invoiceEntity `string` (pilihan) billingContacts `string` (pilihan) Senarai UUID kenalan KYC ccEmails `string` (pilihan) Senarai e-mel untuk disalin (cc) pada invoisTitik akhir
PUT /api/clubs/{clubID}/saas-billing/payment-settings/billing-profile
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/billing-profile \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini kaedah pembayaran untuk kemudahan.
Parameter
clubID `string` (pilihan) cardID `string` (pilihan)Titik akhir
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID}
Contoh Permintaan
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"
Respons
{}
Mengembalikan pecahan setiap kemudahan bagi semua caj produk yang berkenaan dan item baris tambahan untuk eksport CSV. Menentukan hierarki penggantian global/kawasan/kemudahan bagi setiap kemudahan yang boleh diakses oleh pengguna.
Parameter
organisationId `string` (wajib) ID organisasi untuk ACLTitik akhir
GET /api/saas-billing/charges-config/export
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/export \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan konfigurasi caj bagi sasaran tertentu
Parameter
clubId `string` (pilihan) ID kemudahan yang konfigurasi cajnya hendak diambilTitik akhir
GET /api/saas-billing/charges-config/{clubId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ringkasan pengebilan organisasi untuk organisasi kemudahan ini — skop pembayar berkesan, sebarang perubahan penyatuan yang dijadualkan, dan sama ada pemanggil boleh mengurus togol penyatuan.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/org/summary
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/summary \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Rekod bulanan organisasi yang disatukan (penyata) dengan pecahan setiap kemudahan, terbaharu dahulu. Kosong sehingga bulan disatukan pertama organisasi diselesaikan.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/org/monthly-records
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Ringkasan dompet prabayar — baki, debit penggunaan bulan hingga kini, konfigurasi tambah nilai automatik, kaedah pengebilan.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/wallet
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Lejar dompet, terbaharu dahulu. Dompet berskop organisasi merangkumi baris semua kemudahan (setiap satu membawa clubID asalnya).
Parameter
clubID `string` (wajib) limit `string` (pilihan) types `string` (pilihan) jenis transaksi dipisahkan koma from `string` (pilihan) to `string` (pilihan) cursor `string` (pilihan) nextCursor daripada halaman sebelumnyaTitik akhir
GET /api/clubs/{clubID}/saas-billing/wallet/transactions
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Resit PDF berjenama untuk satu transaksi dompet (tambah nilai dan kredit).
Parameter
clubID `string` (wajib) txId `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/{txId}/receipt.pdf
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions/{txId}/receipt.pdf \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Himpunan resit PDF berjenama untuk transaksi tambah nilai dompet yang dipilih, sebagai ZIP. Setiap ID mesti merupakan tambah nilai (kad atau invois) milik dompet kemudahan ini — debit penggunaan dan pelarasan tidak mempunyai resit dan akan ditolak.
Parameter
clubID `string` (wajib) ids `string` (wajib) ID transaksi yang dipisahkan dengan koma (maks 50)Titik akhir
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Caj kad pengebilan SaaS yang disimpan untuk menambah baki prabayar. Mengembalikan requires_action + clientSecret apabila 3DS diperlukan.
Parameter
clubID `string` (wajib) body `object` (pilihan)Titik akhir
POST /api/clubs/{clubID}/saas-billing/wallet/topup
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Muktamadkan tambah nilai dompet selepas aplet melengkapkan pengesahan 3DS. Idempoten.
Parameter
clubID `string` (wajib)Titik akhir
POST /api/clubs/{clubID}/saas-billing/wallet/topup/confirm
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini peraturan tambah nilai automatik kemudahan (disimpan pada baris penggantian profil pengebilannya).
Parameter
clubID `string` (wajib) body `object` (pilihan)Titik akhir
PATCH /api/clubs/{clubID}/saas-billing/wallet/auto-topup
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/auto-topup \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Invois tambah nilai untuk dompet kemudahan ini (kaedah pembayaran invois), terbaharu dahulu.
Parameter
clubID `string` (wajib)Titik akhir
GET /api/clubs/{clubID}/saas-billing/wallet/invoices
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/invoices \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Minta invois tambah nilai bayar melalui rujukan (kaedah pembayaran invois sahaja). Paling banyak satu invois belum selesai bagi setiap dompet — permintaan kedua mengembalikan invois sedia ada dengan alreadyPending=true.
Parameter
clubID `string` (wajib) body `string` (pilihan) { amountCents: number }Titik akhir
POST /api/clubs/{clubID}/saas-billing/wallet/topup-invoice
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup-invoice \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai pesanan untuk kemudahan.
Parameter
facilityID `string` (pilihan)Titik akhir
GET /api/store/facilities/:facilityID/orders
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/store/facilities/:facilityID/orders \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan senarai produk yang tersedia untuk kemudahan.
Parameter
clubID `string` (wajib) search `string` (pilihan) limit `string` (pilihan) page `string` (pilihan) Nombor halaman untuk penomboran halaman (bermula pada 1).Titik akhir
GET /api/store/clubs/{clubID}/products
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/store/clubs/{clubID}/products \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan rekod Stripe kemudahan.
Parameter
club `string` (wajib) fromDate `string` (pilihan) Cap masa Unix toDate `string` (pilihan) Cap masa Unix socketID `string` (wajib) Pengecam unik untuk permintaan soketTitik akhir
GET /api/club/{club}/stripe/records
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/records \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Batalkan niat pembayaran
Parameter
club `string` (wajib) paymentIntent `string` (pilihan)Titik akhir
GET /api/club/{club}/stripe/payment-intent/:paymentIntent/cancel
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intent/:paymentIntent/cancel \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta Stripe Account Session untuk komponen terbenam
Mencipta Stripe Account Session untuk akaun bersambung. Mengembalikan client_secret yang digunakan untuk memulakan komponen terbenam Connect (pertikaian, pembayaran keluar, pengurusan akaun, dokumen).
Badan Permintaan
Titik akhir
POST /api/stripe/account-session
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/stripe/account-session \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Menjana pautan sekali guna untuk halaman KYC Stripe bagi akaun bersambung.
Parameter
club `string` (wajib)Titik akhir
GET /api/club/{club}/stripe/generate-kyc-token
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/generate-kyc-token \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan butiran akaun untuk akaun bersambung Stripe sebagai sebahagian daripada proses KYC.
Parameter
club `string` (wajib)Titik akhir
GET /api/club/{club}/stripe/connect-account-details
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/connect-account-details \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengembalikan semua sejarah tiket berdasarkan ID kemudahan
Parameter
club `string` (wajib) ID dalaman kelab yang ingin Anda akses.Titik akhir
GET /api/ticketing/clubtickets/{club}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/clubtickets/{club} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan jabatan
Titik akhir
GET /api/ticketing/departments
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/departments \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan butiran satu tiket
Parameter
user `string` (wajib) e-mel pengguna. ticketNumber `string` (wajib) ID 6 digit tiket yang ingin anda akses. club `string` (wajib) ID kemudahan yang dipilih.Titik akhir
GET /api/ticketing/ticket-details/:ticketNumber/:club
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/ticket-details/:ticketNumber/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan topik
Titik akhir
GET /api/ticketing/topics
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/topics \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan semua tiket yang dicipta oleh pengguna yang sedang log masuk - Ambil perhatian bahawa ini ditetapkan daripada pengepala yang diberikan oleh perkhidmatan SSO Google kami.
Parameter
user `string` (wajib) E-mel pengguna yang sedang log masukTitik akhir
GET /api/ticketing/usertickets
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/usertickets \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta tiket baharu
Parameter
club `string` (wajib) ID kemudahan yang dipilih.Titik akhir
POST /api/ticketing/clubticket/:club
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/clubticket/:club \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta tiket baharu
Parameter
subject `string` (wajib) Subjek tiket. message `string` (wajib) Mesej penuh tiket.Titik akhir
POST /api/ticketing/userticket
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/userticket \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta balasan kepada tiket sedia ada
Parameter
subject `string` (wajib) Subjek tiket. message `string` (wajib) Mesej penuh tiket.Titik akhir
POST /api/ticketing/user-reply
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/user-reply \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mendapatkan keutamaan pengguna
Titik akhir
GET /api/user-preferences
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mengemas kini keutamaan pengguna
Parameter
body `string` (wajib)Titik akhir
PUT /api/user-preferences
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Tukar kata laluan pengguna
Menukar kata laluan pengguna. Memerlukan pengesahan OTP jika pengguna mempunyai nombor telefon, atau memerlukan nombor telefon ditambah jika tiada.
Badan Permintaan
Titik akhir
POST /api/user/change-password
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/change-password \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Semak status 2FA pengguna
Mengembalikan sama ada 2FA didayakan untuk pengguna dan sama ada mana-mana peranan mereka mewajibkan 2FA
Titik akhir
GET /api/user/check-2fa-status
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/user/check-2fa-status \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan organisasi, kemudahan dan kawasan yang boleh diakses oleh pengguna bagi modul tertentu.
Parameter
moduleId `string` (wajib)Titik akhir
POST /api/user/me/modules/{moduleId}/org-access
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/me/modules/{moduleId}/org-access \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Mencipta 'Permintaan Pautan' daripada pengguna akhir, yang meminta untuk 'Menyertai' kemudahan.
Parameter
body `string` (wajib) Objek Json kelab baharu untuk ditambah ke sistem.Titik akhir
POST /api/user/linkclub
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/linkclub \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Menyenaraikan semua kemudahan yang dibenarkan untuk pengguna.
Titik akhir
GET /api/user/listauthorised
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/user/listauthorised \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Hantar OTP dwisaluran (e-mel + SMS)
Menghantar kod OTP ke alamat e-mel pengguna dan nombor telefon yang ditentukan. Digunakan untuk operasi keselamatan tinggi seperti pengesahan nombor telefon kali pertama. Titik akhir ini hanya menghantar OTP dan tidak mengubah suai sebarang data pengguna.
Badan Permintaan
Titik akhir
POST /api/user/send-dual-otp
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/send-dual-otp \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Hantar OTP ke nombor telefon atau e-mel
Menghantar kod OTP ke nombor telefon (SMS) atau alamat e-mel pengguna untuk pengesahan
Badan Permintaan
Titik akhir
POST /api/user/send-otp
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/send-otp \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Semak sama ada pengguna mempunyai akses halaman sensitif yang sah
Mengembalikan sama ada pengguna mempunyai sesi yang disahkan OTP yang sah untuk mengakses halaman sensitif
Titik akhir
GET /api/user/sensitive-page-access
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/user/sensitive-page-access \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Sahkan OTP dan berikan akses halaman sensitif
Mengesahkan kod OTP dan memberikan akses 1 jam ke halaman sensitif jika sah
Badan Permintaan
Titik akhir
POST /api/user/sensitive-page-access/verify
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/sensitive-page-access/verify \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Batalkan akses halaman sensitif (log keluar daripada halaman sensitif)
Membatalkan sesi akses halaman sensitif semasa pengguna
Titik akhir
POST /api/user/sensitive-page-access/revoke
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/sensitive-page-access/revoke \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan atau nyahdayakan 2FA
Mendayakan atau menyahdayakan pengesahan dua faktor untuk pengguna. Memerlukan nombor telefon dan pengesahan OTP.
Badan Permintaan
Titik akhir
POST /api/user/toggle-2fa
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/user/toggle-2fa \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemas kini profil sendiri pengguna
Membolehkan pengguna mengemas kini maklumat profil mereka sendiri (nama pertama, nama akhir, nombor telefon). Apabila menambah nombor telefon buat kali pertama, pengesahan OTP dwisaluran diperlukan (kedua-dua kod e-mel dan SMS). Apabila menukar nombor telefon sedia ada, hanya OTP e-mel diperlukan.
Badan Permintaan
Titik akhir
PATCH /api/user/update-profile
Contoh Permintaan
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 '{}'
Respons
{}
Dapatkan ikon berdasarkan URL.
Titik akhir
GET /api/website-icon
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/website-icon \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan templat entri peti kata laluan
Parameter
organisationId `string` (pilihan) Konteks organisasi untuk semakan akses modulTitik akhir
GET /api/vault/templates
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/vault/templates \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan entri peti kata laluan yang kelihatan
Parameter
organisationId `string` (wajib) scope `string` (pilihan)Titik akhir
GET /api/vault/entries
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta entri peti kata laluan
Titik akhir
POST /api/vault/entries
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Dapatkan entri peti kata laluan tanpa mendedahkan nilai rahsia
Parameter
entryId `string` (wajib) organisationId `string` (wajib)Titik akhir
GET /api/vault/entries/{entryId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Kemas kini entri peti kata laluan
Titik akhir
PUT /api/vault/entries/{entryId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam entri peti kata laluan
Titik akhir
DELETE /api/vault/entries/{entryId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dedahkan medan tersembunyi atau rahsia yang dipilih
Titik akhir
POST /api/vault/entries/{entryId}/reveal
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries/{entryId}/reveal \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan ringkasan folder peti kata laluan
Titik akhir
GET /api/vault/folders
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/vault/folders \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan entri dengan kod pengesah
Titik akhir
GET /api/vault/authenticator
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/vault/authenticator \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan jenis nod workflow yang didaftarkan
Titik akhir
GET /api/workflow-engine/node-types
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/node-types \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan unjuran waktu kemudahan yang digunakan oleh blok workflow
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/facility-hours/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-hours/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pratonton pengirim e-mel workflow berjenama kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/email-branding/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/email-branding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan sumber kemudahan untuk konfigurasi pencetus
Parameter
facilityId `string` (wajib) resourceType `string` (wajib)Titik akhir
GET /api/workflow-engine/resources/{facilityId}/{resourceType}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/resources/{facilityId}/{resourceType} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan workflow untuk kemudahan
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/workflows/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta draf workflow daripada graf yang tidak kosong
Editor menyimpan workflow baharu secara setempat sehingga ia mempunyai sekurang-kurangnya satu blok, jadi simpanan pertama menciptanya bersama grafnya dalam satu panggilan. Kandungan tanpa `nodes` ditolak dan bukannya disimpan.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan bukti kelayakan yang boleh digunakan oleh workflow kemudahan
Mengembalikan bukti kelayakan kemudahan itu sendiri serta yang dikongsi di peringkat jenama atau organisasinya. Rahsia tidak pernah dikembalikan; `hasValue` hanya melaporkan bahawa rahsia telah disimpan.
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/credentials/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta bukti kelayakan workflow
Tahap skop datang daripada `scopeType`; ID jenama dan organisasi ditentukan daripada kemudahan dan bukannya diterima daripada pemanggil.
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/credentials/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Tetapan workflow seluruh kemudahan (penerima pemberitahuan kegagalan)
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/facility-settings/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-settings/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Simpan penerima pemberitahuan kegagalan seluruh kemudahan
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/workflow-engine/facility-settings/{facilityId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/facility-settings/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Gantikan bukti kelayakan workflow
`secret` yang kosong mengekalkan rahsia yang disimpan, jadi bukti kelayakan boleh dinamakan semula tanpa memasukkannya semula. Tiada cara untuk membaca semula rahsia.
Parameter
facilityId `string` (wajib) credentialId `string` (wajib)Titik akhir
PUT /api/workflow-engine/credentials/{facilityId}/{credentialId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam bukti kelayakan workflow
Nod yang merujuknya akan gagal secara tertutup pada panggilan seterusnya, termasuk dalam workflow yang telah diterbitkan, kerana syot kilat hanya menyimpan rujukan.
Parameter
facilityId `string` (wajib) credentialId `string` (wajib)Titik akhir
DELETE /api/workflow-engine/credentials/{facilityId}/{credentialId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
Dapatkan URL webhook pencetus workflow
Parameter
facilityId `string` (wajib) workflowId `string` (wajib) nodeId `string` (wajib)Titik akhir
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Putar URL webhook pencetus workflow
Serta-merta membatalkan URL sebelumnya.
Parameter
facilityId `string` (wajib) workflowId `string` (wajib) nodeId `string` (wajib)Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook/rotate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook/rotate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dapatkan workflow mengikut ID
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Titik akhir
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta atau kemas kini draf workflow
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
PUT /api/workflow-engine/workflows/{facilityId}/{workflowId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Kemas kini nama dan/atau perihalan workflow
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Padam workflow dan versinya
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Titik akhir
DELETE /api/workflow-engine/workflows/{facilityId}/{workflowId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pendua workflow ke dalam draf baharu yang tidak aktif
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Terbitkan draf semasa (syot kilat versi yang tidak boleh diubah)
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/publish
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/publish \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Tetapkan semula draf kepada versi terakhir yang diterbitkan
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/discard
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/discard \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Dayakan atau nyahdayakan workflow
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}/active
Contoh Permintaan
curl -X PATCH https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/active \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Jana atau semak semula graf workflow dengan AI
Parameter
facilityId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/generate/{facilityId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/generate/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan model yang boleh digunakan oleh nod Agent untuk kemudahan ini
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/agent-models/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-models/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan alat MCP yang boleh dilampirkan oleh nod Agent untuk kemudahan ini
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/agent-tools/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-tools/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari perbualan Agent yang disimpan bagi kemudahan ini (pengikatan Conversation key)
Parameter
facilityId `string` (wajib) deviceId `string` (pilihan) Hadkan kepada perbualan satu peranti Agent (deviceId yang dikonfigurasikan pada nod) q `string` (pilihan) Padanan subrentetan tidak sensitif huruf besar/kecil pada Conversation key, ID sesi atau nama peranti limit `integer` (pilihan) offset `integer` (pilihan)Titik akhir
GET /api/workflow-engine/agent-conversations/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-conversations/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari perbualan yang disimpan pada peranti Agent kemudahan itu sendiri
Menyenaraikan sesi peranti itu sendiri (perbualan bar sisi UI Agent) supaya workflow boleh meneruskan perbualan sedia ada bersama konteksnya. Peranti memiliki sejarahnya; apabila kemudahan mempunyai beberapa peranti, `deviceId` memilih peranti yang mana (peranti yang dikonfigurasikan pada nod). Peranti tidak dapat dicapai → 502.
Parameter
facilityId `string` (wajib) deviceId `string` (pilihan) Peranti Agent yang dikonfigurasikan pada nod; abaikan untuk menentukan satu-satunya peranti kemudahan q `string` (pilihan) Padanan subrentetan tidak sensitif huruf besar/kecil pada tajuk atau ID sesi limit `integer` (pilihan) offset `integer` (pilihan)Titik akhir
GET /api/workflow-engine/agent-device-sessions/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-device-sessions/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari papan pada kanban peranti Agent kemudahan
Membekalkan pemilih Board ID blok Agent: Kanban. Padanan subrentetan tidak sensitif huruf besar/kecil pada nama atau slug papan; `current` ialah slug papan aktif peranti supaya pemilih tugasan boleh menetapkan skop lalainya. Apabila kemudahan mempunyai beberapa peranti, `deviceId` memilih peranti yang mana. Peranti tidak dapat dicapai → 502.
Parameter
facilityId `string` (wajib) deviceId `string` (pilihan) Peranti Agent yang dikonfigurasikan pada nod; abaikan untuk menentukan satu-satunya peranti kemudahan q `string` (pilihan) Padanan subrentetan tidak sensitif huruf besar/kecil pada nama atau slug papan limit `integer` (pilihan) offset `integer` (pilihan)Titik akhir
GET /api/workflow-engine/kanban-boards/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-boards/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cari tugasan satu papan pada kanban peranti Agent kemudahan
Membekalkan pemilih Task ID blok Agent: Kanban. Padanan subrentetan tidak sensitif huruf besar/kecil pada ID, tajuk atau kandungan tugasan; tugasan disimpan mengikut papan (peranti tiada carian merentas papan), jadi `board` menetapkan skop pengambilan — abaikan untuk papan aktif peranti. Peranti tidak dapat dicapai → 502.
Parameter
facilityId `string` (wajib) deviceId `string` (pilihan) Peranti Agent yang dikonfigurasikan pada nod; abaikan untuk menentukan satu-satunya peranti kemudahan board `string` (pilihan) Slug papan untuk disenaraikan; abaikan untuk papan aktif peranti q `string` (pilihan) Padanan subrentetan tidak sensitif huruf besar/kecil pada ID, tajuk atau kandungan tugasan limit `integer` (pilihan) offset `integer` (pilihan)Titik akhir
GET /api/workflow-engine/kanban-tasks/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-tasks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan templat workflow pilihan, ditapis untuk kemudahan ini
Parameter
facilityId `string` (wajib)Titik akhir
GET /api/workflow-engine/templates/{facilityId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Jadikan templat sebagai serpihan graf untuk draf yang dibuka
Parameter
facilityId `string` (wajib) templateId `string` (wajib)Titik akhir
POST /api/workflow-engine/templates/{facilityId}/{templateId}
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId}/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Konteks pemilih skop untuk halaman pentadbir templat (peringkat pentadbir)
Titik akhir
GET /api/workflow-engine/template-admin/context
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/context \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Senaraikan templat yang boleh ditadbir oleh pemanggil, bersama bendera kebenaran
Titik akhir
GET /api/workflow-engine/template-admin
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Cipta templat (peringkat pentadbir)
Badan Permintaan
Titik akhir
POST /api/workflow-engine/template-admin
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/template-admin \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Butiran templat termasuk graf, untuk editor pentadbir
Titik akhir
GET /api/workflow-engine/template-admin/{templateId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Gantikan templat (organisasi pemilik)
Titik akhir
PUT /api/workflow-engine/template-admin/{templateId}
Contoh Permintaan
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Padam lembut templat (organisasi pemilik)
Titik akhir
DELETE /api/workflow-engine/template-admin/{templateId}
Contoh Permintaan
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Pendua templat yang kelihatan ke dalam skop sasaran yang boleh digunakan oleh pemanggil
Badan Permintaan
Titik akhir
POST /api/workflow-engine/template-admin/{templateId}/duplicate
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId}/duplicate \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Jalankan graf workflow yang diterbitkan daripada pencetus manual
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/run
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/run \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Uji draf yang disimpan tanpa menerbitkannya
Melaksanakan graf draf semasa dan merekodkan hasilnya dengan `mode: test` dan tanpa `versionId`. Penerbitan, bendera langsung dan `publishedVersionId` tidak pernah disentuh. Kesan sampingan disimulasikan secara lalai; `sideEffects: live` juga memerlukan `confirmLiveSideEffects: true`.
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/test \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Uji satu nod workflow dalam senarai yang dibenarkan
Melaksanakan satu nod yang boleh diuji secara bebas daripada draf yang disimpan. Nilai pemboleh ubah boleh dibekalkan daripada langkah larian yang direkodkan. Kaedah HTTP yang mengubah data memerlukan pengesahan yang jelas.
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test-node
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/test-node \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Senaraikan larian terkini untuk workflow
Parameter
facilityId `string` (wajib) workflowId `string` (wajib)Titik akhir
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Baca satu larian (status + langkah mengikut urutan)
Parameter
facilityId `string` (wajib) workflowId `string` (wajib) executionId `string` (wajib)Titik akhir
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Batalkan Delay belum selesai yang sedang ditunggu oleh larian
Parameter
facilityId `string` (wajib) workflowId `string` (wajib) executionId `string` (wajib)Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Main semula larian yang telah selesai daripada muatan pencetus yang direkodkan
`mode: published` melaksanakan semula versi tepat yang disematkan pada larian asal, dengan kesan sampingan sebenar. `mode: draft-test` melaksanakan semula draf semasa sebagai ujian simulasi. Larian yang muatan pencetusnya dipangkas semasa ditulis tidak boleh dimainkan semula.
Parameter
facilityId `string` (wajib) workflowId `string` (wajib) executionId `string` (wajib)Badan Permintaan
Titik akhir
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/retry
Contoh Permintaan
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/retry \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Respons
{}
Carian berindeks bagi workflow yang mengandungi jenis nod
Parameter
nodeType `string` (wajib) facilityId `string` (pilihan) organisationId `string` (pilihan)Titik akhir
GET /api/workflow-engine/master-view/{nodeType}
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/master-view/{nodeType} \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Proksi ubah hala OAuth label putih (Connected Apps)
302 awam tanpa pengesahan yang memajukan panggilan balik penyedia OAuth ke panggilan balik pengesahan platform alat huluan, sambil mengekalkan rentetan pertanyaan. Membolehkan aplikasi OAuth milik PH mendaftarkan URI ubah hala performancehub.co supaya domain vendor huluan tidak pernah muncul dalam bar alamat (diperlukan untuk projek aplikasi OAuth tersuai pada masa hadapan; tidak memudaratkan di bawah pengesahan terurus).
Titik akhir
GET /guest/connected-apps/oauth-callback
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/oauth-callback \
-H "x-api-key: YOUR_API_KEY"
Halaman penamat rantaian sambungan (Connected Apps)
Halaman pendaratan ringan "anda boleh menutup tetingkap ini" untuk tab OAuth tempat rantaian sambungan dijalankan. Menghantar hasil (suite/toolkit yang disambungkan + ID akaun baharu, atau toolkit yang gagal) kembali ke tab pasaran melalui window.opener.postMessage asal yang sama; apabila pembuka telah terputus, ia beralih kepada pautan dalam ke aplet ph-ai-agent yang menghasilkan semula halaman pendaratan dalam aplikasi. Bermaklumat semata-mata — tidak menyimpan rahsia dan tidak melakukan sebarang penulisan.
Parameter
connected `string` (pilihan) ID suite atau slug toolkit yang telah selesai disambungkan (kes berjaya). accounts `string` (pilihan) ID akaun bersambung dipisahkan koma yang dicipta oleh rantaian. connectError `string` (pilihan) Slug toolkit yang langkahnya gagal (kes gagal).Titik akhir
GET /guest/connected-apps/finish
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/finish \
-H "x-api-key: YOUR_API_KEY"
Respons
{}
Panggilan balik rantaian sambungan suite (Connected Apps)
Lompatan panggilan balik OAuth untuk aliran sambungan suite satu klik. JWT keadaan yang ditandatangani (HS256, TTL 30 minit) mengekod { clubID, deviceId, suite, toolkits, step, caids } — akaun bersambung ke satu peranti ejen tersebut, dan caids mengumpulkan ID akaun yang dicipta oleh setiap lompatan (ubah hala aplet terakhir membawanya supaya pasaran boleh menawarkan untuk melabel akaun baharu). Menandakan toolkit langkah itu sebagai bersambung, kemudian 302 ke Connect Link toolkit seterusnya — atau ke halaman aplet ph-ai-agent (dipaut dalam ke ejen) apabila suite selesai. Sambungan toolkit tunggal dijalankan melalui pengendali yang sama dengan suite satu toolkit.
Parameter
state `string` (wajib) JWT keadaan rantaian sambungan yang ditandatangani.Titik akhir
GET /guest/connected-apps/connect-next
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/connect-next \
-H "x-api-key: YOUR_API_KEY"
Cetuskan e-mel persediaan kata laluan
Mengesahkan pautan yang ditandatangani daripada e-mel alu-aluan, mencetuskan e-mel tetapan semula kata laluan dan memaparkan halaman pengesahan. Tiada pengesahan diperlukan.
Parameter
email `string` (wajib) Alamat e-mel pengguna sig `string` (wajib) Tandatangan HMAC untuk e-melTitik akhir
GET /guest/setup-password
Contoh Permintaan
curl -X GET https://portal.hub.gymsystems.co/guest/setup-password \
-H "x-api-key: YOUR_API_KEY"
Respons
{}