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 kini

Titik 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 kini

Titik 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// — sembang/terminal ejen tidak sekali-kali boleh dicapai dengannya. Penonton memerlukan modul custom-apps di kemudahan yang diliputi oleh audiens aplikasi; mereka TIDAK memerlukan modul ph-ai-agent atau akses ejen bagi setiap peranti.

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

{}

Eksport kemahiran berperingkat pada Ejen AI kemudahan (pemilih kongsi)

Memproksi senarai eksport berperingkat bridge peranti (GET /__skills/exports) melalui terowong untuk pemilih "Share a skill" applet. Eksport disediakan oleh pemeriksaan keselamatan/kemudahalihan ph-skill-sharing pada peranti; setiap entri membawa hasil imbasan di sisi peranti. Memerlukan modul ph-ai-agent DAN akses 'open' bagi setiap peranti (syarat yang sama seperti penerbitan itu sendiri).

Parameter

club `string` (wajib) device `string` (wajib)

Titik akhir

GET /api/agent-skills/exports/{club}/{device}

Contoh Permintaan

curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/exports/{club}/{device} \
  -H "x-api-key: YOUR_API_KEY"

Respons

{}

Terbitkan eksport kemahiran berperingkat sebagai kemahiran kongsi BAHARU (versi draf)

Menarik tarball eksport berperingkat yang dinamakan daripada bridge peranti melalui terowong, mengekstraknya dalam memori (traversal laluan/symlink/saiz berlebihan ditolak), menjalankan imbasan keselamatan deterministik di sisi awan, membina manifest daripada frontmatter SKILL.md, menyimpan tarball secara beralamat kandungan dalam baldi kemahiran peribadi dan mencipta kepala kemahiran + versi DRAF. Sekatan imbasan TIDAK menyimpan apa-apa dan memulangkan dapatan. Audiens dihadkan oleh skop peranan penerbit sendiri. Serahkan draf (POST submit) untuk menerbitkannya.

Parameter

club `string` (wajib)

Badan Permintaan

Titik akhir

POST /api/agent-skills/publish/{club}

Contoh Permintaan

curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/publish/{club} \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Respons

{}

Terbitkan eksport berperingkat sebagai VERSI BAHARU kemahiran kongsi sedia ada

Saluran paip yang sama seperti penerbitan, terhadap kemahiran sedia ada: nama SKILL.md eksport mesti sepadan dengan kemahiran, versi mesti baharu (versi tidak boleh diubah) dan log perubahan diperlukan. Hanya penerbit boleh menambah versi. Sekatan imbasan menyimpan baris versi berstatus 'rejected' (laporan sahaja, tiada artifak) supaya dapatan dipaparkan dalam sejarah penerbit.

Parameter

club `string` (wajib)

Badan Permintaan

Titik akhir

POST /api/agent-skills/new-version/{club}

Contoh Permintaan

curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/new-version/{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

{}

Nyahsenarai kemahiran kongsi (mengalih keluarnya daripada pustaka)

Penerbit sahaja. Kemahiran hilang daripada pustaka dan menolak pemasangan baharu serta-merta; pemasangan SEDIA ADA terus berfungsi — penyahsenaraian ialah tindakan penyenaraian, bukan suis pemati.

Parameter

club `string` (wajib)

Badan Permintaan

Titik akhir

POST /api/agent-skills/delist/{club}

Contoh Permintaan

curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/delist/{club} \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Respons

{}

Sunting penyenaraian kemahiran kongsi (nama paparan, perihalan, ikon)

Penerbit sahaja. Medan persembahan sahaja — nama kanonik kemahiran ialah identitinya (manifest, direktori pemasangan, pemadanan versi) dan tidak pernah berubah. Rentetan kosong mengosongkan medan kembali kepada null (kembali kepada nama kanonik / tiada ikon). Ikon menggunakan katalog MDI (mdi:icon-name), format yang sama seperti aplikasi ejen yang diterbitkan.

Parameter

club `string` (wajib)

Badan Permintaan

Titik akhir

POST /api/agent-skills/update-listing/{club}

Contoh Permintaan

curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/update-listing/{club} \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Respons

{}

Pindahkan pemilikan kemahiran kongsi

Mencerminkan aliran pemindahan published-apps: penerbit semasa atau pemilik akaun (modul billing) boleh menyerahkan kemahiran kepada pengguna lain, yang kemudiannya mengurus versi dan penyenaraiannya. Pemilik baharu mesti mempunyai akses kemudahan di kelab asal kemahiran.

Parameter

club `string` (wajib)

Badan Permintaan

Titik akhir

POST /api/agent-skills/transfer-owner/{club}

Contoh Permintaan

curl -X POST https://portal.hub.gymsystems.co/api/agent-skills/transfer-owner/{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/kemudahan

Titik 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 peranti

Titik 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 peranti

Titik 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 pemindahan

Titik 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

{}

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

{}

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 diimbas

Titik 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 Unifinya

Titik 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 seterusnya

Titik 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 wajah

Titik 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

{}

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 Kemudahan

Titik 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

{}

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 orang

Titik 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 CCTV

Titik 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 kemudahan

Badan 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 kemudahan

Badan 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..textGated` mengira calon yang sepadan dengan gambar tetapi tidak dengan perkataan, jadi halaman kosong boleh dijelaskan sebagai "buang perkataan" dan bukannya "cuba gambar lain". Carian berbenih tanpa perkataan tidak memuatkan pengekod, jadi ia tidak pernah menanggung permulaan sejuk; menambah perkataan menghilangkan kelebihan itu. Walau bagaimanapun, ia mencari setiap indeks secara lalai: vektor potongan, rakaman dan timelapse berkongsi satu ruang, jadi potongan orang boleh menemui rakaman yang sepadan. Skor berbenih jauh lebih tinggi daripada skor teks (imej-ke-imej tidak merentas jurang modaliti) dan ditapis oleh lantai berasingan yang belum ditentukur — `result.queryKind` memberitahu skala yang sedang Anda baca, dan skor daripada satu skala tidak boleh sekali-kali dibandingkan dengan yang lain. Mencari setiap indeks secara lalai dan memulangkan satu senarai gabungan yang diisih mengikut skor; setiap padanan membawa `index` dan `kind` supaya pemanggil boleh membezakan padanan imej daripada padanan video (yang kedua menambah `offsetMs`). Indeks tanpa jadual untuk kemudahan dilaporkan dalam `skipped` dan bukannya gagal. Padanan di bawah lantai kerelevanan yang ditentukur bagi setiap indeks digugurkan, jadi pertanyaan tanpa padanan sebenar memulangkan senarai kosong dan bukannya hasil mengarut yang kelihatan yakin; `perIndex` melaporkan sumbangan setiap indeks dan sebabnya. Hasil boleh disempitkan mengikut masa tangkapan dan mengikut kamera. Utamakan `cameraId` berbanding `camera`: ia ialah balenaUUID kamera, satu-satunya nilai yang disimpan secara sama oleh setiap indeks, jadi satu penapis menyempitkan kesemuanya. Penapis yang tidak dapat dijawab oleh sesuatu indeks dilaporkan di bawah `perIndex..filtersIgnored` dan indeks itu dicari tanpa disempitkan, dan bukannya digugurkan daripada carian. Padanan rakaman ialah **satu bagi setiap klip, bukan satu bagi setiap bingkai yang sepadan**: bingkai disampel setiap 2 s, jadi subjek yang berlengah akan sepadan dengan sepuluh bingkai hampir serupa daripada rakaman yang sama. Setiap klip memulangkan bingkai terbaiknya, serta `matchCount` dan `offsetsMs` yang menyenaraikan setiap detik yang sepadan di dalamnya, yang boleh digunakan terus sebagai titik lompat. Potongan orang tidak pernah digabungkan, kerana dua potongan bagi seorang ialah dua penampakan yang berbeza.

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 Kelab

Titik 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 Organisasi

Titik 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 organisasi

Titik 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 tambahan

Titik 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 naik

Titik 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 didapatkan

Titik 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 didapatkan

Titik 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 lalai

Titik 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 respons

Titik 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 disenaraikan

Titik 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

{}

Padam sepanduk papan pemuka

Memadam lembut sepanduk papan pemuka milik jenama.

Parameter

brandId `string` (wajib) ID jenama yang memiliki sepanduk bannerId `string` (wajib) ID sepanduk yang akan dipadam

Titik akhir

DELETE /api/brands/{brandId}/dashboard-banners/{bannerId}

Contoh Permintaan

curl -X DELETE https://portal.hub.gymsystems.co/api/brands/{brandId}/dashboard-banners/{bannerId} \
  -H "x-api-key: YOUR_API_KEY"

Respons

{}

Senaraikan sepanduk papan pemuka untuk jenama

Memulangkan semua sepanduk papan pemuka (yang tidak dipadam) yang dikonfigurasikan untuk jenama, bagi pengurusan pentadbir.

Parameter

brandId `string` (wajib) ID jenama yang sepanduknya ingin disenaraikan

Titik akhir

GET /api/brands/{brandId}/dashboard-banners

Contoh Permintaan

curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/dashboard-banners \
  -H "x-api-key: YOUR_API_KEY"

Respons

{}

Cipta atau kemas kini sepanduk papan pemuka

Mencipta sepanduk papan pemuka baharu untuk jenama, atau mengemas kini sepanduk sedia ada apabila `bannerId` diberikan dalam badan. Sepanduk boleh dijadualkan (permulaan/penghujung dalam saat unix, null = tanpa had) dan disasarkan kepada seluruh jenama, wilayah tertentu (kod ISO) atau kemudahan tertentu.

Parameter

brandId `string` (wajib) ID jenama yang memiliki sepanduk

Badan Permintaan

Titik akhir

PUT /api/brands/{brandId}/dashboard-banners

Contoh Permintaan

curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/dashboard-banners \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Respons

{}

Dapatkan sepanduk papan pemuka yang aktif untuk kemudahan

Menentukan sepanduk papan pemuka yang sepatutnya dipaparkan sekarang untuk kemudahan, berdasarkan jenama kemudahan, kawasan (kod negara ISO) dan bendera enabled, tetingkap jadual serta penyasaran setiap sepanduk. Digunakan oleh UI papan pemuka.

Parameter

facilityId `string` (wajib) ID kemudahan yang sepanduknya hendak ditentukan

Titik akhir

GET /api/facilities/{facilityId}/dashboard-banners

Contoh Permintaan

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/dashboard-banners \
  -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 akses

Titik 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 unix

Titik 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 unix

Titik 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 unix

Titik 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 Kelab

Titik 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 kemudahan

Titik 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 Kelab

Titik 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 Kelab

Titik 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 Kelab

Titik 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 akses

Titik 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 kemudahan

Titik 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 Kelab

Titik 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 Kelab

Titik 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 dicari

Titik 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 tetapan Door/Gate Access yang dikongsi untuk kemudahan

Parameter

facilityId `string` (wajib)

Titik akhir

GET /api/door-access/rules/{facilityId}

Contoh Permintaan

curl -X GET https://portal.hub.gymsystems.co/api/door-access/rules/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

Respons

{}

Kemas kini tetapan Door/Gate Access yang dikongsi untuk kemudahan

Parameter

facilityId `string` (wajib)

Badan Permintaan

Titik akhir

PUT /api/door-access/rules/{facilityId}

Contoh Permintaan

curl -X PUT https://portal.hub.gymsystems.co/api/door-access/rules/{facilityId} \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

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 jenis orang, status dan tag untuk kemudahan

Mengembalikan nilai jenis orang, status keahlian dan tag yang berbeza yang terdapat pada baris User Access kemudahan (ph-door-access-users), yang diperoleh daripada penyegerakan rakan kongsi + kemasukan manual. Aplet door-gate-access menggunakannya untuk mengisi senarai juntai bawah peraturan akses. Tag ialah gabungan `tags` yang disegerakkan dan `customTags` pentadbir, sepadan dengan penilai peraturan.

Parameter

facilityId `string` (wajib)

Titik akhir

GET /api/door-access/people-config/{facilityId}

Contoh Permintaan

curl -X GET https://portal.hub.gymsystems.co/api/door-access/people-config/{facilityId} \
  -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 kebenaran hibrid pada baris User Access

Wayar penilai hibrid Fasa 3. Pemberian wujud bersama peraturan tag kemudahan — pengguna dibenarkan apabila salah satunya sepadan semasa buka kunci.

Parameter

facilityId `string` (wajib) userId `string` (wajib)

Badan Permintaan

Titik akhir

PUT /api/door-access/users/{facilityId}/{userId}/grants

Contoh Permintaan

curl -X PUT https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/grants \
  -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 diambil

Titik 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 diambil

Titik 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 halaman

Titik 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 halaman

Titik 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 memadamnya

Titik 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 diambil

Titik 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 ciri

Titik 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 jenama

Titik 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 ditentukan

Titik 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 jenama

Titik 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 data

Titik 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 kongsi

Titik 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 kongsi

Titik 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 LIMITED

Titik 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 Kongsi

Titik 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 ahli

Titik 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 ahli

Badan 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/DELETE

Titik 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 peranan

Titik 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 peranan

Titik 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 permintaan

Titik 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 organisasi

Titik 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 permintaan

Titik 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 laporan

Titik 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 Kelab

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

Titik 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 Kelab

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

Titik 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 Organisasi

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

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

Titik 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 koma

Titik 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 rekod

Titik 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-MM

Titik 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 diambil

Titik 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 disenaraikan

Titik 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 diambil

Titik 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 rekod

Titik 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 diambil

Titik 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 Organisasi

Titik 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 invois

Titik 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 ACL

Titik 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 diambil

Titik 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 sebelumnya

Titik 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 soket

Titik 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 masuk

Titik 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 modul

Titik 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-mel

Titik 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

{}