परिचय

Performance Hub API में आपका स्वागत है। यह API क्लब डेटा और उन मुख्य सिस्टम का प्रबंधन करता है जो आपके क्लब और उसके बाहरी सिस्टम से इंटीग्रेट होते हैं, और यह सार्वजनिक रूप से उपयोग के लिए उपलब्ध API नहीं है। यह API जिन विभिन्न Performance Hub सिस्टम को सपोर्ट करता है, उनके उपयोग के बारे में अधिक जानकारी के लिए, कृपया जिस सिस्टम की आपको ज़रूरत है उसके लिए हमारे [Performance Hub दस्तावेज़](https://docs.performancehub.co) की संबंधित प्रविष्टि देखें।

बेस URL

https://portal.hub.gymsystems.co

प्रमाणीकरण

आपका इंटीग्रेशन स्वीकृत होने पर प्रमाणीकरण विवरण प्रदान किए जाएँगे।

डिवाइस द्वारा रिपोर्ट किया गया "एजेंट टर्न पूरा" इवेंट (वेब पुश ट्रिगर)

किसी पेयर किए गए एआई एजेंट डिवाइस के साइडकार द्वारा कॉल किया जाता है (ब्राउज़र द्वारा कभी नहीं), जब वेब UI से शुरू किया गया कोई एजेंट रन पूरा होता है और डिवाइस की सूचना सीमा से अधिक समय तक चला हो। अल्पकालिक प्रति-डिवाइस HS256 JWT (aud 'events') से प्रमाणित। प्रति डिवाइस+सेशन+शुरुआत डुप्लिकेट हटाए जाते हैं और प्रति डिवाइस दर-सीमित किया जाता है, फिर बातचीत के डीप लिंक के साथ अनुरोध शुरू करने वाले उपयोगकर्ता की HTML5 पुश सदस्यताओं पर भेजा जाता है।

अनुरोध बॉडी

एंडपॉइंट

POST /ai/events/agent-turn-complete

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एजेंट द्वारा शुरू की गई पुश सूचना (ph-notify स्किल)

किसी पेयर किए गए एआई एजेंट डिवाइस के साइडकार द्वारा ऑन-डिवाइस एजेंट (ph-notify स्किल) की ओर से कॉल किया जाता है, ताकि किसी उपयोगकर्ता के ब्राउज़र और मोबाइल डिवाइस पर कोई भी सूचना भेजी जा सके। अल्पकालिक प्रति-डिवाइस HS256 JWT (aud 'events') से प्रमाणित। लक्षित उपयोगकर्ता के पास डिवाइस तक पहुँच होनी चाहिए (प्रति-एजेंट एक्सेस नीति); उपयोगकर्ता न दिए जाने पर सूचना डिवाइस के स्वामी को जाती है। प्रति डिवाइस दर-सीमित, टर्न-पूरा इवेंट से अलग।

अनुरोध बॉडी

एंडपॉइंट

POST /ai/events/agent-notify

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

सूचना इमेज अपलोड करें (ph-notify स्किल)

पेयर किए गए डिवाइस (aud 'events' JWT) से रॉ इमेज बॉडी स्वीकार करता है और उसे सार्वजनिक notify-media बकेट में एक अनुमान न लगाई जा सकने वाली UUID कुंजी के तहत संग्रहीत करता है। ऑब्जेक्ट 7 दिनों के बाद अपने-आप हट जाते हैं (S3 लाइफ़साइकल)। /ai/events/agent-notify में `imageUrl` के रूप में उपयोग के लिए सार्वजनिक https URL लौटाता है। अधिकतम 5 MB; केवल png/jpeg/gif/webp।

अनुरोध बॉडी

एंडपॉइंट

POST /ai/media/notify-image

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

Connected Apps (बाहरी SaaS टूल) के लिए डिवाइस MCP relay

जोड़े गए एआई एजेंट डिवाइस के लिए Streamable-HTTP MCP एंडपॉइंट (डिवाइस sidecar के :8790 listener पर "connected_apps" MCP सर्वर)। अल्पकालिक प्रति-डिवाइस HS256 JWT (aud 'mcp' — /mcp जैसा ही क्रेडेंशियल) से प्रमाणित, और AGENT के Connected Apps enabled फ़्लैग द्वारा नियंत्रित (कनेक्शन प्रति agent डिवाइस होते हैं, प्रति सुविधा नहीं)। अनुरोध agent के अपने upstream tool-platform session MCP सर्वर तक स्ट्रीम होते हैं, और session headers सर्वर-साइड पर जोड़े जाते हैं; upstream क्रेडेंशियल कभी डिवाइस तक नहीं पहुँचते। टूल के नाम और विक्रेता ब्रांडिंग को रास्ते में दोनों दिशाओं में white-label किया जाता है। upstream 401/410 (समाप्त session) होने पर एक बार session फिर से बनाया जाता है और पुनः प्रयास किया जाता है।

एंडपॉइंट

POST /mcp/apps

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/mcp/apps \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

API ऑडिट लॉग खोजें (IAM और व्यवस्थापन मॉड्यूल एक्सेस)

उन्नत फ़िल्टरिंग क्षमताओं के साथ API एक्सेस लॉग खोजें और फ़िल्टर करें। उपयोगकर्ता केवल उन संगठनों के लॉग देख सकते हैं जिन तक उनकी पहुँच है।

पैरामीटर

organisationId `string` (वैकल्पिक) ACL सत्यापन के लिए संगठन ID (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/admin/audit-logs/search

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

Redis से कैश किए गए ऑडिट लॉग आँकड़े प्राप्त करें (IAM और व्यवस्थापन मॉड्यूल एक्सेस)

डैशबोर्ड को तुरंत लोड करने के लिए Redis कैश से समेकित आँकड़े प्राप्त करें

पैरामीटर

timeWindow `string` (वैकल्पिक) आँकड़ों के लिए समय अवधि (डिफ़ॉल्ट 12h)

एंडपॉइंट

GET /api/admin/audit-logs/statistics-cached

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics-cached \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऑडिट लॉग आँकड़े प्राप्त करें (IAM और व्यवस्थापन मॉड्यूल एक्सेस)

डैशबोर्ड के लिए समेकित आँकड़े प्राप्त करें। उपयोगकर्ता के संगठनों तक सीमित।

पैरामीटर

startTime `number` (वैकल्पिक) प्रारंभ समय (Unix टाइमस्टैम्प), डिफ़ॉल्ट 24 घंटे पहले endTime `number` (वैकल्पिक) समाप्ति समय (Unix टाइमस्टैम्प), डिफ़ॉल्ट अभी

एंडपॉइंट

GET /api/admin/audit-logs/statistics

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऑडिट लॉग के लिए टाइम सीरीज़ डेटा प्राप्त करें (IAM और व्यवस्थापन मॉड्यूल एक्सेस)

अनुरोध टाइमलाइन विज़ुअलाइज़ेशन के लिए बकेट में बँटा टाइम सीरीज़ डेटा प्राप्त करें

पैरामीटर

timeWindow `string` (वैकल्पिक) टाइम सीरीज़ डेटा के लिए समय अवधि: - 1h: पिछला 1 घंटा (10-मिनट ब्लॉक) - 12h: पिछले 12 घंटे (10-मिनट ब्लॉक) - 24h: पिछले 24 घंटे (10-मिनट ब्लॉक) - 7d: पिछले 7 दिन (1-घंटे ब्लॉक) - 14d: पिछले 14 दिन (1-घंटे ब्लॉक)

एंडपॉइंट

GET /api/admin/audit-logs/timeseries

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/timeseries \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वे संगठन प्राप्त करें जिनके ऑडिट लॉग तक उपयोगकर्ता की पहुँच है (IAM और व्यवस्थापन मॉड्यूल एक्सेस)

उन संगठनों की सूची लौटाता है जिनके ऑडिट लॉग वर्तमान उपयोगकर्ता देख सकता है

एंडपॉइंट

GET /api/admin/audit-logs/user-organisations

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/user-organisations \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नया क्लब बनाने के लिए प्रारंभिक कॉल... ध्यान दें कि केवल 'टेम्पलेट' क्लब ऑब्जेक्ट बनाया जाता है - इसके बाद क्लब को उसके डेटा, जैसे खुलने के घंटे, स्थान, सोशल URL आदि, से अपडेट करने के लिए दूसरा API अनुरोध आवश्यक है।

पैरामीटर

body `string` (आवश्यक) सिस्टम में जोड़े जाने वाले नए क्लब का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/admin/clubs/addclub

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/admin/clubs/addclub \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सिस्टम में नया उपयोगकर्ता जोड़ता है

पैरामीटर

body `string` (आवश्यक) उस उपयोगकर्ता डेटा का JSON ऑब्जेक्ट जिसे आप जोड़ना/अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/users

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/users \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन सभी उपयोगकर्ताओं (Google Apps खातों) की सूची देता है जिनकी बैकऑफ़िस सिस्टम/API तक पहुँच है

एंडपॉइंट

GET /api/admin/users/listusers

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listusers \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता की MCP कुंजियों की सूची (छिपाई गई)। उपयोगकर्ता अपनी कुंजियों की सूची देख सकते हैं।

पैरामीटर

userId `string` (आवश्यक)

एंडपॉइंट

GET /api/users/{userId}/mcp-keys

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता के लिए नई MCP API कुंजी बनाएँ। उपयोगकर्ता अपनी कुंजियाँ बना सकते हैं।

पैरामीटर

userId `string` (आवश्यक) body `object` (वैकल्पिक)

एंडपॉइंट

POST /api/users/{userId}/mcp-keys

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
  -H "x-api-key: YOUR_API_KEY"

MCP API कुंजी रद्द करें/हटाएँ। उपयोगकर्ता अपनी कुंजियाँ हटा सकते हैं।

पैरामीटर

userId `string` (आवश्यक) keyId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/users/{userId}/mcp-keys/{keyId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys/{keyId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता से भूमिका हटाएँ

पैरामीटर

userId `string` (वैकल्पिक) उस उपयोगकर्ता का ईमेल जिससे आप भूमिका हटाना चाहते हैं। roleId `string` (वैकल्पिक) उस भूमिका की ID जिसे आप उपयोगकर्ता से हटाना चाहते हैं।

एंडपॉइंट

DELETE /api/users/{userId}/roles/{roleId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/roles/{roleId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा उपयोगकर्ता के प्रोफ़ाइल विवरण (firstName, lastName, phoneNumber) अपडेट करता है

पैरामीटर

userId `string` (आवश्यक) उपयोगकर्ता का ईमेल पता body `object` (आवश्यक) अपडेट किया जाने वाला उपयोगकर्ता प्रोफ़ाइल डेटा

एंडपॉइंट

PATCH /api/users/{userId}

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/users/{userId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता भूमिका अपसर्ट करें

पैरामीटर

body `object` (वैकल्पिक)

एंडपॉइंट

PUT /api/users/{userId}/roles

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/users/{userId}/roles \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट पर चल रही लाइव सेवाएँ (प्रकाशन पिकर)

ऐप्लेट के "Publish to Performance Hub" पिकर के लिए टनल के माध्यम से डिवाइस की ब्रिज द्वारा पहचानी गई लाइव सेवाएँ प्राप्त करता है। ph-ai-agent मॉड्यूल और 'open' प्रति-डिवाइस एक्सेस आवश्यक है (प्रकाशन जितनी ही शर्त)। जिस पोर्ट के लिए कोई Custom App पहले से मौजूद है, उस सेवा पर publishedAppId अंकित किया जाता है।

पैरामीटर

club `string` (आवश्यक) device `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/services/{club}/{device}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट में शामिल MDI आइकन नाम इंडेक्स (आइकन पिकर)

टनल के माध्यम से डिवाइस ब्रिज के अंतर्निहित MDI आइकन इंडेक्स (GET /__services/icons/mdi/index.json) को प्रॉक्सी करता है। प्रकाशन/संपादन पिकर ऐप्लेट के बंडल किए गए कैटलॉग (वही 7.4.47 पिन) का उपयोग करता है; प्रकाशित ऐप के SVG portal-server के स्थानीय @mdi/js पैक से रिज़ॉल्व किए जाते हैं। सेवा पिकर जितनी ही एक्सेस शर्त (ph-ai-agent मॉड्यूल + 'open' प्रति-डिवाइस एक्सेस)।

पैरामीटर

club `string` (आवश्यक) device `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/mdi-index/{club}/{device}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट से MDI आइकन SVG का बैच प्राप्त करें (पिकर प्रीव्यू)

एक ही कॉल में डिवाइस के अंतर्निहित आइकन सेट से अधिकतम 60 नामित MDI ग्लिफ़ रिज़ॉल्व करता है, जिन्हें सर्वर-साइड पर उसी allowlist से सैनिटाइज़ किया जाता है जो सहेजे गए ऐप आइकन पर लागू होती है। आइकन पिकर द्वारा खोज परिणाम दिखाने के लिए उपयोग किया जाता है; अज्ञात नाम null के रूप में लौटते हैं।

पैरामीटर

club `string` (आवश्यक) device `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/agent-apps/mdi-icons/{club}/{device}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

वे ऑडियंस दायरे जिनमें अनुरोधकर्ता इस सुविधा से प्रकाशित कर सकता है

प्रकाशन/संपादन पिकर के लिए प्रकाशक का अनुदान-योग्य ऑडियंस दायरा: वे सुविधाएँ जहाँ तक उनकी ph-ai-agent भूमिकाएँ पहुँचती हैं (बहु-सुविधा दायरा), और यह कि क्या उनके पास इस सुविधा के ब्रांड/संगठन में पूरे ब्रांड / पूरे संगठन की ऑडियंस के लिए आवश्यक संगठन-स्तरीय स्थिति है। प्रकाशन/अपडेट पर यही नियम सर्वर-साइड पर फिर से लागू किए जाते हैं (validatePublishAudience) — यह एंडपॉइंट केवल UI को आकार देता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/audience-options/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/audience-options/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नामित-उपयोगकर्ता ऐप ऑडियंस के लिए साथियों का ऑटोकम्प्लीट

केवल उन्हीं उपयोगकर्ताओं को खोजता है जिन्हें अनुरोधकर्ता पहले से देख सकता है — वे लोग जिनकी भूमिकाएँ अनुरोधकर्ता की अपनी ph-ai-agent पहुँच की कम से कम एक सुविधा/क्षेत्र/संगठन से मेल खाती हैं। न्यूनतम 2-अक्षर की क्वेरी और 10-परिणाम की सीमा इस एंडपॉइंट को स्क्रैपिंग के लिए बेकार बनाती है; ऑडियंस सहेजे जाने पर यही पहुँच-सेट सर्वर-साइड पर फिर से लागू किया जाता है।

पैरामीटर

club `string` (आवश्यक) q `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/user-search/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/user-search/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एआई एजेंट की लाइव सेवा को Performance Hub Custom App के रूप में प्रकाशित करें

सुविधा के एआई एजेंट द्वारा होस्ट किए गए वेब ऐप (ब्रिज द्वारा पहचानी गई लाइव सेवा) को चुनी गई ऑडियंस के लिए "Custom Apps" साइड-मेनू आइटम के रूप में पंजीकृत करता है। इस सुविधा पर ph-ai-agent मॉड्यूल और 'open' प्रति-डिवाइस एक्सेस आवश्यक है; ऑडियंस प्रकाशक के अपने भूमिका दायरों तक सीमित रहती है (आप कभी भी अपनी पहुँच से अधिक व्यापक रूप से प्रकाशित नहीं कर सकते)। सेवा की पहचान डिवाइस की /__services सूची से लाइव रिज़ॉल्व की जाती है; http/https स्कीम कभी सहेजी नहीं जाती।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा पर दिखाई देने वाले प्रकाशित Custom Apps

वे सक्रिय प्रकाशित ऐप लौटाता है जिनकी ऑडियंस में यह सुविधा शामिल है, उसी रूप में जिसमें साइड मेनू उन्हें दिखाता है (appId, name, icon, description)। हर कॉल पर ऑडियंस को लाइव फिर से रिज़ॉल्व किया जाता है ताकि एक्सेस में बदलाव तुरंत लागू हों।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/menu/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा से प्रबंधित प्रकाशित ऐप (प्रकाशक दृश्य)

उन ऐप की पूरी पंक्तियाँ जिनकी होम सुविधा यह क्लब है, ऐप्लेट की "Published Apps" प्रबंधन सूची के लिए। हर पंक्ति पर अनुरोध करने वाले उपयोगकर्ता (प्रकाशक) के लिए canManage अंकित किया जाता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/manage/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी प्रकाशित Custom App के लिए सेवा-सीमित व्यूअर टोकन बनाएँ

एक अल्पकालिक साइन किया गया URL + टोकन लौटाता है, जिसका उपयोग ब्राउज़र डिवाइस के क्षेत्रीय रिले गेटवे पर केवल एक प्रकाशित ऐप को सीधे खोलने के लिए करता है। टोकन में सेवा पोर्ट बताने वाला svc क्लेम होता है, इसलिए गेटवे सेशन को /__services/proxy// तक सीमित रखता है — इससे एजेंट चैट/टर्मिनल तक कभी नहीं पहुँचा जा सकता। व्यूअर के पास ऐसी सुविधा पर custom-apps मॉड्यूल होना चाहिए जो ऐप की ऑडियंस में शामिल हो; उन्हें ph-ai-agent मॉड्यूल या प्रति-डिवाइस एजेंट एक्सेस की आवश्यकता नहीं है।

पैरामीटर

club `string` (आवश्यक) appId `string` (आवश्यक)

एंडपॉइंट

POST /api/agent-apps/access/{club}/{appId}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/access/{club}/{appId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी प्रकाशित Custom App के लिए सहायता संपर्क (स्वामी संपर्क)

इस उपयोगकर्ता द्वारा प्रकाशित ऐप की सहायता कौन करता है: प्रकाशक का ईमेल (न होने पर होस्टिंग एजेंट के स्वामी का)। व्यूअर के ऑफ़लाइन/त्रुटि पैनल पर दिखाया जाता है ताकि सहायता अनुरोध Performance Hub के बजाय ऐप के स्वामी के पास जाएँ — प्रकाशित ऐप PH की मुख्य सहायता का हिस्सा नहीं हैं। पहले ऐप की ऑडियंस फिर से जाँची जाती है; जिन व्यूअर के साथ ऐप कभी साझा नहीं किया गया, उन्हें कुछ पता नहीं चलता। रोके गए ऐप भी रिज़ॉल्व होते हैं (स्वामियों को "यह क्यों रोका गया है?" जैसे प्रश्न भी मिलते हैं)।

पैरामीटर

club `string` (आवश्यक) appId `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-apps/support-info/{club}/{appId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/support-info/{club}/{appId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी प्रकाशित Custom App के स्वामी को सहायता अनुरोध ईमेल करें

व्यूअर का संदेश ऐप के सहायता संपर्क (प्रकाशक, न होने पर एजेंट स्वामी) को ब्रांडेड ईमेल के रूप में भेजता है — To में स्वामी, CC में व्यूअर (अनुरोध के उनके रिकॉर्ड के लिए), और Reply-To व्यूअर, ताकि स्वामी सीधे उन्हें जवाब दे। प्रकाशित ऐप का रखरखाव उपयोगकर्ता करते हैं, इसलिए इससे उनकी सहायता Performance Hub की कतार से बाहर रहती है। ऑडियंस फिर से जाँची जाती है; प्रति व्यूअर प्रति ऐप हर 15 मिनट में एक अनुरोध (Redis कूलडाउन, fail-open)।

पैरामीटर

club `string` (आवश्यक) appId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/agent-apps/support-request/{club}/{appId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

प्रकाशित Custom App अपडेट करें (नाम, आइकन, विवरण, स्थिति, ऑडियंस)

केवल प्रकाशक। ऑडियंस में बदलाव को संपादक के भूमिका दायरों के आधार पर, प्रकाशन जैसे ही सीमा नियमों के साथ फिर से सत्यापित किया जाता है। स्थिति active और paused के बीच बदलती है (रोके गए ऐप मेनू से गायब हो जाते हैं और टोकन बनाने से मना कर देते हैं)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/agent-apps/update/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

Custom App का प्रकाशन रद्द करें (सॉफ़्ट डिलीट)

केवल प्रकाशक। रजिस्ट्री पंक्ति को सॉफ़्ट-डिलीट करता है - ऐप तुरंत मेनू से गायब हो जाता है और व्यूअर टोकन बनाना अस्वीकार हो जाता है; पहले से जारी गेटवे सेशन टोकन की समाप्ति पर समाप्त हो जाते हैं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/agent-apps/unpublish/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

प्रकाशित Custom App का स्वामित्व स्थानांतरित करें

एआई एजेंट के स्वामी-पुनर्आवंटन फ़्लो जैसा ही: वर्तमान प्रकाशक या कोई खाता स्वामी (बिलिंग मॉड्यूल) ऐप किसी अन्य उपयोगकर्ता को सौंप सकता है, जो फिर उसका प्रबंधन करता है। नए स्वामी के पास ऐप के होम क्लब पर सुविधा एक्सेस होना चाहिए।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट पर स्टेज किए गए स्किल एक्सपोर्ट (शेयर पिकर)

ऐप्लेट के "Share a skill" पिकर के लिए टनल के माध्यम से डिवाइस ब्रिज की स्टेज की गई एक्सपोर्ट सूची (GET /__skills/exports) को प्रॉक्सी करता है। एक्सपोर्ट को ऑन-डिवाइस ph-skill-sharing सुरक्षा/पोर्टेबिलिटी जाँच द्वारा स्टेज किया जाता है; हर प्रविष्टि में डिवाइस-साइड स्कैन का परिणाम होता है। ph-ai-agent मॉड्यूल और 'open' प्रति-डिवाइस एक्सेस आवश्यक है (प्रकाशन जितनी ही शर्त)।

पैरामीटर

club `string` (आवश्यक) device `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

स्टेज किए गए स्किल एक्सपोर्ट को नई साझा स्किल के रूप में प्रकाशित करें (ड्राफ़्ट संस्करण)

टनल के माध्यम से डिवाइस ब्रिज से नामित स्टेज किया गया एक्सपोर्ट टारबॉल लेता है, उसे मेमोरी में एक्सट्रैक्ट करता है (पाथ ट्रैवर्सल/सिमलिंक/अधिक आकार अस्वीकार), क्लाउड-साइड नियतात्मक सुरक्षा स्कैन चलाता है, SKILL.md फ़्रंटमैटर से मैनिफ़ेस्ट बनाता है, टारबॉल को निजी स्किल बकेट में कंटेंट-एड्रेस्ड रूप में संग्रहीत करता है और स्किल हेड + एक ड्राफ़्ट संस्करण बनाता है। स्कैन द्वारा रोके जाने पर कुछ भी सहेजा नहीं जाता और निष्कर्ष लौटाए जाते हैं। ऑडियंस प्रकाशक के अपने भूमिका दायरों तक सीमित रहती है। प्रकाशित करने के लिए ड्राफ़्ट सबमिट करें (POST submit)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

स्टेज किए गए एक्सपोर्ट को किसी मौजूदा साझा स्किल के नए संस्करण के रूप में प्रकाशित करें

प्रकाशन जैसी ही पाइपलाइन, किसी मौजूदा स्किल पर: एक्सपोर्ट के SKILL.md का नाम स्किल से मेल खाना चाहिए, संस्करण नया होना चाहिए (संस्करण अपरिवर्तनीय होते हैं), और चेंजलॉग आवश्यक है। केवल प्रकाशक ही संस्करण जोड़ सकता है। स्कैन द्वारा रोके जाने पर 'rejected' स्थिति वाली संस्करण पंक्ति सहेजी जाती है (केवल रिपोर्ट, कोई आर्टिफ़ैक्ट नहीं) ताकि निष्कर्ष प्रकाशक के इतिहास में दिखें।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एक स्किल संस्करण की पूरी स्कैन रिपोर्ट (+ LLM समीक्षा)

किसी संस्करण के निष्कर्षों की पूरी सूची — केवल प्रकाशक और संगठन व्यवस्थापकों (अनुमोदन समीक्षा) के लिए; इंस्टॉल करने वाले इसके बजाय स्किल विवरण पर सारांशित गणना देखते हैं।

पैरामीटर

club `string` (आवश्यक) skillId `string` (आवश्यक) version `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/scan-report/{club}/{skillId}/{version}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

ड्राफ़्ट स्किल संस्करण सबमिट करें (प्रकाशित करें, या अनुमोदन के लिए कतार में रखें)

संगठन के गवर्नेंस के अनुसार ड्राफ़्ट संस्करण को आगे बढ़ाता है। जब संगठन ने LLM समीक्षा चुनी हो, तो पहले निर्देश समीक्षा चलती है (best-effort; 'fail' निर्णय अस्वीकार करता है, 'flag' निर्णय अनुमोदन कतार में भेजता है)। सुविधा- स्तर के शेयर तुरंत प्रकाशित होते हैं, जब तक गवर्नेंस अनुमोदन की माँग न करे; संगठन- लाइब्रेरी शेयर (ब्रांड/संगठन ऑडियंस) के लिए डिफ़ॉल्ट रूप से अनुमोदन आवश्यक है। प्रकाशन से स्किल का latestVersion सेट होता है — 'auto'-नीति वाले इंस्टॉल अगले reconcile स्वीप में इसे ले लेते हैं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

साझा स्किल को सूची से हटाएँ (इसे लाइब्रेरी से हटाता है)

केवल प्रकाशक। स्किल लाइब्रेरी से गायब हो जाती है और तुरंत नए इंस्टॉल अस्वीकार करती है; मौजूदा इंस्टॉल काम करते रहते हैं — सूची से हटाना एक लिस्टिंग कार्रवाई है, किल स्विच नहीं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

साझा स्किल की लिस्टिंग संपादित करें (प्रदर्शन नाम, विवरण, आइकन)

केवल प्रकाशक। केवल प्रस्तुति वाले फ़ील्ड — स्किल का मानक नाम उसकी पहचान है (मैनिफ़ेस्ट, इंस्टॉल डायरेक्टरी, संस्करण मिलान) और कभी नहीं बदलता। खाली स्ट्रिंग किसी फ़ील्ड को वापस null कर देती है (मानक नाम / कोई आइकन नहीं पर लौटते हुए)। आइकन MDI कैटलॉग (mdi:icon-name) का उपयोग करते हैं, प्रकाशित एजेंट ऐप जैसे ही फ़ॉर्मैट में।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

साझा स्किल का स्वामित्व स्थानांतरित करें

प्रकाशित ऐप के स्थानांतरण फ़्लो जैसा ही: वर्तमान प्रकाशक या कोई खाता स्वामी (बिलिंग मॉड्यूल) स्किल किसी अन्य उपयोगकर्ता को सौंप सकता है, जो फिर उसके संस्करण और लिस्टिंग का प्रबंधन करता है। नए स्वामी के पास स्किल के होम क्लब पर सुविधा एक्सेस होना चाहिए।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा पर दिखाई देने वाली स्किल लाइब्रेरी (ऑडियंस के अनुसार फ़िल्टर की गई)

कम से कम एक प्रकाशित संस्करण वाली सक्रिय स्किल, जिनकी ऑडियंस में यह सुविधा शामिल है (या व्यूअर का नाम है), नवीनतम प्रकाशित संस्करण के सारांश और संगठन में अपनाने के दायरे (अलग-अलग सुविधाएँ, कभी भी कच्ची इंस्टॉल गणना नहीं) के साथ। हर कॉल पर ऑडियंस को लाइव फिर से रिज़ॉल्व किया जाता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/library/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

स्किल विवरण (संस्करण, आवश्यकताएँ, स्कैन सारांश, अपनाना)

किसी एक लाइब्रेरी स्किल का पूरा विवरण: चेंजलॉग और स्कैन सारांश के साथ संस्करण इतिहास (प्रति-संस्करण एंडपॉइंट सूचियाँ अपडेट स्कैन-डिफ़ को चलाती हैं), मैनिफ़ेस्ट में घोषित आवश्यकताएँ, प्रकाशक का स्रोत और सुविधा-गणना वाला अपनाने का संकेत। ऑडियंस फिर से जाँची जाती है — जिन व्यूअर के साथ स्किल कभी साझा नहीं की गई, उन्हें कुछ पता नहीं चलता (प्रकाशक और संगठन व्यवस्थापक इसे हमेशा देखते हैं)।

पैरामीटर

club `string` (आवश्यक) skillId `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/skill/{club}/{skillId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा से प्रकाशित स्किल (प्रकाशक की प्रबंधन सूची)

उन स्किल की पूरी पंक्तियाँ जिनकी होम सुविधा यह क्लब है, हर एक पर अनुरोध करने वाले उपयोगकर्ता के लिए canManage और उसके नवीनतम संस्करण का सारांश अंकित (ड्राफ़्ट और लंबित अनुमोदन शामिल — यह प्रकाशक का कार्य दृश्य है)।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/manage/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट पर लाइब्रेरी स्किल इंस्टॉल करें

गवर्नेंस द्वारा नियंत्रित: संगठन के installSources को इसकी अनुमति देनी चाहिए, स्किल की ऑडियंस में यह सुविधा शामिल होनी चाहिए (या अनुरोधकर्ता का नाम), संस्करण प्रकाशित होना चाहिए, और अनुरोधकर्ता को लक्षित डिवाइस के लिए whoCanInstall स्तर पूरा करना चाहिए (स्वामी / अनुमत उपयोगकर्ता / सुविधा व्यवस्थापक / संगठन व्यवस्थापक — गवर्नेंस देखें)। इंस्टॉल लाइफ़साइकल पंक्ति (सत्य का स्रोत) लिखता है और तुरंत best-effort पुश करता है; डिवाइस पहुँच योग्य होते ही reconcile cron डिलीवरी सुनिश्चित करता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एक इंस्टॉल के लिए लंबित स्किल अपडेट स्वीकृत करें

इंस्टॉल के desiredVersion को नवीनतम प्रकाशित संस्करण पर ले जाता है ('notify' और 'pinned' नीतियों का मैनुअल चरण, और वह रास्ता जब गवर्नेंस updatePosture को 'approvalRequired' पर सेट करता है)। वर्तमान संस्करण को एक-चरणीय रोलबैक लक्ष्य के रूप में रखता है और रोलबैक के बाद का कोई भी अपडेट पिन (skipVersion) हटा देता है। इंस्टॉल जैसा ही whoCanInstall अनुमति स्तर।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इंस्टॉल की गई स्किल को उसके पिछले संस्करण पर वापस ले जाएँ

desiredVersion को इंस्टॉल पंक्ति के previousVersion (हर संस्करण बदलाव पर रखा जाता है) पर सेट करता है और सामान्य डिलीवरी पाथ को उसे फिर से इंस्टॉल करने देता है। एक-चरणीय: संस्करण आपस में बदल जाते हैं, इसलिए दो बार रोलबैक करने पर आप वहीं लौट आते हैं जहाँ से शुरू किया था। अपडेट को पिन भी करता है (skipVersion = वह संस्करण जिससे रोलबैक किया गया) ताकि auto/notify नीतियाँ रोलबैक को बनाए रखें — पिन तब हटता है जब कोई निश्चित रूप से नया संस्करण प्रकाशित होता है, update-approve पर, या set-policy पर।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट से स्किल अनइंस्टॉल करें

इंस्टॉल पंक्ति को pending-uninstall के रूप में चिह्नित करता है और वांछित स्थिति पुश करता है; डिवाइस द्वारा हटाने की पुष्टि होने पर (reconcile रीड-बैक) पंक्ति हटा दी जाती है। इंस्टॉल जैसा ही whoCanInstall अनुमति स्तर।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एक डिवाइस पर स्किल के लिए प्रति-इंस्टॉल अपडेट नीति सेट करें

auto (reconcile नए प्रकाशित संस्करण अपने-आप लागू करता है, जब तक संगठन का updatePosture अनुमोदन की माँग न करे), notify (स्वामी को हर नए संस्करण पर एक बार सूचित किया जाता है और वह उसे मैन्युअल रूप से लागू करता है) या pinned (स्पष्ट update-approve के बिना कभी नहीं बदलता)। नीति बदलने से रोलबैक के बाद का कोई भी अपडेट पिन (skipVersion) हट जाता है। इंस्टॉल जैसा ही whoCanInstall अनुमति स्तर।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/agent-skills/set-policy/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट पर स्किल इंस्टॉल (Skills टैब)

किसी एक डिवाइस की इंस्टॉल लाइफ़साइकल पंक्तियाँ, हर एक पर स्किल के लिस्टिंग फ़ील्ड और यह अंकित कि कोई नया प्रकाशित संस्करण मौजूद है या नहीं। 'open' प्रति-डिवाइस एक्सेस आवश्यक है (Skills टैब एजेंट ड्रॉअर के अंदर होता है)।

पैरामीटर

club `string` (आवश्यक) device `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा के संगठन में अनुमोदन की प्रतीक्षा कर रहे स्किल संस्करण

संगठन व्यवस्थापक की अनुमोदन कतार: संगठन की सभी स्किल के हर लंबित-अनुमोदन संस्करण, स्किल लिस्टिंग और स्कैन/LLM सारांश के साथ। केवल संगठन व्यवस्थापक।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/approvals/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

लंबित स्किल संस्करण स्वीकृत करें (इसे प्रकाशित करता है)

केवल संगठन व्यवस्थापक। संस्करण प्रकाशित हो जाता है, स्किल का latestVersion आगे बढ़ता है, और प्रकाशक को सूचित किया जाता है। 'auto'-नीति वाले इंस्टॉल अगले reconcile स्वीप में यह संस्करण ले लेते हैं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

लंबित स्किल संस्करण अस्वीकार करें

केवल संगठन व्यवस्थापक। समीक्षक के कारण के साथ संस्करण अस्वीकृत हो जाता है और प्रकाशक को सूचित किया जाता है — वे निष्कर्षों को ठीक करके नया संस्करण सबमिट कर सकते हैं (संस्करण अपरिवर्तनीय होते हैं)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा के संगठन के लिए प्रभावी Agent Skill गवर्नेंस

प्लेटफ़ॉर्म डिफ़ॉल्ट के ऊपर मर्ज की गई संग्रहीत प्रति-संगठन नीति (जिस संगठन की कोई संग्रहीत पंक्ति नहीं है, उसे केवल डिफ़ॉल्ट दिखते हैं)। केवल संगठन व्यवस्थापक।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/agent-skills/governance/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इस सुविधा के संगठन के लिए Agent Skill गवर्नेंस अपडेट करें

आंशिक अपडेट — केवल दिए गए फ़ील्ड बदलते हैं; बाकी सब अपना संग्रहीत/डिफ़ॉल्ट मान रखते हैं। केवल संगठन व्यवस्थापक। प्रति-डिवाइस ओवरराइड मौजूदा डिवाइस कॉन्फ़िगरेशन रूट के माध्यम से पंजीकरण पंक्ति पर रहते हैं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का परिवेश डेटा प्राप्त करें

निर्दिष्ट क्लब के लिए सूर्योदय/सूर्यास्त सहित मौसम की वर्तमान स्थिति (Open-Meteo के माध्यम से) और सुविधा के अंदर का तापमान (duress सेंसर से) लौटाता है। Redis में 30 मिनट के लिए कैश किया जाता है।

पैरामीटर

clubId `string` (आवश्यक) क्लब/सुविधा की आंतरिक ID

एंडपॉइंट

GET /api/clubs/{clubId}/environment

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/environment \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सामान्य IoT डिवाइस को क्लब में जोड़ता/क्लब से संबद्ध करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं। body `string` (आवश्यक) संबद्ध की जाने वाली नई स्क्रीन का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/devices/addGenericDevice/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/addGenericDevice/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिस्प्ले स्क्रीन हटाएँ और फ़ैक्टरी रीसेट करें

स्क्रीन का सक्रिय सुविधा संबंध हटाता है और एक स्थायी फ़ैक्टरी रीसेट तैयार करता है। बंद स्क्रीन अगली बार चालू होकर फिर से कनेक्ट होने के बाद रीसेट लागू करती है, फिर अपने HDMI पेयरिंग पेज पर लौट आती है। पिछले बिलिंग रिकॉर्ड बनाए रखे जाते हैं।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/display-screens/reset/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी डोर कंट्रोलर को सुविधा से संबद्ध करता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/door-controllers/associate/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए डोर कंट्रोलर सेटिंग अपडेट करता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/door-controllers/update/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी डोर कंट्रोलर को सुविधा से सेवामुक्त करता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

POST /api/devices/door-controllers/decommission/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/decommission/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी डोर कंट्रोलर का रिले कॉन्फ़िगरेशन लौटाता है।

पैरामीटर

uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/door-controllers/config/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/door-controllers/config/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिवाइस का मेटाडेटा लौटाता है

पैरामीटर

uuid `string` (आवश्यक) डिवाइस की यूनिक ID

एंडपॉइंट

GET /api/devices/metadata/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिवाइस का मेटाडेटा लौटाता है। प्रतिक्रिया में शीर्ष स्तर पर मेटाडेटा पंक्ति (पुराना आकार) और साथ में `detectedType` (camera | ai-edge-processor | door-controller | ph-ai-agent | null) और `online` (5 मिनट के भीतर अपडेट होने पर true) होते हैं।

पैरामीटर

deviceSerialNumber `string` (आवश्यक) डिवाइस का सीरियल नंबर

एंडपॉइंट

GET /api/devices/metadata/serial/{serialNo}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/serial/{serialNo} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब का स्मार्ट क्लब डेटा लौटाता है।

पैरामीटर

club_id `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club_id}/smart-club-data

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club-data \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एक क्लब से संबद्ध सभी डिवाइस लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके डिवाइस की सूची आप चाहते हैं।

एंडपॉइंट

GET /api/devices/list/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/list/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

हमारे balena डिवाइस के लिए सभी एप्लिकेशन रिलीज़ (संस्करण) लौटाता है..

एंडपॉइंट

GET /api/devices/listReleases

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/listReleases \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिवाइस को नई सुविधा (क्लब) में ले जाता है और संबंधित सिस्टम अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) स्रोत सुविधा ID (वह वर्तमान क्लब जिसमें डिवाइस है) body `object` (आवश्यक) स्थानांतरण पैरामीटर

एंडपॉइंट

POST /api/devices/move/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/move/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के अंदर सबसे उपयुक्त डिवाइस चुनकर और टनल बनाने के लिए MQTT कमांड भेजकर किसी सुविधा के राउटर से कनेक्शन स्थापित करने का प्रयास करता है।

पैरामीटर

facilityID `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसके लिए राउटर कनेक्शन का प्रयास किया जा रहा है।

एंडपॉइंट

GET /api/devices/openRouterWebpage/{facilityID}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/openRouterWebpage/{facilityID} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Cloud Agent कैटलॉग (ज़ोन, आकार, लाइव बिक्री मूल्य)

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/cloud/catalog/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/catalog/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Cloud Agent का कोटेशन (सॉफ़्टवेयर + होस्टिंग)

एंडपॉइंट

POST /api/devices/ph-ai-agent/cloud/quote/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/quote/{club} \
  -H "x-api-key: YOUR_API_KEY"

Cloud Agent लॉन्च करें (प्रोविज़न कतार में डालें + अपने-आप संबद्ध करें)

एंडपॉइंट

POST /api/devices/ph-ai-agent/cloud/launch/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/launch/{club} \
  -H "x-api-key: YOUR_API_KEY"

Cloud Agent जॉब की स्थिति

एंडपॉइंट

GET /api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId} \
  -H "x-api-key: YOUR_API_KEY"

Cloud Agent को पूरी तरह हटाएँ (VM + balena + पंजीकरण)

एंडपॉइंट

POST /api/devices/ph-ai-agent/cloud/delete/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete/{club} \
  -H "x-api-key: YOUR_API_KEY"

रुके हुए Cloud Agent को हटाने का समाधान करें (बैकअप फिर से आज़माएँ, बिना बैकअप के हटाएँ, या रद्द करें)

एंडपॉइंट

POST /api/devices/ph-ai-agent/cloud/delete-decision/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete-decision/{club} \
  -H "x-api-key: YOUR_API_KEY"

किसी एजेंट के Connected Apps की सूची दें (सुइट + कनेक्ट किए गए खातों वाले ऐप)

एजेंट की Connected Apps स्थिति लौटाता है: सक्षम फ़्लैग, प्रति-सुइट सारांश (Google Workspace, Microsoft 365) और चुना हुआ ऐप कैटलॉग, जिसमें हर ऐप के कनेक्ट किए गए खाते होते हैं (बहु-खाता — एक एजेंट प्रति ऐप कई खाते रख सकता है, हर एक का वैकल्पिक उपनाम हो सकता है), जिन्हें एजेंट के अपस्ट्रीम सेशन से रिज़ॉल्व किया जाता है।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

एंडपॉइंट

GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एजेंट के लिए पूरा Connected Apps मार्केटप्लेस कैटलॉग

हर कनेक्ट किए जा सकने वाले ऐप (पूरा managed-auth टूलकिट कैटलॉग, सर्वर-साइड पर ~12h के लिए कैश किया गया) को featured/suite स्तरों और प्रति ऐप एजेंट के कनेक्ट किए गए खातों के साथ लौटाता है, साथ में प्रति-सुइट सारांश और एजेंट के लंबित कनेक्ट अनुरोध — क्लाइंट-साइड पर खोजे जा सकने वाले ऐप मार्केटप्लेस के लिए एक ही पेलोड।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

एंडपॉइंट

GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/catalog

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

एजेंट का लंबित कनेक्ट अनुरोध खारिज करें

किसी टूलकिट के लिए एजेंट के लंबित कनेक्ट अनुरोध को खारिज के रूप में चिह्नित करता है (यह मार्केटप्लेस के "Requested by your agent" सेक्शन से गायब हो जाता है)। Idempotent — जो अनुरोध लंबित नहीं है उसे खारिज करने का कोई प्रभाव नहीं होता।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/requests/dismiss

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एजेंट के लिए Connected Apps सक्षम या अक्षम करें

एजेंट का Connected Apps स्विच सहेजता है और PH_APPS_MCP_ENABLED Balena डिवाइस वेरिएबल को केवल उसी डिवाइस पर पुश करता है (best-effort — MCP रिले पर PH-साइड फ़्लैग ही निर्णायक नियंत्रण है)।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/enable

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एक ऐप के लिए कनेक्ट तैयारी पेलोड (मोड, क्रेडेंशियल फ़ील्ड, सेटअप गाइड)

कनेक्शन शुरू करने से पहले कनेक्ट डायलॉग को जिस चीज़ की ज़रूरत होती है वह सब: ऐप कैसे कनेक्ट होता है (oauth = होस्ट किया गया सहमति फ़्लो, credentials = प्रोडक्ट के अंदर फ़ॉर्म), credentials मोड के लिए एकत्र किए जाने वाले क्रेडेंशियल फ़ील्ड, और प्रोडक्ट के अंदर की सेटअप गाइड (प्राथमिकता वाले ऐप के लिए लिखी गई, अन्यथा ऐप के फ़ील्ड मेटाडेटा से जनरेट की गई — कभी भी बाहरी दस्तावेज़ों का लिंक नहीं)। अपना OAuth ऐप लाने वाले ऐप यह भी बताते हैं कि ग्राहक का OAuth ऐप इस एजेंट के लिए पंजीकृत है या नहीं (byoConfigured) और प्रदाता के साथ पंजीकृत किया जाने वाला रीडायरेक्ट URL।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID। toolkit `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-info/{toolkit}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

उपयोगकर्ता द्वारा दिए गए क्रेडेंशियल (API कुंजी आदि, बिना OAuth) से ऐप कनेक्ट करें

credentials-मोड वाले ऐप के लिए सीधे प्रोडक्ट के अंदर के फ़ॉर्म से कनेक्ट किया गया खाता बनाता है — कोई होस्ट किया गया सहमति फ़्लो नहीं। क्रेडेंशियल फ़ील्ड ऐप के connect-info पेलोड से आते हैं; हर आवश्यक फ़ील्ड देना ज़रूरी है। जहाँ समर्थित हो, क्रेडेंशियल प्रदाता के साथ सत्यापित किए जाते हैं (best-effort — कुछ ऐप गलत कुंजी को केवल एजेंट के पहले टूल कॉल पर अस्वीकार करते हैं)। एक वैकल्पिक उपनाम नए खाते को लेबल करता है (बहु-खाता — पहले से कनेक्ट किए गए ऐप को कनेक्ट करने पर एक और खाता जुड़ता है)।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-credentials

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

BYO ऐप के लिए ग्राहक का अपना OAuth ऐप पंजीकृत करें और उसका कनेक्ट फ़्लो शुरू करें

अपना OAuth ऐप लाने वाले ऐप (Xero, Shopify, ...) के लिए: ग्राहक द्वारा प्रदाता के साथ बनाए गए OAuth ऐप का client ID और client secret लेता है (ऐप की सेटअप गाइड में चरण बताए गए हैं), उसे इस एजेंट के लिए पंजीकृत करता है (secret केवल अपस्ट्रीम इंटीग्रेशन प्लेटफ़ॉर्म के पास संग्रहीत होता है — Performance Hub में कभी नहीं), और तुरंत उसके विरुद्ध होस्ट किया गया साइन-इन फ़्लो शुरू करता है। वह सहमति URL लौटाता है जिस पर उपयोगकर्ता को भेजना है, कनेक्ट एंडपॉइंट जैसा ही अनुबंध। दोबारा सबमिट करने पर एजेंट का पंजीकृत ऐप बदल जाता है (जैसे secret रोटेशन के बाद) — मौजूदा कनेक्ट किए गए खाते काम करते रहते हैं।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-oauth-app

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एजेंट से एक कनेक्ट किया गया खाता डिस्कनेक्ट करें

एक कनेक्ट किया गया खाता हटाता है (बहु-खाता — उसी ऐप के अन्य खाते कनेक्ट रहते हैं)। हटाने से पहले सत्यापित किया जाता है कि खाता इसी एजेंट का है; जब यह ऐप का अंतिम खाता हो, तो टूलकिट को एजेंट के कनेक्ट किए गए सेट से हटा दिया जाता है (सेशन बाद में फिर से बनाया जाता है ताकि एजेंट की टूल सूची अपडेट हो)।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/disconnect

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एजेंट के कनेक्ट किए गए खातों में से एक का नाम बदलें (उपनाम बदलें)

किसी एक कनेक्ट किए गए खाते का प्रदर्शन उपनाम सेट करता है। उपनाम आमतौर पर OAuth के बाद अपने-आप सेट होते हैं (साइन-इन की गई पहचान से); यह एंडपॉइंट ऐप विवरण डायलॉग में मैन्युअल नाम बदलने को संभालता है। खाली उपनाम लेबल हटा देता है। अपस्ट्रीम अपडेट से पहले सत्यापित किया जाता है कि खाता इसी एजेंट का है।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/rename-account

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एजेंट के लिए अंतर्निहित Performance Hub सेवा चालू/बंद करें

इस एजेंट के लिए हमेशा चालू रहने वाली किसी एक अंतर्निहित सेवा (Smart Search, Weather, ...) को चालू या बंद करता है। अंतर्निहित सेवाओं को किसी कनेक्शन या OAuth की ज़रूरत नहीं होती — वे हर एजेंट के साथ शामिल होती हैं और डिफ़ॉल्ट रूप से चालू रहती हैं; यह टॉगल प्रति-एजेंट ओवरराइड सहेजता है और एजेंट का अपस्ट्रीम सेशन तुरंत फिर से बनाता है ताकि टूल सेट अपडेट हो। ध्यान दें कि अलग "External apps" स्विच (/enable रूट) पूरे apps MCP सर्वर पर एक निर्णायक बंद स्विच है — जब वह बंद हो, तो अंतर्निहित सेवाएँ भी उपलब्ध नहीं रहतीं, चाहे उनके अलग-अलग टॉगल कुछ भी हों।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (आवश्यक) एजेंट डिवाइस का balena UUID। slug `string` (आवश्यक) अंतर्निहित सेवा slug।

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/built-in/{slug}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट डिवाइस को सुविधा से संबद्ध करें

मेटाडेटा-प्रथम संबद्धता। लाइव डिवाइस मेटाडेटा में सीरियल से डिवाइस खोजता है, उसका ऑनलाइन होना आवश्यक है, फिर आवश्यकता होने पर पंजीकरण पंक्ति बनाता है, Chisel रिले क्षेत्र + टनल पोर्ट + secret आवंटित करता है, उस स्लॉट को रिले पर पंजीकृत करता है, और Balena के माध्यम से सुविधा + टनल कॉन्फ़िगरेशन डिवाइस पर पुश करता है। नए डिवाइस को एक डिफ़ॉल्ट MCP सेवा खाता भी दिया जाता है (सक्षम, इस सुविधा तक सीमित, सभी क्षमताएँ); दोबारा पेयर करने पर मौजूदा MCP अनुमति बनी रहती है। वैकल्पिक उन्नत सेटिंग पेयरिंग के समय डिफ़ॉल्ट को ओवरराइड करती हैं — बैकअप कॉन्फ़िगरेशन, MCP चालू/बंद, एक्सेस प्रतिबंध — और `restoreFrom` नए डिवाइस को सुविधा के किसी अन्य डिवाइस के क्लाउड बैकअप से भरता है (सक्रिय या सेवामुक्त स्रोत; एक cross-repo restore कतार में डालता है, जिसे प्रगति पोलिंग के लिए `restoreRequest` के रूप में लौटाया जाता है)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/associate/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट डिवाइस की सूची दें

लाइव ऑनलाइन + टनल स्थिति के साथ सुविधा के एआई एजेंट डिवाइस लौटाता है (ऐप्लेट के डिवाइस स्विचर द्वारा उपयोग किया जाता है)।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/list/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/list/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एआई एजेंट अपडेट + ऑनलाइन स्थिति

बताता है कि डिवाइस ऑनलाइन है या नहीं, अपडेट उपलब्ध/लंबित है या नहीं, और प्रस्तावित रिलीज़ (fleet पिन होने पर fleet पिन; fleet के latest ट्रैक करने पर सबसे ऊँची सफल रिलीज़)।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/update-status/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-status/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एआई एजेंट की लाइव डिवाइस स्थिति + मीट्रिक

ऐप्लेट की मीट्रिक पट्टी और प्रबंधन ड्रॉअर के लिए चुना हुआ स्नैपशॉट लौटाता है: पहचान + पंजीकरण फ़ील्ड, सक्रियता + कनेक्शन, सॉफ़्टवेयर संस्करण, और नवीनतम हार्टबीट मीट्रिक (CPU, तापमान, मेमोरी, प्रति-माउंट स्टोरेज, अपटाइम, नेटवर्क)। डिवाइस मेटाडेटा बीकन + Balena अपडेट स्थिति को एक साथ जोड़ता है; अस्थायी रुकावट के दौरान इनमें से कोई भी आधा हिस्सा गायब हो सकता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/device-status/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/device-status/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिवाइस हेल्थ रिपोर्ट के लिए एआई विवरण

वर्तमान में पाई गई हेल्थ समस्याओं का ऑपरेटर के लिए एक छोटा विवरण लौटाता है। तथ्य और playbook चरण हमेशा device-status में होते हैं; यह अतिरिक्त अनुच्छेद best-effort है और null हो सकता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

POST /api/devices/ph-ai-agent/health/{club}/{uuid}/explain

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/health/{club}/{uuid}/explain \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट के लिए सीधे रिले तक पहुँचने वाला एक्सेस टोकन बनाएँ

एक अल्पकालिक साइन किया गया URL लौटाता है, जिसका उपयोग ब्राउज़र डिवाइस के क्षेत्रीय रिले गेटवे से सीधे कनेक्ट होने के लिए करता है (वैश्विक PH/Sydney हॉप को हटाते हुए), साथ में HS256 टोकन। PH ही अधिकृत स्रोत रहता है (यहाँ Google SSO + मॉड्यूल/सुविधा जाँच); relay-gateway टोकन सत्यापित करता है। /ai-agent-ui प्रॉक्सी विकल्प के रूप में बना रहता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/access/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट सेशन में चैट संदेश भेजें (सूचना से इनलाइन जवाब)

वेब पुश सूचना की इनलाइन जवाब कार्रवाई द्वारा उपयोग किया जाने वाला सर्वर-साइड रिले - service worker यहाँ POST करता है (same-origin, SSO कुकी), ताकि Performance Hub का कोई टैब खुला न होने पर भी जवाब काम करे। PH डिवाइस का रिले लक्ष्य रिज़ॉल्व करता है (/ai-agent-ui प्रॉक्सी जैसा ही लुकअप), टर्न एट्रिब्यूशन के लिए x-ph-user जोड़ता है (परिणामी पूर्णता पुश इसी उपयोगकर्ता को वापस जाता है), और सेशन id के साथ डिवाइस के /api/chat/start पर भेजता है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/reply

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट की एक्सेस-नियंत्रण सेटिंग पढ़ें (स्वामी)

डिवाइस का एक्सेस ब्लॉक (मोड, allowlist, दृश्यता, PH Support टॉगल) और कोई भी लंबित एक्सेस अनुरोध लौटाता है। डिवाइस स्वामी इसे पढ़ सकता है; अन्य उपयोगकर्ताओं को 403 मिलता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/access-settings/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-settings/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट की एक्सेस-नियंत्रण सेटिंग अपडेट करें (स्वामी)

मोड (org/restricted), प्रतिबंधित allowlist, सूची दृश्यता (all/admins), और "permit access from Performance Hub Support" टॉगल लिखता है। डिवाइस स्वामी के लिए अनुमत। स्वामी को स्वयं केवल reallocate-owner के माध्यम से बदला जा सकता है। स्वीकृत एक्सेस अनुरोध स्थायी होते हैं — अभी भी स्वीकृत अनुरोधकर्ताओं को सहेजी गई allowlist में वापस जोड़ा जाता है; सबमिट की गई सूची से किसी को हटाने पर उसकी स्वीकृति रद्द हो जाती है (अनुरोध denied हो जाता है; वे फिर से अनुरोध कर सकते हैं)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/access-settings/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का स्वामी फिर से नियुक्त करें

डिवाइस का स्वामित्व किसी अन्य Performance Hub उपयोगकर्ता को फिर से सौंपता है। खाता स्वामियों (SaaS बिलिंग मॉड्यूल एक्सेस) तक सीमित — यह तब का उपाय है जब किसी प्रतिबंधित एजेंट का स्वामी चला जाए। पिछले और नए, दोनों स्वामियों को सूचित किया जाता है (ऐप में + पुश + ईमेल)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/reallocate-owner/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एआई एजेंट allowlist / स्वामी पिकर के लिए सुविधा उपयोगकर्ता सूची

हर उस उपयोगकर्ता का ईमेल + नाम (+ isOrgAdmin फ़्लैग) लौटाता है जिसकी भूमिका उसे इस सुविधा तक पहुँच देती है। डिवाइस स्वामी और पुनर्आवंटन करने वालों (खाता स्वामी) तक सीमित, ताकि सामान्य उपयोगकर्ता पूरे उपयोगकर्ता आधार की सूची न बना सकें।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/org-users/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/org-users/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी प्रतिबंधित एआई एजेंट तक पहुँच का अनुरोध करें

किसी प्रतिबंधित डिवाइस के लिए अनुरोधकर्ता का एक्सेस अनुरोध बनाता है (या फिर से खोलता है) — प्रति उपयोगकर्ता+डिवाइस idempotent। स्वामी को एजेंट मॉड्यूल के डीप लिंक के साथ ऐप में, वेब पुश और ईमेल से सूचित किया जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/access-request/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एआई एजेंट एक्सेस अनुरोध स्वीकृत या अस्वीकार करें (स्वामी)

डिवाइस स्वामी द्वारा लंबित अनुरोध का निपटारा। स्वीकृत करने पर अनुरोधकर्ता डिवाइस की allowlist में जुड़ जाता है; दोनों ही परिणामों में अनुरोधकर्ता को सूचित किया जाता है (ऐप में + पुश + ईमेल)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/access-request-resolve/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एआई एजेंट अपडेट की अनुमति दें + लागू करें

डिवाइस को प्रस्तावित रिलीज़ पर पिन करता है (fleet पिन, या fleet के latest ट्रैक करने पर सबसे ऊँची सफल रिलीज़) और अपडेट लॉक हटाता है ताकि balena supervisor उसे लागू करे। डिवाइस के डेटा वॉल्यूम पर मौजूद स्थिति अपडेट के बाद भी बनी रहती है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/update/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एआई एजेंट अपडेट को बाद के लिए शेड्यूल करें

डिवाइस के पंजीकरण पर इंस्टॉल का शेड्यूल किया गया समय संग्रहीत करता है। एक आवर्ती बैकएंड जॉब (हर 5 मिनट) शेड्यूल किया गया समय बीतने पर अपडेट लागू करता है (पिन + अनलॉक)। शेड्यूल करने से डिवाइस का कोई भी मौजूदा शेड्यूल बदल जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/update-schedule/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

शेड्यूल किया गया एआई एजेंट अपडेट रद्द करें

डिवाइस का लंबित शेड्यूल किया गया इंस्टॉल हटाता है (कुछ भी शेड्यूल न होने पर कोई प्रभाव नहीं)।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

DELETE /api/devices/ph-ai-agent/update-schedule/{club}/{uuid}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-schedule/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एआई एजेंट डिवाइस पर रिमोट कमांड चलाएँ

allowlist में शामिल MQTT कमांड (रीबूट, कंटेनर रीस्टार्ट, अपडेट लॉक/अनलॉक, Wi-Fi प्रबंधन) को एआई एजेंट पर चल रहे device-controller पर प्रकाशित करता है। डिवाइस सुविधा से संबद्ध होना चाहिए।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/command/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का सुविधा-संबंधी कॉन्फ़िगरेशन अपडेट करें

किसी संबद्ध एआई एजेंट के लिए ऑपरेटर द्वारा संपादन योग्य सेटिंग्स सहेजता है: डिवाइस का नाम, डिवाइस का भौतिक स्थान और निर्धारित रीबूट की आवृत्ति। रीबूट शेड्यूल डिवाइस पर REBOOT_DEVICE Balena env var (स्थानीय समय के अनुसार रात 2 बजे) के रूप में भी भेजा जाता है, जो Display Screen के व्यवहार के अनुरूप है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/config/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

वे सुविधाएँ जिनमें इस सुविधा का एआई एजेंट ले जाया जा सकता है

"दूसरी सुविधा में ले जाएँ" पिकर के लिए उसी संगठन की वे सुविधाएँ लौटाता है जिन तक साइन-इन किए गए उपयोगकर्ता की पहुँच है (वर्तमान सुविधा को छोड़कर)। स्थानांतरण स्वयं POST /api/devices/move/:club द्वारा किया जाता है, जो सर्वर-साइड पर समान संगठन और लक्ष्य-पहुँच के वही नियम लागू करता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/move-targets/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/move-targets/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के एआई एजेंट के लिए अनुरोधकर्ता की प्रदान-योग्य MCP पहुँच सीमा

लौटाता है कि साइन-इन किया गया उपयोगकर्ता इस सुविधा के संगठन में किसी एआई एजेंट MCP सेवा खाते को क्या प्रदान कर सकता है: उसकी अपनी पहुँच के भीतर की सुविधाएँ/क्षेत्र, क्या वह संगठन-व्यापी दायरा प्रदान कर सकता है, उसके पास मौजूद मॉड्यूल, और पूरा MCP टूल कैटलॉग (उन्नत प्रति-टूल मास्क के लिए)। UI इसका उपयोग करता है ताकि उपयोगकर्ताओं को केवल उनकी अपनी अनुमति सीमा के भीतर के विकल्प ही दिखें; mcp-access POST एंडपॉइंट सर्वर-साइड पर यही सीमांकन लागू करता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/mcp-grantable/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-grantable/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट का MCP सेवा-खाता कॉन्फ़िगरेशन प्राप्त करें

डिवाइस का MCP पहुँच कॉन्फ़िगरेशन लौटाता है (दायरा, मॉड्यूल, टूल मास्क, ऑडिट फ़ील्ड)।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/mcp-access/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-access/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट का MCP सेवा खाता कॉन्फ़िगर करें

प्रदान करते समय सीमांकन के साथ डिवाइस का MCP पहुँच कॉन्फ़िगरेशन सहेजता है। अनुरोधकर्ता केवल अपनी पहुँच के भीतर की सुविधाएँ/क्षेत्र प्रदान कर सकते हैं, संगठन का दायरा केवल तभी जब उनके पास संगठन-व्यापी भूमिका हो, और केवल वे मॉड्यूल जो सुविधा के संगठन में उनके अपने पास हों। enabled फ़्लैग डिवाइस पर PH_MCP_ENABLED Balena env var के रूप में भी भेजा जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/mcp-access/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का VPN कॉन्फ़िगरेशन प्राप्त करें (गोपनीय मान छिपाए गए)

डिवाइस का VPN समर्थन फ़्लैग और कनेक्शन सूची लौटाता है। प्रोफ़ाइल की सामग्री और क्रेडेंशियल मान कभी नहीं लौटाए जाते — केवल इम्पोर्ट के समय का मेटाडेटा (remotes, routes, DNS) और has-credential फ़्लैग। प्रत्येक कनेक्शन की लाइव स्थिति device-status एंडपॉइंट (beacon metadata.vpn) से मिलती है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-config/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट का VPN समर्थन चालू/बंद करें

डिवाइस की VPN सुविधा को चालू/बंद करता है। PH_VPN_ENABLED balena डिवाइस वेरिएबल भेजता है और डिवाइस को सूचित करता है (MQTT vpnConfigChanged); बंद करने पर कनेक्शन बने रहते हैं (टनल रुक जाते हैं; दोबारा चालू करने के लिए कॉन्फ़िगरेशन बना रहता है)।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट पर OpenVPN प्रोफ़ाइल इम्पोर्ट करें

base64-एन्कोडेड अपलोड स्वीकार करता है — एकल .ovpn/.conf, स्प्लिट-फ़ाइल बंडल (config + certs/keys), और आर्काइव (.zip, .tar/.tgz Pritunl एक्सपोर्ट, .tblk Tunnelblick, .visc/.visz Viscosity)। प्रोफ़ाइलों को एक मानक इनलाइन रूप में सामान्यीकृत किया जाता है; प्रत्येक प्रोफ़ाइल एक कनेक्शन बन जाती है (डिस्कनेक्ट स्थिति में इम्पोर्ट होती है — क्रेडेंशियल दर्ज करें, फिर कनेक्ट करें)। अनुपयोगी अपलोड पर कार्रवाई-योग्य 400 त्रुटियाँ लौटाई जाती हैं।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/vpn-import/{club}/{uuid}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का VPN कनेक्शन अपडेट करें (नाम / क्रेडेंशियल / split-DNS)

संग्रहीत कनेक्शन को अपडेट करता है। क्रेडेंशियल फ़ील्ड केवल-लेखन हैं (छोड़ा गया = संग्रहीत मान रखें; खाली स्ट्रिंग = साफ़ करें)। क्रेडेंशियल/split-DNS में बदलाव कनेक्शन का revision बढ़ा देते हैं ताकि लाइव टनल नए मानों के साथ फिर से शुरू हो।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का VPN कनेक्शन हटाएँ

कनेक्शन को पंजीकरण से हटाता है और डिवाइस को सूचित करता है, जो टनल बंद कर देता है और अपनी कैश की गई प्रोफ़ाइल/क्रेडेंशियल मिटा देता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) connectionId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}/{connectionId}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी एआई एजेंट का VPN कनेक्शन कनेक्ट / डिस्कनेक्ट करें

वांछित-स्थिति मॉडल — पंजीकरण पर कनेक्शन का enabled फ़्लैग सेट करता है और डिवाइस को सूचित करता है (बिना पेलोड वाला MQTT vpnConfigChanged); डिवाइस अपनी JWT-प्रमाणित universal-api कॉल के माध्यम से आधिकारिक स्थिति प्राप्त करता है और अपने टनल का मिलान करता है। छूटी हुई सूचना आवधिक सिंक पर समायोजित हो जाती है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/vpn-command/{club}/{uuid}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट का क्लाउड-बैकअप कॉन्फ़िगरेशन और स्थिति प्राप्त करें

डिवाइस की बैकअप सेटिंग्स (enabled, retention, storage region), निरंतर बैकअप स्थिति (अंतिम बैकअप, आकार, त्रुटियाँ), स्वचालित रूप से निर्धारित क्षेत्र, और पिकर के लिए उपलब्ध स्टोरेज क्षेत्र लौटाता है। restic repo पासवर्ड कभी नहीं लौटाया जाता।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-config/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-config/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट का क्लाउड-बैकअप कॉन्फ़िगरेशन अपडेट करें

enabled/retention/region सहेजता है। यह डिवाइस के अगले प्रति घंटा बैकअप चक्र पर लागू होता है (डिवाइस हर रन से पहले PH से अपना run context माँगता है), इसलिए डिवाइस को रीस्टार्ट करने की आवश्यकता नहीं होती।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/backup-config/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

नए एआई एजेंट को जोड़ने के लिए बैकअप रीस्टोर स्रोतों की सूची बनाएँ

add-agent डायलॉग के "बैकअप से रीस्टोर करें" विकल्प के लिए सुविधा-व्यापी दृश्य: क्लब का प्रत्येक पंजीकरण — सक्रिय और डीकमीशन/बदले गए दोनों — जिसमें अभी भी डिक्रिप्ट करने योग्य बैकअप repo और कम से कम एक उपयोग योग्य रीस्टोर पॉइंट हो, उसके नवीनतम स्नैपशॉट के साथ। बैकअप कॉन्फ़िगरेशन विकल्प सूचियाँ (allowedRetentionDays, availableRegions) भी लौटाता है ताकि डायलॉग को अपने चयन भरने के लिए डिवाइस UUID की आवश्यकता न हो।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-sources/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-sources/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट के बैकअप रीस्टोर पॉइंट की सूची बनाएँ

DynamoDB से डिवाइस का स्नैपशॉट इंडेक्स (नवीनतम पहले) लौटाता है — डिवाइस या repo तक कोई राउंड-ट्रिप नहीं — साथ ही ड्रॉअर पोलिंग के लिए वर्तमान मैनुअल-बैकअप / रीस्टोर अनुरोध की स्थिति। पुराने अनुरोध (जिन्हें कभी उठाया नहीं गया, या जिनकी प्रगति का कोई heartbeat नहीं है) विफल के रूप में दिखाए जाते हैं ताकि UI हमेशा नया अनुरोध भेज सके।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एजेंट का मैनुअल बैकअप अभी अनुरोध करें

पंजीकरण पंक्ति पर एक मैनुअल-रन अनुरोध (उपयोगकर्ता के नोट के साथ) लिखता है और MQTT के माध्यम से डिवाइस को सूचित करता है। डिवाइस अपनी JWT-प्रमाणित universal-api run-context कॉल के माध्यम से सत्यापित अनुरोध प्राप्त करता है — MQTT के बिना भी इसे अगले शेड्यूलर चक्र पर उठा लिया जाता है। जब कोई अन्य बैकअप या रीस्टोर चल रहा हो तो अस्वीकार कर दिया जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/backup-run/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एआई एजेंट के रीस्टोर पॉइंट को पिन या अनपिन करें

पिन किए गए रीस्टोर पॉइंट retention के तहत हटाए जाने से सुरक्षित रहते हैं — डिवाइस का रात्रिकालीन रखरखाव अपनी run-context कॉल के माध्यम से पिन किए गए snapshot ids प्राप्त करता है और उन्हें restic forget से बाहर रखता है — और उनकी इंडेक्स पंक्तियाँ कभी TTL से समाप्त नहीं होतीं। अनपिन करने पर सामान्य retention व्यवहार बहाल हो जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/backup-pin/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी बैकअप रीस्टोर पॉइंट से एआई एजेंट को रीस्टोर करें

पंजीकरण पंक्ति पर एक रीस्टोर अनुरोध लिखता है और डिवाइस को सूचित करता है। पूर्ण रीस्टोर /data और /home/hermeswebui को ओवरराइट करता है (डिवाइस पहले रीस्टोर से पहले का एक स्वचालित सुरक्षा स्नैपशॉट लेता है और रीस्टोर के दौरान एजेंट को रोक देता है) और पुष्टि के रूप में डिवाइस का नाम टाइप करना आवश्यक है। `paths` भेजने पर इसके बजाय केवल उन्हीं पाथ का बिना व्यवधान वाला फ़ाइल-स्तरीय रीस्टोर किया जाता है। वैकल्पिक रूप से, डेटा रीस्टोर पूरा होने के बाद डिवाइस को स्नैपशॉट की सॉफ़्टवेयर रिलीज़ पर वापस पिन करता है (backup-restore-release देखें)।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/backup-restore/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

पूर्ण हुए रीस्टोर पर दर्ज सॉफ़्टवेयर रिलीज़ लागू करें

ऐसे रीस्टोर का अंतिम चरण जिसमें स्नैपशॉट के सॉफ़्टवेयर संस्करण का अनुरोध किया गया था: जब डिवाइस रिपोर्ट करता है कि डेटा रीस्टोर पूरा हो गया है, तो यह डिवाइस को संग्रहीत रिलीज़ पर पिन करता है और अपडेट अनलॉक करता है (update एंडपॉइंट जैसी ही प्रक्रिया)। ड्रॉअर की पोलिंग द्वारा संचालित; idempotent — लागू होने के बाद संग्रहीत पिन साफ़ कर दिया जाता है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/backup-restore-release/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी बैकअप रीस्टोर पॉइंट के भीतर फ़ाइलें ब्राउज़ करें

किसी restic स्नैपशॉट के एक डायरेक्टरी स्तर की सूची बनाता है, जो पूरी तरह सर्वर-साइड पर Wasabi repo से दी जाती है (डिवाइस ऑफ़लाइन होने पर भी काम करता है)। केवल tree मेटाडेटा पढ़ा जाता है — सूचियों के लिए कोई फ़ाइल डेटा डाउनलोड नहीं किया जाता।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) takenAt `number` (आवश्यक) path `string` (वैकल्पिक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-files/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-files/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी बैकअप रीस्टोर पॉइंट के भीतर फ़ाइल नाम खोजें

किसी डायरेक्टरी से नीचे की ओर केस-असंवेदनशील फ़ाइल नाम खोज, जो सर्वर-साइड पर restic tree मेटाडेटा से दी जाती है (कोई फ़ाइल डेटा नहीं पढ़ा जाता; डिवाइस ऑफ़लाइन होने पर भी काम करता है)। सूची को स्ट्रीम करता है और पहले 200 मिलानों पर रुक जाता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) takenAt `number` (आवश्यक) q `string` (आवश्यक) path `string` (वैकल्पिक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-search/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-search/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दो बैकअप रीस्टोर पॉइंट के बीच क्या बदला

डिवाइस के दो स्नैपशॉट के बीच सर्वर-साइड restic diff चलाता है (केवल tree मेटाडेटा) और जोड़ी गई/हटाई गई/संशोधित फ़ाइलों की सूची (अधिकतम 500 बदलाव) के साथ सारांश आँकड़े लौटाता है। परिणाम कैश किए जाते हैं — स्नैपशॉट अपरिवर्तनीय होते हैं।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) fromTakenAt `number` (आवश्यक) toTakenAt `number` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-diff/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-diff/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी रीस्टोर पॉइंट में किसी एक फ़ाइल का संस्करण इतिहास

डिवाइस के repo के हर स्नैपशॉट में एक सर्वर-साइड restic find, जिसे अलग-अलग संस्करणों में समेटा जाता है (लगातार समान size+mtime वाले परिणाम मिला दिए जाते हैं) और तिथियों/प्रकारों/नोट्स के लिए स्नैपशॉट इंडेक्स पंक्तियों से जोड़ा जाता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) path `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-file-versions/{club}/{uuid}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

फ़ाइल नाम से किसी डिवाइस के बैकअप के हर रीस्टोर पॉइंट में खोजें

हटाई गई फ़ाइल को पुनर्प्राप्त करने का तरीका: repo के सभी स्नैपशॉट में एक सर्वर-साइड restic find (केस-असंवेदनशील, substring या glob), जिसे पाथ के अनुसार समूहित किया जाता है और साथ में वे रीस्टोर पॉइंट दिए जाते हैं जिनमें प्रत्येक फ़ाइल मौजूद है। डिवाइस से हटाई गई फ़ाइल यहाँ तब तक खोजी जा सकती है जब तक कोई रीस्टोर पॉइंट उसे शामिल करता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) q `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-find/{club}/{uuid}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-find/{club}/{uuid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी बैकअप रीस्टोर पॉइंट से एक फ़ाइल डाउनलोड करें

एक फ़ाइल को सीधे restic repo से ब्राउज़र पर स्ट्रीम करता है (attachment)। डायरेक्टरी को tar आर्काइव के रूप में स्ट्रीम किया जाता है। आकार सीमित है; सर्वर-साइड से दी जाती है, इसलिए डिवाइस ऑफ़लाइन होने पर भी काम करता है।

पैरामीटर

club `string` (आवश्यक) uuid `string` (आवश्यक) takenAt `number` (आवश्यक) path `string` (आवश्यक)

एंडपॉइंट

GET /api/devices/ph-ai-agent/backup-file-download/{club}/{uuid}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी सुविधा से एआई एजेंट को डीकमीशन करें

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

POST /api/devices/ph-ai-agent/decommission/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/decommission/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा से एआई एजेंट हटाएँ और हार्डवेयर को फ़ैक्टरी-रीसेट करें

डिवाइस को पूरी तरह अलग कर देता है ताकि इसे किसी भी सुविधा में जोड़ा जा सके, और NUC का सारा डेटा मिटा देता है। मिटाने की प्रक्रिया क्लाउड टियरडाउन से पहले PH_FACTORY_RESET balena डिवाइस वेरिएबल (एक बार उपयोग होने वाला nonce) के माध्यम से सक्रिय की जाती है, इसलिए हटाते समय डिवाइस ऑफ़लाइन होने पर भी यह बनी रहती है — डिवाइस के अगली बार कनेक्ट होने पर मिटाने की प्रक्रिया चलती है। MQTT factoryReset सूचना ऑनलाइन स्थिति में इसे तुरंत लागू करती है। इसके बाद क्लाउड टियरडाउन हर क्रेडेंशियल और अनुदान को रद्द करता है, Balena सुविधा बाइंडिंग (device vars + club tag) और metadata clubID को साफ़ करता है, और पहुँच अनुरोधों तथा LAN DNS रिकॉर्ड को हटाता है। क्लाउड बैकअप बनाए रखे जाते हैं: स्नैपशॉट इंडेक्स और repo पासवर्ड soft-delete किए गए पंजीकरण पर बने रहते हैं, और प्रतिस्थापन जोड़ते समय रीस्टोर स्रोत के रूप में उपयोग किए जा सकते हैं। पुष्टि के रूप में डिवाइस का नाम टाइप करना आवश्यक है।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/reset/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

खराब हो चुके एआई एजेंट को नए NUC से बदलें (आपदा पुनर्प्राप्ति)

एक बार में डिवाइस प्रतिस्थापन: प्रतिस्थापन NUC को संबद्ध करता है (tunnel slot, secrets, balena vars, backup seed), पुराने डिवाइस का नाम, स्थान, रीबूट शेड्यूल, बैकअप सेटिंग्स, access block और MCP अनुदान आगे ले जाता है, पुराने स्नैपशॉट इंडेक्स को नए डिवाइस से फिर से जोड़ता है (ताकि उसका पूरा बैकअप इतिहास ब्राउज़ करने योग्य रहे), पुराने पंजीकरण को डीकमीशन करता है (replacedBy / replacedFrom अंकित), और — जब तक `restore` false न हो — पुराने डिवाइस के बैकअप repo से चुने गए रीस्टोर पॉइंट का नए हार्डवेयर पर पूर्ण रीस्टोर कतार में डालता है। पुराना डिवाइस खराब/ऑफ़लाइन होने पर भी काम करता है; पुष्टि के रूप में पुराने डिवाइस का नाम टाइप करना आवश्यक है। केवल उसी सुविधा के भीतर।

पैरामीटर

club `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/devices/ph-ai-agent/replace/{club}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

Performance Hub डिवाइस QR शॉर्ट लिंक को उस डीप लिंक में बदलता है जिस पर वह इंगित करता है, ताकि डिवाइस जोड़ें स्कैनर डिवाइस का प्रकार पहचान सके। केवल performancehub.co होस्ट का अनुसरण किया जाता है।

पैरामीटर

url `string` (आवश्यक) स्कैन किया गया शॉर्ट लिंक

एंडपॉइंट

GET /api/devices/resolve-qr

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/resolve-qr \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के Unifi Controller से कनेक्टिविटी और क्रेडेंशियल सही हैं या नहीं, इसकी जाँच करता है।

पैरामीटर

facilityID `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसके साथ आप Unifi कनेक्टिविटी की जाँच करना चाहते हैं

एंडपॉइंट

GET /api/devices/testUnifiController/{facilityID}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/devices/testUnifiController/{facilityID} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के साथ एक सामान्य IoT डिवाइस अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

PUT /api/devices/updateGenericDevice/{club}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/devices/updateGenericDevice/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता और उससे जुड़े क्लबों के आधार पर उन अनुबंधों की संख्या बताता है जो लंबित हैं और जिन पर कार्रवाई आवश्यक है

एंडपॉइंट

GET /api/agreements/agreements-outstanding

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/agreements/agreements-outstanding \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए उपलब्ध सभी अनुबंधों की सूची देता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। contracts-sort `string` (वैकल्पिक) अनुबंधों को प्रभावी तिथि या वर्णानुक्रम से क्रमबद्ध करें। डिफ़ॉल्ट प्रभावी तिथि है। contracts-acknowledgement `string` (वैकल्पिक) अनुबंधों को all, acknowledged या unacknowledged के अनुसार फ़िल्टर करें। डिफ़ॉल्ट all है। contracts-requirement `string` (वैकल्पिक) अनुबंधों को all, signature, checkbox, popup या none के अनुसार फ़िल्टर करें। डिफ़ॉल्ट all है। contracts-status `string` (वैकल्पिक) अनुबंधों को all, active या archived के अनुसार फ़िल्टर करें। डिफ़ॉल्ट all है।

एंडपॉइंट

GET /api/agreements/list-agreements/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/agreements/list-agreements/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी अनुबंध पर उसकी ID के आधार पर हस्ताक्षर करता है।

पैरामीटर

club `string` (आवश्यक) अनुबंध पर हस्ताक्षर करने वाले क्लब की आंतरिक ID। agreementid `string` (आवश्यक) हस्ताक्षर किए जा रहे अनुबंध की ID। body `string` (आवश्यक) सिस्टम में जोड़े/अपलोड किए जाने वाले अनुबंध और पैरामीटर वाला JSON ऑब्जेक्ट ...

एंडपॉइंट

POST /api/agreements/sign/{club}/{agreementid}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/agreements/sign/{club}/{agreementid} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का Model Router सारांश (कॉन्फ़िगरेशन, बैलेंस, खर्च)।

पैरामीटर

clubID `string` (आवश्यक) tz `string` (वैकल्पिक) व्यूअर का IANA टाइमज़ोन — जब सुविधा का कोई टाइमज़ोन डेटा न हो, तब दिन/महीने के खर्च की अवधि के लिए विकल्प।

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/overview

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/overview \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रति-सुविधा सक्षम स्थिति के साथ उपलब्ध मॉडल का कैटलॉग (डिफ़ॉल्ट रूप से सभी सक्षम)।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/models

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/models \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपलब्ध गार्डरेल और PH प्रीसेट टेम्पलेट।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/guardrails

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/guardrails \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कनेक्ट की गई Model Router सेवाएँ। इसमें पेयर किए गए एआई एजेंट डिवाइस, स्पष्ट रूप से टाइप किए गए बाहरी एजेंट और सुविधा की Workflow सेवा शामिल हैं। कॉन्फ़िगरेशन PATCH /keys/{keyHash} के माध्यम से संपादित किया जाता है।

पैरामीटर

clubID `string` (आवश्यक) tz `string` (वैकल्पिक) व्यूअर का IANA टाइमज़ोन — जब सुविधा का कोई टाइमज़ोन डेटा न हो, तब दिन/महीने के खर्च की अवधि के लिए विकल्प।

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/agents

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/agents \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए Model Router सक्षम करें और उसकी इन्फ़रेंस पहुँच प्रोविज़न करें।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{clubID}/ai-credits/enable

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/enable \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्लान, मॉडल allowlist, गार्डरेल, कंटेंट फ़िल्टर (PH-साइड regex redact/block), खर्च सीमा और ऑटो-रीचार्ज कॉन्फ़िगरेशन अपडेट करें।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

PATCH /api/clubs/{clubID}/ai-credits/config

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/config \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

आजीवन हार्ड-कैप काउंटर को 0 पर रीसेट करें (वर्तमान खर्च पर नया आधार) और बंद अवधि को इतिहास में दर्ज करें।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{clubID}/ai-credits/spend-limit/reset-total

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/reset-total \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

हार्ड-कैप रीसेट इतिहास (नवीनतम पहले) — हर बंद अवधि के लिए सीमा, खर्च और टाइमस्टैम्प।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/spend-limit/history

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/history \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के लिए नई phk_ API कुंजी बनाएँ (सादा टेक्स्ट एक बार लौटाया जाता है)। वैकल्पिक खर्च सीमाएँ, मॉडल allowlist, गार्डरेल, कंटेंट फ़िल्टर और rpmLimit/tpmLimit दर सीमाएँ स्वीकार करता है।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{clubID}/ai-credits/keys

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys \
  -H "x-api-key: YOUR_API_KEY"

संपादन योग्य कुंजी फ़ील्ड अपडेट करें: लेबल, प्रति-कुंजी खर्च सीमाएँ, मॉडल allowlist, गार्डरेल, कंटेंट फ़िल्टर और rpmLimit/tpmLimit दर सीमाएँ (कुंजी के साथ सिंक की जाती हैं)।

पैरामीटर

clubID `string` (आवश्यक) keyHash `string` (आवश्यक)

एंडपॉइंट

PATCH /api/clubs/{clubID}/ai-credits/keys/{keyHash}

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys/{keyHash} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के लिए प्रति-अनुरोध इन्फ़रेंस लॉग (लाइव, केवल मेटाडेटा)।

पैरामीटर

clubID `string` (आवश्यक) page `string` (वैकल्पिक) pageSize `string` (वैकल्पिक) status `string` (वैकल्पिक) model `string` (वैकल्पिक) provider `string` (वैकल्पिक) source `string` (वैकल्पिक) `key` या `agent` keyHash `string` (वैकल्पिक) PH keyHash के आधार पर किसी एक कुंजी/एजेंट तक फ़िल्टर करें। q `string` (वैकल्पिक) अनुरोध id, कुंजी/एजेंट लेबल, मॉडल, प्रदाता और अंतिम उपयोगकर्ता में मुक्त-टेक्स्ट खोज। minutes `string` (वैकल्पिक) एक दिन से कम की अवधि (जैसे Live=1440); startDate/endDate को ओवरराइड करती है। startTs `string` (वैकल्पिक) epoch-सेकंड में अवधि की शुरुआत (click-to-zoom); minutes/dates को ओवरराइड करती है। endTs `string` (वैकल्पिक) epoch-सेकंड में अवधि का अंत (click-to-zoom); minutes/dates को ओवरराइड करता है।

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/logs

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Logs दृश्य के लिए समय के साथ अनुरोधों का हिस्टोग्राम। सूची रूट जैसे ही फ़िल्टर, लेकिन सर्वर-साइड पर समय बकेट (सफलता/विफलता गणना) में समेकित, ताकि लॉग की मात्रा चाहे जितनी हो, प्रतिक्रिया बहुत छोटी रहे। बकेट का आकार अवधि के अनुसार अपने-आप चुना जाता है।

पैरामीटर

clubID `string` (आवश्यक) status `string` (वैकल्पिक) model `string` (वैकल्पिक) provider `string` (वैकल्पिक) source `string` (वैकल्पिक) keyHash `string` (वैकल्पिक) q `string` (वैकल्पिक) minutes `string` (वैकल्पिक) startDate `string` (वैकल्पिक) endDate `string` (वैकल्पिक) startTs `string` (वैकल्पिक) endTs `string` (वैकल्पिक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/logs/histogram

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs/histogram \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी अवधि के लिए उपयोग एनालिटिक्स बकेट + प्रति-मॉडल कुल (लाइव)।

पैरामीटर

clubID `string` (आवश्यक) range `string` (वैकल्पिक) 24h | 7 | 30 | 90 | year | all (startDate/endDate दिए जाने पर अनदेखा) startDate `string` (वैकल्पिक) endDate `string` (वैकल्पिक) groupBy `string` (वैकल्पिक) model (डिफ़ॉल्ट) | key | source | provider | status — बकेट + समूहों के लिए आयाम subgroupBy `string` (वैकल्पिक) हर समूह के अंतर्गत नेस्ट किया गया वैकल्पिक दूसरा आयाम (Explore) keyHash `string` (वैकल्पिक) विस्तृत फ़िल्टर — किसी एक कुंजी/एजेंट तक सीमित करें model `string` (वैकल्पिक) विस्तृत फ़िल्टर — किसी एक मॉडल तक सीमित करें provider `string` (वैकल्पिक) source `string` (वैकल्पिक) compare `string` (वैकल्पिक) groupsPrev (ठीक पहले की समान लंबाई वाली अवधि) भी लौटाने के लिए "prev" पर सेट करें

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/stats

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/stats \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पिछले एक वर्ष (GitHub जैसा ~53 सप्ताह) का दैनिक गतिविधि कैलेंडर।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/activity

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/activity \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रीपेड Model Router क्रेडिट जोड़ने के लिए संग्रहीत SaaS-बिलिंग कार्ड से शुल्क लें।

पैरामीटर

clubID `string` (आवश्यक) body `object` (वैकल्पिक)

एंडपॉइंट

POST /api/clubs/{clubID}/ai-credits/topup

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऐप्लेट द्वारा 3DS प्रमाणीकरण पूरा होने के बाद टॉप-अप को अंतिम रूप दें।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{clubID}/ai-credits/topup/confirm

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup/confirm \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संग्रहीत SaaS-बिलिंग कार्ड का सारांश, जिससे टॉप-अप / ऑटो टॉप-अप का शुल्क लिया जाएगा।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/payment-method

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/payment-method \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के लेजर लेनदेन, नवीनतम पहले। वैकल्पिक रूप से प्रकार के अनुसार फ़िल्टर किए गए (जैसे धन-लेनदेन इतिहास के लिए `types=topup,adjustment`, या किसी महीने की उपयोग कटौतियों के लिए `from`/`to` के साथ `types=charge-reconcile`)।

पैरामीटर

clubID `string` (आवश्यक) limit `integer` (वैकल्पिक) अधिकतम पंक्तियाँ (डिफ़ॉल्ट 50, अधिकतम 200) types `string` (वैकल्पिक) अल्पविराम से अलग लेनदेन प्रकार (topup, charge-reconcile, refund, adjustment, trueup-shortfall) from `integer` (वैकल्पिक) केवल वे लेनदेन जिनका createdAt >= from (unix सेकंड) to `integer` (वैकल्पिक) केवल वे लेनदेन जिनका createdAt <= to (unix सेकंड)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/transactions

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अलग-अलग `YYYY-MM` महीने (UTC, नवीनतम पहले) जिनमें अनुरोधित प्रकार का कम से कम एक लेनदेन है। डेटा-आधारित वर्ष/महीना फ़िल्टर ड्रॉपडाउन इसी से बनते हैं, ताकि UI केवल वही अवधियाँ दिखाए जिनमें वास्तव में डेटा है।

पैरामीटर

clubID `string` (आवश्यक) types `string` (वैकल्पिक) अल्पविराम से अलग लेनदेन प्रकार (topup, charge-reconcile, refund, adjustment, trueup-shortfall)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/transactions/available-periods

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/available-periods \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एक Model Router लेनदेन के लिए ब्रांडेड PDF भुगतान रसीद।

पैरामीटर

clubID `string` (आवश्यक) txId `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

चुने गए टॉप-अप लेनदेन की ब्रांडेड PDF भुगतान रसीदों का बंडल, ZIP के रूप में। हर id सुविधा का टॉप-अप होना चाहिए — उपयोग कटौतियों और व्यवस्थापक समायोजनों की कोई रसीद नहीं होती और उन्हें अस्वीकार कर दिया जाता है।

पैरामीटर

clubID `string` (आवश्यक) ids `string` (आवश्यक) अल्पविराम से अलग लेनदेन id (अधिकतम 50)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/transactions/receipts.zip

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/receipts.zip \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा की उपयोग कटौतियों का प्रति-कैलेंडर-माह (UTC) सारांश, नवीनतम पहले। वर्तमान महीना हमेशा शामिल होता है और `isCurrentMonth` (महीने की शुरुआत से अब तक) के रूप में चिह्नित होता है।

पैरामीटर

clubID `string` (आवश्यक) months `integer` (वैकल्पिक) महीनों में पिछली अवधि (डिफ़ॉल्ट 12, अधिकतम 24; `year` सेट होने पर अनदेखा) year `integer` (वैकल्पिक) सारांश को किसी एक UTC कैलेंडर वर्ष तक सीमित करें (जैसे 2026)

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/usage-statements

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ब्रांडेड मासिक Usage Statement PDF — महीने की उपयोग कटौतियों का सारांश (दैनिक उप-योग + कुल)। यह स्पष्ट रूप से इनवॉइस या रसीद नहीं है; उपयोग कटौतियों से कोई भुगतान नहीं लिया जाता।

पैरामीटर

clubID `string` (आवश्यक) month `string` (आवश्यक) UTC कैलेंडर महीना, `YYYY-MM`

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/statement.pdf

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी महीने के कच्चे उपयोग-कटौती लाइन आइटम CSV के रूप में (लेनदेन id, UTC टाइमस्टैम्प, राशि, बाद का बैलेंस, आजीवन खर्च स्नैपशॉट) — वह विस्तृत एक्सपोर्ट जो महीने के स्टेटमेंट के कुल से मेल खाता है।

पैरामीटर

clubID `string` (आवश्यक) month `string` (आवश्यक) UTC कैलेंडर महीना, `YYYY-MM`

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/detail.csv

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

सुविधा के लिए उपयोग/खर्च सारांश (लाइव और मिलान किया गया लेजर)।

पैरामीटर

clubID `string` (आवश्यक) tz `string` (वैकल्पिक) व्यूअर का IANA टाइमज़ोन — जब सुविधा का कोई टाइमज़ोन डेटा न हो, तब दिन/महीने के खर्च की अवधि के लिए विकल्प।

एंडपॉइंट

GET /api/clubs/{clubID}/ai-credits/usage

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एज प्रोसेसर डिवाइस को क्लब से जोड़ता/अपडेट करता है

पैरामीटर

body `string` (आवश्यक) एआई एज प्रोसेसर डिवाइस पंजीकरण अपडेट करने के लिए JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ai-edge-processor/devices

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एआई एज प्रोसेसर डिवाइस को क्लब से जोड़ता है। डिवाइस को पहले मेटाडेटा से रिज़ॉल्व करता है (लाइव हार्टबीट को प्राथमिकता), यदि डिवाइस ने कभी स्वयं पंजीकरण नहीं किया तो पंजीकरण पंक्ति भरता है, और दोबारा प्रोविज़न किए गए हार्डवेयर द्वारा छोड़ी गई पुरानी पंजीकरण पंक्तियाँ साफ़ करता है।

पैरामीटर

body `string` (आवश्यक) एआई एज प्रोसेसर डिवाइस पंजीकरण अपडेट करने के लिए JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ai-edge-processor/devices/associate

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices/associate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब में bbox अपलोड रिकॉर्ड की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/bbox-timeline/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/bbox-timeline/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कैमरा डेटाबेस खोज इंडेक्स

सार्वजनिक दस्तावेज़ों के camera-db खोज इंडेक्स (निर्माता, सीरीज़, मॉडल, उपनाम) को प्रॉक्सी करता है, जिसका उपयोग नेटवर्क कैमरे जोड़ते समय Find my camera डायलॉग करता है। सर्वर-साइड पर 12 घंटे के लिए कैश किया जाता है।

एंडपॉइंट

GET /api/cctv/camera-db/search-index

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/search-index \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कैमरा डेटाबेस निर्माता टेम्पलेट

सार्वजनिक दस्तावेज़ों के कैमरा डेटाबेस से किसी एक निर्माता के RTSP URL टेम्पलेट और डिफ़ॉल्ट को प्रॉक्सी करता है। पाथ ट्रैवर्सल रोकने के लिए slug सत्यापित किया जाता है। सर्वर-साइड पर 12 घंटे के लिए कैश किया जाता है।

पैरामीटर

slug `string` (आवश्यक) निर्माता slug (जैसे hikvision)

एंडपॉइंट

GET /api/cctv/camera-db/manufacturers/{slug}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/manufacturers/{slug} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के चेक-इन डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब/सुविधा की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। startDate `string` (वैकल्पिक) YYYY-MM-DD फ़ॉर्मैट में प्रारंभ तिथि endDate `string` (वैकल्पिक) YYYY-MM-DD फ़ॉर्मैट में समाप्ति तिथि timezone `string` (वैकल्पिक) तिथि की व्याख्या के लिए टाइमज़ोन (डिफ़ॉल्ट Australia/Brisbane) nextToken `string` (वैकल्पिक) अगला पेज प्राप्त करने के लिए पेजिनेशन टोकन

एंडपॉइंट

GET /api/cctv/check-ins/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/check-ins/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी फ़्रंटएंड या UI का कॉन्फ़िगरेशन प्राप्त करें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/config/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी कंटेंट डिलीवरी कॉन्फ़िगरेशन प्राप्त करें

वह कंटेंट डोमेन लौटाता है जिसका उपयोग सीसीटीवी क्लाइंट मीडिया एसेट रिज़ॉल्व करने के लिए करते हैं। डोमेन CONTENT_DOMAIN परिवेश वेरिएबल से तय होता है, और न होने पर स्टेज के अनुसार डिफ़ॉल्ट लिया जाता है (production /cctv देता है, अन्य स्टेज /cctv-stg देते हैं)।

एंडपॉइंट

GET /api/cctv/content-config

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/content-config \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी फ़्रंटएंड या UI का कॉन्फ़िगरेशन बदलें

पैरामीटर

body `object` (आवश्यक) सिस्टम में जोड़े जाने वाले नए कॉन्फ़िगरेशन ब्लॉक का JSON ऑब्जेक्ट।

एंडपॉइंट

PUT /api/cctv/config/:club/:section

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/cctv/config/:club/:section \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी स्टोरेज प्रदाता कॉन्फ़िगरेशन के लिए बकेट क्षेत्र उपलब्धता की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/bucket-region/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/bucket-region/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अज्ञात चेहरा संग्रह रीसेट करें

सभी subjects को हटाकर सुविधा के अज्ञात CompreFace संग्रह को रीसेट करता है। DynamoDB व्यक्ति रिकॉर्ड, चेहरा पहचान और OpenSearch टाइमलाइन ब्लॉक प्रभावित नहीं होते। केवल अंतर्निहित चेहरा पहचान डेटा साफ़ किया जाता है। जैसे-जैसे सिस्टम नए कैमरा डिटेक्शन प्रोसेस करता है, नई शैडो प्रोफ़ाइल अपने-आप बनाई जाएँगी।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/cctv/config/{facilityId}/unidentified-collection

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अज्ञात संग्रह की जानकारी प्राप्त करें

सुविधा के अज्ञात CompreFace संग्रह में subjects की वर्तमान संख्या लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/cctv/config/{facilityId}/unidentified-collection-info

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection-info \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

स्ट्रीम URL (RTSP, HTTP, HTTPS) के माध्यम से नेटवर्क कैमरा (OEM/IP कैमरा) जोड़ता है

पैरामीटर

body `string` (आवश्यक) नेटवर्क कैमरा जोड़ने के लिए JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/add-network-camera

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-camera \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एज प्रोसेसर में एक साथ कई नेटवर्क कैमरे जोड़ें

एक एज प्रोसेसर पर कई RTSP/HTTP नेटवर्क कैमरे पंजीकृत करता है, फिर FEED_CONFIG एक बार पुश करता है ताकि डिवाइस कॉन्फ़िगरेशन केवल एक बार रीलोड करे।

पैरामीटर

body `object` (आवश्यक)

एंडपॉइंट

POST /api/cctv/devices/add-network-cameras

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-cameras \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी डिवाइस को क्लब से जोड़ता/अपडेट करता है

पैरामीटर

body `string` (आवश्यक) सीसीटीवी डिवाइस पंजीकरण अपडेट करने के लिए JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी डिवाइस को क्लब से जोड़ता है

पैरामीटर

body `string` (आवश्यक) सीसीटीवी डिवाइस पंजीकरण अपडेट करने के लिए JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/associate

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/associate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशेष डिवाइस UUID को MQTT अनुरोध भेजता है, और कैमरे की उपलब्ध क्षमताओं की प्रतिक्रिया (websocket के माध्यम से) की अपेक्षा करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके पास वह डिवाइस है जिसकी आप क्वेरी कर रहे हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/list-camera-capabilities/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/list-camera-capabilities/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डिवाइस पंजीकरणों की सूची दें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/devices/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/devices/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नेटवर्क कैमरे को हटाया गया चिह्नित करके और उसे एज प्रोसेसर के FEED_CONFIG से निकालकर हटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके पास डिवाइस है। balenaUUID `string` (आवश्यक) हटाए जाने वाले नेटवर्क कैमरे का UUID।

एंडपॉइंट

DELETE /api/cctv/devices/remove-network-camera/{club}/{balenaUUID}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/devices/remove-network-camera/{club}/{balenaUUID} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कॉन्फ़िगर की गई कोई भी/सभी कैमरा क्षमताएँ सहेजता है और उन्हें परिवेश वेरिएबल के रूप में (balena के माध्यम से) डिवाइस पर लागू करता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके पास वह डिवाइस है जिसकी आप क्वेरी कर रहे हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/save-camera-capabilities/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-capabilities/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कैमरे के लिए मोशन मास्क (यदि कॉन्फ़िगर किया गया हो) सहेजता है और उसे परिवेश वेरिएबल के रूप में (balena के माध्यम से) डिवाइस पर लागू करता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके पास वह डिवाइस है जिसकी आप क्वेरी कर रहे हैं। body `string` (आवश्यक) कैमरा मास्क का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/save-camera-mask/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-mask/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

भौतिक डिवाइस को कोई विशेष v4l2 कमांड (जैसे brightness या contrast) भेजता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके पास वह डिवाइस है जिसकी आप क्वेरी कर रहे हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/devices/set-camera-capability/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/set-camera-capability/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नेटवर्क कैमरा स्ट्रीम URL का परीक्षण करें

ffprobe का उपयोग करके कैमरा स्ट्रीम URL सत्यापित करने के लिए एज प्रोसेसर को परीक्षण कमांड भेजता है

अनुरोध बॉडी

एंडपॉइंट

POST /api/cctv/devices/test-stream

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

डेटाबेस से किसी एक चेहरा पहचान रिकॉर्ड को स्थायी रूप से हटाता है। किसी व्यक्ति के गतिविधि लॉग से बेमेल या गलत ट्रैक प्रविष्टियाँ हटाने के लिए उपयोग किया जाता है।

पैरामीटर

club `string` (आवश्यक) fdID `string` (आवश्यक)

एंडपॉइंट

DELETE /api/cctv/face-detections/:club/:fdID

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:fdID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी व्यक्ति के चेहरा पहचान डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personID `string` (आवश्यक) चेहरा पहचान सिस्टम में व्यक्ति की ID

एंडपॉइंट

GET /api/cctv/face-detections/:club/:personID

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:personID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वे चेहरा पहचान लौटाता है जो किसी दिए गए व्यक्ति क्रॉप इमेज का संदर्भ देती हैं, personCropImage GSI के माध्यम से क्वेरी की गई।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personCropImage `string` (आवश्यक) चेहरा पहचान रिकॉर्ड पर संग्रहीत व्यक्ति क्रॉप इमेज URL। limit `string` (वैकल्पिक) लौटाई जाने वाली पहचानों की अधिकतम संख्या। nextToken `string` (वैकल्पिक) पिछली प्रतिक्रिया से मिला पेजिनेशन टोकन।

एंडपॉइंट

GET /api/cctv/face-detections-by-person-crop-image/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections-by-person-crop-image/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वर्तमान समय के सापेक्ष अवधि के अनुसार समूहित, किसी क्लब के चेहरा पहचान डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/face-detections/:club/timeline

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/timeline \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के चेहरा पहचान डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/face-detections/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

OpenSearch का उपयोग करके किसी सुविधा में चेहरा पहचान टाइमलाइन ब्लॉक खोजें

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसमें खोज करनी है timezone `string` (आवश्यक) तिथि रूपांतरण के लिए IANA टाइमज़ोन (जैसे Pacific/Auckland) startDate `string` (वैकल्पिक) प्रारंभ तिथि फ़िल्टर (YYYY-MM-DD), टाइमज़ोन का उपयोग करके startUnix में बदला जाता है endDate `string` (वैकल्पिक) समाप्ति तिथि फ़िल्टर (YYYY-MM-DD), टाइमज़ोन का उपयोग करके endUnix में बदला जाता है personId `string` (वैकल्पिक) किसी विशेष व्यक्ति ID के अनुसार फ़िल्टर करें query `string` (वैकल्पिक) मुक्त-टेक्स्ट खोज (जैसे व्यक्ति का नाम) limit `string` (वैकल्पिक) प्रति पेज परिणाम (डिफ़ॉल्ट 20, अधिकतम 100) filters `string` (वैकल्पिक) JSON-एन्कोडेड फ़िल्टर ऑब्जेक्ट (जैसे {"matchType":"identified"}) sortBy `string` (वैकल्पिक) क्रमबद्ध करने का फ़ील्ड (startUnix, endUnix, created)। डिफ़ॉल्ट endUnix है। page `string` (वैकल्पिक) पेजिनेशन के लिए पेज संख्या (डिफ़ॉल्ट 1) sortOrder `string` (वैकल्पिक) क्रम की दिशा (asc या desc)। डिफ़ॉल्ट desc है।

एंडपॉइंट

GET /api/cctv/search/face-detections/timeline-blocks/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/face-detections/timeline-blocks/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब सुविधा के बारे में रिपोर्ट की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/facility/:club/reports

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/facility/:club/reports \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

माँग पर हीटमैप जनरेशन ट्रिगर करें। वही Starter लॉजिक चलाता है जो शेड्यूल किया गया cron उपयोग करता है, लेकिन किसी विशेष सुविधा, तिथि/समय और अवधियों के सेट को लक्षित करने की अनुमति देता है। बिना बॉडी के कॉल करने पर यह cron जैसा ही व्यवहार करता है — सभी पात्र सुविधाओं को स्कैन करता है और हर डिवाइस को कतार में डालता है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/cctv/heatmaps/generate

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी एक डिवाइस के लिए बनाए गए रोलिंग-अवधि हीटमैप PNG का स्थान रिज़ॉल्व करें। केवल JSON मेटाडेटा लौटाता है — PNG बाइट कंटेंट डोमेन पर रहते हैं, और फ़्रंटएंड URL इस तरह बनाता है: `${contentDomain}/cctv/${storageService}/${region}/${filePath}?s=${token}` रिज़ॉल्यूशन क्रम: 1. DynamoDB `composed#…` इंडेक्स में मिलने पर → तुरंत लौटाएँ (~10 ms)। 2. नियतात्मक कैश कुंजी पर Wasabi HEAD। मिलने पर, एक बैकफ़िल इंडेक्स पंक्ति लिखें और लौटाएँ। 3. पुराना विकल्प: इस (device, range, hour) टपल के लिए कोई भी composed रिकॉर्ड मौजूद हो, भले ही किसी अलग तिथि का हो। `cache: 'HIT-STALE'` के साथ तुरंत लौटाया जाता है ताकि FE *कुछ* दिखा सके। एक नया compose async रूप से चलाया जाता है। 4. कोल्ड पाथ: कोई रिकॉर्ड मौजूद ही नहीं है। Compose Lambda को `InvocationType: 'Event'` के माध्यम से कतार में डाला जाता है और एंडपॉइंट `202 { cache: 'PENDING' }` लौटाता है। FE तब तक पोल करता है जब तक रिकॉर्ड न आ जाए (आमतौर पर 3-5 सेकंड)। आज की तिथि का प्रबंधन: जब `endDate` सुविधा का स्थानीय "आज" हो, तो एंडपॉइंट इसके बजाय कल का PNG देता है — आज के स्लाइस अभी भी Starter cron द्वारा लिखे जा रहे हैं और नया composition अधूरा होगा। प्रतिक्रिया में अनुरोधित `endDate` लौटाया जाता है और `endDateUsed` (= कल) शामिल होता है। `cache` enum: - `HIT` — अनुरोधित तिथि के लिए DDB इंडेक्स से दिया गया। - `HIT-FALLBACK` — आज का अनुरोध; कल की इंडेक्स पंक्ति दी गई। - `HIT-BACKFILL` — DDB में नहीं मिला लेकिन Wasabi में PNG था; पंक्ति अभी लिखी गई। - `HIT-FALLBACK-BACKFILL` — कल वाले विकल्प पर बैकफ़िल। - `HIT-STALE` — अनुरोधित तिथि का कोई रिकॉर्ड नहीं, लेकिन इस टपल के लिए किसी अन्य तिथि का रिकॉर्ड मौजूद है; तुरंत दिया गया और पृष्ठभूमि में नया compose कतार में डाला गया। - `PENDING` — कोई रिकॉर्ड नहीं; compose कतार में डाल दिया गया है। FE को पोल करना चाहिए। प्रतिक्रिया `202 Accepted` है, कोई `filePath` नहीं।

पैरामीटर

facilityId `string` (आवश्यक) deviceUUID `string` (आवश्यक) जिस डिवाइस के लिए compose करना है। Composition प्रति-डिवाइस होते हैं। hour `integer` (आवश्यक) दिन का घंटा 0–23, जिसके लिए पिछली अवधि में compose करना है। endDate `string` (वैकल्पिक) अवधि की अंतिम तिथि (YYYY-MM-DD)। डिफ़ॉल्ट आज (सुविधा का tz)। range `string` (वैकल्पिक) पिछली अवधि। अनुमत सीमाओं में से एक होनी चाहिए। nocache `integer` (वैकल्पिक) DDB + HEAD कैश परतों को बायपास करके नया compose करने के लिए `1` पर सेट करें।

एंडपॉइंट

GET /api/cctv/heatmaps/hourly/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/hourly/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पता करें कि किसी रोलिंग पिछली अवधि में किसी डिवाइस के लिए दिन के किन घंटों में `1h` स्लाइस रिकॉर्ड हैं। फ़्रंटएंड इसका उपयोग composition एंडपॉइंट (`/api/cctv/heatmaps/hourly/...`) को कॉल करने से पहले तिथि + सीमा पिकर के साथ घंटा पिकर भरने के लिए करता है। उदाहरण: `GET /api/cctv/heatmaps/query-hourly/Birkdale?deviceUUID=abc123&endDate=2026-04-16&range=30d` आंतरिक रूप से: `cctvheatmaps` पर एक DynamoDB रेंज क्वेरी (`sk BETWEEN 1h#{start}-00 AND 1h#{end}-23`), घंटे के अनुसार समूहित। हर उस घंटे के लिए एक प्रविष्टि लौटाता है जिसमें कम से कम एक स्लाइस है, जिसमें एक प्रतिनिधि ref JPEG शामिल है (अवधि के सबसे हाल के दिन से लिया गया — ref प्रति-डिवाइस-प्रति-दिन साझा होता है)।

पैरामीटर

facilityId `string` (आवश्यक) deviceUUID `string` (आवश्यक) क्वेरी किया जाने वाला डिवाइस। घंटेवार स्लाइस प्रति-डिवाइस होते हैं। endDate `string` (वैकल्पिक) अवधि की अंतिम तिथि (YYYY-MM-DD)। डिफ़ॉल्ट आज (सुविधा का tz)। range `string` (वैकल्पिक) पिछली अवधि। अनुमत सीमाओं में से एक होनी चाहिए।

एंडपॉइंट

GET /api/cctv/heatmaps/query-hourly/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/query-hourly/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए पहले से जनरेट किए गए हीटमैप रिकॉर्ड क्वेरी करें। **किसी अवधि प्रकार के सभी रिकॉर्ड:** - `/api/cctv/heatmaps/Birkdale?periodType=1y` - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&periodType=1d` **तिथि सीमा — एक अवधि प्रकार:** - `/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` **तिथि सीमा — सभी लागू अवधि प्रकार (periodType छोड़ दें):** - `/api/cctv/heatmaps/Birkdale?from=2026-03-01&to=2026-03-31` दी गई सीमा से ओवरलैप करने वाले वार्षिक, अर्ध-वार्षिक, त्रैमासिक आदि से लेकर 6h तक के रिकॉर्ड लौटाता है। **किसी समय-बिंदु पर — एक डिवाइस के लिए सभी 9 अवधि प्रकार:** - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&date=2026-03-15T14:30` अधिकतम 9 रिकॉर्ड लौटाता है (1y, 6m, 3m, 2m, 1m, 1w, 1d, 12h, 6h)।

पैरामीटर

facilityId `string` (आवश्यक) सुविधा का पहचानकर्ता। deviceUUID `string` (वैकल्पिक) किसी विशेष डिवाइस की क्वेरी करें। छोड़ दिए जाने पर सभी डिवाइस में क्वेरी करता है (GSI)। periodType `string` (वैकल्पिक) किसी एक अवधि प्रकार तक फ़िल्टर करें। from/to के साथ छोड़ दिए जाने पर सभी प्रकार क्वेरी करता है। from `string` (वैकल्पिक) प्रारंभ तिथि (yyyy-mm-dd)। `to` के साथ उपयोग किया जाना चाहिए। to `string` (वैकल्पिक) समाप्ति तिथि (yyyy-mm-dd)। `from` के साथ उपयोग किया जाना चाहिए। date `string` (वैकल्पिक) किसी समय-बिंदु का लुकअप (yyyy-mm-dd या yyyy-mm-ddTHH:mm)। deviceUUID आवश्यक है। प्रति अवधि प्रकार एक रिकॉर्ड लौटाता है।

एंडपॉइंट

GET /api/cctv/heatmaps/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

डिवाइस का लाइवस्ट्रीम थंबनेल प्राप्त करें

पैरामीटर

club `string` (आवश्यक) क्लब की आंतरिक ID। deviceId `string` (आवश्यक) सीसीटीवी डिवाइस की आंतरिक ID।

एंडपॉइंट

GET /api/cctv/livestream/:club/thumbnail/:deviceId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/livestream/:club/thumbnail/:deviceId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी सिस्टम को बताएँ कि आप लाइवस्ट्रीम देखने जा रहे हैं

पैरामीटर

club `string` (आवश्यक) क्लब की आंतरिक ID। deviceId `string` (आवश्यक) सीसीटीवी डिवाइस की आंतरिक ID।

एंडपॉइंट

POST /api/cctv/livestream/:club/iswatching/:deviceId

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/livestream/:club/iswatching/:deviceId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इंटरसेक्शन मिलान स्वीकृत करें

मिलान की स्थिति को confirmed पर सेट करता है और समीक्षक को दर्ज करता है।

पैरामीटर

club `string` (आवश्यक) matchId `string` (आवश्यक)

एंडपॉइंट

POST /api/cctv/matching/{club}/detail/{matchId}/approve

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/approve \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

विज़िट विवरण के साथ एक इंटरसेक्शन मिलान प्राप्त करें

मिलान रिकॉर्ड और उसका प्रति-विज़िट समय विवरण लौटाता है।

पैरामीटर

club `string` (आवश्यक) matchId `string` (आवश्यक)

एंडपॉइंट

GET /api/cctv/matching/{club}/detail/{matchId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के इंटरसेक्शन मिलानों की सूची दें

स्थिति के अनुसार फ़िल्टर किए गए पेजिनेटेड मिलान लौटाता है।

पैरामीटर

club `string` (आवश्यक) status `string` (वैकल्पिक) limit `integer` (वैकल्पिक) nextToken `string` (वैकल्पिक)

एंडपॉइंट

GET /api/cctv/matching/{club}/list

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/list \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इंटरसेक्शन मिलान अस्वीकार करें

मिलान की स्थिति को rejected पर सेट करता है और समीक्षक को दर्ज करता है।

पैरामीटर

club `string` (आवश्यक) matchId `string` (आवश्यक)

एंडपॉइंट

POST /api/cctv/matching/{club}/detail/{matchId}/reject

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/reject \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इंटरसेक्शन मिलान की सारांश गणना प्राप्त करें

सुविधा के लिए स्थिति के अनुसार समूहित मिलान गणना लौटाता है।

पैरामीटर

club `string` (आवश्यक) सुविधा ID

एंडपॉइंट

GET /api/cctv/matching/{club}/summary

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/summary \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

चल रहे "upsert identified person" ऑपरेशन (बनाना और संपादन दोनों) की स्थिति पढ़ें। cctv-rekognition-api के स्वामित्व वाली `people-ops` टेबल से पंक्ति सीधे पढ़ता है; कोई Lambda हॉप नहीं। POST /api/cctv/people/{facility}/identified के बाद प्रगति पोल करने के लिए सीसीटीवी फ़्रंटएंड द्वारा उपयोग किया जाता है। पाथ `/cctv/people/...` के बराबर स्तर पर है (उसके अंदर नेस्ट नहीं), ताकि express राउटर `/cctv/people/:club/:personID` पर `operationId` को गलती से `:personID` न मान ले। createAPIRouter का glob क्रम देखें। जब तक upsertIdentifiedPerson Lambda ने अपनी पहली चरण प्रविष्टि नहीं लिखी है (कोल्ड-स्टार्ट अवधि), तब तक एक `pending` प्लेसहोल्डर लौटाता है। FE पोलिंग हुक प्लेसहोल्डर और pending को एक जैसा मानता है, इसलिए कॉल करने वालों के लिए अनुबंध स्थिर रहता है।

पैरामीटर

operationId `string` (आवश्यक)

एंडपॉइंट

GET /api/cctv/people-operations/{operationId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people-operations/{operationId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी चेहरे की इमेज (किसी मौजूदा ट्रैक डिटेक्शन से) को व्यक्ति के CompreFace पहचान subject में जोड़ता है और शैडो फ़ोटो टेबल में एक संदर्भ संग्रहीत करता है। इमेज को Wasabi पर अपलोड नहीं करता — वह चेहरा पहचान कैप्चर के रूप में पहले से वहाँ है।

पैरामीटर

club `string` (आवश्यक) personID `string` (आवश्यक) body `string` (आवश्यक)

एंडपॉइंट

POST /api/cctv/people/:club/:personID/add-face

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID/add-face \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी व्यक्ति रिकॉर्ड में शैडो फ़ोटो जोड़ें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personID `string` (आवश्यक) व्यक्ति की रिकॉर्ड ID body `string` (आवश्यक) सिस्टम में जोड़े जाने वाले नए कॉन्फ़िगरेशन ब्लॉक का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/people/:club/shadow-photos/:personID

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी व्यक्ति की शैडो फ़ोटो क्वेरी करें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personID `string` (आवश्यक) व्यक्ति की रिकॉर्ड ID

एंडपॉइंट

GET /api/cctv/people/:club/shadow-photos/:personID

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

CCTVShadowPhotosTable से शैडो फ़ोटो रिकॉर्ड को स्थायी रूप से हटाता है और CompreFace से संबंधित चेहरा हटाता है (यदि faceId संग्रहीत है)।

पैरामीटर

club `string` (आवश्यक) personID `string` (आवश्यक) id `string` (आवश्यक) शैडो फ़ोटो रिकॉर्ड ID (प्राइमरी कुंजी)

एंडपॉइंट

DELETE /api/cctv/people/:club/shadow-photos/:personID/:id

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID/:id \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

personID के आधार पर संदर्भ और संबंधित rekognition रिकॉर्ड हटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personID `string` (आवश्यक) सीसीटीवी व्यक्ति की यूनिक ID।

एंडपॉइंट

DELETE /api/cctv/people/:club/:personID

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब का व्यक्ति रिकॉर्ड लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। personID `string` (आवश्यक) व्यक्ति की DB ID।

एंडपॉइंट

GET /api/cctv/people/:club/:personID

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी व्यक्ति की सदस्यता प्रोफ़ाइल से मेल खाने वाले एक्सेस ज़ोन प्राप्त करें

व्यक्ति के सदस्य प्रकार, टैग और सदस्यता प्लान रिज़ॉल्व करता है, फिर include/exclude नियमों से मेल खाने वाले वास्तविक एक्सेस ज़ोन (origin=membership-plan, absorbed नहीं) लौटाता है। हर ज़ोन पर accessRestriction को केवल उन नियमों तक सीमित किया जाता है जो व्यक्ति से मेल खाए। चाइल्ड ज़ोन के कैमरे पैरेंट ज़ोन में मर्ज किए जाते हैं।

पैरामीटर

club `string` (आवश्यक) सुविधा की आंतरिक ID personID `string` (आवश्यक) सीसीटीवी people टेबल से व्यक्ति ID

एंडपॉइंट

GET /api/cctv/people/{club}/{personID}/allowed-zones

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/{club}/{personID}/allowed-zones \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रति-स्रोत परिणामों सहित मर्ज जॉब की वर्तमान स्थिति लौटाता है। जब तक स्थिति IN_PROGRESS हो, इस एंडपॉइंट को हर 3-5 सेकंड में पोल करें।

पैरामीटर

club `string` (आवश्यक) mergeJobID `string` (आवश्यक)

एंडपॉइंट

GET /api/cctv/people/:club/merge-status/:mergeJobID

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-status/:mergeJobID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कई अज्ञात व्यक्ति प्रोफ़ाइलों को एक बचे हुए प्रोफ़ाइल में मर्ज करने की पृष्ठभूमि प्रक्रिया शुरू करता है। तुरंत mergeJobID के साथ 202 लौटाता है। प्रगति के लिए /merge-status/:mergeJobID पोल करें।

पैरामीटर

club `string` (आवश्यक) body `string` (आवश्यक)

एंडपॉइंट

POST /api/cctv/people/:club/merge-unidentified

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-unidentified \
  -H "x-api-key: YOUR_API_KEY"

किसी सुविधा के ब्लैकलिस्ट संग्रह में चेहरा जोड़ें

पैरामीटर

facilityId `string` (आवश्यक) सुविधा की आंतरिक ID

अनुरोध बॉडी

एंडपॉइंट

POST /api/cctv/people/{facilityId}/blacklist

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा में पहचाने गए व्यक्ति को अपसर्ट करें — नया रिकॉर्ड बनाता है या मौजूदा रिकॉर्ड अपडेट करता है। upsertIdentifiedPerson Lambda को प्रॉक्सी करता है, जो व्यक्ति रिकॉर्ड लिखता है, दी गई कोई भी फ़ोटो Wasabi पर अपलोड करता है, और CompreFace में चेहरे को फिर से इंडेक्स करता है। जब `isNewRecord` true हो (डिफ़ॉल्ट), Lambda create शाखा (cctvPeople.save) चलाता है और न दिए जाने पर `personID` जनरेट किया जाता है। जब `isNewRecord` false हो, Lambda update शाखा (cctvPeople.update) चलाता है — `personID` आवश्यक है और उससे किसी मौजूदा रिकॉर्ड की पहचान होनी चाहिए।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/cctv/people/{facilityId}/identified

उदाहरण अनुरोध

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

किसी सुविधा के लिए सीसीटीवी people टेबल में सिंक किए जाने वाले वैकल्पिक पार्टनर फ़ील्ड का सेट अपडेट करें।

पैरामीटर

facilityId `string` (आवश्यक) सुविधा की आंतरिक ID

अनुरोध बॉडी

एंडपॉइंट

PUT /api/cctv/people/{facilityId}/sync-fields

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी क्लब के लोगों के डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/people/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

चेहरे की इमेज के आधार पर किसी सुविधा में लोगों को खोजें। अपलोड की गई base64 इमेज और पाथ से सुविधा ID के साथ cctv-rekognition-api imageFaceSearch Lambda चलाता है। रैंक किए गए मिलान और DeepFace विशेषता सारांश लौटाता है।

पैरामीटर

club `string` (आवश्यक) सुविधा / क्लब ID body `string` (आवश्यक)

एंडपॉइंट

POST /api/cctv/people/{club}/search-by-face

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{club}/search-by-face \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

OpenSearch का उपयोग करके किसी सुविधा में लोगों को खोजें

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसमें खोज करनी है query `string` (वैकल्पिक) खोज शब्द (जैसे नाम) page `string` (वैकल्पिक) पेज संख्या (डिफ़ॉल्ट 1) limit `string` (वैकल्पिक) प्रति पेज परिणाम (डिफ़ॉल्ट 20, अधिकतम 100) filters `string` (वैकल्पिक) JSON-एन्कोडेड फ़िल्टर ऑब्जेक्ट (जैसे {"membershipStatus":"active"}) sortBy `string` (वैकल्पिक) क्रमबद्ध करने का फ़ील्ड (created, lastName, firstName, membershipUpdatedOn)। डिफ़ॉल्ट created है। sortOrder `string` (वैकल्पिक) क्रम की दिशा (asc या desc)। डिफ़ॉल्ट desc है।

एंडपॉइंट

GET /api/cctv/search/people/:facilityId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/people/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

चेहरा पहचान आइटम को नए personID से अपडेट करता है और rekognition रिकॉर्ड जोड़ता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। body `string` (आवश्यक) सिस्टम में जोड़े जाने वाले नए कॉन्फ़िगरेशन ब्लॉक का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/people/:club/validate

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/validate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के सीसीटीवी रिकॉर्डिंग डेटा के लिए सभी उपलब्ध फ़िल्टर का ऑब्जेक्ट लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/recordings/filters/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/filters/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

रिकॉर्डिंग स्ट्रीम करें।

एंडपॉइंट

GET /api/cctv/recordings/:club/:dir/:filename

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

रिकॉर्डिंग की जानकारी अपडेट करें।

एंडपॉइंट

PUT /api/cctv/recordings/:club/:dir/:filename

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के सीसीटीवी रिकॉर्डिंग डेटा का सारांश लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/recordings/:club/summary

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/summary \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वर्तमान समय के सापेक्ष अवधि के आधार पर किसी क्लब के सीसीटीवी रिकॉर्डिंग डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/recordings/:club/timeline

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/timeline \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के सीसीटीवी रिकॉर्डिंग डेटा की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/recordings/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

रिकॉर्डिंग एक तय अवधि में अपने-आप हटा दी जाती हैं, रिकॉर्डिंग बनाए रखने के लिए इस फ़ंक्शन का उपयोग करें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

POST /api/cctv/recordings/:club/:action

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:action \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी तिथि सीमा के भीतर किसी सुविधा के रिपोर्ट स्नैपशॉट खोजें

पैरामीटर

facilityId `string` (आवश्यक) सुविधा की आंतरिक ID startDate `string` (आवश्यक) प्रारंभ तिथि फ़िल्टर (YYYY-MM-DD) endDate `string` (आवश्यक) समाप्ति तिथि फ़िल्टर (YYYY-MM-DD) deviceIds `string` (वैकल्पिक) फ़िल्टर करने के लिए कैमरा/डिवाइस ID की अल्पविराम से अलग सूची view `string` (वैकल्पिक) गणना किया जाने वाला वैकल्पिक रिपोर्ट दृश्य (रिपोर्ट Lambda को भेजा जाता है)

एंडपॉइंट

GET /api/cctv/reports/search-report-snapshots/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/reports/search-report-snapshots/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के इंडेक्स किए गए सीसीटीवी मीडिया पर वेक्टर खोज। searchAnything Lambda से रिले किए गए text/event-stream के साथ प्रतिक्रिया देता है, ताकि कोल्ड कंटेनर द्वारा एनकोडर लोड होने के दौरान क्लाइंट प्रगति दिखा सके। इवेंट `status` होते हैं, फिर `result` या `error`। पूछने के तीन तरीके हैं, जिनमें से दो इस verb पर हैं। मुक्त टेक्स्ट से खोजने के लिए `query` भेजें। उदाहरण से खोजने के लिए — "इस जैसे और" — `seedIndex` + `seedKey` भेजें, जो इंडेक्स में पहले से मौजूद किसी पंक्ति के वेक्टर का उपयोग करता है; इसी तरह आप उस परिणाम जैसे और परिणाम पाते हैं जिसे उपयोगकर्ता देख रहा है। उपयोगकर्ता के पास मौजूद किसी इमेज से खोजने के लिए, इसके बजाय बाइट को इसी पाथ पर `POST` करें। एक को दूसरे से सीमित करने के लिए शब्दों के साथ चित्र भेजें: **टेक्स्ट छाँटता है, इमेज रैंक करती है**। उम्मीदवार seed से आते हैं, शब्द तय करते हैं कि उनमें से कौन बचेंगे, और दृश्य समानता क्रम तय करती है — इसलिए परिणाम अभी भी चित्र जैसे दिखते हैं और शब्द उन्हें हटा देते हैं जो मेल नहीं खाते। दोनों को कभी एक वेक्टर में नहीं मिलाया जाता, इसीलिए संयुक्त खोज के लिए `queryKind` का मान `similar` रहता है; परिणाम पर `query` की मौजूदगी ही बताती है कि टेक्स्ट से छँटाई लागू हुई। उम्मीद करें कि संयुक्त खोजें अक्सर कुछ नहीं लौटाएँगी, और इसे एक अलग परिणाम मानें: `perIndex..textGated` उन उम्मीदवारों की गिनती करता है जो चित्र से तो मेल खाए लेकिन शब्दों से नहीं, इसलिए खाली पेज को "दूसरा चित्र आज़माएँ" के बजाय "शब्द हटाएँ" के रूप में समझाया जा सकता है। बिना शब्दों वाली seed खोज कोई एनकोडर लोड नहीं करती, इसलिए उसे कभी कोल्ड स्टार्ट नहीं झेलना पड़ता; शब्द जोड़ने पर यह लाभ नहीं रहता। दोनों ही स्थितियों में यह डिफ़ॉल्ट रूप से हर इंडेक्स में खोज करता है: crop, recording और timelapse वेक्टर एक ही स्पेस साझा करते हैं, इसलिए व्यक्ति का crop मेल खाने वाला फ़ुटेज ढूँढ सकता है। seed वाले स्कोर टेक्स्ट स्कोर से कहीं अधिक होते हैं (इमेज-से-इमेज में कोई मोडैलिटी अंतर नहीं होता) और उन्हें एक अलग, अभी तक कैलिब्रेट न की गई न्यूनतम सीमा से फ़िल्टर किया जाता है — `result.queryKind` बताता है कि आप कौन-सा पैमाना पढ़ रहे हैं, और एक के स्कोर की तुलना दूसरे से कभी नहीं की जानी चाहिए। डिफ़ॉल्ट रूप से हर इंडेक्स में खोज करता है और एक मर्ज की गई, स्कोर के अनुसार क्रमबद्ध सूची लौटाता है; हर hit में `index` और `kind` होते हैं ताकि कॉल करने वाला इमेज hit और वीडियो hit में अंतर कर सके (वीडियो hit में `offsetMs` जुड़ता है)। जिन इंडेक्स में सुविधा के लिए कोई टेबल नहीं है, उन्हें विफल होने के बजाय `skipped` में बताया जाता है। हर इंडेक्स की कैलिब्रेट की गई प्रासंगिकता सीमा से नीचे के hit हटा दिए जाते हैं, इसलिए जिस क्वेरी का कोई वास्तविक मिलान नहीं है वह आत्मविश्वासी बकवास के बजाय खाली सूची लौटाती है; `perIndex` बताता है कि हर इंडेक्स ने क्या योगदान दिया और क्यों। परिणामों को कैप्चर समय और कैमरे के अनुसार सीमित किया जा सकता है। `camera` के बजाय `cameraId` को प्राथमिकता दें: यह कैमरे का balenaUUID है, जो एकमात्र मान है जिसे हर इंडेक्स एक जैसा संग्रहीत करता है, इसलिए एक ही फ़िल्टर सभी को सीमित करता है। जिस फ़िल्टर का उत्तर कोई इंडेक्स नहीं दे सकता, उसे `perIndex..filtersIgnored` के अंतर्गत बताया जाता है और उस इंडेक्स को खोज से हटाने के बजाय बिना सीमा के खोजा जाता है। रिकॉर्डिंग hit **प्रति क्लिप एक होते हैं, प्रति मेल खाए फ़्रेम एक नहीं**: फ़्रेम हर 2 s पर सैंपल किए जाते हैं, इसलिए रुका रहने वाला कोई व्यक्ति उसी रिकॉर्डिंग के दस लगभग एक जैसे फ़्रेम से मेल खाता है। हर क्लिप अपना सबसे अच्छा फ़्रेम लौटाती है, साथ में `matchCount` और `offsetsMs`, जो उसके अंदर मेल खाए हर क्षण की सूची देते हैं और सीधे सीक पॉइंट के रूप में उपयोग किए जा सकते हैं। व्यक्ति crop कभी समेटे नहीं जाते, क्योंकि एक व्यक्ति के दो crop दो अलग-अलग बार दिखने को दर्शाते हैं।

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसमें खोज करनी है query `string` (वैकल्पिक) क्या खोजना है उसका मुक्त-टेक्स्ट विवरण। आवश्यक है, जब तक warm=1 न हो या seed न भेजा गया हो। seed के साथ मिलाने पर यह रैंक की जाने वाली चीज़ नहीं रहता, बल्कि seed के उम्मीदवारों पर एक फ़िल्टर बन जाता है, जो उन उम्मीदवारों को हटा देता है जिनका टेक्स्ट स्कोर इंडेक्स की प्रासंगिकता सीमा से नीचे है। seedIndex `string` (वैकल्पिक) टेक्स्ट के बजाय उदाहरण से खोजें: वह इंडेक्स जिसमें seed पंक्ति है (person-crops, recording-frames, timelapse-frames)। यह उस hit का `index` है जिस पर उपयोगकर्ता ने क्लिक किया। seedKey के साथ भेजा जाना चाहिए। seedKey `string` (वैकल्पिक) seed पंक्ति की `key`, hit से ज्यों की त्यों ली गई। seed को उसके अपने परिणामों से बाहर रखा जाता है — रिकॉर्डिंग के लिए इसका अर्थ पूरी क्लिप है, क्योंकि उसके अन्य फ़्रेम 2s के अंतर पर और लगभग एक जैसे होते हैं। seedFrameId `string` (वैकल्पिक) seedIndex के recording-frames होने पर आवश्यक: वह इंडेक्स प्रति सैंपल किए गए फ़्रेम एक पंक्ति संग्रहीत करता है और सभी क्लिप की कुंजी साझा करती हैं, इसलिए केवल कुंजी किसी क्षण के बजाय किसी क्लिप को दर्शाती है। hit का `frameId` भेजें। पुरानी पंक्तियों में यह नहीं होता — इसके बजाय seedOffsetMs भेजें। seedOffsetMs `string` (वैकल्पिक) उन recording-frames seed के लिए वैकल्पिक फ़्रेम पहचानकर्ता जिनकी पंक्ति `frame_id` से पुरानी है। hit का `offsetMs` भेजें। seedFrameId दिए जाने पर अनदेखा किया जाता है। warm `string` (वैकल्पिक) खोज चलाए बिना Lambda कंटेनर को तैयार करें। इसे पेज लोड होने पर चलाएँ। warmTarget `string` (वैकल्पिक) `warm` कौन-सा एनकोडर लोड करता है: `text` (डिफ़ॉल्ट), `image`, या `both`। विज़न टावर 355 MB का है जबकि टेक्स्ट टावर 283 MB का, इसलिए उसे तैयार करना वैकल्पिक है — `image` तभी माँगें जब उपयोगकर्ता ने वास्तव में कोई चित्र तैयार कर लिया हो, पेज लोड पर नहीं। index `string` (वैकल्पिक) खोजे जाने वाले डेटासेट, अल्पविराम से अलग: person-crops, recording-frames, timelapse-frames। परिणाम स्कोर के अनुसार क्रमबद्ध एक सूची में मर्ज किए जाते हैं। डिफ़ॉल्ट रूप से तीनों में खोज की जाती है; सीमित करने के लिए स्पष्ट सूची दें। timelapse-frames उन कैमरों को कवर करता है जो कुछ रिकॉर्ड नहीं करते और केवल प्रति मिनट एक फ़्रेम बनाते हैं, और इसकी प्रासंगिकता सीमा अभी कैलिब्रेट नहीं की गई है। model `string` (वैकल्पिक) क्वेरी के लिए एनकोडर। यह उसी एनकोडर से मेल खाना चाहिए जिससे डेटासेट इंडेक्स किया गया था। limit `string` (वैकल्पिक) प्रति इंडेक्स लौटाए जाने वाले परिणाम (डिफ़ॉल्ट 50, अधिकतम 100) — यह कुल संख्या नहीं है, इसलिए तीनों इंडेक्स में खोजने पर इसके तीन गुना तक परिणाम आ सकते हैं। रिकॉर्डिंग के लिए यह मेल खाए फ़्रेम के बजाय क्लिप गिनता है। from `string` (वैकल्पिक) केवल इस समय या उसके बाद कैप्चर किए गए मीडिया से मिलान करें, epoch से मिलीसेकंड में। ध्यान दें कि यह कैप्चर समय है, अपलोड समय नहीं। to `string` (वैकल्पिक) केवल इस समय से पहले (इसे छोड़कर) कैप्चर किए गए मीडिया से मिलान करें, epoch से मिलीसेकंड में। cameraId `string` (वैकल्पिक) सीमित करने के लिए कैमरा balenaUUID, अल्पविराम से अलग — /api/cctv/recordings/filters/:club द्वारा लौटाई गई हर प्रविष्टि का `balenaUUID` फ़ील्ड। यह पसंदीदा कैमरा फ़िल्टर है: हर इंडेक्स यही मान संग्रहीत करता है, इसलिए एक फ़िल्टर सभी को सीमित करता है। ध्यान दें कि यह केवल उन crop में होता है जिनका face-detection join रिज़ॉल्व हुआ (आज ~1%), इसलिए crop बैकफ़िल चलने तक कैमरे के अनुसार crop सीमित करने पर बहुत कम या कोई परिणाम नहीं मिलेगा; रिकॉर्डिंग में यह पूरी तरह भरा है और सटीक फ़िल्टर होता है। camera `string` (वैकल्पिक) सीमित करने के लिए कैमरा नाम, अल्पविराम से अलग। व्यवहार में केवल रिकॉर्डिंग के लिए: person-crops हर पंक्ति पर खाली कैमरा नाम संग्रहीत करता है, इसलिए यहाँ कोई भी मान सभी crop को बाहर कर देता है। cameraId को प्राथमिकता दें। cameraGroup `string` (वैकल्पिक) सीमित करने के लिए कैमरा समूह, अल्पविराम से अलग। सभी रिकॉर्डिंग में भरा होता है लेकिन केवल ~1% crop में, cameraId जैसे ही कारण से। minScore `string` (वैकल्पिक) शोर को फ़िल्टर करने वाली प्रति-इंडेक्स cosine सीमा को ओवरराइड करें। production में न भेजें; हर इंडेक्स में एक कैलिब्रेट किया गया डिफ़ॉल्ट होता है (और seed खोजों के लिए एक अलग, बिना कैलिब्रेट किया गया)। प्रासंगिकता डीबग करते समय बिना फ़िल्टर के निकटतम पड़ोसी देखने के लिए 0 भेजें।

एंडपॉइंट

GET /api/cctv/search/anything/:facilityId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

शब्दों या स्क्रीन पर पहले से मौजूद परिणाम के बजाय, उपयोगकर्ता के पास मौजूद इमेज से खोजें। बाकी हर मामले में GET जैसा ही — वही क्वेरी पैरामीटर, वही इवेंट स्ट्रीम, वही परिणाम आकार — इसलिए यहाँ केवल अंतर बताए गए हैं। `image/*` Content-Type के साथ अनुरोध बॉडी के रूप में **मूल फ़ाइल बाइट** भेजें। पहले ब्राउज़र में इसका आकार न बदलें, क्रॉप न करें या फिर से एन्कोड न करें: सर्वर एक बहुत विशिष्ट आकार परिवर्तन (antialiased bilinear kernel के साथ 256x256 में दबाना) से मिलान करता है, जिससे इंडेक्स किए गए वेक्टर बनाए गए थे, और canvas स्केलिंग एक अलग तरीका उपयोग करती है। मापने पर, यह बदलाव सही उत्तर से लगभग 0.93 cosine दूर पड़ता है, जो दो वास्तव में अलग इमेज से भी अधिक दूरी है — इसलिए परिणाम विश्वसनीय दिखने वाले लेकिन गलत क्रम में आते हैं, बिना किसी त्रुटि के। सीमा 4 MB है, जो गुणवत्ता की नहीं बल्कि ट्रांसपोर्ट की सीमा है: बाइट Lambda invoke पेलोड के अंदर जाते हैं, जिसकी सीमा 6 MB है, और base64 उन्हें एक तिहाई बढ़ा देता है। परिणाम इमेज-से-इमेज स्कोर किए जाते हैं, इसलिए `queryKind` का मान `image` होता है और स्कोर seed खोज जैसे ही बहुत ऊँचे पैमाने पर होते हैं — टेक्स्ट स्कोर से कभी तुलनीय नहीं। उम्मीद करें कि ये समकक्ष seed खोज से थोड़े *कम* होंगे: seed का वेक्टर डिवाइस ने स्वयं लिखा था, जबकि अपलोड को यहाँ एक अलग इंजन फिर से एन्कोड करता है, जो उसे डिवाइस के स्थान से कुछ सौवें हिस्से दूर रखता है। मापने पर, इसके बावजूद परिणाम समान गुणवत्ता के हैं; बस वे बिल्कुल एक जैसा सेट नहीं हैं। `query` जोड़ने से परिणाम उन शब्दों से छँटते हैं, ठीक वैसे ही जैसे seed के लिए। seed *और* इमेज दोनों भेजना अस्वीकार किया जाता है: दोनों ही रैंक की जाने वाली चीज़ हैं, इसलिए इस जोड़ी का कोई अर्थ नहीं है। यह इस एंडपॉइंट का सबसे महँगा अनुरोध है। अपलोड की गई इमेज विज़न टावर लोड करती है, और शब्द जोड़ने से टेक्स्ट टावर भी लोड होता है — दोनों कोल्ड कंटेनर पर। उपयोगकर्ता द्वारा चित्र तैयार करते ही `warm=1&warmTarget=image` भेजने से यह भार मुख्य रास्ते से हट जाता है।

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसमें खोज करनी है body `string` (आवश्यक) रॉ इमेज बाइट, बिना बदलाव के, अधिकतम 4 MB query `string` (वैकल्पिक) इमेज परिणामों को सीमित करने के लिए वैकल्पिक शब्द, जो उन मिलानों को हटा देते हैं जिनका टेक्स्ट स्कोर इंडेक्स की प्रासंगिकता सीमा से नीचे है।

एंडपॉइंट

POST /api/cctv/search/anything/:facilityId

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के सीसीटीवी के लिए स्टोरेज विवरण और अन्य मीट्रिक डेटा लौटाता है

एंडपॉइंट

GET /api/cctv/storage-details/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/storage-details/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के टाइमलैप्स अपलोड रिकॉर्ड की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/timelapse/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/timelapse/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी फ़्रंटएंड या UI में रिकॉर्डिंग पर की गई उपयोगकर्ता कार्रवाइयों की सूची दें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/cctv/ui/actions/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी फ़्रंटएंड या UI में रिकॉर्डिंग पर की गई उपयोगकर्ता कार्रवाई दर्ज करें

पैरामीटर

body `string` (आवश्यक) सिस्टम में जोड़े जाने वाले नए कॉन्फ़िगरेशन ब्लॉक का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/ui/actions/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सीसीटीवी फ़्रंटएंड या UI के लिए उपयोगकर्ता टोकन प्राप्त करें

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

GET /api/cctv/ui/token/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/token/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अस्थायी या अतिथि पहुँच के लिए टोकन जनरेट करें

पैरामीटर

club `string` (आवश्यक) क्लब का यूनिक पहचानकर्ता। body `string` (आवश्यक) जारी किए जाने वाले टोकन विवरण का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/cctv/token/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/cctv/token/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{
  "accessID": "00000000-0000-0000-0000-000000000014"
}

अस्थायी या अतिथि पहुँच के टोकन के रिकॉर्ड की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) क्लब का यूनिक पहचानकर्ता।

एंडपॉइंट

GET /api/cctv/token/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/cctv/token/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

access ID के माध्यम से access token प्राप्त करें

पैरामीटर

accessID `string` (आवश्यक) DB में token रिकॉर्ड की ID।

एंडपॉइंट

POST /guest/cctv/token/:accessID

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/guest/cctv/token/:accessID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के एक्सेस घंटे हटाएँ

पैरामीटर

facilityId `string` (आवश्यक) body `object` (आवश्यक) नए एक्सेस घंटों का JSON ऑब्जेक्ट।

एंडपॉइंट

DELETE /api/ai/computer-vision/access-hours/:facilityId

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के एक्सेस घंटों की सूची लौटाता है

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/ai/computer-vision/access-hours/:facilityId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के एक्सेस घंटे अपडेट करता है या बनाता है

पैरामीटर

facilityId `string` (आवश्यक) body `object` (आवश्यक) नए एक्सेस घंटों का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ai/computer-vision/access-hours/:facilityId

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का एक्सेस ज़ोन हटाएँ

पैरामीटर

facilityId `string` (आवश्यक) body `object` (आवश्यक) नए एक्सेस ज़ोन का JSON ऑब्जेक्ट।

एंडपॉइंट

DELETE /api/ai/computer-vision/access-zones/:facilityId

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के एक्सेस ज़ोन की सूची लौटाता है

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/ai/computer-vision/access-zones/:facilityId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का एक्सेस ज़ोन अपडेट करता है या बनाता है

पैरामीटर

facilityId `string` (आवश्यक) body `object` (आवश्यक) नए एक्सेस ज़ोन का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ai/computer-vision/access-zones/:facilityId

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के सभी ब्रांड और सुविधाओं में सभी admin module IDs का संयोजन, मॉड्यूल ऑब्जेक्ट के रूप में भरकर लौटाता है।

पैरामीटर

organisationId `string` (आवश्यक) संगठन ID

एंडपॉइंट

GET /api/organisations/{organisationId}/admin-modules

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/organisations/{organisationId}/admin-modules \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी संगठनों की सूची लौटाता है

पैरामीटर

includeBrands `string` (वैकल्पिक) संगठन से संबद्ध ब्रांड शामिल करें includeFacilities `string` (वैकल्पिक) संगठन से संबद्ध सुविधाएँ शामिल करें includeRegions `string` (वैकल्पिक) संगठन से संबद्ध क्षेत्र शामिल करें

एंडपॉइंट

GET /api/organisations

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/organisations \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक सरल एआई सहायक जो सहायता टिकट की सामग्री का विश्लेषण करता है और उपलब्ध विषयों के साथ-साथ सुझाए गए Algolia खोज विषयों के आधार पर सुझाव बनाता है...

पैरामीटर

messageBody `string` (आवश्यक) भेजे जाने वाले संदेश की बॉडी topicData `string` (आवश्यक) osTicket (टिकटिंग/सहायता सिस्टम) से लौटाए गए topicData का JSON ऑब्जेक्ट/ऐरे facilityId `string` (वैकल्पिक) सही Algolia इंडेक्स निर्धारित करने के लिए आवश्यक क्लब की आंतरिक ID, जिस पर खोज की जानी है।

एंडपॉइंट

PUT /api/ai/helpers/analyse-support-ticket

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/ai/helpers/analyse-support-ticket \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक सरल इमेज जनरेशन API

पैरामीटर

type `string` (आवश्यक) जनरेट की जाने वाली इमेज का प्रकार name `string` (आवश्यक) इमेज का नाम maxSize `string` (वैकल्पिक) वैकल्पिक अधिकतम प्रतिक्रिया आकार, जैसे 200KB, 1MB या केवल बाइट संख्या। इमेज को फ़िट करने के लिए उसका आकार छोटा/संपीड़ित किया जाता है।

एंडपॉइंट

PUT /api/ai/images/:type/:name

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/ai/images/:type/:name \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सरल LLM क्वेरी

सरल, स्टेटलेस LLM क्वेरी के लिए हल्का एंडपॉइंट। सख्त टोकन सीमाओं के साथ एक सस्ते, बिना रीज़निंग वाले मॉडल (gpt-4o-mini) का उपयोग करता है। कोई बातचीत इतिहास नहीं, कोई टूल नहीं, कोई स्ट्रीमिंग नहीं — बस प्रॉम्प्ट अंदर, टेक्स्ट बाहर।

अनुरोध बॉडी

एंडपॉइंट

POST /api/ai/llm/query

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

इंडेक्स नाम, ऐप ID और API कुंजी सहित Algolia कॉन्फ़िगरेशन लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/facilities/{facilityId}/algolia/config

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/algolia/config \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Algolia मार्केटिंग प्रिंट इंडेक्स प्रारंभ करता है

पैरामीटर

organisationId `string` (आवश्यक)

एंडपॉइंट

PUT /api/algolia/index

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/algolia/index \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

मार्केटिंग प्रिंट सामग्री खोजें

अनुरोध बॉडी

एंडपॉइंट

POST /algolia/search-marketing-print

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

मार्केटिंग प्रिंट सामग्री खोजें

पैरामीटर

club `string` (वैकल्पिक) क्लब ID searchTerms `string` (वैकल्पिक) खोज शब्द algoliaArgs `object` (वैकल्पिक) अतिरिक्त Algolia खोज आर्ग्युमेंट

एंडपॉइंट

GET /algolia/search-marketing-print

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/algolia/search-marketing-print \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशेष क्लब के लिए मार्केटिंग प्रिंट ऑब्जेक्ट को एक साथ अपडेट करें

एंडपॉइंट

POST /algolia/bulk-update-marketing-print

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/algolia/bulk-update-marketing-print \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Algolia से मार्केटिंग प्रिंट एसेट प्राप्त करता है।

पैरामीटर

organisationId `string` (आवश्यक) search `string` (वैकल्पिक) limit `string` (वैकल्पिक) brand `string` (वैकल्पिक) tag `string` (वैकल्पिक)

एंडपॉइंट

GET /api/algolia/marketing/assets

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के कॉन्फ़िगरेशन के साथ Algolia मार्केटिंग प्रिंट इंडेक्स प्रारंभ करता है।

पैरामीटर

organisationId `string` (आवश्यक)

एंडपॉइंट

POST /api/algolia/marketing/assets

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

खोज शब्दों, क्लब और/या लोकेल के आधार पर किसी निर्दिष्ट Algolia इंडेक्स में खोज करता है। अतिरिक्त Algolia आर्ग्युमेंट का उपयोग करके खोज को और अनुकूलित किया जा सकता है।

पैरामीटर

searchTerms `string` (आवश्यक) Algolia इंडेक्स में खोजे जाने वाले शब्द। club `string` (वैकल्पिक) अनुरोध करने वाले क्लब की आंतरिक ID। निर्दिष्ट किए जाने पर, खोज क्लब से जुड़े क्षेत्र के आधार पर फ़िल्टर की जाएगी। locale `string` (वैकल्पिक) क्लब निर्दिष्ट न होने पर क्षेत्र निर्धारित करने के लिए उपयोग किया जाने वाला लोकेल। navigator.languages से लिया जाता है। algoliaArgs `string` (वैकल्पिक) Algolia खोज अनुरोध में भेजे जाने वाले अतिरिक्त/कस्टम आर्ग्युमेंट।

एंडपॉइंट

POST /api/algolia/search-wiki

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/algolia/search-wiki \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी घोषणाओं की सूची देता है

एंडपॉइंट

GET /api/announcements/list

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/announcements/list \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सार्वजनिक S3 बकेट में (Upload API के माध्यम से) एसेट अपलोड करता है, जो फिर फ़ाइल को पोस्ट-प्रोसेस/ऑप्टिमाइज़ करता है, थंबनेल बनाता है आदि। *ध्यान दें, एसेट सार्वजनिक रूप से उपलब्ध होंगे*

पैरामीटर

file `string` (वैकल्पिक) अपलोड की जाने वाली फ़ाइल/एसेट का नाम।

एंडपॉइंट

POST /api/asset-upload

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/asset-upload \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अपलोड रिकॉर्ड के दिए गए uuid के आधार पर अपलोड की स्थिति लौटाता है

पैरामीटर

uuid `string` (आवश्यक) अपलोड रिकॉर्ड का UUID

एंडपॉइंट

GET /api/asset-upload/:uuid

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/asset-upload/:uuid \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के Sonos को कमांड भेजें

पैरामीटर

body `object` (आवश्यक) Sonos को भेजे जाने वाले कमांड और इनपुट का JSON ऑब्जेक्ट।

एंडपॉइंट

PUT /api/audio-control/command/:club

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/command/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऑडियो नियंत्रण फ़्रंटएंड का कॉन्फ़िगरेशन प्राप्त करें

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/audio-control/config/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/audio-control/config/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऑडियो नियंत्रण फ़्रंटएंड का कॉन्फ़िगरेशन बदलें

पैरामीटर

body `object` (आवश्यक) सिस्टम में जोड़े जाने वाले नए कॉन्फ़िगरेशन ब्लॉक का JSON ऑब्जेक्ट।

एंडपॉइंट

PUT /api/audio-control/config/:club/:section

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/config/:club/:section \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशेष क्षेत्र के लिए ब्रांड सेटिंग प्राप्त करता है

पैरामीटर

brandId `string` (वैकल्पिक) ब्रांड की ID regionCode `string` (वैकल्पिक) उस क्षेत्र का ISO कोड जिसकी सेटिंग प्राप्त करनी है

एंडपॉइंट

GET /api/brands/{brandId}/regions/{regionCode}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी विशेष क्षेत्र के लिए कई ब्रांड सेटिंग अपडेट करता है

पैरामीटर

brandId `string` (वैकल्पिक) अपडेट किए जाने वाले ब्रांड की ID regionCode `string` (वैकल्पिक) उस क्षेत्र का ISO कोड जिसकी सेटिंग अपडेट करनी है acceptFreeTrialBookingsVisibility `string` (वैकल्पिक) customTrackingCodeVisibility `string` (वैकल्पिक) displayDataSources `string` (वैकल्पिक) displayDefaultDataSource `string` (वैकल्पिक) displayDefaultUI `string` (वैकल्पिक) displayUIOptions `string` (वैकल्पिक) defaultAboutBusiness `string` (वैकल्पिक) defaultAboutBusinessFacebook `string` (वैकल्पिक) facilityCoverImage `string` (वैकल्पिक) digitalProfileSettingsVisibility `string` (वैकल्पिक) facilityHoursVisibility `string` (वैकल्पिक) facilityLocationVisibility `string` (वैकल्पिक) facilityPaymentMethods `string` (वैकल्पिक) facilityPrimaryLogo `string` (वैकल्पिक) facilityStatusVisibility `string` (वैकल्पिक) landingPagesVisibility `string` (वैकल्पिक) lineChatIntegrationVisibility `string` (वैकल्पिक) whatsAppIntegrationVisibility `string` (वैकल्पिक) defaultWhatsAppMessage `string` (वैकल्पिक) socialUrlsVisibility `string` (वैकल्पिक) yextApiKey `string` (वैकल्पिक) इस ब्रांड-क्षेत्र के लिए Yext इंटीग्रेशन द्वारा उपयोग की जाने वाली API कुंजी। केवल तब देखी जाती है जब `directorySyncMode` का मान `yext` हो। directorySyncMode `string` (वैकल्पिक) इस ब्रांड-क्षेत्र की सुविधाओं के लिए कौन-सा सिंक बैकएंड चलना चाहिए। मान न होने पर डिफ़ॉल्ट `yext` होता है, ताकि Directory Publishers रोलआउट से पहले के ब्रांड के साथ अनुकूलता बनी रहे। websiteUrl `string` (वैकल्पिक) androidAppUrl `string` (वैकल्पिक) iosAppUrl `string` (वैकल्पिक) featuredMessageDescription `string` (वैकल्पिक) yextCategoryIds `string` (वैकल्पिक) पुरानी स्टोरेज कुंजी — ये वास्तव में Google Business Profile श्रेणी ID हैं (जैसे gcid:gym)। "yext" उपसर्ग Yext के बंद होने से पहले का है; मौजूदा DB पंक्तियों के साथ अनुकूलता के लिए रखा गया है। customInputFields `string` (वैकल्पिक) customInputFieldsToRemove `string` (वैकल्पिक)

एंडपॉइंट

PUT /api/brands/{brandId}/regions/{regionCode}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशेष सुविधा के लिए ब्रांड सेटिंग प्राप्त करता है

पैरामीटर

facilityId `string` (वैकल्पिक) उस सुविधा की ID जिसकी ब्रांड सेटिंग प्राप्त करनी है

एंडपॉइंट

GET /api/facilities/{facilityId}/brand-settings

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/brand-settings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नया ब्रांड बनाता है

पैरामीटर

name `string` (आवश्यक) ब्रांड का नाम organisationId `string` (आवश्यक) उस संगठन की ID जिससे ब्रांड संबंधित है redirectDashboard `string` (वैकल्पिक) लॉग इन करने के बाद डिफ़ॉल्ट डैशबोर्ड के बजाय जिस URL पर रीडायरेक्ट करना है

एंडपॉइंट

POST /api/brands

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/brands \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी ब्रांड की सूची लौटाता है

एंडपॉइंट

GET /api/brands

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

ब्रांड ऑब्जेक्ट लौटाता है

पैरामीटर

brandId `string` (आवश्यक) प्राप्त किए जाने वाले ब्रांड की ID includeOrganisation `boolean` (वैकल्पिक) क्या प्रतिक्रिया में संगठन डेटा शामिल करना है

एंडपॉइंट

GET /api/brands/{brandId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

ID के आधार पर ब्रांड अपडेट करता है

पैरामीटर

brandId `string` (वैकल्पिक) अपडेट किए जाने वाले ब्रांड की ID name `string` (आवश्यक) ब्रांड का नाम brandOrganisationId `string` (वैकल्पिक) उस संगठन की ID जिससे ब्रांड संबंधित है redirectDashboard `string` (वैकल्पिक) लॉग इन करने के बाद डिफ़ॉल्ट डैशबोर्ड के बजाय जिस URL पर रीडायरेक्ट करना है yextApiKey `string` (वैकल्पिक) इस ब्रांड के लिए Yext API तक पहुँचने में उपयोग की जाने वाली API कुंजी customMenuLayout `object` (वैकल्पिक) प्रति-ब्रांड साइड-मेनू लेआउट ट्री (सेक्शन / समूह / आइटम, जिनमें सिस्टम मॉड्यूल या कस्टम URL के संदर्भ होते हैं)। केवल इस ब्रांड के संगठन का संगठन व्यवस्थापक ही इसे सेट कर सकता है।

एंडपॉइंट

PUT /api/brands/{brandId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी ब्रांड की सुविधाओं की सूची दें

ब्रांड से संबंधित सुविधाओं की एक हल्की सूची (id, नाम, क्षेत्र ISO कोड) लौटाता है। ब्रांड कॉन्फ़िगरेशन में सुविधा लक्ष्यीकरण चयनकर्ताओं को भरने के लिए उपयोग किया जाता है।

पैरामीटर

brandId `string` (आवश्यक) उस ब्रांड की ID जिसकी सुविधाओं की सूची चाहिए

एंडपॉइंट

GET /api/brands/{brandId}/facilities

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

क्लब के संगठन से जुड़े सभी ब्रांड की सूची लौटाता है।

एंडपॉइंट

GET /api/clubs/{club}/brands

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

सभी कैलेंडर प्रकारों की सूची लौटाता है

एंडपॉइंट

GET /api/programs/calendars/calendar-types

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/programs/calendars/calendar-types \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डैशबोर्ड बैनर हटाएँ

ब्रांड से संबंधित डैशबोर्ड बैनर को सॉफ़्ट-डिलीट करता है।

पैरामीटर

brandId `string` (आवश्यक) उस ब्रांड की ID जिससे बैनर संबंधित है bannerId `string` (आवश्यक) हटाए जाने वाले बैनर की ID

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी ब्रांड के डैशबोर्ड बैनर की सूची दें

व्यवस्थापकीय प्रबंधन के लिए ब्रांड हेतु कॉन्फ़िगर किए गए सभी (हटाए न गए) डैशबोर्ड बैनर लौटाता है।

पैरामीटर

brandId `string` (आवश्यक) उस ब्रांड की ID जिसके बैनर की सूची चाहिए

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

डैशबोर्ड बैनर बनाएँ या अपडेट करें

ब्रांड के लिए नया डैशबोर्ड बैनर बनाता है, या बॉडी में `bannerId` दिए जाने पर मौजूदा बैनर अपडेट करता है। बैनर शेड्यूल किए जा सकते हैं (unix-सेकंड में शुरुआत/अंत, null = असीमित) और पूरे ब्रांड, विशिष्ट क्षेत्रों (ISO कोड) या विशिष्ट सुविधाओं को लक्षित किए जा सकते हैं।

पैरामीटर

brandId `string` (आवश्यक) उस ब्रांड की ID जिससे बैनर संबंधित है

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के सक्रिय डैशबोर्ड बैनर प्राप्त करें

सुविधा के ब्रांड, क्षेत्र (ISO देश कोड) और प्रत्येक बैनर के enabled फ़्लैग, शेड्यूल विंडो और लक्ष्यीकरण के आधार पर, यह निर्धारित करता है कि किसी सुविधा के लिए वर्तमान में कौन-से डैशबोर्ड बैनर दिखाए जाने चाहिए। डैशबोर्ड UI द्वारा उपयोग किया जाता है।

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की ID जिसके लिए बैनर निर्धारित करने हैं

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी क्लब का KYC एसेट लौटाता है।

पैरामीटर

clubId `string` (आवश्यक) क्लब की ID। key `string` (आवश्यक) KYC एसेट की कुंजी।

एंडपॉइंट

GET /api/clubs/{clubId}/kyc-assets/{key}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets/{key} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब की KYC जानकारी लौटाता है।

एंडपॉइंट

GET /api/clubs/{clubId}/kyc

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब की KYC जानकारी अपडेट करता है।

पैरामीटर

clubId `string` (आवश्यक) अपडेट किए जाने वाले क्लब की ID। body `object` (आवश्यक)

एंडपॉइंट

PUT /api/clubs/{clubId}/kyc

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए KYC एसेट अपलोड करता है।

पैरामीटर

clubId `string` (आवश्यक) क्लब की ID। file `string` (आवश्यक) अपलोड की जाने वाली फ़ाइल।

एंडपॉइंट

POST /api/clubs/{clubId}/kyc-assets

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब की प्राथमिकता सेटिंग लौटाता है।

एंडपॉइंट

GET /api/club/preferences/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/preferences/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब प्राथमिकताओं की प्रविष्टि बनाता या अपडेट करता है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/club/preferences/:club

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

अनुबंध वाले सदस्यों की सूची लौटाता है।

एंडपॉइंट

GET /api/clubpass/user/email/exist/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/email/exist/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अनुबंध वाले सदस्यों की सूची लौटाता है।

एंडपॉइंट

GET /api/clubpass/user/phone/exist/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/phone/exist/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

निर्दिष्ट क्लब के उपयोगकर्ताओं की सूची लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं

एंडपॉइंट

GET /api/clubs/{club}/members

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/members \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

बताता है कि दी गई तिथि पर क्लब खुला है या नहीं।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। date `string` (आवश्यक) जाँची जाने वाली तिथि, unix फ़ॉर्मैट में

एंडपॉइंट

GET /api/club-busy-hours/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club-busy-hours/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब का वह सारा मेटाडेटा लौटाता है जो Example Club वेबसाइटों पर दिखाया जाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/clubs/clubpage/clubdata/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/clubpage/clubdata/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

फ़्रंट-एंड से मिले नए डेटा से किसी क्लब का मेटाडेटा अपडेट करता है। अनुरोध बॉडी में न भेजे गए फ़ील्ड सुरक्षित रहते हैं (कोई SET नहीं, कोई REMOVE नहीं)। `null` या खाली स्ट्रिंग के रूप में भेजे गए फ़ील्ड साफ़ कर दिए जाते हैं। समर्पित आंशिक-मर्ज पाथ का उपयोग करने के लिए `updateAll: false` भेजें; दोनों ही स्थितियों में, कॉल करने वालों को वे फ़ील्ड भेजने की ज़रूरत नहीं होती जो उनके नहीं हैं।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। body `string` (आवश्यक) उस क्लब डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/clubs/clubpage/updateclub/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/clubpage/updateclub/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नया कस्टम ट्रैकिंग रिकॉर्ड जोड़ें

पैरामीटर

club `string` (आवश्यक) क्लब की id body `string` (आवश्यक) कस्टम ट्रैकिंग आइटम का ऐरे।

एंडपॉइंट

POST /api/clubs/{club}/customtracking

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशेष क्लब की कस्टम ट्रैकिंग लौटाता है

एंडपॉइंट

GET /api/clubs/customtracking/:clubID

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/customtracking/:clubID \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कस्टम ट्रैकिंग प्रविष्टियाँ अपडेट करें

पैरामीटर

club `string` (आवश्यक) क्लब की id body `string` (आवश्यक) उस क्लब डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/clubs/{club}/customtracking/update

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking/update \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब की डिफ़ॉल्ट शॉपफ़्रंट इमेज लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club}/default-shop-front

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/default-shop-front \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा में उपलब्ध दरवाज़ों की सूची दें

पैरामीटर

body `object` (आवश्यक) उस क्लब डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/clubs/integrations/doors/:facilityId

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा में किसी विशेष दरवाज़े को अनलॉक करें

पैरामीटर

body `object` (आवश्यक) उस क्लब डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/clubs/integrations/doors/unlock

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/unlock \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

निर्दिष्ट क्लब के सभी इंटीग्रेशन और कॉन्फ़िगरेशन विवरण लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/clubs/integrations/list/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/integrations/list/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

फ़्रंट-एंड से मिले नए डेटा से किसी क्लब का मेटाडेटा अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। body `object` (आवश्यक) उस क्लब डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

POST /api/clubs/integrations/update/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/update/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

boolean लौटाता है कि क्लब किसी यूरोपीय देश में है या नहीं

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। date `string` (आवश्यक) जाँची जाने वाली तिथि, unix फ़ॉर्मैट में

एंडपॉइंट

GET /api/clubs/is-eu/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/is-eu/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

हमारे डेटाबेस के सभी क्लबों की उच्च-स्तरीय सूची लौटाता है।

एंडपॉइंट

GET /api/clubs/listclubs

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/listclubs \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

बताता है कि दी गई तिथि पर क्लब खुला है या नहीं।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। date `string` (आवश्यक) जाँची जाने वाली तिथि, unix फ़ॉर्मैट में

एंडपॉइंट

GET /api/clubs/{club}/open-on/{date}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/open-on/{date} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

dynamo db से क्लब की समीक्षाएँ प्राप्त करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

GET /api/clubs/{club}/reviews

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

dynamo db से क्लब की समीक्षा सेटिंग प्राप्त करें।

पैरामीटर

facilityId `string` (आवश्यक) सुविधा ID

एंडपॉइंट

GET /api/clubs/{club}/reviews-settings

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

dynamo db पर क्लब की समीक्षा सेटिंग अपडेट करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

PUT /api/clubs/{club}/reviews-settings

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा सेटिंग का ऑटो-प्रकाशन फिर से सक्षम करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

PUT /api/clubs/{club}/reviews/publish-recent-reviews

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा प्रकाशित करता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। review `string` (आवश्यक) उस समीक्षा की आंतरिक ID जिसे आप प्रकाशित करना चाहते हैं।

एंडपॉइंट

PUT /api/clubs/{club}/reviews/{review}/publish

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/publish \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा सेटिंग का ऑटो-प्रकाशन फिर से सक्षम करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा का जवाब उसके मूल प्रकाशक (Google आदि) के माध्यम से पोस्ट करें।

पैरामीटर

club `string` (आवश्यक) सुविधा ID reviewId `string` (आवश्यक) PH समीक्षा ID (club-social-reviews टेबल में खोजी जाती है) body `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{club}/reviews/{reviewId}/respond

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{reviewId}/respond \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा का प्रकाशन रद्द करता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। review `string` (आवश्यक) उस समीक्षा की आंतरिक ID जिसका प्रकाशन आप रद्द करना चाहते हैं।

एंडपॉइंट

PUT /api/clubs/{club}/reviews/{review}/un-publish

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/un-publish \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

PH db से निर्दिष्ट क्लब के स्वामियों की सूची लौटाता है

पैरामीटर

clubID `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं

एंडपॉइंट

GET /api/clubs/{clubID}/owners

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/owners \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के सभी सदस्यता प्लान लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) सुविधा की आंतरिक ID

एंडपॉइंट

GET /api/facilities/membership-plans/:facilityId

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सदस्यता प्लान रिकॉर्ड अपडेट करता है।

पैरामीटर

facilityId `string` (आवश्यक) सुविधा की आंतरिक ID body `object` (आवश्यक) उस सदस्यता प्लान डेटा का JSON ऑब्जेक्ट जिसे आप अपडेट करना चाहते हैं।

एंडपॉइंट

PUT /api/facilities/membership-plans/:facilityId

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा सेटिंग का ऑटो-प्रकाशन फिर से सक्षम करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

PUT /api/clubs/{club}/reviews/publish-recent-reviews

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

समीक्षा सेटिंग का ऑटो-प्रकाशन फिर से सक्षम करें।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी उपलब्ध मुद्राओं की सूची लौटाता है

एंडपॉइंट

GET /api/currencies

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/currencies \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

IP पते का उपयोग करके भौगोलिक स्थान लौटाता है।

पैरामीटर

ip `string` (आवश्यक) खोजा जाने वाला IP पता

एंडपॉइंट

GET /api/geo/ip-location/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-location/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वर्तमान उपयोगकर्ता के IP के आधार पर उसका भौगोलिक स्थान लौटाता है।

एंडपॉइंट

GET /api/geo/ip-current

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-current \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

केवल अनुरोध करने वाले क्लाइंट का सार्वजनिक IP पता लौटाता है (कोई geolocation लुकअप नहीं, कोई तृतीय-पक्ष API कॉल नहीं)। एआई एजेंट applet इसका उपयोग ब्राउज़र के सार्वजनिक IP की तुलना डिवाइस द्वारा beacon किए गए WAN IP से करने के लिए करता है, ताकि यह पता चल सके कि दोनों एक ही नेटवर्क पर हैं या नहीं।

एंडपॉइंट

GET /api/geo/client-ip

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/geo/client-ip \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

फ़ोन पार्सर।

पैरामीटर

body `string` (आवश्यक) उस नंबर का Json Object जिसे आप पार्स करना चाहते हैं।

एंडपॉइंट

POST /api/phone/parser

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/phone/parser \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

मास्टर क्लॉक डिवाइस लौटाता है

पैरामीटर

club_id `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club_id}/smart-club/health-check/master-clock

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

मास्टर sonos डिवाइस लौटाता है

पैरामीटर

club_id `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club_id}/smart-club/health-check/sonos-mqtt

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी दिए गए क्लब के लिए कम बैटरी वाली duress सूचनाएँ प्राप्त करें।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club}/smart-club/health-check/low-battery-duress

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

नेटवर्क विश्लेषण डेटा लौटाता है

पैरामीटर

club_id `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club_id}/smart-club/health-check/network-analysis

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी दिए गए क्लब के लिए कम बैटरी वाली duress सूचनाएँ भेजें।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

हर डिवाइस प्रकार के लिए डिवाइस स्पीड टेस्ट डेटा लौटाता है

पैरामीटर

club_id `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं।

एंडपॉइंट

GET /api/clubs/{club_id}/smart-club/health-check/speed-test

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी सुविधा के लिए लिस्टिंग इनसाइट्स प्राप्त करें। डिफ़ॉल्ट रूप से सभी पब्लिशर्स के समेकित दैनिक योग लौटाता है, या `publisherId` दिए जाने पर एक ही पब्लिशर के।

पैरामीटर

facilityId `string` (आवश्यक) publisherId `string` (वैकल्पिक) startDate `string` (आवश्यक) endDate `string` (आवश्यक)

एंडपॉइंट

GET /api/facilities/{facilityId}/directory-insights

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-insights \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी पब्लिशर्स में किसी ब्रांड के लिए समेकित लिस्टिंग इनसाइट्स प्राप्त करें।

पैरामीटर

brandId `string` (आवश्यक) startDate `string` (आवश्यक) endDate `string` (आवश्यक)

एंडपॉइंट

GET /api/brands/{brandId}/directory-insights

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए शीर्ष खोज कीवर्ड (ब्रांडेड/अनब्रांडेड विभाजन सहित), जो वर्तमान में Google Business Profile से लिए जाते हैं।

पैरामीटर

facilityId `string` (आवश्यक) publisherId `string` (वैकल्पिक) डिफ़ॉल्ट "google" है — फ़िलहाल केवल Google समर्थित है। startDate `string` (आवश्यक) endDate `string` (आवश्यक) limit `string` (वैकल्पिक)

एंडपॉइंट

GET /api/facilities/{facilityId}/directory-search-keywords

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-search-keywords \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी ब्रांड के लिए शीर्ष खोज कीवर्ड, सभी सुविधाओं में समेकित।

पैरामीटर

brandId `string` (आवश्यक) startDate `string` (आवश्यक) endDate `string` (आवश्यक) limit `string` (वैकल्पिक)

एंडपॉइंट

GET /api/brands/{brandId}/directory-search-keywords

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए प्रश्नोत्तर की सूची बनाएँ।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/facilities/{facilityId}/qna

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी प्रश्न का उत्तर दें।

एंडपॉइंट

POST /api/facilities/{facilityId}/qna/{questionId}/answer

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कोई उत्तर हटाएँ।

एंडपॉइंट

DELETE /api/facilities/{facilityId}/qna/{questionId}/answer/{answerId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer/{answerId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के संगठन के लिए सक्षम पब्लिशर्स को उनकी कनेक्शन स्थिति के साथ लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) organisationId `string` (आवश्यक)

एंडपॉइंट

GET /api/facilities/{facilityId}/directory-publishers/resolved

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-publishers/resolved \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए साझा Door/Gate Access सेटिंग्स प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए साझा Door/Gate Access सेटिंग्स अपडेट करें

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए Access Policies प्राप्त करें

मौजूदा पहुँच कॉन्फ़िगरेशन पहली बार पढ़े जाने पर स्वचालित रूप से समतुल्य लागू नीतियों में बदल दिया जाता है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

optimistic revision जाँच का उपयोग करके Access Policies बदलें

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक Access Policy बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/policies/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक Access Policy अपडेट करें

पैरामीटर

facilityId `string` (आवश्यक) policyId `string` (आवश्यक)

एंडपॉइंट

PATCH /api/door-access/policies/{facilityId}/{policyId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक Access Policy हटाएँ

पैरामीटर

facilityId `string` (आवश्यक) policyId `string` (आवश्यक) revision `integer` (आवश्यक)

एंडपॉइंट

DELETE /api/door-access/policies/{facilityId}/{policyId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

नई स्थिर ID के साथ किसी Access Policy की प्रतिलिपि बनाएँ

पैरामीटर

facilityId `string` (आवश्यक) policyId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/policies/{facilityId}/{policyId}/duplicate

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/duplicate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी Access Policies से प्रभावित उपयोगकर्ताओं और दरवाज़ों की गिनती करें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/policies/{facilityId}/impacts

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी Access Policy से प्रभावित उपयोगकर्ताओं और दरवाज़ों की गिनती करें

पैरामीटर

facilityId `string` (आवश्यक) policyId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/policies/{facilityId}/{policyId}/impact

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

सुविधा के लिए व्यक्ति प्रकार, स्थितियाँ और टैग की सूची बनाएँ

सुविधा की User Access पंक्तियों (ph-door-access-users) में मौजूद अलग-अलग person-type, membership-status और tag मान लौटाता है, जो पार्टनर सिंक और मैनुअल प्रविष्टि से प्राप्त होते हैं। door-gate-access applet इनका उपयोग access-rules ड्रॉपडाउन भरने के लिए करता है। टैग, सिंक किए गए `tags` और व्यवस्थापक `customTags` का संयोजन हैं, जो नियम मूल्यांकनकर्ता से मेल खाता है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के डोर कंट्रोलर और उनके प्रभावी Door/Gate Access नियमों की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

प्रति-दरवाज़ा ओवरराइड, आइकन और डिवाइस-साइड कॉन्फ़िगरेशन सहेजें

DGA व्यवस्थापक applet किसी दरवाज़े पर जो कुछ भी संपादित करता है, उसके लिए एकमात्र लेखन बिंदु: - `accessRulesOverride` / `geofenceOverride` — साफ़ करने और सुविधा के डिफ़ॉल्ट पर लौटने के लिए `null` भेजें। - `icon` — स्थिर wire key (services/door-access/door-icons.js देखें); अज्ञात मानों पर 400। - `holdTimeSeconds` (1–30), `maintenanceMode` (`off` / `force-open` / `force-closed`), `doorLocation` (मुक्त पाठ, ≤64 वर्ण), `playNotificationSoundOnRelayToggle` (boolean), `autoUnlockSchedule` (साप्ताहिक विंडो ग्रिड)। ये पहले केवल डिवाइस प्रबंधन के फ़ील्ड थे, लेकिन अब applet इन्हें वहीं लिखता है ताकि व्यवस्थापकों को रोज़मर्रा के कॉन्फ़िगरेशन बदलावों के लिए डोर ड्रॉअर छोड़ना न पड़े। जब किसी भी डिवाइस-साइड फ़ील्ड में बदलाव होता है, तो रूट संबंधित Balena env vars (`RELAY_NOTIFICATION_SOUND`, `DOOR_MAINTENANCE_MODE`, `DOOR_AUTO_UNLOCK_SCHEDULE`) भी भेजता है और `unlockUpdates` MQTT कमांड चलाता है ताकि डिवाइस अगले Balena env रीफ़्रेश की प्रतीक्षा किए बिना नया कॉन्फ़िगरेशन ले ले। सर्वोत्तम प्रयास — Balena के अस्थायी रूप से उपलब्ध न होने पर भी प्रतिक्रिया 200 होती है।

पैरामीटर

facilityId `string` (आवश्यक) doorId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/door-access/doors/{facilityId}/{doorId}/override

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

डोर ड्रॉअर की रीलोड सूचना के लिए हल्की Balena-स्थिति जाँच

जब कोई व्यवस्थापक कोई दरवाज़ा खोलता है, तो DGA applet का ड्रॉअर इसे आवश्यकता होने पर प्राप्त करता है ताकि वह सही "सहेजने से कंट्रोलर रीलोड होगा" संदेश दिखा सके: डिफ़ॉल्ट "कुछ सेकंड" वाला रूप, या जब कोई रिलीज़ अपडेट भी लंबित हो तो अधिक सशक्त "कई मिनट" वाला रूप। `balena.models.device.get()` से प्राप्त एक सरल स्नैपशॉट लौटाता है। विफल होने पर `data: null` लौटाता है (5xx के बजाय) ताकि Balena आउटेज ड्रॉअर को खुलने से रोकने के बजाय केवल सूचना के संदेश को कमज़ोर करे।

पैरामीटर

facilityId `string` (आवश्यक) doorId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/doors/{facilityId}/{doorId}/device-status

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

व्यवस्थापक ओवरराइड — applet से दरवाज़ा अनलॉक करें

दरवाज़े के वर्तमान `holdTimeSeconds` का उपयोग करके रिले को कुछ समय के लिए टॉगल करता है, और ph-door-app-access-events में एक `admin-override` ऑडिट पंक्ति लिखता है ताकि यह कार्रवाई एक्सेस लॉग में किसी व्यक्ति से जोड़ी जा सके। यह हमेशा सफल होता है, भले ही `maintenanceMode === 'force-closed'` हो — यह व्यवस्थापक का आपातकालीन रास्ता है। MQTT publish भेजे जाते ही 200 लौटाता है; confirmed / failed / timed_out स्थितियों की यहाँ प्रतीक्षा नहीं की जाती (पुराना /api/devices/door-controllers + /api/ics/devices/command प्रवाह भी fire-and-forget है)।

पैरामीटर

facilityId `string` (आवश्यक) doorId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/doors/{facilityId}/{doorId}/unlock

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

डोर कंट्रोलर पर लोकेटर बीप पैटर्न बजाएँ

एक `beep` MQTT कमांड प्रकाशित करता है ताकि कंट्रोलर तीन मध्यम-अवधि की बीप दे (प्रत्येक ~500 ms, ~350 ms अंतराल, कुल ~2 s)। व्यवस्थापक इसका उपयोग साइट पर डोर कंट्रोलर को भौतिक रूप से ढूँढने के लिए करते हैं। पुराना डिवाइस प्रबंधन बटन छोटी बीप की ~30 s की श्रृंखला का उपयोग करता है, लेकिन फ़र्मवेयर बज़र ड्राइवर विश्वसनीय रूप से केवल पहली बीप ही देता है, इसलिए applet इसके बजाय एक छोटा, अधिक विश्वसनीय पैटर्न भेजता है। कोई ऑडिट पंक्ति नहीं — यह निदान कार्रवाई है जिसका पहुँच नियंत्रण पर कोई प्रभाव नहीं होता।

पैरामीटर

facilityId `string` (आवश्यक) doorId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/doors/{facilityId}/{doorId}/identify

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/identify \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

डोर कंट्रोलर को दूर से रीबूट करें

वही fire-and-forget `rebootDevice` MQTT कमांड प्रकाशित करता है जो पुराना डिवाइस प्रबंधन "Remotely Reboot Device" बटन भेजता है, लेकिन `door-gate-access` मॉड्यूल द्वारा नियंत्रित, ताकि DGA व्यवस्थापक अलग `device-management` अनुदान के बिना डोर ड्रॉअर के Advanced अनुभाग से कंट्रोलर रीबूट कर सकें। publish भेजे जाते ही 200 लौटाता है; रीबूट की अवधि के दौरान डिवाइस ऑफ़लाइन रहता है।

पैरामीटर

facilityId `string` (आवश्यक) doorId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/doors/{facilityId}/{doorId}/reboot

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/reboot \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा की User Access पंक्तियों की सूची बनाएँ

सुविधा की हर गैर-हटाई गई user-access पंक्ति लौटाता है। क्लाइंट-साइड फ़िल्टर (source, search, accessEnabled, hasGrants) का समर्थन करता है। Phase 4 का `hideExcluded` सर्वर-साइड गणना, hybrid grants evaluator उपलब्ध होने पर जोड़ी जाएगी; फ़िलहाल पैरामीटर स्वीकार किया जाता है लेकिन पूरा सेट लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) search `string` (वैकल्पिक) source `string` (वैकल्पिक) accessEnabled `string` (वैकल्पिक) hasGrants `string` (वैकल्पिक) hideExcluded `boolean` (वैकल्पिक) true होने पर, सिंक किए गए उपयोगकर्ता (source != manual) जो इस सुविधा में किसी भी समय किसी भी दरवाज़े से नहीं गुज़र सकते, छिपा दिए जाते हैं। प्रतिक्रिया में एक `hidden: { count, sample }` envelope शामिल होता है।

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा में मैनुअल रूप से User Access पंक्ति बनाएँ

`source: 'manual'` के साथ एक नई पंक्ति बनाता है। यदि दिया गया फ़ोन या ईमेल इस सुविधा की किसी पंक्ति से पहले से जुड़ा है, तो `existingUserId` के साथ 409 लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/users/{facilityId}

उदाहरण अनुरोध

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

एक User Access पंक्ति प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/users/{facilityId}/{userId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी User Access पंक्ति का आंशिक अपडेट

पहचान / प्राधिकरण फ़ील्ड के किसी भी उपसमुच्चय को संपादित करता है। किसी वैकल्पिक फ़ील्ड को साफ़ करने के लिए `null` भेजें। यदि नया फ़ोन या ईमेल उसी सुविधा की किसी अन्य पंक्ति से टकराता है तो 409 लौटाता है। `appMessage` वही संरचना स्वीकार करता है जो PUT /api/door-access/rules/{facilityId} पर सुविधा-व्यापी संदेश स्वीकार करता है — मुख्य पाठ, गंभीरता, वैकल्पिक लिंक, वैकल्पिक प्रारंभ/समाप्ति शेड्यूल। मोबाइल ऐप इसे केवल लक्षित उपयोगकर्ता के डैशबोर्ड पर दिखाता है।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/door-access/users/{facilityId}/{userId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी User Access पंक्ति को soft-delete करें

पंक्ति को `deleted: true` के रूप में चिह्नित करता है और पहुँच अक्षम करता है। userId से ऑडिट-लॉग का संबंध सुरक्षित रहता है; व्यवस्थापक इसे मैनुअल रूप से फिर से सक्षम कर सकते हैं।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/door-access/users/{facilityId}/{userId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी उपयोगकर्ता के लिए प्रति-दरवाज़ा पहुँच का आधार

हर दरवाज़े के लिए, वर्तमान नियतात्मक प्राधिकरण (`allowedNow`, `allowedVia`, `deniedReason`) और Access Policies, स्थायी अनुदान, नीति शेड्यूल, व्यवस्थापक time-window अनुदान और नए मैप किए गए पार्टनर स्रोत विंडो के लिए कॉन्फ़िगर किए गए पाथ लौटाता है। सक्रिय/अगली उपलब्धता और स्रोत की ताज़गी भी लौटाता है। दरवाज़े का blockAllAccess और रखरखाव सभी अनुमति पाथ से पहले जाँचे जाते हैं।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/users/{facilityId}/{userId}/effective-access

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

CSV इम्पोर्ट से एक साथ कई User Access पंक्तियाँ बनाएँ

एक ही अनुरोध में कई `source: 'manual'` पंक्तियाँ बनाता है, और एकल create वाले ही सत्यापन, फ़ोन/ईमेल सामान्यीकरण, प्रति-सुविधा टकराव जाँच, स्वचालित संदेश और (वैकल्पिक) आमंत्रण तर्क का उपयोग करता है। पंक्तियाँ क्रम से संसाधित होती हैं, इसलिए पहले बनाई गई पंक्ति से टकराने वाली बाद की पंक्ति डुप्लिकेट के रूप में रिपोर्ट की जाती है। अनुदान पहले से निर्धारित दरवाज़ा/समूह IDs के रूप में दिए जाते हैं (क्लाइंट नामों को IDs में बदलता है)। Time-window अनुदान जान-बूझकर बल्क में अस्वीकार किए जाते हैं और इम्पोर्ट के बाद प्रति-उपयोगकर्ता replacement एंडपॉइंट के माध्यम से जोड़े जाने चाहिए। प्रति-पंक्ति कभी त्रुटि नहीं फेंकता; प्रत्येक पंक्ति का परिणाम अलग से रिपोर्ट किया जाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/users/{facilityId}/bulk

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी User Access पंक्ति पर hybrid-authorization अनुदान बदलें

Phase 3 hybrid evaluator wire। अनुदान सुविधा के टैग नियमों के साथ-साथ रहते हैं — अनलॉक के समय दोनों में से कोई भी मेल खाने पर उपयोगकर्ता को अनुमति मिलती है।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी User Access पंक्ति पर अतिरिक्त Access Time Window अनुदान बदलें

केवल `timeWindowGrants` को बदलता है; स्थायी `grants` और इंटीग्रेशन `sourceTimeWindows` अपरिवर्तित रहते हैं। प्रत्येक आइटम के लिए एक दायरा (`facilityWide`, `doors`, या `groups`) और एक निरपेक्ष या साप्ताहिक `window` आवश्यक है। खाली array भेजने पर सभी व्यवस्थापक विंडो स्पष्ट रूप से साफ़ हो जाती हैं।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी User Access पंक्ति को स्रोत-आधारित सिंक अपडेट से रोकें

`decoupledFromSource: true` सेट करता है, इंटीग्रेशन के स्वामित्व वाली सभी `sourceTimeWindows` साफ़ करता है, और सिंक (cron + streams) को इस पंक्ति को लॉग करके छोड़ने को कहता है, जब तक कोई व्यवस्थापक /recouple के माध्यम से फ़्लैग साफ़ नहीं करता।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/users/{facilityId}/{userId}/decouple

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/decouple \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी User Access पंक्ति को स्रोत-आधारित सिंक अपडेट से फिर से जोड़ें

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/users/{facilityId}/{userId}/recouple

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/recouple \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता के सभी Door/Gate Access ऐप refresh tokens रद्द करें

उपयोगकर्ता के संग्रहीत फ़ोन/ईमेल के आधार पर रद्द करता है (refresh-token तालिका `sha256(plaintext)` द्वारा keyed है; byMobilePhone / byEmail GSIs हमें एक ही उपयोगकर्ता से fan-out delete करने देते हैं)। किसी अन्य सुविधा में उसी फ़ोन/ईमेल को साझा करने वाले अन्य उपयोगकर्ता भी साइन आउट हो जाएँगे।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/users/{facilityId}/{userId}/logout

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/logout \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता को Door/Gate Access ऐप आमंत्रण ईमेल (फिर से) भेजें

ऐप-डाउनलोड आमंत्रण ईमेल को उपयोगकर्ता के संग्रहीत ईमेल पते पर ज़बरदस्ती भेजता है (केवल ईमेल; कोई SMS नहीं)। स्वचालित सिंक पाथ में उपयोग की जाने वाली पात्रता और पहले-से-भेजा-गया जाँचों को अनदेखा करता है — यह एक स्पष्ट व्यवस्थापक कार्रवाई है। यदि उपयोगकर्ता का कोई ईमेल दर्ज नहीं है तो 400 लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) userId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/users/{facilityId}/{userId}/resend-invite

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/resend-invite \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

बल्क ऐप-आमंत्रण भेजने के प्राप्तकर्ताओं का पूर्वावलोकन करें

उन उपयोगकर्ताओं का सेट निर्धारित करता है जिन्हें ऐप आमंत्रण ईमेल मिलेगा। मूल समूह में हर वह गैर-हटाया गया उपयोगकर्ता शामिल है जिसके पास ईमेल है और जिसने कभी ऐप का उपयोग नहीं किया (`appLastSeenAt` खाली)। डिफ़ॉल्ट रूप से समूह को उन उपयोगकर्ताओं तक सीमित किया जाता है जिनके पास वर्तमान में पहुँच है (नियम मिलान या अनुदान) और जिन्हें कभी आमंत्रित नहीं किया गया; `includeAlreadyInvited` और `includeNoAccess` इसे विस्तृत करते हैं। कोई ईमेल नहीं भेजा जाता — गिनती, एक छोटा नमूना और execute एंडपॉइंट के लिए संभावित userIds लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/users/{facilityId}/bulk-invite/preview

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

उपयोगकर्ताओं के एक बैच को ऐप आमंत्रण ईमेल भेजें

दिए गए प्रत्येक userIds को ऐप-डाउनलोड आमंत्रण ईमेल भेजता है (प्रति अनुरोध अधिकतम 50; क्लाइंट पूर्वावलोकन की पूरी संभावित सूची को बैच में बाँटता है)। भेजते समय प्रत्येक उपयोगकर्ता का फिर से सत्यापन होता है — जो पंक्तियाँ अब मौजूद नहीं हैं, जिनका कोई ईमेल नहीं है, या जिन्होंने पूर्वावलोकन के बाद ऐप का उपयोग किया है, उन्हें छोड़ दिया जाता है, विफल नहीं माना जाता। प्रति-उपयोगकर्ता परिणाम अलग से रिपोर्ट किए जाते हैं ताकि क्लाइंट sent / failed / skipped का सारांश दे सके।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/users/{facilityId}/bulk-invite

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के Door Groups की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक Door Group बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/door-groups/{facilityId}

उदाहरण अनुरोध

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

एक Door Group प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक) groupId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/door-groups/{facilityId}/{groupId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक Door Group अपडेट करें

पैरामीटर

facilityId `string` (आवश्यक) groupId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/door-access/door-groups/{facilityId}/{groupId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी Door Group को soft-delete करें

पैरामीटर

facilityId `string` (आवश्यक) groupId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/door-access/door-groups/{facilityId}/{groupId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा में कॉन्फ़िगर किए गए पार्टनर इंटीग्रेशन की सूची बनाएँ

ph-facility-partner-config को ph-partners कैटलॉग से जोड़कर सुविधा के पार्टनर इंटीग्रेशन (id, name, logo, enabled) लौटाता है। Door-gate-access दायरे वाला (ताकि external-integrations पहुँच के बिना व्यवस्थापक भी पार्टनर बैज और प्रति-पार्टनर सिंक सूची दिखा सकें)।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का User Access सिंक कॉन्फ़िगरेशन पढ़ें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का User Access सिंक कॉन्फ़िगरेशन अपडेट करें

केवल व्यवस्थापक-नियंत्रित फ़ील्ड (`enabled`, `requireIdentifier`, और पार्टनर `partners` मैप) स्वीकार किए जाते हैं; `lastRunAt` और `lastRunCounts` सिंक इंजन स्वयं लिखता है। `partner.partners` partnerId द्वारा keyed एक प्रति-पार्टनर सक्षम मैप है (opt-out): जब मुख्य `partner.enabled` चालू हो, तो कोई पार्टनर तब तक सिंक होता है जब तक यहाँ उसकी स्पष्ट `{ enabled: false }` प्रविष्टि न हो।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/door-access/sync-config/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का स्वचालित प्रति-उपयोगकर्ता संदेश कॉन्फ़िगरेशन पढ़ें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/auto-messages/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का स्वचालित प्रति-उपयोगकर्ता संदेश कॉन्फ़िगरेशन अपडेट करें

नियम सहेजता है, फिर सुविधा की हर User Access पंक्ति का तुरंत फिर से मूल्यांकन करता है ताकि मौजूदा उपयोगकर्ताओं को उनका स्वचालित संदेश तुरंत मिले या हटे। मैनुअल संदेश और अलग की गई पंक्तियाँ अपरिवर्तित रहती हैं।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/door-access/auto-messages/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

पृष्ठभूमि में चल रहे स्वचालित-संदेश पुनर्मूल्यांकन की स्थिति

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/door-access/auto-messages/{facilityId}/sweep-status

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए माँग पर User Access सिंक चलाएँ

सुविधा के हर सक्षम स्रोत (partner / cctv) को समकालिक रूप से जाँचता है और dedup waterfall के माध्यम से ph-door-access-users पंक्तियों का मिलान करता है। प्रति-स्रोत गिनती लौटाता है। अक्षम स्रोत अनुपस्थित होने के बजाय `skippedSyncDisabled: 1` के रूप में दिखते हैं ताकि UI दोनों पंक्तियाँ एक जैसी दिखा सके।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

POST /api/door-access/sync/{facilityId}/run

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

पार्टनर-सिंक किए गए बल्क डिलीट का dry-run पूर्वावलोकन

उन user-access पंक्तियों की गिनती और एक नमूना लौटाता है जो soft-delete होंगी, साथ ही एक confirmToken जिसे execute एंडपॉइंट पर वापस भेजना आवश्यक है। कोई डेटा संशोधित नहीं किया जाता। एक्सेस लॉग कभी प्रभावित नहीं होते।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/sync/{facilityId}/bulk-delete/preview

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

पार्टनर-सिंक किया गया बल्क डिलीट चलाएँ (soft delete)

दायरे में आने वाली हर पार्टनर-सिंक की गई user-access पंक्ति को soft-delete करता है। पूर्वावलोकन द्वारा लौटाया गया confirmToken आवश्यक है; यदि पूर्वावलोकन के बाद लाइव सेट बदल गया है तो टोकन मेल नहीं खाएगा और अनुरोध अस्वीकार कर दिया जाएगा (409) ताकि व्यवस्थापक फिर से समीक्षा करे। एक्सेस लॉग सुरक्षित रहते हैं।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/sync/{facilityId}/bulk-delete

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

हाल की User Access सिंक गतिविधि (समस्या निवारण लॉग)

किसी सुविधा के सबसे हाल के सिंक परिणाम (created / skipped / disabled) कारण के साथ लौटाता है, ताकि व्यवस्थापक देख सकें कि कोई सदस्य क्यों सिंक हुआ या नहीं हुआ। नवीनतम पहले।

पैरामीटर

facilityId `string` (आवश्यक) limit `integer` (वैकल्पिक)

एंडपॉइंट

GET /api/door-access/sync/{facilityId}/log

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के Door/Gate Access इवेंट की सूची बनाएँ

मोबाइल, व्यवस्थापक ओवरराइड और बाहरी Partner API अनलॉक इवेंट को एक ही उल्टे-कालक्रम वाली फ़ीड में लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) from `integer` (वैकल्पिक) to `integer` (वैकल्पिक) limit `integer` (वैकल्पिक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

व्यवस्थापक test-mode पिन के लिए geofence मूल्यांकन का dry-run करें

अनुरोध बॉडी

एंडपॉइंट

POST /api/door-access/geofence/test

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा की ऑनबोर्डिंग / सक्रियण स्थिति प्राप्त करें

applet के "Get Started" लैंडिंग पेज और सेटअप-प्रगति बैनर को संचालित करता है। दरवाज़ों और उपयोगकर्ताओं की लाइव गिनती, दो व्युत्पन्न मुख्य चरण (एक उपयोगकर्ता मौजूद है, एक दरवाज़ा मौजूद है), सहेजे गए वैकल्पिक "reviewed" फ़्लैग, और सुविधा सक्रिय है या नहीं (दोनों मुख्य चरण पूरे) लौटाता है। जब कोई सुविधा पहली बार सक्रिय होती है तो activatedAt टाइमस्टैम्प अंकित किया जाता है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के वैकल्पिक ऑनबोर्डिंग "reviewed" फ़्लैग अपडेट करें

व्यवस्थापक द्वारा चिह्नित वैकल्पिक सेटअप-चेकलिस्ट फ़्लैग सहेजता है (access rules, सिंक सेटिंग्स, geofencing)। मुख्य चरण और सक्रियण डेटा गिनती से लाइव निर्धारित होते हैं और यहाँ सेट नहीं किए जा सकते। पूरी रीफ़्रेश की गई ऑनबोर्डिंग स्थिति लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

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

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/lead-events

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/lead-events \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/page-views

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/page-views \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/referrers

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/referrers \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/socials

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/socials \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/top-cities

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/top-cities \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/total-page-views

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/total-page-views \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब एनालिटिक्स डेटा का JSON रिस्पॉन्स लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका एनालिटिक्स डेटा प्राप्त करना है। fromDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की प्रारंभ तिथि। toDate `string` (वैकल्पिक) प्राप्त किए जाने वाले एनालिटिक्स डेटा की समाप्ति तिथि।

एंडपॉइंट

GET /clubs/{clubId}/analytics/traffic

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/traffic \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

फ़्रंट-एंड 'analytics' पेज में Google Analytics के एम्बेड करने योग्य चार्ट के लिए एक अस्थायी फ़्रंट-एंड JWT (Json Web Token) बनाता है।

एंडपॉइंट

GET /api/ga/onetimetoken

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ga/onetimetoken \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

यदि क्लब में कोई सक्रिय सदस्य है तो 'The Training Camp' से डैशबोर्ड विजेट लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/reporting/apps/widgets/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/apps/widgets/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के सभी असमीक्षित अवकाश लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/reporting/club/{club}/unreviewed-holidays

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/club/{club}/unreviewed-holidays \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के सभी असमीक्षित अवकाशों को समीक्षित के रूप में सेट करें।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

PUT /api/reporting/club/{club}/review-holidays

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/reporting/club/{club}/review-holidays \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पिछले 12 महीनों के लिए माह-दर-माह विभाजित KPI रिपोर्ट CSV फ़ॉर्मेट में लौटाता है। *NOTE* यह सिस्टम के सभी क्लबों के लिए एक ही रिपोर्ट बनाता है - इसे एक साथ कई बार न चलाएँ, अन्यथा GymMaster पर अत्यधिक भार पड़ेगा!

पैरामीटर

months `string` (वैकल्पिक) प्राप्त किए जाने वाले महीनों की संख्या (वर्तमान तिथि से), डिफ़ॉल्ट 12

एंडपॉइंट

GET /api/reporting/gymmaster/all-clubs-kpi-report

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/all-clubs-kpi-report \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए MMS के राजस्व ग्राफ़ लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। range `string` (वैकल्पिक) दिनों में अवधि (वर्तमान तिथि से पीछे की ओर गिनते हुए) जिसे हम प्राप्त करना चाहते हैं

एंडपॉइंट

GET /api/reporting/gymmaster/revenuegraph/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/revenuegraph/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए डैशबोर्ड का MMS (Member Management System) डेटा/एनालिटिक्स लौटाता है। डेटा में GymMaster/Perfect Gym आँकड़े और हमारे सिस्टम द्वारा एकत्र किए गए अन्य आंतरिक मीट्रिक शामिल हैं।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। range `string` (वैकल्पिक) दिनों में अवधि (वर्तमान तिथि से पीछे की ओर गिनते हुए) जिसे हम प्राप्त करना चाहते हैं

एंडपॉइंट

GET /api/reporting/gymmaster/widgets/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/widgets/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए डैशबोर्ड का Myzone विजेट डेटा लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/reporting/myzone/widgets/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/myzone/widgets/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन सेवाओं का ऑब्जेक्ट लौटाता है जिन्हें हमारे एक या अधिक स्टेटस पेज/मॉनिटरिंग एंडपॉइंट ने ऑफ़लाइन माना है - आंतरिक 'Uptime Kuma' टूल के माध्यम से कॉन्फ़िगर किया गया।

एंडपॉइंट

GET /api/reporting/statuspage/events

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/statuspage/events \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अगले 7 दिनों की आगामी वर्कआउट बुकिंग लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/reporting/clubs/{club}/workout-bookings

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/reporting/clubs/{club}/workout-bookings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के पिछले अवकाशों की सूची लौटाता है।

पैरामीटर

clubId `string` (वैकल्पिक) क्लब ID fromDate `string` (वैकल्पिक) लौटाए जाने वाले अवकाशों की अवधि की प्रारंभ तिथि का Unix टाइमस्टैम्प। toDate `string` (वैकल्पिक) लौटाए जाने वाले अवकाशों की अवधि की समाप्ति तिथि का Unix टाइमस्टैम्प।

एंडपॉइंट

GET /api/clubs/{clubId}/historical-holidays

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/historical-holidays \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब से संबद्ध डिवाइस ऑटोमेशन लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके डिवाइस की सूची आप चाहते हैं।

एंडपॉइंट

GET /api/ics/automations/list/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ics/automations/list/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा डिस्प्ले/डिवाइस का डिवाइस कॉन्फ़िगरेशन अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ics/automations/update/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/automations/update/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी भौतिक स्क्रीन डिवाइस/कंप्यूटर को आपके क्लब में जोड़ता/संबद्ध करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके अंतर्गत आप डिवाइस जोड़ना चाहते हैं। body `string` (आवश्यक) संबद्ध की जाने वाली नई स्क्रीन का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ics/devices/add/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/add/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पैरामीटर के आधार पर डिवाइस को नए SSID से कनेक्ट होने का निर्देश देता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ics/devices/changewifi/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/changewifi/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा डिस्प्ले/डिवाइस का डिवाइस कॉन्फ़िगरेशन अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ics/devices/command/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/command/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशिष्ट डिवाइस स्क्रीन पर URL/वेबपेज लोड करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/ics/devices/loadurl/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/loadurl/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा डिस्प्ले/डिवाइस का डिवाइस कॉन्फ़िगरेशन अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON ऑब्जेक्ट।

एंडपॉइंट

PUT /api/ics/devices/update/{club}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/update/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी डिस्प्ले/डिवाइस का नाम बदलता है। केवल पंजीकरण में — update एंडपॉइंट के विपरीत यह डिवाइस पर कुछ नहीं भेजता, इसलिए यह उन स्क्रीन के लिए भी उपलब्ध है जो end-of-life सॉफ़्टवेयर बिल्ड चला रही हैं।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिससे डिवाइस संबंधित है। body `string` (आवश्यक) नाम बदलने के पैरामीटर का Json Object।

एंडपॉइंट

PUT /api/ics/devices/rename/{club}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/rename/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दी गई तिथि के आधार पर किसी क्लब के विजेट और ऑफ़लाइन मीडिया के लिंक प्राप्त करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसका templated content प्रोग्राम आप बदलना चाहते हैं। date `string` (आवश्यक) विजेट URLs लौटाने की तिथि - `YYYY-MM-DD` फ़ॉर्मेट का उपयोग करें।

एंडपॉइंट

GET /api/ics/external-resources/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ics/external-resources/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दी गई तिथि के आधार पर किसी क्लब के विजेट और ऑफ़लाइन मीडिया के लिंक प्राप्त करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसका templated content प्रोग्राम आप बदलना चाहते हैं।

एंडपॉइंट

GET /api/ics/list-scheduled-workouts/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ics/list-scheduled-workouts/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए templated content प्रोग्राम बदलता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसका templated content प्रोग्राम आप बदलना चाहते हैं। body `string` (आवश्यक) बदले जाने वाले नए templated content का Json Object।

एंडपॉइंट

POST /api/ics/loadprogram/{club}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ics/loadprogram/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा डिस्प्ले/डिवाइस का प्रोग्राम कॉन्फ़िगरेशन प्राप्त करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसका प्रोग्राम डेटा आप प्राप्त करना चाहते हैं।

एंडपॉइंट

GET /api/ics/programs/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा डिस्प्ले/डिवाइस का प्रोग्राम कॉन्फ़िगरेशन अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसके लिए आप डिवाइस अपडेट करना चाहते हैं। body `string` (आवश्यक) अपडेट पैरामीटर का JSON Object।

एंडपॉइंट

PUT /api/ics/programs/{club}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/ics/programs/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रोग्राम कॉन्फ़िगरेशन विकल्प प्राप्त करता है।

एंडपॉइंट

GET /api/ics/programs/options/{facilityID}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/options/{facilityID} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

RAG संदर्भ के साथ चैट - इसके पास टूल की पहुँच नहीं है - केवल एक सरल API request|response टूल है जिससे आप सीधे नॉलेज बेस से जानकारी प्राप्त कर सकते हैं।

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

अनुरोध बॉडी

एंडपॉइंट

POST /api/llm/chat

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

वेक्टर स्टोर से आर्टिकल embeddings हटाएँ और embedding track स्थिति अपडेट करें

अनुरोध बॉडी

एंडपॉइंट

DELETE /api/llm/delete-article

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

संगठन और स्थिति के अनुसार embedding tracker रिकॉर्ड की सूची बनाएँ

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (छोड़े जाने पर स्वचालित रूप से निर्धारित) status `string` (आवश्यक) फ़िल्टर करने के लिए स्थिति (in_queue, done, anomaly, fail, deleted में से एक होनी चाहिए) Limit `string` (वैकल्पिक) प्रति पेज अधिकतम आइटम LastEvaluatedKey `string` (वैकल्पिक) पेजिनेशन के लिए DynamoDB LastEvaluatedKey का JSON

एंडपॉइंट

GET /api/llm/embedding-track/by-org-and-status

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org-and-status \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संगठन के अनुसार embedding tracker रिकॉर्ड की सूची बनाएँ (वैकल्पिक रूप से संसाधन प्रकार के अनुसार फ़िल्टर करें)

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (छोड़े जाने पर स्वचालित रूप से निर्धारित) resourceType `string` (वैकल्पिक) वैकल्पिक संसाधन प्रकार (उदाहरण के लिए, "article")। दिए जाने पर, उन रिकॉर्ड को फ़िल्टर करता है जिनका resourceTypeId "{type}#" से शुरू होता है। Limit `string` (वैकल्पिक) प्रति पेज अधिकतम आइटम LastEvaluatedKey `string` (वैकल्पिक) पेजिनेशन के लिए DynamoDB LastEvaluatedKey का JSON

एंडपॉइंट

GET /api/llm/embedding-track/by-org

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संगठन का वेक्टर डेटाबेस कलेक्शन प्रारंभ करें

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

एंडपॉइंट

POST /api/llm/init-org

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/llm/init-org \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

नॉलेज बेस में सिमेंटिक खोज

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

अनुरोध बॉडी

एंडपॉइंट

POST /api/llm/semantic-search

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

रीयल-टाइम प्रगति अपडेट के साथ embedding के लिए कतार में रखे आर्टिकल की स्ट्रीमिंग प्रोसेसिंग शुरू करें

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

एंडपॉइंट

POST /api/llm/start-embedding-stream

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/llm/start-embedding-stream \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वेक्टर डेटाबेस में आर्टिकल embeddings upsert करें

वर्तमान स्थिति के आधार पर आर्टिकल embedding संभालता है: - यदि आर्टिकल अप्रकाशित या निजी है: embeddings हटाता है - यदि आर्टिकल प्रकाशित और सार्वजनिक है: पूरी सामग्री के साथ फिर से embed करता है हमेशा पूरा आर्टिकल body आवश्यक है।

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

अनुरोध बॉडी

एंडपॉइंट

POST /api/llm/upsert-embeddings

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

संगठन और वैकल्पिक स्थिति के अनुसार आर्टिकल embeddings को बैच में हटाने के लिए परीक्षण एंडपॉइंट

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (छोड़े जाने पर उपयोगकर्ता संदर्भ से स्वचालित रूप से निर्धारित) status `string` (वैकल्पिक) फ़िल्टर करने के लिए स्थिति (वैकल्पिक - छोड़े जाने पर, स्थिति की परवाह किए बिना संगठन के सभी आर्टिकल हटा दिए जाते हैं) hardDelete `string` (वैकल्पिक) embedding track रिकॉर्ड को स्थायी रूप से हटाना है (true) या स्थिति अपडेट करके soft delete करना है (false)

एंडपॉइंट

DELETE /api/llm/test/batch-delete-by-status

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/batch-delete-by-status \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

विस्तृत आँकड़ों के साथ पाठ को रूपांतरित करें और खंडों में बाँटें

परीक्षण एंडपॉइंट जो पाठ को रूपांतरित करके खंडों में बाँटता है, फिर खंडों के वितरण के बारे में विस्तृत आँकड़े देता है, जिनमें वर्ण गिनती, प्रतिशत और गुणवत्ता मीट्रिक शामिल हैं, ताकि खंडीकरण की प्रभावशीलता का मूल्यांकन किया जा सके।

अनुरोध बॉडी

एंडपॉइंट

POST /api/llm/test/transform-chunk

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

संगठन के वेक्टर इंडेक्स में वेक्टर की कुल संख्या प्राप्त करें

वर्तमान उपयोगकर्ता के संगठन के वेक्टर इंडेक्स में सभी वेक्टर गिनने के लिए परीक्षण एंडपॉइंट

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

एंडपॉइंट

GET /api/llm/test/vector-count

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-count \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वेक्टर इंडेक्स से किसी विशिष्ट articleId के सभी वेक्टर हटाएँ

वर्तमान उपयोगकर्ता के संगठन के वेक्टर इंडेक्स से किसी विशिष्ट articleId से संबद्ध सभी वेक्टर हटाने के लिए परीक्षण एंडपॉइंट।

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी) articleId `string` (आवश्यक) वह articleId जिसके वेक्टर हटाने हैं dryRun `string` (वैकल्पिक) true होने पर, वास्तव में हटाए बिना केवल यह दिखाता है कि क्या हटाया जाएगा

एंडपॉइंट

DELETE /api/llm/test/vector-delete-article

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/vector-delete-article \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी इंडेक्स की सूची बनाकर Vector SDK का परीक्षण करें

Vector SDK कनेक्टिविटी सत्यापित करने और वेक्टर बकेट के सभी इंडेक्स की सूची बनाने के लिए परीक्षण एंडपॉइंट

एंडपॉइंट

GET /api/llm/test/vector-indices

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-indices \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के लिए Vector इंडेक्स प्रारंभ करें

वर्तमान उपयोगकर्ता के संगठन के लिए Vector बकेट और इंडेक्स बनाता है

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी)

एंडपॉइंट

POST /api/llm/test/vector-init-index

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/llm/test/vector-init-index \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशिष्ट articleId का सारा वेक्टर मेटाडेटा प्राप्त करें

वेक्टर इंडेक्स से किसी विशिष्ट articleId के सभी वेक्टर खंड और उनका मेटाडेटा प्राप्त करने के लिए परीक्षण एंडपॉइंट। यह जाँचने के लिए उपयोगी है कि कोई आर्टिकल कैसे खंडों में बाँटा और संग्रहीत किया गया है। फ़िल्टरिंग vector store सेवा द्वारा की जाती है।

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी) articleId `string` (आवश्यक) वह आर्टिकल ID जिसका वेक्टर मेटाडेटा प्राप्त करना है

एंडपॉइंट

GET /api/llm/test/vector-metadata-by-article

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-metadata-by-article \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वेक्टर इंडेक्स से मेटाडेटा सहित हाल के वेक्टर प्राप्त करें

वर्तमान उपयोगकर्ता के संगठन के वेक्टर इंडेक्स से मेटाडेटा सहित (लेकिन वेक्टर डेटा के बिना) 10 सबसे हाल के वेक्टर प्राप्त करने के लिए परीक्षण एंडपॉइंट। मेटाडेटा की संरचना जाँचने के लिए उपयोगी।

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID (न दिए जाने पर स्वचालित रूप से पहचानी जाएगी) limit `string` (वैकल्पिक) लौटाए जाने वाले हाल के वेक्टर की संख्या (अधिकतम 100)

एंडपॉइंट

GET /api/llm/test/vector-recent

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-recent \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Marketing Manager/Designer के लिए एक एसेट S3 Storage पर अपलोड करता है।

पैरामीटर

file `string` (वैकल्पिक) अपलोड की जाने वाली फ़ाइल/एसेट का नाम।

एंडपॉइंट

POST /api/marketing/design/static/download

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/marketing/design/static/download \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एसेट मैनेजर में लोड करने के लिए अलग-अलग एसेट JSON फ़ॉर्मेट में लौटाता है।

पैरामीटर

id `string` (आवश्यक) प्राप्त किए जाने वाले एसेट की ID। organisationId `string` (आवश्यक) उस सुविधा की संगठन ID जिससे एसेट संबंधित है।

एंडपॉइंट

GET /api/marketing/assets/get/{id}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get/{id} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी डिज़ाइन एसेट लौटाता है।

पैरामीटर

body `string` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं। organisationId `string` (आवश्यक) उस सुविधा की संगठन ID जिससे एसेट संबंधित है। useCache `string` (वैकल्पिक) search `string` (वैकल्पिक) नाम या टैग के अनुसार एसेट फ़िल्टर करने के लिए खोज क्वेरी। brand `string` (वैकल्पिक) एसेट फ़िल्टर करने के लिए ब्रांड। tag `string` (वैकल्पिक) एसेट फ़िल्टर करने के लिए टैग।

एंडपॉइंट

GET /api/marketing/assets/get

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के मार्केटिंग प्रिंट एसेट का एक पेज लौटाता है। प्रासंगिकता खोज और पेज-आधारित पेजिनेशन (कुल गिनती सहित) के लिए Algolia का उपयोग करता है, और Algolia उपलब्ध न होने पर DynamoDB पर लौट आता है।

पैरामीटर

organisationId `string` (आवश्यक) उस सुविधा की संगठन ID जिससे एसेट संबंधित हैं। search `string` (वैकल्पिक) नाम या टैग के अनुसार एसेट फ़िल्टर करने के लिए खोज क्वेरी। brand `string` (वैकल्पिक) एसेट फ़िल्टर करने के लिए ब्रांड। tag `string` (वैकल्पिक) एसेट फ़िल्टर करने के लिए टैग। page `string` (वैकल्पिक) प्राप्त किए जाने वाले पेज की संख्या (शून्य से शुरू)। limit `string` (वैकल्पिक) प्रति पेज एसेट की संख्या (अधिकतम 300)। useCache `string` (वैकल्पिक) false होने पर, Algolia को छोड़कर सीधे DynamoDB से क्वेरी करता है।

एंडपॉइंट

GET /api/marketing/assets

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एसेट मैनेजर के माध्यम से अपलोड किए गए उपलब्ध एसेट की सूची लौटाता है।

पैरामीटर

organisationId `string` (आवश्यक)

एंडपॉइंट

GET /api/marketing/assets/list

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/list \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक एसेट जोड़ता/सहेजता है।

पैरामीटर

body `string` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं। organisationId `string` (आवश्यक) उस सुविधा की संगठन ID जिससे एसेट संबंधित है।

एंडपॉइंट

PUT /api/marketing/assets/save

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/marketing/assets/save \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Marketing Manager/Designer के लिए एक एसेट S3 Storage पर अपलोड करता है।

पैरामीटर

file `string` (वैकल्पिक) अपलोड की जाने वाली फ़ाइल/एसेट का नाम। organisationId `string` (वैकल्पिक) उस संगठन की ID जिससे एसेट संबंधित है।

एंडपॉइंट

POST /api/marketing/assets/upload

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/marketing/assets/upload \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के सभी कस्टम पेज की सूची लौटाता है।

पैरामीटर

organisationId `string` (आवश्यक) उस संगठन की आंतरिक ID जिसके कस्टम पेज लौटाने हैं।

एंडपॉइंट

GET /api/marketing/custom-pages

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/custom-pages \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के लिए कस्टम पेज upsert करता है।

पैरामीटर

organisationId `string` (आवश्यक) उस संगठन की आंतरिक ID जिसके कस्टम पेज लौटाने हैं। body `object` (आवश्यक) upsert किए जाने वाले कस्टम पेज का डेटा।

एंडपॉइंट

PUT /api/marketing/custom-pages

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/marketing/custom-pages \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के सभी कस्टम पेज की सूची लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक) उस सुविधा की आंतरिक ID जिसके कस्टम पेज लौटाने हैं।

एंडपॉइंट

GET /api/facilities/{facilityId}/marketing/custom-pages

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/marketing/custom-pages \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशिष्ट club id के सभी एक्सपोर्ट/रेंडर किए गए डिज़ाइन लौटाता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। sort `string` (वैकल्पिक) डिज़ाइन को क्रमबद्ध करने का फ़िल्टर; 'oldest', 'newest' या 'design' समर्थित हैं।

एंडपॉइंट

GET /api/marketing/designs/{club}/exports

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एडिटर में लोड करने के लिए किसी डिज़ाइन की अलग-अलग HTML सामग्री JSON फ़ॉर्मेट में लौटाता है।

पैरामीटर

id `string` (आवश्यक) प्राप्त किए जाने वाले डिज़ाइन की ID।

एंडपॉइंट

GET /api/marketing/designs/get/{id}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/get/{id} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

मार्केटिंग और प्रिंट डिज़ाइन तथा डिज़ाइन टेम्पलेट में input mapping की सूची लौटाता है

पैरामीटर

clubId `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। availableFeatures `string` (वैकल्पिक) विशिष्ट सुविधाओं (features) वाले सभी आइटम लौटाएँ brand `string` (वैकल्पिक) ब्रांड के अनुसार डिज़ाइन फ़िल्टर करता है features `string` (वैकल्पिक) features के आधार पर परिणाम फ़िल्टर करें

एंडपॉइंट

GET /api/marketing/designs/input-mapping/{clubId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/input-mapping/{clubId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए उपलब्ध डिज़ाइन की सूची लौटाता है, जिनका उपयोग हब के मार्केटिंग/प्रिंट एडिटर में बनाए गए डिज़ाइन (Print Designs) में किया जा सकता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। designAdmin `string` (वैकल्पिक) सारा डिज़ाइन डेटा लौटाएँ (व्यवस्थापक दृश्य / उपयोगकर्ता का व्यवस्थापक होना आवश्यक)। brand `string` (वैकल्पिक) ब्रांड के अनुसार डिज़ाइन फ़िल्टर करता है

एंडपॉइंट

GET /api/marketing/designs/{club}/list

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/list \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सिस्टम को सभी डिज़ाइन थंबनेल और पूर्वावलोकन रेंडर/फिर से रेंडर करने के लिए बाध्य करता है (मुख्य रूप से तब उपयोग किया जाता है जब हम S3 आदि में 'upstream' एसेट बदलते हैं)... **NOTE** आप इस फ़ंक्शन को प्रति X मिनट में केवल एक बार कॉल कर सकते हैं (या यदि कोई रेंडर पहले से चल रहा है तो आप इसे कॉल नहीं कर सकते)। यह सुनिश्चित करने के लिए है कि सभी डिज़ाइन रेंडर करते समय हमारे सर्वर पर अत्यधिक भार न पड़े...

एंडपॉइंट

GET /api/marketing/designs/render-all-thumbnails

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/render-all-thumbnails \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी Dynamic Design का रेंडर शुरू करता है

पैरामीटर

body `string` (आवश्यक) क्लब डेटा का Json Object जिसे आप डिज़ाइन रेंडर प्रोसेसर को भेजना चाहते हैं...

एंडपॉइंट

POST /api/marketing/designs/dynamic/render-design

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/marketing/designs/dynamic/render-design \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक डिज़ाइन जोड़ता/सहेजता/अपडेट करता है।

पैरामीटर

body `string` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

PUT /api/marketing/designs/{club}/save

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/{club}/save \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

लोड किए जाने के लिए अलग-अलग स्टैटिक डिज़ाइन JSON फ़ॉर्मेट में लौटाता है

पैरामीटर

id `string` (आवश्यक) प्राप्त किए जाने वाले स्टैटिक डिज़ाइन की ID।

एंडपॉइंट

GET /api/marketing/designs/static/get/{id}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/static/get/{id} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक स्टैटिक डिज़ाइन टेम्पलेट जोड़ता/सहेजता/अपडेट करता है।

पैरामीटर

body `string` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

PUT /api/marketing/designs/static/{club}/save

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/static/{club}/save \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता द्वारा सेट किए गए किसी वेरिएबल को सिस्टम से हटाता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। body `string` (आवश्यक) हटाए जाने वाले वेरिएबल की ID वाला Json।

एंडपॉइंट

DELETE /api/marketing/variables/{club}/delete

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/marketing/variables/{club}/delete \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए उपलब्ध वेरिएबल की सूची लौटाता है, जिनका उपयोग हब के मार्केटिंग/प्रिंट एडिटर में बनाए गए डिज़ाइन (Print Designs) में किया जा सकता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID।

एंडपॉइंट

GET /api/marketing/variables/{club}/list

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/marketing/variables/{club}/list \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दिए गए क्लब के लिए उपयोगकर्ता-आधारित एक नया 'variable' बनाता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। body `string` (आवश्यक) नए वेरिएबल का Json Object।

एंडपॉइंट

POST /api/marketing/variables/{club}/new

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/marketing/variables/{club}/new \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ऑब्जेक्ट के array के माध्यम से सिस्टम में एक या अधिक डिज़ाइन वेरिएबल जोड़ता/सहेजता/अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) अनुरोध करने वाले क्लब की आंतरिक ID। body `string` (आवश्यक) जोड़े/अपडेट किए जाने वाले एक या अधिक Json Object का array (इससे एक ही API अनुरोध में कई आइटम/ऑब्जेक्ट सहेजे जा सकते हैं)।

एंडपॉइंट

PUT /api/marketing/variables/{club}/save

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/marketing/variables/{club}/save \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

साइन-इन किए गए उपयोगकर्ता के लिए MCP दस्तावेज़ मैनिफ़ेस्ट लौटाता है

ऐप के भीतर `/mcp-docs` पेज को संचालित करता है। MCP सर्वर URL, समर्थित auth headers, कॉलर की पहचान/admin फ़्लैग, और फ़िल्टर की गई टूल सूची लौटाता है (`/mcp/tools/list` के समान ही फ़िल्टर की गई, ताकि docs पेज कभी ऐसा टूल न दिखाए जिसका कॉलर वास्तव में उपयोग नहीं कर सकता)।

एंडपॉइंट

GET /api/mcp/docs-manifest

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/mcp/docs-manifest \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता अनुबंध बनाएँ।

पैरामीटर

body `object` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

POST /api/member-agreements/contracts-tna/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अनुबंधों की सूची लौटाता है।

एंडपॉइंट

GET /api/member-agreements/contracts-tna/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता अनुबंध हटाएँ।

एंडपॉइंट

DELETE /api/member-agreements/contracts-tna/:club/:id

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशिष्ट अनुबंध का विवरण लौटाता है।

एंडपॉइंट

GET /api/member-agreements/contracts-tna/:club/:id

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता अनुबंध अपडेट करें।

पैरामीटर

body `object` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

PATCH /api/member-agreements/contracts-tna/:club/:id

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के डिफ़ॉल्ट अनुबंध प्राप्त करें।

पैरामीटर

body `object` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

GET /api/member-agreements/default-tna/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब का डिफ़ॉल्ट अनुबंध सेट करें।

पैरामीटर

body `object` (आवश्यक) क्लब डेटा का Json Object जिसे आप सहेजना चाहते हैं।

एंडपॉइंट

POST /api/member-agreements/default-tna/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वैश्विक या क्षेत्रीय अनुबंधों की सूची लौटाता है।

एंडपॉइंट

GET /api/member-agreements/global-tna/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/global-tna/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

अनुबंध वाले सदस्यों की सूची लौटाता है।

एंडपॉइंट

GET /api/member-agreements/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ट्रेनिंग कैंप ऐप के लिए सीज़न के अनुसार क्लब सदस्यों की सूची लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। season `string` (वैकल्पिक) ट्रेनिंग कैंप का सीज़न जिसके अनुसार आप फ़िल्टर करना चाहते हैं। userIds `string` (वैकल्पिक) फ़िल्टर करने के लिए user ids का array। useCache `string` (वैकल्पिक) कैश का उपयोग करना है या नहीं। isUserMemberInfo `string` (वैकल्पिक) सक्षम होने पर, यह userIds के आधार पर डेटा फ़िल्टर करेगा (केवल एक user id का उपयोग करने की सलाह दी जाती है) और लीडरबोर्ड तथा उपयोगकर्ता प्राथमिकताओं जैसा आवश्यक डेटा शामिल करेगा।

एंडपॉइंट

GET /api/members-leads/trainingcamp/club/season-members/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/club/season-members/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

कई वर्कआउट बुकिंग लीड हटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। body `string` (आवश्यक)

एंडपॉइंट

DELETE /api/members-leads/workout-booking/club/leads/{club}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब की वर्कआउट बुकिंग लीड की सूची लौटाता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। all `string` (वैकल्पिक) सभी लीड दिखानी हैं या केवल आगामी।

एंडपॉइंट

GET /api/members-leads/workout-booking/club/leads/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी वर्कआउट बुकिंग लीड को अपडेट करता है।

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं। body `string` (आवश्यक)

एंडपॉइंट

PUT /api/members-leads/workout-booking/club/leads/{club}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी वर्कआउट बुकिंग लीड की flagged स्थिति को टॉगल करता है।

पैरामीटर

club `string` (आवश्यक) क्लब की आंतरिक ID। body `string` (आवश्यक)

एंडपॉइंट

PATCH /api/members-leads/workout-booking/club/leads/{club}/flag

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club}/flag \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के प्रभावी मॉड्यूल प्राप्त करें

पदानुक्रम को हल करके किसी सुविधा के लिए उपलब्ध सभी मॉड्यूल लौटाता है: सुविधा प्राथमिकताएँ → ब्रांड मॉड्यूल → संगठन मॉड्यूल। प्रदर्शन के लिए परिणाम Redis में कैश किए जाते हैं।

पैरामीटर

facilityId `string` (आवश्यक) वह सुविधा ID जिसके मॉड्यूल निर्धारित करने हैं

एंडपॉइंट

GET /api/facilities/{facilityId}/modules

उदाहरण अनुरोध

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

प्रतिक्रिया

[]

मॉड्यूल कैटलॉग के साथ साइड-मेनू रेंडरिंग कॉन्फ़िगरेशन लौटाता है। पूरी मॉड्यूल सूची लौटाई जाती है ताकि फ़्रंट-एंड रेंडरर प्रति उपयोगकर्ता दृश्यता तय कर सके; ACL अब भी `auth.checkModuleAccess()` के माध्यम से सर्वर-साइड पर लागू होता है।

एंडपॉइंट

GET /api/modules

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/modules \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना श्रेणियाँ प्राप्त करें।

एंडपॉइंट

GET /api/notification/categories

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/notification/categories \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपभोग की गई सूचना हटाएँ।

एंडपॉइंट

DELETE /api/club/notification/consumed/:club

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेश बनाता है।

एंडपॉइंट

POST /api/club/notification/consumed/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपभोग की गई सूचनाओं का array लौटाता है।

एंडपॉइंट

GET /api/club/notification/consumed/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेश हटाएँ।

एंडपॉइंट

DELETE /api/club/notification/messages/:club

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेशों का array लौटाता है।

एंडपॉइंट

GET /api/club/notification/messages/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेश अपडेट करता है।

एंडपॉइंट

PATCH /api/club/notification/messages/:club

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेश बनाता है।

पैरामीटर

body `string` (आवश्यक)

एंडपॉइंट

POST /api/club/notification/messages/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के अनुसार सूचना देखने वालों को प्राप्त करें।

एंडपॉइंट

POST /api/club/notification/viewers/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/club/notification/viewers/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता के अनुसार सूचना श्रेणियाँ प्राप्त करें।

एंडपॉइंट

GET /api/club/notification/user-categories/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/notification/user-categories/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सूचना संदेश बनाता है।

एंडपॉइंट

POST /api/notification/webhook

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/notification/webhook \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

HTML5 push के लिए VAPID public key प्राप्त करें

ब्राउज़र push सब्सक्रिप्शन बनाने के लिए उपयोग की जाने वाली VAPID public key लौटाता है।

एंडपॉइंट

GET /html5-push/vapid-public-key

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/html5-push/vapid-public-key \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

HTML5 push सब्सक्रिप्शन सहेजें या अपडेट करें

वर्तमान उपयोगकर्ता के लिए ब्राउज़र push सब्सक्रिप्शन सहेजता है।

अनुरोध बॉडी

एंडपॉइंट

POST /html5-push/subscribe

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/html5-push/subscribe \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

प्रतिक्रिया

{}

HTML5 push सब्सक्रिप्शन हटाएँ

वर्तमान उपयोगकर्ता का ब्राउज़र push सब्सक्रिप्शन हटाता है।

अनुरोध बॉडी

एंडपॉइंट

POST /html5-push/unsubscribe

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/html5-push/unsubscribe \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

प्रतिक्रिया

{}

कॉल करने वाले उपयोगकर्ता के लिए स्थान की ऑनबोर्डिंग स्थिति प्राप्त करें

किसी सुविधा के लिए ऑनबोर्डिंग के दो भाग लौटाता है — setup (विवरण + उत्पाद चयन, club preferences पर संग्रहीत) और payment (SaaS billing payment-settings रिकॉर्ड से लाइव निर्धारित) — साथ ही कॉलर के लिए वैयक्तिकृत `required` फ़्लैग जिस पर ऐप शेल निर्भर करता है। केवल technology-stack स्थानों के लिए; business-stack स्थान हमेशा required=false लौटाते हैं।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/onboarding/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए चल रहे ऑनबोर्डिंग विज़ार्ड की प्रगति सहेजें

विज़ार्ड की आंशिक स्थिति (उत्पाद चयन, "Other" मुक्त पाठ, समीक्षा किए गए व्यावसायिक विवरण, वर्तमान चरण) सहेजता है ताकि रीफ़्रेश करने या छोड़ने पर उपयोगकर्ता वहीं से फिर शुरू कर सके जहाँ उसने छोड़ा था। कभी पूर्णता अंकित नहीं करता — complete एंडपॉइंट देखें।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/onboarding/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

ऑनबोर्डिंग विज़ार्ड के लिए AI से पहले से भरे सुझाव बनाएँ

मौजूदा club/brand/organisation संदर्भ का उपयोग करके सुविधा के विवरण (about पाठ, व्यवस्थित संपर्क फ़ील्ड), सुझाए गए उत्पाद चयन, और छोटे वैयक्तिकृत सुझाव प्रस्तावित करता है। परिणाम Redis में 7 दिनों के लिए कैश किए जाते हैं। सुझाव केवल सलाह के रूप में हैं — क्लाइंट उन्हें एक संपादन योग्य समीक्षा फ़ॉर्म में दिखाता है। हमेशा 200 लौटाता है; AI उपलब्ध न होने पर `suggestions` null होता है ताकि विज़ार्ड बिना रुकावट के काम करता रहे।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

POST /api/onboarding/{facilityId}/ai-prefill

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/onboarding/{facilityId}/ai-prefill \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

स्थान ऑनबोर्डिंग का setup भाग पूरा करें

पुष्टि किए गए चयन/विवरण को सत्यापित करता है, व्यावसायिक विवरण क्लब रिकॉर्ड में सहेजता है, उत्पाद चयन से सुविधा का tech-menu लेआउट तैयार करता है (जब तक कोई अनुकूलित लेआउट पहले से मौजूद न हो), और setup पूर्णता अंकित करता है। payment भाग जान-बूझकर यहाँ पूरा नहीं किया जा सकता — यह SaaS billing payment-settings रिकॉर्ड से लाइव निर्धारित होता है, इसलिए इस एंडपॉइंट को कॉल करके अनिवार्य कार्ड आवश्यकता को टाला नहीं जा सकता। रीफ़्रेश की गई स्थिति लौटाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/onboarding/{facilityId}/complete

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए घोषित पार्टनर इंटीग्रेशन कार्रवाई शुरू करें

पार्टनर रिकॉर्ड (ph-partners.actions[]) पर घोषित "Run integration" कार्रवाई को किसी सुविधा के दायरे में चलाता है। Redis single-flight lock एक ही action+facility के लिए एक साथ कई मैनुअल रन को रोकता है।

पैरामीटर

partnerId `string` (आवश्यक) actionId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/partners/{partnerId}/actions/{actionId}/run

उदाहरण अनुरोध

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

किसी पार्टनर इंटीग्रेशन कार्रवाई के रन की स्थिति पढ़ें

लौटाता है कि कोई मैनुअल रन वर्तमान में चल रहा है या नहीं (single-flight lock लिया गया है), साथ ही अंतिम अनुरोधित रन, ताकि सेटिंग्स बटन पोल कर सके।

पैरामीटर

partnerId `string` (आवश्यक) actionId `string` (आवश्यक) facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/partners/{partnerId}/actions/{actionId}/status

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/{partnerId}/actions/{actionId}/status \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी ब्रांड के सभी पार्टनर कॉन्फ़िगरेशन प्राप्त करें

पैरामीटर

brandId `string` (आवश्यक) ब्रांड ID

एंडपॉइंट

GET /api/partners/brand-config/{brandId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/brand-config/{brandId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

[]

ब्रांड पार्टनर कॉन्फ़िगरेशन बनाएँ या अपडेट करें

पैरामीटर

body `object` (आवश्यक)

एंडपॉइंट

PUT /api/partners/brand-config

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/partners/brand-config \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

GymMaster इंटीग्रेशन डेटा को facility-partner-config में माइग्रेट करें

gymMasterAPI और gymMasterDomain फ़ील्ड वाले सभी क्लबों की क्वेरी करता है और संबंधित facility-partner-config रिकॉर्ड बनाता/अपडेट करता है। यह एक बार उपयोग होने वाला माइग्रेशन एंडपॉइंट है।

पैरामीटर

partnerId `string` (आवश्यक) सभी माइग्रेट किए गए रिकॉर्ड के लिए उपयोग की जाने वाली GymMaster पार्टनर ID dryRun `boolean` (वैकल्पिक) true होने पर, डेटाबेस में लिखे बिना केवल यह रिपोर्ट करता है कि क्या माइग्रेट होगा

एंडपॉइंट

GET /api/partners/migrate-gymmaster

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/migrate-gymmaster \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन के लिए पार्टनर सक्षम करें।

पैरामीटर

partnerId `string` (आवश्यक) पार्टनर की ID

एंडपॉइंट

POST /api/partners/organisation/enable

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/partners/organisation/enable \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संगठन के पार्टनर की सूची बनाएँ। Organisation Administrator केवल अपने संगठन के पार्टनर देखते हैं।

एंडपॉइंट

GET /api/partners/organisation

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/organisation \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी संगठन पार्टनर को हटाएँ।

पैरामीटर

keyId `string` (आवश्यक) संगठन पार्टनर की Key ID organisationId `string` (आवश्यक) पार्टनर की संगठन ID

एंडपॉइंट

DELETE /api/partners/organisation/{keyId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/partners/organisation/{keyId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संगठन पार्टनर का पहुँच मोड और मॉड्यूल अपडेट करें।

पैरामीटर

keyId `string` (आवश्यक) संगठन पार्टनर की Key ID organisationId `string` (आवश्यक) पार्टनर की संगठन ID partnerId `string` (आवश्यक) पार्टनर ID accessMode `string` (आवश्यक) पार्टनर के लिए पहुँच मोड modules `string` (वैकल्पिक) LIMITED पहुँच मोड के लिए मॉड्यूल की सूची

एंडपॉइंट

PUT /api/partners/organisation/update-access

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/partners/organisation/update-access \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए चेक-इन बनाएँ

चेक-इन ऑब्जेक्ट का array स्वीकार करता है और उन्हें प्रोसेसिंग के लिए Partner API को भेजता है। प्रति अनुरोध अधिकतम 25 चेक-इन।

अनुरोध बॉडी

एंडपॉइंट

POST /api/partners/check-ins

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा का पार्टनर कॉन्फ़िगरेशन हटाएँ

किसी सुविधा में पार्टनर इंटीग्रेशन का कॉन्फ़िगरेशन हटाता है

पैरामीटर

facilityId `string` (आवश्यक) सुविधा ID (club ID) partnerId `string` (आवश्यक) पार्टनर ID

एंडपॉइंट

DELETE /api/partners/facility-config/{facilityId}/{partnerId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId}/{partnerId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के सभी पार्टनर कॉन्फ़िगरेशन की सूची बनाएँ

दी गई सुविधा के लिए कॉन्फ़िगर किए गए सभी पार्टनर इंटीग्रेशन लौटाता है

पैरामीटर

facilityId `string` (आवश्यक) सुविधा ID (club ID)

एंडपॉइंट

GET /api/partners/facility-config/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए पार्टनर कॉन्फ़िगरेशन बनाएँ या अपडेट करें

किसी सुविधा में पार्टनर इंटीग्रेशन का कॉन्फ़िगरेशन upsert करता है

अनुरोध बॉडी

एंडपॉइंट

POST /api/partners/facility-config

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

memberId द्वारा किसी सदस्य को हटाएँ

memberId का उपयोग करके किसी मौजूदा सदस्य रिकॉर्ड को हटाता है।

पैरामीटर

memberId `string` (आवश्यक) सदस्य का अद्वितीय पहचानकर्ता

एंडपॉइंट

DELETE /api/partners/members/{memberId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/partners/members/{memberId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

memberId द्वारा किसी सदस्य को अपडेट करें

memberId का उपयोग करके किसी मौजूदा सदस्य रिकॉर्ड को अपडेट करता है।

पैरामीटर

memberId `string` (आवश्यक) सदस्य का अद्वितीय पहचानकर्ता

अनुरोध बॉडी

एंडपॉइंट

PUT /api/partners/members/{memberId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी member-sync ऑपरेशन की स्थिति प्राप्त करें

POST /api/partners/members या DELETE /api/partners/members/{memberId} के माध्यम से शुरू किए गए किसी एसिंक्रोनस सदस्य create/delete ऑपरेशन की वर्तमान स्थिति लौटाता है। फ़्रंटएंड पुराने list-polling + name-matching प्रवाह के स्थान पर इस एंडपॉइंट को पोल करता है। NOTE पंक्ति-स्तरीय partnerId/facilityId दायरा multi-tenant isolation नियमों द्वारा अनिवार्य है, लेकिन इसे Phase 3a.1 hardening PR तक स्थगित किया गया है — operationIds 128-bit UUIDs हैं और रूट पहले से ही `external-integrations` मॉड्यूल पहुँच द्वारा नियंत्रित है। वैध operationId और admin मॉड्यूल पहुँच वाला कोई भी व्यक्ति इसकी स्थिति क्वेरी कर सकता है।

पैरामीटर

operationId `string` (आवश्यक) POST/DELETE से लौटाया गया UUID

एंडपॉइंट

GET /api/partners/members/operations/{operationId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/partners/members/operations/{operationId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के लिए सदस्य बनाएँ या अपडेट करें

सदस्य ऑब्जेक्ट का array स्वीकार करता है और उन्हें प्रोसेसिंग के लिए Partner API को भेजता है। प्रति अनुरोध अधिकतम 25 सदस्य।

अनुरोध बॉडी

एंडपॉइंट

POST /api/partners/members

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी सुविधा के लिए सदस्यता योजनाएँ बनाएँ या अपडेट करें

सदस्यता योजना ऑब्जेक्ट का array स्वीकार करता है और उन्हें प्रोसेसिंग के लिए Partner API को भेजता है। प्रति अनुरोध अधिकतम 25 सदस्यता योजनाएँ।

अनुरोध बॉडी

एंडपॉइंट

POST /api/partners/membership-plans

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

एक नई भूमिका बनाता है

पैरामीटर

body `string` (आवश्यक) भूमिका ऑब्जेक्ट

एंडपॉइंट

POST /api/roles

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/roles \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी भूमिकाओं की सूची लौटाता है

एंडपॉइंट

GET /api/roles

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/roles \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ID द्वारा किसी भूमिका को हटाता है

एंडपॉइंट

DELETE /api/roles/{roleId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/roles/{roleId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ID द्वारा किसी भूमिका को अपडेट करता है

पैरामीटर

body `string` (आवश्यक) भूमिका ऑब्जेक्ट

एंडपॉइंट

PUT /api/roles/{roleId}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/roles/{roleId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

SaaS बिलिंग इनवॉइस के लिए एक नया अतिरिक्त लाइन आइटम बनाएँ

पैरामीटर

organisationId `string` (वैकल्पिक) वह संगठन ID जिसके लिए अतिरिक्त लाइन आइटम बनाना है body `string` (वैकल्पिक) अनुरोध का body

एंडपॉइंट

POST /api/saas-billing/additional-line-items

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

SaaS बिलिंग इनवॉइस के अतिरिक्त लाइन आइटम की सूची लौटाता है

पैरामीटर

organisationId `string` (आवश्यक) संगठन ID

एंडपॉइंट

GET /api/saas-billing/additional-line-items

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के SaaS बिलिंग इनवॉइस के अतिरिक्त लाइन आइटम की सूची लौटाता है

एंडपॉइंट

GET /api/clubs/{clubId}/saas-billing/additional-line-items

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/saas-billing/additional-line-items \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

SaaS बिलिंग इनवॉइस के किसी अतिरिक्त लाइन आइटम को अपडेट करता है

पैरामीटर

itemId `string` (आवश्यक) अपडेट किए जाने वाले अतिरिक्त लाइन आइटम की ID body `string` (आवश्यक) अनुरोध का body

एंडपॉइंट

PUT /api/saas-billing/additional-line-items/{itemId}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items/{itemId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Your Rates के लिए Cloud Agent की संयुक्त प्रति घंटा दरें

उपलब्ध Cloud Agent आकार एक ही संयुक्त प्रति घंटा मूल्य (होस्टिंग + सॉफ़्टवेयर) के साथ लौटाता है। विभाजन शामिल नहीं है। usedPlans वे SKUs हैं जिन्हें इस सुविधा ने पिछले 30 दिनों में चलाया।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/cloud-agent-rates

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/cloud-agent-rates \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इम्पोर्ट की गई मासिक रिपोर्ट हटाएँ

पैरामीटर

club `string` (वैकल्पिक) क्लब ID reportId `string` (वैकल्पिक) रिपोर्ट ID

एंडपॉइंट

DELETE /api/saas-billing/extended-access/monthly-usage-report/{reportId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{reportId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब की नवीनतम CCTV स्टोरेज रिपोर्ट प्राप्त करें

संग्रहीत बिलिंग लॉग (पिछले 31 दिनों तक) से क्लब का सबसे हाल का दैनिक CCTV स्टोरेज स्नैपशॉट लौटाता है। इसमें totalStorage, date और स्टोरेज से संबंधित शुल्क शामिल हैं।

पैरामीटर

club `string` (आवश्यक) क्लब ID

एंडपॉइंट

GET /api/saas-billing/extended-access/latest-cctv-storage-report/{club}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

दी गई अवधि के लिए क्लब का PDF इनवॉइस लौटाता है।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID month `string` (वैकल्पिक) रिपोर्ट का महीना संख्या फ़ॉर्मेट में। 1 = जनवरी, 2 = फ़रवरी आदि। year `string` (वैकल्पिक) रिपोर्ट का वर्ष संख्या फ़ॉर्मेट में। उदाहरण के लिए 2021

एंडपॉइंट

GET /api/saas-billing/extended-access/monthly-usage-report/:club/invoice

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

चयनित उपयोग महीनों के प्लेटफ़ॉर्म इनवॉइस PDF का बंडल, ZIP के रूप में। एकल .../invoice एंडपॉइंट का बल्क रूप — Billing & Cost Management applet के Invoices & Receipts टैब पर बहु-चयन डाउनलोड को संचालित करता है।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID months `string` (वैकल्पिक) YYYY-MM फ़ॉर्मेट में अल्पविराम से अलग किए गए उपयोग/रिपोर्ट महीने (अधिकतम 24)

एंडपॉइंट

GET /api/saas-billing/extended-access/monthly-usage-report/{club}/invoices.zip

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

एक ही कॉल में कई उपयोग महीनों की मासिक उपयोग रिपोर्ट लौटाता है। Billing & Cost Management applet में Cost History चार्ट और माह-दर-माह अंतर को संचालित करता है। जिन महीनों में अभी तक कोई उपयोग नहीं है, वे report: null लौटाते हैं (एकल-माह एंडपॉइंट के 404 → $0 UI के अनुरूप)।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID months `string` (वैकल्पिक) YYYY-MM फ़ॉर्मेट में अल्पविराम से अलग किए गए उपयोग महीने (अधिकतम 12)

एंडपॉइंट

GET /api/saas-billing/extended-access/monthly-usage-report/{club}/batch

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

क्लब के लिए मासिक रिपोर्ट इम्पोर्ट करें।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID

एंडपॉइंट

PUT /api/saas-billing/extended-access/usage-report/:club

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी क्लबों के लिए पिछले 30 दिनों के CCTV उपयोग की CSV रिपोर्ट लौटाता है।

एंडपॉइंट

GET /api/saas-billing/extended-access/usage-report/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के लिए महीने की सभी दैनिक रिपोर्ट की सूची बनाता है।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID month `string` (वैकल्पिक) रिपोर्ट का महीना संख्या फ़ॉर्मेट में। 1 = जनवरी, 2 = फ़रवरी आदि। year `string` (वैकल्पिक) रिपोर्ट का वर्ष संख्या फ़ॉर्मेट में। उदाहरण के लिए 2021

एंडपॉइंट

GET /api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

व्यवस्थापक के लिए इम्पोर्ट की गई मासिक रिपोर्ट की सूची लौटाता है

पैरामीटर

organisationId `string` (आवश्यक) संगठन ID

एंडपॉइंट

GET /api/saas-billing/extended-access/usage-report/imported

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/imported \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी क्लबों के लिए पिछले 30 दिनों के CCTV उपयोग की CSV रिपोर्ट लौटाता है।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID month `string` (वैकल्पिक) रिपोर्ट का महीना संख्या फ़ॉर्मेट में। 1 = जनवरी, 2 = फ़रवरी आदि। year `string` (वैकल्पिक) रिपोर्ट का वर्ष संख्या फ़ॉर्मेट में। उदाहरण के लिए 2021

एंडपॉइंट

GET /api/saas-billing/extended-access/monthly-usage-report/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के लिए आवधिक उपयोग रिपोर्ट लौटाता है।

पैरामीटर

club `string` (वैकल्पिक) क्लब ID periodStart `string` (वैकल्पिक) अवधि की शुरुआत, YYYY-MM-DD फ़ॉर्मेट में periodEnd `string` (वैकल्पिक) अवधि का अंत, YYYY-MM-DD फ़ॉर्मेट में

एंडपॉइंट

GET /api/saas-billing/extended-access/periodical-usage-report/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/periodical-usage-report/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

बिलिंग-दस्तावेज़ PDF का एक ही ZIP में बंडल, जिसमें विभिन्न दस्तावेज़ प्रकार शामिल हैं: प्लेटफ़ॉर्म इनवॉइस (उपयोग महीने के अनुसार), SaaS-wallet टॉप-अप रसीदें, और Model Router टॉप-अप रसीदें। समेकित Invoices & Receipts टैब के लिए प्रति-प्रकार invoices.zip / receipts.zip एंडपॉइंट का बल्क रूप। हर अनुरोधित महीना/id सुविधा के स्वामित्व वाले किसी दस्तावेज़ से मेल खाना चाहिए — कोई भी गलत मान पूरे बंडल को विफल कर देता है।

पैरामीटर

clubID `string` (आवश्यक) invoiceMonths `string` (वैकल्पिक) YYYY-MM फ़ॉर्मेट में अल्पविराम से अलग किए गए उपयोग महीने walletIds `string` (वैकल्पिक) अल्पविराम से अलग की गई SaaS-wallet टॉप-अप transaction ids aiIds `string` (वैकल्पिक) अल्पविराम से अलग की गई Model Router टॉप-अप transaction ids

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/documents.zip

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/documents.zip \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मासिक रिकॉर्ड में नोट जोड़ें

पैरामीटर

recordID `string` (वैकल्पिक) प्राप्त किए जाने वाले रिकॉर्ड की ID note `string` (वैकल्पिक) रिकॉर्ड में जोड़ा जाने वाला नोट

एंडपॉइंट

POST /api/saas-billing/monthly-records/{recordID}/notes

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID}/notes \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

SaaS बिलिंग मासिक रिकॉर्ड की सूची लौटाता है

पैरामीटर

club `string` (वैकल्पिक) प्राप्त किए जाने वाले क्लब की ID month `string` (वैकल्पिक) YYYY-MM फ़ॉर्मेट में बिलिंग महीना

एंडपॉइंट

GET /api/saas-billing/monthly-records/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन SaaS बिलिंग मासिक रिकॉर्ड की सूची लौटाता है जो विफल हुए हैं या जिनके लिए 3D Secure आवश्यक है

पैरामीटर

clubID `string` (वैकल्पिक) उस क्लब की ID जिसके विफल मासिक रिकॉर्ड प्राप्त करने हैं

एंडपॉइंट

GET /api/clubs/:clubID/saas-billing/flagged

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/flagged \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के सभी SaaS बिलिंग मासिक रिकॉर्ड (इनवॉइस लेजर) लौटाता है, नवीनतम बिलिंग महीना पहले। केवल-व्यवस्थापक paginate-monthly-records एंडपॉइंट का क्लब-दायरे वाला रूप — Billing & Cost Management applet में ग्राहक के "Invoices & Receipts" टैब को संचालित करता है।

पैरामीटर

clubID `string` (वैकल्पिक) उस क्लब की ID जिसके मासिक रिकॉर्ड की सूची बनानी है

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/monthly-records

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

SaaS बिलिंग मासिक रिकॉर्ड की सूची लौटाता है

पैरामीटर

organisationId `string` (वैकल्पिक) संगठन ID month `string` (वैकल्पिक) MM फ़ॉर्मेट में महीना। year `string` (वैकल्पिक) YYYY फ़ॉर्मेट में वर्ष। filters `string` (वैकल्पिक) Datatable द्वारा बनाए गए query string फ़िल्टर। order `string` (वैकल्पिक) Datatable द्वारा बनाई गई query string।

एंडपॉइंट

GET /api/saas-billing/monthly-records

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के विफल भुगतानों का फिर से प्रयास करें

पैरामीटर

clubID `string` (वैकल्पिक) उस क्लब की ID जिसके विफल मासिक रिकॉर्ड प्राप्त करने हैं

एंडपॉइंट

PUT /api/clubs/:clubID/saas-billing/retry-failed-payments

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/retry-failed-payments \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मासिक रिकॉर्ड को अपडेट करें

पैरामीटर

recordID `string` (वैकल्पिक) प्राप्त किए जाने वाले रिकॉर्ड की ID status `string` (वैकल्पिक) वह स्थिति जिस पर रिकॉर्ड को अपडेट करना है

एंडपॉइंट

PUT /api/saas-billing/monthly-records/{recordID}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

जाँचता है कि भुगतान सफल हुए हैं या नहीं और रिकॉर्ड की स्थिति अपडेट करता है

पैरामीटर

clubID `string` (वैकल्पिक) recordID `string` (वैकल्पिक) प्राप्त किए जाने वाले रिकॉर्ड की ID

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए भुगतान विधि जोड़ें।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

POST /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब की भुगतान विधियों को Stripe के साथ सिंक करता है।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का खर्च बजट और गणना किया गया MTD/पूर्वानुमान लौटाता है।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/budget

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का खर्च बजट बनाएँ/अपडेट करें/साफ़ करें।

पैरामीटर

clubID `string` (वैकल्पिक) body `object` (वैकल्पिक)

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/budget

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
  -H "x-api-key: YOUR_API_KEY"

क्लब की भुगतान सेटिंग से कोई भुगतान विधि हटाएँ।

पैरामीटर

clubID `string` (वैकल्पिक) paymentMethodID `string` (वैकल्पिक)

एंडपॉइंट

DELETE /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी क्लब की भुगतान सेटिंग प्राप्त करें।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/payment-settings

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब की भुगतान सेटिंग अपडेट करें।

पैरामीटर

clubID `string` (वैकल्पिक) lockedOut `boolean` (वैकल्पिक) क्या क्लब को सिस्टम से लॉक आउट किया जाएगा। pauseBilling `boolean` (वैकल्पिक) क्या क्लब के लिए स्वचालित बिलिंग रोकी जाएगी। customerID `string` (वैकल्पिक) इसे जोड़ने पर क्लब की stripe customer ID अपडेट हो जाएगी। deleteSourceID `string` (वैकल्पिक) क्या स्रोत ग्राहक को stripe से हटाना है।

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/payment-settings

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सभी क्लबों के लिए सबसे पहला बिल किया गया महीना प्राप्त करें।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

GET /api/saas-billing/payment-settings/earliest-billed-month

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/earliest-billed-month \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन खातों की सूची बनाएँ जो किसी क्लब का बिलिंग लॉकआउट हटा सकते हैं, स्तरों में: पहले बिलिंग मॉड्यूल वाले उपयोगकर्ता, और Organisation Administrator केवल तब जब किसी के पास यह मॉड्यूल न हो।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/lockout-contacts

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/lockout-contacts \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सिस्टम के सभी क्लबों को पेज-दर-पेज देखें और प्रत्येक क्लब की customer IDs लौटाएँ।

पैरामीटर

clubID `string` (वैकल्पिक) organisationId `string` (वैकल्पिक) संगठन ID

एंडपॉइंट

GET /api/saas-billing/payment-settings/customer-ids

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/customer-ids \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए प्राथमिक भुगतान विधि सेट करें।

पैरामीटर

clubID `string` (वैकल्पिक)

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

किसी क्लब की बिलिंग प्रोफ़ाइल अपडेट करें।

पैरामीटर

clubID `string` (वैकल्पिक) invoiceEntity `string` (वैकल्पिक) billingContacts `string` (वैकल्पिक) KYC संपर्कों के uuids की सूची ccEmails `string` (वैकल्पिक) इनवॉइस पर cc किए जाने वाले ईमेल की सूची

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/payment-settings/billing-profile

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/billing-profile \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी क्लब के लिए भुगतान विधि अपडेट करें।

पैरामीटर

clubID `string` (वैकल्पिक) cardID `string` (वैकल्पिक)

एंडपॉइंट

PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID}

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

CSV निर्यात के लिए सभी लागू उत्पाद शुल्कों और अतिरिक्त लाइन आइटम का प्रति-सुविधा विवरण लौटाता है। उपयोगकर्ता की पहुँच वाली हर सुविधा के लिए global/region/facility override पदानुक्रम को हल करता है।

पैरामीटर

organisationId `string` (आवश्यक) ACL के लिए संगठन ID

एंडपॉइंट

GET /api/saas-billing/charges-config/export

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/export \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी विशिष्ट लक्ष्य का शुल्क कॉन्फ़िगरेशन लौटाता है

पैरामीटर

clubId `string` (वैकल्पिक) उस क्लब की क्लब ID जिसका शुल्क कॉन्फ़िगरेशन प्राप्त करना है

एंडपॉइंट

GET /api/saas-billing/charges-config/{clubId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/{clubId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इस सुविधा के संगठन का बिलिंग सारांश — प्रभावी भुगतानकर्ता दायरा, कोई निर्धारित consolidation बदलाव, और क्या कॉलर consolidation टॉगल को प्रबंधित कर सकता है।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/org/summary

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/summary \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रति-सुविधा विवरण के साथ समेकित संगठन मासिक रिकॉर्ड (statements), नवीनतम पहले। संगठन का पहला समेकित महीना निपटने तक खाली रहता है।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/org/monthly-records

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/monthly-records \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रीपेड वॉलेट सारांश — शेष राशि, माह-से-अब-तक उपयोग डेबिट, ऑटो-टॉप-अप कॉन्फ़िगरेशन, बिलिंग विधि।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/wallet

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वॉलेट लेजर, नवीनतम पहले। संगठन-दायरे वाले वॉलेट में सभी सुविधाओं की पंक्तियाँ शामिल होती हैं (प्रत्येक में उसका मूल clubID होता है)।

पैरामीटर

clubID `string` (आवश्यक) limit `string` (वैकल्पिक) types `string` (वैकल्पिक) अल्पविराम से अलग किए गए transaction प्रकार from `string` (वैकल्पिक) to `string` (वैकल्पिक) cursor `string` (वैकल्पिक) पिछले पेज से nextCursor

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/wallet/transactions

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एक वॉलेट transaction (टॉप-अप और क्रेडिट) के लिए ब्रांडेड PDF रसीद।

पैरामीटर

clubID `string` (आवश्यक) txId `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/wallet/transactions/{txId}/receipt.pdf

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

चयनित वॉलेट टॉप-अप transactions की ब्रांडेड PDF रसीदों का बंडल, ZIP के रूप में। हर id इस सुविधा के वॉलेट का टॉप-अप (कार्ड या इनवॉइस) होना चाहिए — उपयोग डेबिट और समायोजन की कोई रसीद नहीं होती और उन्हें अस्वीकार कर दिया जाता है।

पैरामीटर

clubID `string` (आवश्यक) ids `string` (आवश्यक) अल्पविराम से अलग लेनदेन id (अधिकतम 50)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रीपेड शेष राशि जोड़ने के लिए संग्रहीत SaaS-billing कार्ड से शुल्क लें। 3DS आवश्यक होने पर requires_action + clientSecret लौटाता है।

पैरामीटर

clubID `string` (आवश्यक) body `object` (वैकल्पिक)

एंडपॉइंट

POST /api/clubs/{clubID}/saas-billing/wallet/topup

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

applet द्वारा 3DS प्रमाणीकरण पूरा करने के बाद वॉलेट टॉप-अप को अंतिम रूप दें। Idempotent।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

POST /api/clubs/{clubID}/saas-billing/wallet/topup/confirm

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup/confirm \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा का ऑटो-टॉप-अप नियम अपडेट करें (उसकी billing-profile override पंक्ति पर संग्रहीत)।

पैरामीटर

clubID `string` (आवश्यक) body `object` (वैकल्पिक)

एंडपॉइंट

PATCH /api/clubs/{clubID}/saas-billing/wallet/auto-topup

उदाहरण अनुरोध

curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/auto-topup \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इस सुविधा के वॉलेट के लिए टॉप-अप इनवॉइस (इनवॉइस भुगतान विधि), नवीनतम पहले।

पैरामीटर

clubID `string` (आवश्यक)

एंडपॉइंट

GET /api/clubs/{clubID}/saas-billing/wallet/invoices

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/invoices \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

संदर्भ द्वारा भुगतान वाले टॉप-अप इनवॉइस का अनुरोध करें (केवल इनवॉइस भुगतान विधि)। प्रति वॉलेट अधिकतम एक लंबित इनवॉइस — दूसरा अनुरोध alreadyPending=true के साथ मौजूदा इनवॉइस लौटाता है।

पैरामीटर

clubID `string` (आवश्यक) body `string` (वैकल्पिक) { amountCents: number }

एंडपॉइंट

POST /api/clubs/{clubID}/saas-billing/wallet/topup-invoice

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup-invoice \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के ऑर्डर की सूची लौटाता है।

पैरामीटर

facilityID `string` (वैकल्पिक)

एंडपॉइंट

GET /api/store/facilities/:facilityID/orders

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/store/facilities/:facilityID/orders \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के लिए उपलब्ध उत्पादों की सूची लौटाता है।

पैरामीटर

clubID `string` (आवश्यक) search `string` (वैकल्पिक) limit `string` (वैकल्पिक) page `string` (वैकल्पिक) पेजिनेशन के लिए पेज संख्या (1 से शुरू)।

एंडपॉइंट

GET /api/store/clubs/{clubID}/products

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/store/clubs/{clubID}/products \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

क्लब के stripe रिकॉर्ड की सूची बनाएँ।

पैरामीटर

club `string` (आवश्यक) fromDate `string` (वैकल्पिक) Unix टाइमस्टैम्प toDate `string` (वैकल्पिक) Unix टाइमस्टैम्प socketID `string` (आवश्यक) socket अनुरोध के लिए अद्वितीय पहचानकर्ता

एंडपॉइंट

GET /api/club/{club}/stripe/records

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/records \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

payment intent रद्द करें

पैरामीटर

club `string` (आवश्यक) paymentIntent `string` (वैकल्पिक)

एंडपॉइंट

GET /api/club/{club}/stripe/payment-intent/:paymentIntent/cancel

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intent/:paymentIntent/cancel \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

embedded components के लिए Stripe Account Session बनाएँ

किसी connected account के लिए Stripe Account Session बनाता है। Connect embedded components (disputes, payouts, account management, documents) को प्रारंभ करने के लिए उपयोग किया जाने वाला client_secret लौटाता है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/stripe/account-session

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी connected account के लिए Stripe KYC पेज का एक बार उपयोग होने वाला लिंक बनाता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/club/{club}/stripe/generate-kyc-token

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/generate-kyc-token \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

KYC प्रक्रिया के भाग के रूप में किसी Stripe connected account के खाते का विवरण प्राप्त करता है।

पैरामीटर

club `string` (आवश्यक)

एंडपॉइंट

GET /api/club/{club}/stripe/connect-account-details

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/connect-account-details \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

Club ID के आधार पर सारा टिकट इतिहास लौटाता है

पैरामीटर

club `string` (आवश्यक) उस क्लब की आंतरिक ID जिसे आप एक्सेस करना चाहते हैं।

एंडपॉइंट

GET /api/ticketing/clubtickets/{club}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ticketing/clubtickets/{club} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

विभाग प्राप्त करता है

एंडपॉइंट

GET /api/ticketing/departments

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ticketing/departments \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी एक टिकट का विवरण प्राप्त करता है

पैरामीटर

user `string` (आवश्यक) उपयोगकर्ता का ईमेल। ticketNumber `string` (आवश्यक) उस टिकट की 6-अंकीय ID जिसे आप एक्सेस करना चाहते हैं। club `string` (आवश्यक) चयनित club id।

एंडपॉइंट

GET /api/ticketing/ticket-details/:ticketNumber/:club

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ticketing/ticket-details/:ticketNumber/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

विषय प्राप्त करता है

एंडपॉइंट

GET /api/ticketing/topics

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ticketing/topics \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वर्तमान में लॉग इन किए गए उपयोगकर्ता द्वारा बनाए गए सभी टिकट प्राप्त करता है - ध्यान दें कि यह हमारी Google SSO सेवा द्वारा दिए गए headers से सेट होता है।

पैरामीटर

user `string` (आवश्यक) वर्तमान में लॉग इन किए गए उपयोगकर्ता का ईमेल

एंडपॉइंट

GET /api/ticketing/usertickets

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/ticketing/usertickets \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक नया टिकट बनाता है

पैरामीटर

club `string` (आवश्यक) चयनित club id।

एंडपॉइंट

POST /api/ticketing/clubticket/:club

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ticketing/clubticket/:club \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक नया टिकट बनाता है

पैरामीटर

subject `string` (आवश्यक) टिकट का विषय। message `string` (आवश्यक) टिकट का पूरा संदेश।

एंडपॉइंट

POST /api/ticketing/userticket

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ticketing/userticket \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी मौजूदा टिकट का उत्तर बनाता है

पैरामीटर

subject `string` (आवश्यक) टिकट का विषय। message `string` (आवश्यक) टिकट का पूरा संदेश।

एंडपॉइंट

POST /api/ticketing/user-reply

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/ticketing/user-reply \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता की प्राथमिकताएँ प्राप्त करता है

एंडपॉइंट

GET /api/user-preferences

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/user-preferences \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी उपयोगकर्ता की प्राथमिकताएँ अपडेट करता है

पैरामीटर

body `string` (आवश्यक)

एंडपॉइंट

PUT /api/user-preferences

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/user-preferences \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता का पासवर्ड बदलें

उपयोगकर्ता का पासवर्ड बदलता है। यदि उपयोगकर्ता का फ़ोन नंबर है तो OTP सत्यापन आवश्यक है, और यदि नहीं है तो फ़ोन नंबर जोड़ना आवश्यक है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/user/change-password

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

उपयोगकर्ता की 2FA स्थिति जाँचें

लौटाता है कि उपयोगकर्ता के लिए 2FA सक्षम है या नहीं, और क्या उसकी कोई भूमिका 2FA को अनिवार्य करती है

एंडपॉइंट

GET /api/user/check-2fa-status

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/user/check-2fa-status \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन संगठनों, सुविधाओं और क्षेत्रों की सूची बनाएँ जिन तक उपयोगकर्ता की किसी विशिष्ट मॉड्यूल के लिए पहुँच है।

पैरामीटर

moduleId `string` (आवश्यक)

एंडपॉइंट

POST /api/user/me/modules/{moduleId}/org-access

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/user/me/modules/{moduleId}/org-access \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी अंतिम उपयोगकर्ता की ओर से एक 'Linking Request' बनाता है, जिसमें किसी क्लब से 'Join' करने का अनुरोध होता है।

पैरामीटर

body `string` (आवश्यक) सिस्टम में जोड़े जाने वाले नए क्लब का JSON ऑब्जेक्ट।

एंडपॉइंट

POST /api/user/linkclub

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/user/linkclub \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उपयोगकर्ता के लिए अधिकृत सभी क्लबों की सूची बनाता है।

एंडपॉइंट

GET /api/user/listauthorised

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/user/listauthorised \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दोहरे चैनल वाला OTP भेजें (ईमेल + SMS)

उपयोगकर्ता के ईमेल पते और एक निर्दिष्ट फ़ोन नंबर, दोनों पर OTP कोड भेजता है। पहली बार फ़ोन नंबर सत्यापन जैसे उच्च-सुरक्षा कार्यों के लिए उपयोग किया जाता है। यह एंडपॉइंट केवल OTP भेजता है और किसी उपयोगकर्ता डेटा को संशोधित नहीं करता।

अनुरोध बॉडी

एंडपॉइंट

POST /api/user/send-dual-otp

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

फ़ोन नंबर या ईमेल पर OTP भेजें

सत्यापन के लिए उपयोगकर्ता के फ़ोन नंबर (SMS) या ईमेल पते पर OTP कोड भेजता है

अनुरोध बॉडी

एंडपॉइंट

POST /api/user/send-otp

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

जाँचें कि उपयोगकर्ता के पास संवेदनशील पेज की वैध पहुँच है या नहीं

लौटाता है कि संवेदनशील पेज तक पहुँचने के लिए उपयोगकर्ता के पास OTP-सत्यापित वैध सत्र है या नहीं

एंडपॉइंट

GET /api/user/sensitive-page-access

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/user/sensitive-page-access \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

OTP सत्यापित करें और संवेदनशील पेज की पहुँच प्रदान करें

OTP कोड सत्यापित करता है और वैध होने पर संवेदनशील पेज की 1 घंटे की पहुँच प्रदान करता है

अनुरोध बॉडी

एंडपॉइंट

POST /api/user/sensitive-page-access/verify

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

संवेदनशील पेज की पहुँच रद्द करें (संवेदनशील पेज से लॉग आउट)

उपयोगकर्ता का वर्तमान संवेदनशील पेज पहुँच सत्र रद्द करता है

एंडपॉइंट

POST /api/user/sensitive-page-access/revoke

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/user/sensitive-page-access/revoke \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

2FA सक्षम या अक्षम करें

उपयोगकर्ता के लिए two-factor authentication सक्षम या अक्षम करता है। फ़ोन नंबर और OTP सत्यापन आवश्यक है।

अनुरोध बॉडी

एंडपॉइंट

POST /api/user/toggle-2fa

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

उपयोगकर्ता की अपनी प्रोफ़ाइल अपडेट करें

उपयोगकर्ता को अपनी प्रोफ़ाइल जानकारी (पहला नाम, उपनाम, फ़ोन नंबर) अपडेट करने देता है। पहली बार फ़ोन नंबर जोड़ते समय दोहरे चैनल वाला OTP सत्यापन आवश्यक है (ईमेल और SMS दोनों कोड)। किसी मौजूदा फ़ोन नंबर को बदलते समय केवल ईमेल OTP आवश्यक है।

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/user/update-profile

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

URL के आधार पर एक आइकन प्राप्त करें।

एंडपॉइंट

GET /api/website-icon

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/website-icon \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पासवर्ड वॉल्ट प्रविष्टि टेम्पलेट की सूची बनाएँ

पैरामीटर

organisationId `string` (वैकल्पिक) मॉड्यूल पहुँच जाँच के लिए संगठन संदर्भ

एंडपॉइंट

GET /api/vault/templates

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/vault/templates \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दिखाई देने वाली पासवर्ड वॉल्ट प्रविष्टियों की सूची बनाएँ

पैरामीटर

organisationId `string` (आवश्यक) scope `string` (वैकल्पिक)

एंडपॉइंट

GET /api/vault/entries

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/vault/entries \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पासवर्ड वॉल्ट प्रविष्टि बनाएँ

एंडपॉइंट

POST /api/vault/entries

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/vault/entries \
  -H "x-api-key: YOUR_API_KEY"

गोपनीय मान प्रकट किए बिना पासवर्ड वॉल्ट प्रविष्टि प्राप्त करें

पैरामीटर

entryId `string` (आवश्यक) organisationId `string` (आवश्यक)

एंडपॉइंट

GET /api/vault/entries/{entryId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पासवर्ड वॉल्ट प्रविष्टि अपडेट करें

एंडपॉइंट

PUT /api/vault/entries/{entryId}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पासवर्ड वॉल्ट प्रविष्टि हटाएँ

एंडपॉइंट

DELETE /api/vault/entries/{entryId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

चयनित छिपे हुए या गोपनीय फ़ील्ड प्रकट करें

एंडपॉइंट

POST /api/vault/entries/{entryId}/reveal

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/vault/entries/{entryId}/reveal \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पासवर्ड वॉल्ट फ़ोल्डर सारांशों की सूची बनाएँ

एंडपॉइंट

GET /api/vault/folders

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/vault/folders \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

authenticator कोड वाली प्रविष्टियों की सूची बनाएँ

एंडपॉइंट

GET /api/vault/authenticator

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/vault/authenticator \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

पंजीकृत workflow node प्रकारों की सूची बनाएँ

एंडपॉइंट

GET /api/workflow-engine/node-types

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/node-types \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow blocks द्वारा उपयोग किया जाने वाला सुविधा-घंटों का प्रक्षेपण प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/facility-hours/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-hours/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा-ब्रांडेड workflow ईमेल प्रेषक का पूर्वावलोकन करें

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/email-branding/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/email-branding/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

trigger कॉन्फ़िगरेशन के लिए सुविधा संसाधनों की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक) resourceType `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/resources/{facilityId}/{resourceType}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/resources/{facilityId}/{resourceType} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी सुविधा के workflows की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/workflows/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

गैर-खाली graph से एक ड्राफ़्ट workflow बनाएँ

एडिटर किसी नए workflow को तब तक स्थानीय रखता है जब तक उसमें कम से कम एक block न हो, इसलिए पहली बार सहेजने पर यह एक ही कॉल में अपने graph के साथ बनता है। बिना `nodes` वाला body संग्रहीत करने के बजाय अस्वीकार कर दिया जाता है।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

उन क्रेडेंशियल की सूची बनाएँ जिनका उपयोग किसी सुविधा के workflows कर सकते हैं

सुविधा के अपने क्रेडेंशियल के साथ उसके ब्रांड या संगठन में साझा किए गए क्रेडेंशियल लौटाता है। गोपनीय मान कभी नहीं लौटाए जाते; `hasValue` केवल यह बताता है कि कोई मान संग्रहीत है।

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/credentials/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow क्रेडेंशियल बनाएँ

दायरे का स्तर `scopeType` से आता है; ब्रांड और संगठन ids कॉलर से स्वीकार करने के बजाय सुविधा से निर्धारित की जाती हैं।

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/credentials/{facilityId}

उदाहरण अनुरोध

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

सुविधा-व्यापी workflow सेटिंग्स (विफलता-सूचना प्राप्तकर्ता)

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/facility-settings/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-settings/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा-व्यापी विफलता सूचना प्राप्तकर्ता संग्रहीत करें

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/workflow-engine/facility-settings/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

workflow क्रेडेंशियल बदलें

खाली `secret` संग्रहीत मान को बनाए रखता है, ताकि क्रेडेंशियल को दोबारा दर्ज किए बिना उसका नाम बदला जा सके। किसी secret को वापस पढ़ने का कोई तरीका नहीं है।

पैरामीटर

facilityId `string` (आवश्यक) credentialId `string` (आवश्यक)

एंडपॉइंट

PUT /api/workflow-engine/credentials/{facilityId}/{credentialId}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow क्रेडेंशियल हटाएँ

इसका संदर्भ देने वाले nodes अगली कॉल पर सुरक्षित रूप से विफल होते हैं, पहले से प्रकाशित workflows में भी, क्योंकि snapshot केवल संदर्भ संग्रहीत करता है।

पैरामीटर

facilityId `string` (आवश्यक) credentialId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/workflow-engine/credentials/{facilityId}/{credentialId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
  -H "x-api-key: YOUR_API_KEY"

workflow trigger का webhook URL प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक) nodeId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow trigger का webhook URL रोटेट करें

पिछले URL को तुरंत अमान्य कर देता है।

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक) nodeId `string` (आवश्यक)

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook/rotate

उदाहरण अनुरोध

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"

प्रतिक्रिया

{}

id द्वारा workflow प्राप्त करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/workflows/{facilityId}/{workflowId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

ड्राफ़्ट workflow बनाएँ या अपडेट करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PUT /api/workflow-engine/workflows/{facilityId}/{workflowId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

workflow का नाम और/या विवरण अपडेट करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

workflow और उसके संस्करण हटाएँ

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

एंडपॉइंट

DELETE /api/workflow-engine/workflows/{facilityId}/{workflowId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow की प्रतिलिपि एक नए निष्क्रिय ड्राफ़्ट में बनाएँ

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वर्तमान ड्राफ़्ट प्रकाशित करें (अपरिवर्तनीय संस्करण snapshot)

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/publish

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

ड्राफ़्ट को अंतिम प्रकाशित संस्करण पर रीसेट करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/discard

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/discard \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

workflow सक्षम या अक्षम करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}/active

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

AI के साथ workflow graph बनाएँ या संशोधित करें

पैरामीटर

facilityId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/generate/{facilityId}

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

उन मॉडल की सूची बनाएँ जिन पर इस सुविधा के लिए Agent node चल सकता है

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/agent-models/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-models/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन MCP टूल की सूची बनाएँ जिन्हें इस सुविधा के लिए Agent node जोड़ सकता है

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/agent-tools/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-tools/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इस सुविधा की सहेजी गई Agent बातचीत खोजें (Conversation key bindings)

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (वैकल्पिक) केवल एक Agent डिवाइस की बातचीत तक सीमित करें (node का कॉन्फ़िगर किया गया deviceId) q `string` (वैकल्पिक) Conversation key, session id या डिवाइस नाम पर केस-असंवेदनशील substring मिलान limit `integer` (वैकल्पिक) offset `integer` (वैकल्पिक)

एंडपॉइंट

GET /api/workflow-engine/agent-conversations/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-conversations/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के Agent डिवाइस पर ही रखी गई बातचीत खोजें

डिवाइस के अपने सत्रों (Agent UI साइडबार की बातचीत) की सूची बनाता है ताकि कोई workflow किसी मौजूदा बातचीत को उसके संदर्भ के साथ जारी रख सके। इतिहास डिवाइस के पास रहता है; जब सुविधा में कई डिवाइस हों, तो `deviceId` तय करता है कि कौन-सा (node का कॉन्फ़िगर किया गया डिवाइस)। डिवाइस तक न पहुँच पाने पर → 502।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (वैकल्पिक) node का कॉन्फ़िगर किया गया Agent डिवाइस; सुविधा के एकमात्र डिवाइस को निर्धारित करने के लिए छोड़ दें q `string` (वैकल्पिक) सत्र के शीर्षक या id पर केस-असंवेदनशील substring मिलान limit `integer` (वैकल्पिक) offset `integer` (वैकल्पिक)

एंडपॉइंट

GET /api/workflow-engine/agent-device-sessions/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-device-sessions/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के Agent डिवाइस के kanban पर बोर्ड खोजें

Agent: Kanban block के Board ID पिकर को डेटा देता है। बोर्ड के नाम या slug पर केस-असंवेदनशील substring मिलान; `current` डिवाइस के सक्रिय बोर्ड का slug है ताकि task पिकर डिफ़ॉल्ट रूप से उसी दायरे का उपयोग कर सके। जब सुविधा में कई डिवाइस हों, तो `deviceId` तय करता है कि कौन-सा। डिवाइस तक न पहुँच पाने पर → 502।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (वैकल्पिक) node का कॉन्फ़िगर किया गया Agent डिवाइस; सुविधा के एकमात्र डिवाइस को निर्धारित करने के लिए छोड़ दें q `string` (वैकल्पिक) बोर्ड के नाम या slug पर केस-असंवेदनशील substring मिलान limit `integer` (वैकल्पिक) offset `integer` (वैकल्पिक)

एंडपॉइंट

GET /api/workflow-engine/kanban-boards/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-boards/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुविधा के Agent डिवाइस के kanban पर किसी एक बोर्ड के tasks खोजें

Agent: Kanban block के Task ID पिकर को डेटा देता है। task id, शीर्षक या body पर केस-असंवेदनशील substring मिलान; tasks प्रति बोर्ड रहते हैं (डिवाइस में सभी बोर्ड में खोज नहीं होती), इसलिए `board` प्राप्त करने का दायरा तय करता है — डिवाइस के सक्रिय बोर्ड के लिए इसे छोड़ दें। डिवाइस तक न पहुँच पाने पर → 502।

पैरामीटर

facilityId `string` (आवश्यक) deviceId `string` (वैकल्पिक) node का कॉन्फ़िगर किया गया Agent डिवाइस; सुविधा के एकमात्र डिवाइस को निर्धारित करने के लिए छोड़ दें board `string` (वैकल्पिक) सूची के लिए बोर्ड slug; डिवाइस के सक्रिय बोर्ड के लिए छोड़ दें q `string` (वैकल्पिक) task id, शीर्षक या body पर केस-असंवेदनशील substring मिलान limit `integer` (वैकल्पिक) offset `integer` (वैकल्पिक)

एंडपॉइंट

GET /api/workflow-engine/kanban-tasks/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-tasks/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

इस सुविधा के लिए फ़िल्टर किए गए चुनिंदा workflow टेम्पलेट की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/templates/{facilityId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

खुले ड्राफ़्ट के लिए किसी टेम्पलेट से graph fragment बनाएँ

पैरामीटर

facilityId `string` (आवश्यक) templateId `string` (आवश्यक)

एंडपॉइंट

POST /api/workflow-engine/templates/{facilityId}/{templateId}

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId}/{templateId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

टेम्पलेट admin पेज के लिए दायरा पिकर संदर्भ (admin स्तर)

एंडपॉइंट

GET /api/workflow-engine/template-admin/context

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/context \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

उन टेम्पलेट की सूची बनाएँ जिन्हें कॉलर प्रशासित कर सकता है, अनुमति फ़्लैग के साथ

एंडपॉइंट

GET /api/workflow-engine/template-admin

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

टेम्पलेट बनाएँ (admin स्तर)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/template-admin

उदाहरण अनुरोध

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

admin एडिटर के लिए graph सहित टेम्पलेट विवरण

एंडपॉइंट

GET /api/workflow-engine/template-admin/{templateId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

टेम्पलेट बदलें (स्वामी संगठन)

एंडपॉइंट

PUT /api/workflow-engine/template-admin/{templateId}

उदाहरण अनुरोध

curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

टेम्पलेट को soft-delete करें (स्वामी संगठन)

एंडपॉइंट

DELETE /api/workflow-engine/template-admin/{templateId}

उदाहरण अनुरोध

curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

दिखाई देने वाले टेम्पलेट की प्रतिलिपि ऐसे लक्ष्य दायरे में बनाएँ जिसका उपयोग कॉलर कर सकता है

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/template-admin/{templateId}/duplicate

उदाहरण अनुरोध

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

manual trigger से workflow का प्रकाशित graph चलाएँ

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/run

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

सहेजे गए ड्राफ़्ट को प्रकाशित किए बिना उसका परीक्षण करें

वर्तमान ड्राफ़्ट graph को चलाता है और परिणाम को `mode: test` के साथ और बिना `versionId` के दर्ज करता है। प्रकाशन, live फ़्लैग और `publishedVersionId` को कभी नहीं छुआ जाता। साइड इफ़ेक्ट डिफ़ॉल्ट रूप से सिम्युलेट किए जाते हैं; `sideEffects: live` के लिए अतिरिक्त रूप से `confirmLiveSideEffects: true` आवश्यक है।

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

allowlist में शामिल एक workflow node का परीक्षण करें

सहेजे गए ड्राफ़्ट से एक स्वतंत्र रूप से परीक्षण योग्य node चलाता है। वेरिएबल मान दर्ज किए गए run steps से दिए जा सकते हैं। डेटा बदलने वाले HTTP methods के लिए स्पष्ट पुष्टि आवश्यक है।

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test-node

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी workflow के हाल के runs की सूची बनाएँ

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

एक run पढ़ें (स्थिति + क्रमबद्ध steps)

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक) executionId `string` (आवश्यक)

एंडपॉइंट

GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

प्रतीक्षा कर रहे run के लंबित Delay को रद्द करें

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक) executionId `string` (आवश्यक)

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel

उदाहरण अनुरोध

curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

किसी पूर्ण हुए run को उसके दर्ज trigger payload से फिर से चलाएँ

`mode: published` उसी सटीक संस्करण को वास्तविक साइड इफ़ेक्ट के साथ फिर से चलाता है जिस पर मूल run पिन किया गया था। `mode: draft-test` वर्तमान ड्राफ़्ट को सिम्युलेटेड परीक्षण के रूप में फिर से चलाता है। जिस run का trigger payload लिखते समय छोटा कर दिया गया था, उसे फिर से नहीं चलाया जा सकता।

पैरामीटर

facilityId `string` (आवश्यक) workflowId `string` (आवश्यक) executionId `string` (आवश्यक)

अनुरोध बॉडी

एंडपॉइंट

POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/retry

उदाहरण अनुरोध

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

प्रतिक्रिया

{}

किसी node प्रकार वाले workflows का इंडेक्स किया गया लुकअप

पैरामीटर

nodeType `string` (आवश्यक) facilityId `string` (वैकल्पिक) organisationId `string` (वैकल्पिक)

एंडपॉइंट

GET /api/workflow-engine/master-view/{nodeType}

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/master-view/{nodeType} \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

वाइट-लेबल OAuth रीडायरेक्ट प्रॉक्सी (Connected Apps)

सार्वजनिक, बिना प्रमाणीकरण वाला 302 जो OAuth प्रदाता के callback को upstream टूल प्लेटफ़ॉर्म के auth callback पर query string सुरक्षित रखते हुए आगे भेजता है। इससे PH के स्वामित्व वाले OAuth ऐप performancehub.co redirect URI पंजीकृत कर सकते हैं ताकि upstream विक्रेता का डोमेन कभी एड्रेस बार में न दिखे (भविष्य के custom-OAuth-apps प्रोजेक्ट के लिए आवश्यक; managed auth में हानिरहित)।

एंडपॉइंट

GET /guest/connected-apps/oauth-callback

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/oauth-callback \
  -H "x-api-key: YOUR_API_KEY"

Connect-chain समापन पेज (Connected Apps)

उस OAuth टैब के लिए हल्का "आप यह विंडो बंद कर सकते हैं" लैंडिंग पेज जिसमें connect chain चली थी। परिणाम (कनेक्ट किया गया suite/toolkit + नई account ids, या विफल toolkit) को same-origin window.opener.postMessage के माध्यम से marketplace टैब पर वापस भेजता है; यदि opener अलग हो गया हो तो यह ph-ai-agent applet के एक deep link पर लौट आता है जो ऐप के भीतर का लैंडिंग पेज दोहराता है। केवल सूचनात्मक — इसमें कोई secret नहीं होता और यह कुछ भी नहीं लिखता।

पैरामीटर

connected `string` (वैकल्पिक) वह Suite id या toolkit slug जिसका कनेक्शन पूरा हुआ (सफलता की स्थिति)। accounts `string` (वैकल्पिक) chain द्वारा बनाई गई, अल्पविराम से अलग की गई connected account ids। connectError `string` (वैकल्पिक) वह toolkit slug जिसका चरण विफल हुआ (विफलता की स्थिति)।

एंडपॉइंट

GET /guest/connected-apps/finish

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/finish \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}

सुइट कनेक्ट चेनिंग कॉलबैक (Connected Apps)

one-click suite connect प्रवाह के लिए OAuth-callback चरण। हस्ताक्षरित state JWT (HS256, 30 मिनट TTL) { clubID, deviceId, suite, toolkits, step, caids } को एन्कोड करता है — खाते उसी एक agent डिवाइस से कनेक्ट होते हैं, और caids हर चरण में बनाई गई account ids को एकत्र करता है (अंतिम applet redirect उन्हें साथ ले जाता है ताकि marketplace नए खातों को लेबल करने का विकल्प दे सके)। चरण के toolkit को कनेक्टेड के रूप में चिह्नित करता है, फिर अगले toolkit के Connect Link पर 302 करता है — या suite पूरा होने पर ph-ai-agent applet पेज (agent पर deep-link) पर। एकल-toolkit कनेक्शन भी एक-toolkit वाले suite के साथ इसी handler से चलते हैं।

पैरामीटर

state `string` (आवश्यक) हस्ताक्षरित connect-chain state JWT।

एंडपॉइंट

GET /guest/connected-apps/connect-next

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/connect-next \
  -H "x-api-key: YOUR_API_KEY"

पासवर्ड सेटअप ईमेल भेजें

स्वागत ईमेल के हस्ताक्षरित लिंक को सत्यापित करता है, पासवर्ड रीसेट ईमेल भेजता है, और एक पुष्टि पेज दिखाता है। प्रमाणीकरण आवश्यक नहीं है।

पैरामीटर

email `string` (आवश्यक) उपयोगकर्ता का ईमेल पता sig `string` (आवश्यक) ईमेल के लिए HMAC हस्ताक्षर

एंडपॉइंट

GET /guest/setup-password

उदाहरण अनुरोध

curl -X GET https://portal.hub.gymsystems.co/guest/setup-password \
  -H "x-api-key: YOUR_API_KEY"

प्रतिक्रिया

{}