Wprowadzenie
Witamy w Performance Hub API. To API zarządza danymi klubu oraz kluczowymi systemami zintegrowanymi z klubem i jego systemami zewnętrznymi. Nie jest to API przeznaczone do publicznego użytku. Więcej informacji o korzystaniu z poszczególnych systemów Performance Hub obsługiwanych przez to API znajdziesz w odpowiedniej sekcji [dokumentacji Performance Hub](https://docs.performancehub.co) dotyczącej danego systemu.
Bazowy URL
https://portal.hub.gymsystems.co
Uwierzytelnianie
Dane uwierzytelniające zostaną przekazane po zatwierdzeniu integracji.
Zgłaszane przez urządzenie zdarzenie "zakończenie tury agenta" (wyzwalacz powiadomienia web push)
Wywoływane przez proces pomocniczy (sidecar) sparowanego urządzenia Agent AI (nigdy przez przeglądarki), gdy uruchomienie agenta zainicjowane w interfejsie webowym zakończy się i trwało dłużej niż próg powiadomień urządzenia. Uwierzytelniane krótkotrwałym tokenem JWT HS256 wydawanym dla każdego urządzenia (aud 'events'). Duplikaty są usuwane według kombinacji urządzenie+sesja+start, a liczba wywołań jest ograniczana dla każdego urządzenia; następnie powiadomienie trafia do subskrypcji push HTML5 użytkownika inicjującego, z bezpośrednim linkiem do rozmowy.
Treść żądania
Punkt końcowy
POST /ai/events/agent-turn-complete
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Powiadomienie push inicjowane przez agenta (umiejętność ph-notify)
Wywoływane przez proces pomocniczy (sidecar) sparowanego urządzenia Agent AI w imieniu agenta działającego na urządzeniu (umiejętność ph-notify) w celu wysłania dowolnego powiadomienia do przeglądarki i urządzeń mobilnych użytkownika. Uwierzytelniane krótkotrwałym tokenem JWT HS256 wydawanym dla każdego urządzenia (aud 'events'). Użytkownik docelowy musi mieć dostęp do urządzenia (zasady dostępu dla danego agenta); jeśli go nie podano, powiadomienie trafia do właściciela urządzenia. Liczba wywołań jest ograniczana dla każdego urządzenia, niezależnie od zdarzeń zakończenia tury.
Treść żądania
Punkt końcowy
POST /ai/events/agent-notify
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Prześlij obraz powiadomienia (umiejętność ph-notify)
Przyjmuje surową treść obrazu ze sparowanego urządzenia (JWT z aud 'events') i zapisuje ją w publicznym zasobniku notify-media pod niemożliwym do odgadnięcia kluczem UUID. Obiekty są automatycznie usuwane po 7 dniach (cykl życia S3). Zwraca publiczny adres https do użycia jako `imageUrl` w /ai/events/agent-notify. Limit 5 MB; tylko png/jpeg/gif/webp.
Treść żądania
Punkt końcowy
POST /ai/media/notify-image
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przekaźnik MCP urządzenia dla Connected Apps (zewnętrzne narzędzia SaaS)
Punkt końcowy MCP Streamable HTTP dla sparowanych urządzeń Agenta AI (serwer MCP "connected_apps" nasłuchujący na porcie :8790 kontenera pomocniczego urządzenia). Uwierzytelniany krótkotrwałym tokenem JWT HS256 dla każdego urządzenia (aud 'mcp' — to samo poświadczenie co /mcp) i dostępny tylko przy włączonej fladze Connected Apps AGENTA (połączenia są przypisane do urządzenia agenta, a nie do obiektu). Żądania są przekazywane strumieniowo do własnego serwera MCP sesji nadrzędnej platformy narzędzi agenta, a nagłówki sesji są wstrzykiwane po stronie serwera; poświadczenia nadrzędne nigdy nie trafiają na urządzenie. Nazwy narzędzi i oznaczenia marki dostawcy są w trakcie przesyłania zastępowane w obu kierunkach własną marką. Odpowiedź nadrzędna 401/410 (wygasła sesja) powoduje jednokrotne odtworzenie sesji i ponowienie próby.
Punkt końcowy
POST /mcp/apps
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/mcp/apps \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj dzienniki audytu API (dostęp do modułu IAM & Admin)
Przeszukuj i filtruj dzienniki dostępu do API przy użyciu zaawansowanych filtrów. Użytkownicy widzą tylko dzienniki organizacji, do których mają dostęp.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji do weryfikacji ACL (wymagany)Treść żądania
Punkt końcowy
POST /api/admin/audit-logs/search
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz statystyki dzienników audytu z pamięci podręcznej Redis (dostęp do modułu IAM & Admin)
Pobiera zagregowane statystyki z pamięci podręcznej Redis, aby panel ładował się natychmiast
Parametry
timeWindow `string` (opcjonalne) Przedział czasu dla statystyk (domyślnie 12h)Punkt końcowy
GET /api/admin/audit-logs/statistics-cached
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics-cached \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz statystyki dzienników audytu (dostęp do modułu IAM & Admin)
Pobiera zagregowane statystyki dla panelu. Zakres jest ograniczony do organizacji użytkownika.
Parametry
startTime `number` (opcjonalne) Czas rozpoczęcia (znacznik czasu Unix), domyślnie 24 godziny temu endTime `number` (opcjonalne) Czas zakończenia (znacznik czasu Unix), domyślnie terazPunkt końcowy
GET /api/admin/audit-logs/statistics
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz dane szeregów czasowych dzienników audytu (dostęp do modułu IAM & Admin)
Pobiera dane szeregów czasowych pogrupowane w przedziały do wizualizacji osi czasu żądań
Parametry
timeWindow `string` (opcjonalne) Przedział czasu dla danych szeregów czasowych: - 1h: ostatnia 1 godzina (bloki 10-minutowe) - 12h: ostatnie 12 godzin (bloki 10-minutowe) - 24h: ostatnie 24 godziny (bloki 10-minutowe) - 7d: ostatnie 7 dni (bloki 1-godzinne) - 14d: ostatnie 14 dni (bloki 1-godzinne)Punkt końcowy
GET /api/admin/audit-logs/timeseries
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/timeseries \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz organizacje, do których dzienników audytu użytkownik ma dostęp (dostęp do modułu IAM & Admin)
Zwraca listę organizacji, których dzienniki audytu może przeglądać bieżący użytkownik
Punkt końcowy
GET /api/admin/audit-logs/user-organisations
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/user-organisations \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pierwsze wywołanie tworzące nowy klub. Uwaga: tworzony jest tylko obiekt klubu typu 'template' — następnie wymagane jest drugie żądanie API, aby uzupełnić dane klubu, takie jak godziny otwarcia, lokalizacja, adresy URL w mediach społecznościowych itp.
Parametry
body `string` (wymagane) Obiekt JSON nowego klubu do dodania do systemu.Punkt końcowy
POST /api/admin/clubs/addclub
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/admin/clubs/addclub \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje nowego użytkownika do systemu
Parametry
body `string` (wymagane) Obiekt JSON z danymi użytkownika do dodania lub zaktualizowania.Punkt końcowy
POST /api/users
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/users \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla wszystkich użytkowników (konta Google Apps) z dostępem do systemu zaplecza i API
Punkt końcowy
GET /api/admin/users/listusers
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listusers \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla klucze MCP użytkownika (zamaskowane). Użytkownicy mogą wyświetlać własne klucze.
Parametry
userId `string` (wymagane)Punkt końcowy
GET /api/users/{userId}/mcp-keys
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy nowy klucz API MCP dla użytkownika. Użytkownicy mogą tworzyć własne klucze.
Parametry
userId `string` (wymagane) body `object` (opcjonalne)Punkt końcowy
POST /api/users/{userId}/mcp-keys
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Unieważnia lub usuwa klucz API MCP. Użytkownicy mogą usuwać własne klucze.
Parametry
userId `string` (wymagane) keyId `string` (wymagane)Punkt końcowy
DELETE /api/users/{userId}/mcp-keys/{keyId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń rolę użytkownika
Parametry
userId `string` (opcjonalne) Adres e-mail użytkownika, któremu chcesz odebrać rolę. roleId `string` (opcjonalne) Identyfikator roli, którą chcesz odebrać użytkownikowi.Punkt końcowy
DELETE /api/users/{userId}/roles/{roleId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje dane profilu istniejącego użytkownika (firstName, lastName, phoneNumber)
Parametry
userId `string` (wymagane) Adres e-mail użytkownika body `object` (wymagane) Dane profilu użytkownika do zaktualizowaniaPunkt końcowy
PATCH /api/users/{userId}
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/users/{userId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz lub zaktualizuj rolę użytkownika
Parametry
body `object` (opcjonalne)Punkt końcowy
PUT /api/users/{userId}/roles
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/users/{userId}/roles \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usługi Live Services działające na urządzeniu Agent AI obiektu (selektor publikacji)
Pobiera przez tunel usługi Live Services wykryte przez mostek urządzenia na potrzeby selektora "Publish to Performance Hub" w aplecie. Wymaga modułu ph-ai-agent ORAZ dostępu 'open' do urządzenia (ten sam próg co sama publikacja). Każda usługa jest oznaczana wartością publishedAppId, jeśli dla jej portu istnieje już aplikacja Custom App.
Parametry
club `string` (wymagane) device `string` (wymagane)Punkt końcowy
GET /api/agent-apps/services/{club}/{device}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/services/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Indeks nazw ikon MDI wbudowany w urządzenie Agent AI obiektu (selektor ikon)
Przekazuje przez tunel wbudowany indeks ikon MDI mostka urządzenia (GET /__services/icons/mdi/index.json). Selektor publikacji i edycji korzysta z katalogu dołączonego do apletu (ta sama przypięta wersja 7.4.47); pliki SVG opublikowanych aplikacji są pobierane z lokalnego pakietu @mdi/js serwera portalu. Ten sam próg dostępu co w selektorze usług (moduł ph-ai-agent + dostęp 'open' do urządzenia).
Parametry
club `string` (wymagane) device `string` (wymagane)Punkt końcowy
GET /api/agent-apps/mdi-index/{club}/{device}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/mdi-index/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz partię plików SVG ikon MDI z urządzenia Agent AI obiektu (podglądy w selektorze)
Pobiera w jednym wywołaniu do 60 nazwanych glifów MDI z wbudowanego zestawu ikon urządzenia; są one oczyszczane po stronie serwera przy użyciu tej samej listy dozwolonych elementów, co zapisane ikony aplikacji. Używane przez selektor ikon do wyświetlania wyników wyszukiwania; dla nieznanych nazw zwracana jest wartość null.
Parametry
club `string` (wymagane) device `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/mdi-icons/{club}/{device}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zakresy odbiorców, dla których wnioskujący może publikować z tego obiektu
Zakres odbiorców, których publikujący może wskazać w selektorze publikacji i edycji: obiekty objęte jego rolami ph-ai-agent (zakres wielu obiektów) oraz informacja, czy ma uprawnienia na poziomie organizacji wymagane dla odbiorców obejmujących całą markę lub całą organizację tego obiektu. Te same reguły są ponownie egzekwowane po stronie serwera przy publikacji i aktualizacji (validatePublishAudience) — ten punkt końcowy wpływa tylko na interfejs.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-apps/audience-options/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/audience-options/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Autouzupełnianie użytkowników dla odbiorców aplikacji wskazanych imiennie
Przeszukuje WYŁĄCZNIE użytkowników, których wnioskujący już widzi — osoby, których role obejmują co najmniej jeden obiekt, region lub organizację objęte własnym dostępem ph-ai-agent wnioskującego. Minimalna długość zapytania (2 znaki) i limit 10 wyników sprawiają, że punkt końcowy nie nadaje się do masowego pobierania danych; ten sam zbiór osiągalnych użytkowników jest ponownie egzekwowany po stronie serwera przy zapisie odbiorców.
Parametry
club `string` (wymagane) q `string` (wymagane)Punkt końcowy
GET /api/agent-apps/user-search/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/user-search/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Opublikuj usługę Live Service urządzenia Agent AI jako aplikację Custom App w Performance Hub
Rejestruje aplikację webową hostowaną przez urządzenie Agent AI obiektu (usługę Live Service wykrytą przez mostek) jako pozycję "Custom Apps" w menu bocznym dla wybranych odbiorców. Wymaga modułu ph-ai-agent w tym obiekcie ORAZ dostępu 'open' do urządzenia; odbiorcy są ograniczeni zakresami ról publikującego (nie można publikować szerzej, niż sięga własny dostęp). Tożsamość usługi jest ustalana NA BIEŻĄCO z listy /__services urządzenia; schemat http/https nigdy nie jest zapisywany.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/publish/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Opublikowane aplikacje Custom Apps widoczne w tym obiekcie
Zwraca aktywne opublikowane aplikacje, których odbiorcy obejmują ten obiekt, w formacie używanym przez menu boczne (appId, name, icon, description). Odbiorcy są ustalani na nowo przy każdym wywołaniu, więc zmiany dostępu działają natychmiast.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-apps/menu/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/menu/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Opublikowane aplikacje zarządzane z tego obiektu (widok publikującego)
Pełne rekordy aplikacji, których obiektem MACIERZYSTYM jest ten klub, dla listy zarządzania "Published Apps" w aplecie. Każdy rekord jest oznaczony wartością canManage dla użytkownika wysyłającego żądanie (publikującego).
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-apps/manage/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wygeneruj token przeglądającego ograniczony do usługi dla opublikowanej aplikacji Custom App
Zwraca krótkotrwały podpisany URL i token, za pomocą których przeglądarka otwiera JEDNĄ opublikowaną aplikację bezpośrednio przez regionalną bramę przekaźnikową urządzenia. Token zawiera oświadczenie svc wskazujące port usługi, dzięki czemu brama ogranicza sesję do /__services/proxy/
Parametry
club `string` (wymagane) appId `string` (wymagane)Punkt końcowy
POST /api/agent-apps/access/{club}/{appId}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/access/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Osoba odpowiedzialna za wsparcie opublikowanej aplikacji Custom App (kontakt z właścicielem)
Kto zapewnia wsparcie dla tej aplikacji opublikowanej przez użytkownika: adres e-mail publikującego (a w razie jego braku właściciel agenta hostującego). Informacja jest wyświetlana na panelach offline i błędów u przeglądającego, aby prośby o wsparcie trafiały do właściciela aplikacji, a nie do Performance Hub — opublikowane aplikacje nie są objęte podstawowym wsparciem PH. Najpierw ponownie sprawdzani są odbiorcy aplikacji; przeglądający, którym aplikacji nigdy nie udostępniono, nie otrzymują żadnych informacji. Wstrzymane aplikacje również są obsługiwane (właściciele odpowiadają także na pytania "dlaczego jest wstrzymana?").
Parametry
club `string` (wymagane) appId `string` (wymagane)Punkt końcowy
GET /api/agent-apps/support-info/{club}/{appId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/support-info/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyślij e-mailem prośbę o wsparcie do właściciela opublikowanej aplikacji Custom App
Wysyła wiadomość przeglądającego do osoby odpowiedzialnej za wsparcie aplikacji (publikującego, a w razie jego braku właściciela agenta) jako wiadomość e-mail z oznaczeniem marki — pole To zawiera właściciela, pole CC przeglądającego (jako potwierdzenie prośby), a Reply-To przeglądającego, aby właściciel odpowiadał bezpośrednio jemu. Opublikowane aplikacje są utrzymywane przez użytkowników, więc dzięki temu ich wsparcie nie trafia do kolejki Performance Hub. Odbiorcy są ponownie sprawdzani; jedna prośba na przeglądającego na aplikację co 15 minut (blokada w Redis, w razie awarii żądanie jest przepuszczane).
Parametry
club `string` (wymagane) appId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/support-request/{club}/{appId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaktualizuj opublikowaną aplikację Custom App (nazwa, ikona, opis, status, odbiorcy)
Tylko publikujący. Zmiany odbiorców są ponownie weryfikowane względem zakresów ról osoby EDYTUJĄCEJ, z tymi samymi ograniczeniami co przy publikacji. Status przełącza się między aktywnym a wstrzymanym (wstrzymane aplikacje znikają z menu i odmawiają generowania tokenów).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/update/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Cofnij publikację aplikacji Custom App (usunięcie nietrwałe)
Tylko publikujący. Nietrwale usuwa rekord z rejestru — aplikacja natychmiast znika z menu, a generowanie tokenów przeglądających jest odrzucane; już wydane sesje bramy wygasają wraz z tokenem.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/unpublish/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przekaż własność opublikowanej aplikacji Custom App
Działa tak samo jak proces zmiany właściciela urządzenia Agent AI: bieżący publikujący lub właściciel konta (moduł rozliczeń) może przekazać aplikację innemu użytkownikowi, który odtąd nią zarządza. Nowy właściciel musi mieć dostęp do obiektu w klubie macierzystym aplikacji.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-apps/transfer-owner/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pełny raport skanowania (+ przegląd LLM) dla jednej wersji umiejętności
Pełna lista wyników dla wersji — tylko dla publikującego i administratorów organizacji (przeglądy zatwierdzeń); instalujący widzą zamiast tego podsumowane liczby w szczegółach umiejętności.
Parametry
club `string` (wymagane) skillId `string` (wymagane) version `string` (wymagane)Punkt końcowy
GET /api/agent-skills/scan-report/{club}/{skillId}/{version}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/scan-report/{club}/{skillId}/{version} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Prześlij roboczą wersję umiejętności (opublikuj lub dodaj do kolejki zatwierdzeń)
Przekazuje wersję roboczą dalej zgodnie z zasadami nadzoru organizacji. Jeśli organizacja włączyła przegląd LLM, najpierw uruchamiany jest przegląd instrukcji (w miarę możliwości; werdykt 'fail' powoduje odrzucenie, a werdykt 'flag' wymusza kolejkę zatwierdzeń). Udostępnienia na poziomie obiektu są publikowane natychmiast, chyba że zasady nadzoru wymagają zatwierdzenia; udostępnienia w bibliotece organizacji (odbiorcy na poziomie marki lub organizacji) domyślnie wymagają zatwierdzenia. Publikacja ustawia latestVersion umiejętności — instalacje z zasadą 'auto' pobierają ją przy następnym przebiegu uzgadniania.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/submit/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Biblioteka umiejętności widoczna w tym obiekcie (filtrowana według odbiorców)
Aktywne umiejętności z co najmniej jedną opublikowaną wersją, których odbiorcy obejmują ten obiekt (lub wskazują przeglądającego), z podsumowaniem najnowszej opublikowanej wersji i zasięgiem wdrożenia w organizacji (liczba różnych obiektów, nigdy surowa liczba instalacji). Odbiorcy są ustalani na nowo przy każdym wywołaniu.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-skills/library/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/library/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Szczegóły umiejętności (wersje, wymagania, podsumowanie skanowania, wdrożenie)
Pełne szczegóły jednej umiejętności z biblioteki: historia wersji z listami zmian i podsumowaniami skanowania (listy punktów końcowych dla każdej wersji służą do porównania skanów przy aktualizacji), wymagania zadeklarowane w manifeście, pochodzenie publikującego oraz wskaźnik wdrożenia w postaci liczby obiektów. Odbiorcy są ponownie sprawdzani — przeglądający, którym umiejętności nigdy nie udostępniono, nie otrzymują żadnych informacji (publikujący i administratorzy organizacji zawsze ją widzą).
Parametry
club `string` (wymagane) skillId `string` (wymagane)Punkt końcowy
GET /api/agent-skills/skill/{club}/{skillId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/skill/{club}/{skillId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Umiejętności opublikowane z tego obiektu (lista zarządzania publikującego)
Pełne rekordy umiejętności, których obiektem MACIERZYSTYM jest ten klub, każdy oznaczony wartością canManage dla użytkownika wysyłającego żądanie oraz podsumowaniem najnowszej wersji (łącznie z wersjami roboczymi i oczekującymi na zatwierdzenie — to widok roboczy publikującego).
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-skills/manage/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zainstaluj umiejętność z biblioteki na urządzeniu Agent AI obiektu
Podlega zasadom nadzoru: installSources organizacji musi na to zezwalać, odbiorcy umiejętności muszą obejmować ten obiekt (lub wskazywać wnioskującego), wersja musi być opublikowana, a wnioskujący musi spełniać poziom whoCanInstall dla urządzenia docelowego (właściciel / dozwolony użytkownik / administrator obiektu / administrator organizacji — zobacz zasady nadzoru). Zapisuje rekord cyklu życia instalacji (źródło prawdy) i od razu podejmuje próbę wysłania; zadanie cron uzgadniania gwarantuje dostarczenie, gdy urządzenie stanie się osiągalne.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/install/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zatwierdź oczekującą aktualizację umiejętności dla jednej instalacji
Ustawia desiredVersion instalacji na najnowszą opublikowaną wersję (ręczny krok w zasadach 'notify' i 'pinned' oraz ścieżka stosowana, gdy zasady nadzoru ustawiają updatePosture na 'approvalRequired'). Zachowuje bieżącą wersję jako cel jednokrokowego wycofania i usuwa blokadę aktualizacji ustawioną po wycofaniu (skipVersion). Ten sam poziom uprawnień whoCanInstall co przy instalacji.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/update-approve/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przywróć poprzednią wersję zainstalowanej umiejętności
Ustawia desiredVersion na previousVersion z rekordu instalacji (zapisywaną przy każdej zmianie wersji) i pozwala, by standardowa ścieżka dostarczania ponownie ją zainstalowała. Jednokrokowe: wersje zamieniają się miejscami, więc dwukrotne wycofanie przywraca stan wyjściowy. Blokuje też aktualizacje (skipVersion = wersja, z której wycofano), aby zasady auto/notify nie cofały wycofania — blokada znika po opublikowaniu wersji ściśle nowszej, po update-approve lub po set-policy.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/rollback/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Odinstaluj umiejętność z urządzenia Agent AI obiektu
Oznacza rekord instalacji jako pending-uninstall i wysyła oczekiwany stan; rekord jest usuwany, gdy urządzenie potwierdzi usunięcie (odczyt zwrotny podczas uzgadniania). Ten sam poziom uprawnień whoCanInstall co przy instalacji.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/uninstall/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Ustaw zasadę aktualizacji umiejętności dla jednej instalacji na urządzeniu
auto (uzgadnianie automatycznie stosuje nowe opublikowane wersje, chyba że updatePosture organizacji wymaga zatwierdzenia), notify (właściciel otrzymuje jedno powiadomienie o każdej nowej wersji i stosuje ją ręcznie) lub pinned (wersja nigdy się nie zmienia bez jawnego update-approve). Zmiana zasady usuwa blokadę aktualizacji ustawioną po wycofaniu (skipVersion). Ten sam poziom uprawnień whoCanInstall co przy instalacji.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/set-policy/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Instalacje umiejętności na urządzeniu Agent AI obiektu (karta Skills)
Rekordy cyklu życia instalacji dla jednego urządzenia, każdy uzupełniony o pola wpisu umiejętności i informację, czy istnieje nowsza opublikowana wersja. Wymaga dostępu 'open' do urządzenia (karta Skills znajduje się w panelu agenta).
Parametry
club `string` (wymagane) device `string` (wymagane)Punkt końcowy
GET /api/agent-skills/installs/{club}/{device}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/installs/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wersje umiejętności oczekujące na zatwierdzenie w organizacji tego obiektu
Kolejka zatwierdzeń administratora organizacji: wszystkie wersje oczekujące na zatwierdzenie we wszystkich umiejętnościach organizacji, z wpisem umiejętności i podsumowaniami skanowania oraz przeglądu LLM. Tylko administratorzy organizacji.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-skills/approvals/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/approvals/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zatwierdź oczekującą wersję umiejętności (publikuje ją)
Tylko administratorzy organizacji. Wersja zostaje opublikowana, latestVersion umiejętności jest aktualizowana, a publikujący otrzymuje powiadomienie. Instalacje z zasadą 'auto' pobierają wersję przy następnym przebiegu uzgadniania.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/approve/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Odrzuć oczekującą wersję umiejętności
Tylko administratorzy organizacji. Wersja zostaje odrzucona z podaniem powodu przez recenzenta, a publikujący otrzymuje powiadomienie — może poprawić wskazane problemy i przesłać nową wersję (wersji nie można zmieniać).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/reject/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Obowiązujące zasady nadzoru nad umiejętnościami agenta w organizacji tego obiektu
Zapisane zasady organizacji nałożone na ustawienia domyślne platformy (organizacja bez zapisanego rekordu widzi same ustawienia domyślne). Tylko administratorzy organizacji.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/agent-skills/governance/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/governance/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj zasady nadzoru nad umiejętnościami agenta w organizacji tego obiektu
Aktualizacja częściowa — zmieniają się tylko przekazane pola; pozostałe zachowują wartość zapisaną lub domyślną. Tylko administratorzy organizacji. Nadpisania dla poszczególnych urządzeń są przechowywane w rekordzie rejestracji i obsługiwane przez istniejące trasy konfiguracji urządzeń.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/agent-skills/governance/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz dane środowiskowe obiektu
Zwraca bieżące warunki pogodowe, w tym godziny wschodu i zachodu słońca (z Open-Meteo), oraz temperaturę wewnątrz obiektu (z czujników Duress) dla wskazanego klubu. Przechowywane w pamięci podręcznej Redis przez 30 minut.
Parametry
clubId `string` (wymagane) Wewnętrzny identyfikator klubu lub obiektuPunkt końcowy
GET /api/clubs/{clubId}/environment
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/environment \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje ogólne urządzenie IoT do klubu lub przypisuje je do niego.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie. body `string` (wymagane) Obiekt JSON nowego ekranu do przypisania.Punkt końcowy
POST /api/devices/addGenericDevice/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/addGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń ekran i przywróć jego ustawienia fabryczne
Usuwa aktywne przypisanie ekranu do obiektu i trwale zleca przywrócenie ustawień fabrycznych. Wyłączony ekran wykona reset po następnym włączeniu i ponownym połączeniu, a następnie wróci do strony parowania HDMI. Historyczne dane rozliczeniowe są zachowywane.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/display-screens/reset/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przypisuje kontroler drzwi do obiektu.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/door-controllers/associate/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Aktualizuje ustawienia kontrolera drzwi w obiekcie.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/door-controllers/update/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wycofuje kontroler drzwi z eksploatacji w obiekcie.
Parametry
club `string` (wymagane)Punkt końcowy
POST /api/devices/door-controllers/decommission/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca konfigurację przekaźników kontrolera drzwi.
Parametry
uuid `string` (wymagane)Punkt końcowy
GET /api/devices/door-controllers/config/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/door-controllers/config/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca metadane urządzenia
Parametry
uuid `string` (wymagane) Unikalny identyfikator urządzeniaPunkt końcowy
GET /api/devices/metadata/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca metadane urządzenia. Odpowiedź zawiera rekord metadanych na najwyższym poziomie (starszy format) oraz `detectedType` (camera | ai-edge-processor | door-controller | ph-ai-agent | null) i `online` (true, gdy aktualizacja nastąpiła w ciągu ostatnich 5 minut).
Parametry
deviceSerialNumber `string` (wymagane) Numer seryjny urządzeniaPunkt końcowy
GET /api/devices/metadata/serial/{serialNo}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/serial/{serialNo} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca dane Smart Club dla klubu.
Parametry
club_id `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie.Punkt końcowy
GET /api/clubs/{club_id}/smart-club-data
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club-data \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie urządzenia przypisane do danego klubu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, którego urządzenia chcesz wyświetlić.Punkt końcowy
GET /api/devices/list/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie wydania (wersje) aplikacji dla urządzeń balena.
Punkt końcowy
GET /api/devices/listReleases
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/listReleases \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przenosi urządzenie do nowego obiektu (klubu) i aktualizuje powiązane systemy.
Parametry
club `string` (wymagane) Identyfikator obiektu źródłowego (klubu, w którym obecnie znajduje się urządzenie) body `object` (wymagane) Parametry przeniesieniaPunkt końcowy
POST /api/devices/move/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/move/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Próbuje nawiązać połączenie z routerem obiektu, wybierając najlepsze urządzenie w klubie i wysyłając polecenie MQTT utworzenia tunelu.
Parametry
facilityID `string` (wymagane) Wewnętrzny identyfikator obiektu, z którego routerem próbujesz się połączyć.Punkt końcowy
GET /api/devices/openRouterWebpage/{facilityID}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/openRouterWebpage/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Katalog Cloud Agent (strefy, rozmiary, bieżące ceny sprzedaży)
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/cloud/catalog/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/catalog/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wycena Cloud Agent (oprogramowanie + hosting)
Punkt końcowy
POST /api/devices/ph-ai-agent/cloud/quote/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/quote/{club} \
-H "x-api-key: YOUR_API_KEY"
Uruchom Cloud Agent (dodanie do kolejki udostępniania + automatyczne przypisanie)
Punkt końcowy
POST /api/devices/ph-ai-agent/cloud/launch/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/launch/{club} \
-H "x-api-key: YOUR_API_KEY"
Status zadania Cloud Agent
Punkt końcowy
GET /api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId} \
-H "x-api-key: YOUR_API_KEY"
Całkowicie usuń Cloud Agent (maszyna wirtualna + balena + rejestracja)
Punkt końcowy
POST /api/devices/ph-ai-agent/cloud/delete/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete/{club} \
-H "x-api-key: YOUR_API_KEY"
Rozstrzygnij wstrzymane usuwanie Cloud Agent (ponów kopię zapasową, usuń bez kopii zapasowej lub anuluj)
Punkt końcowy
POST /api/devices/ph-ai-agent/cloud/delete-decision/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete-decision/{club} \
-H "x-api-key: YOUR_API_KEY"
Wyświetl Connected Apps agenta (pakiety i aplikacje z połączonymi kontami)
Zwraca stan Connected Apps agenta: flagę włączenia, podsumowania dla pakietów (Google Workspace, Microsoft 365) oraz wyselekcjonowany katalog aplikacji z połączonymi kontami każdej aplikacji (wiele kont — agent może mieć kilka kont dla jednej aplikacji, każde z opcjonalnym aliasem), ustalonymi na podstawie nadrzędnej sesji agenta.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Punkt końcowy
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pełny katalog sklepu Connected Apps dla agenta
Zwraca wszystkie aplikacje, które można połączyć (pełny katalog zestawów narzędzi z zarządzanym uwierzytelnianiem, przechowywany w pamięci podręcznej serwera przez ok. 12h), z poziomami wyróżnionych aplikacji i pakietów oraz połączonymi kontami agenta dla każdej aplikacji, a także podsumowania pakietów i oczekujące prośby agenta o połączenie — jeden ładunek dla sklepu z aplikacjami przeszukiwanego po stronie klienta.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Punkt końcowy
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/catalog
Przykładowe żądanie
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"
Odpowiedź
{}
Odrzuć oczekującą prośbę agenta o połączenie
Oznacza oczekującą prośbę agenta o połączenie zestawu narzędzi jako odrzuconą (znika ona z sekcji "Requested by your agent" w sklepie). Operacja idempotentna — odrzucenie prośby, która nie oczekuje, nie ma żadnego skutku.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/requests/dismiss
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Włącz lub wyłącz Connected Apps dla agenta
Zapisuje przełącznik Connected Apps agenta i wysyła zmienną urządzenia Balena PH_APPS_MCP_ENABLED do tego jednego urządzenia (w miarę możliwości — ostateczną blokadą przekaźnika MCP jest flaga po stronie PH).
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/enable
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Rozpocznij łączenie pojedynczej aplikacji z agentem (proces OAuth Connect Link)
Uruchamia hostowany proces Connect Link dla jednego zestawu narzędzi i zwraca adres URL, na który należy skierować użytkownika. Opcjonalny alias oznacza nowe konto (wiele kont — połączenie już połączonej aplikacji dodaje KOLEJNE konto, maksymalnie 10 na aplikację). Korzysta z tego samego łańcuchowego wywołania zwrotnego co łączenie pakietów (pakiet z jednym zestawem narzędzi), więc po zakończeniu użytkownik wraca na stronę apletu ph-ai-agent.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Dane przygotowania połączenia dla jednej aplikacji (tryb, pola danych uwierzytelniających, przewodnik konfiguracji)
Wszystko, czego okno połączenia potrzebuje przed rozpoczęciem połączenia: sposób łączenia aplikacji (oauth = hostowany proces wyrażania zgody, credentials = formularz w produkcie), pola danych uwierzytelniających do zebrania w trybie credentials oraz przewodnik konfiguracji w produkcie (napisany dla aplikacji priorytetowych, w pozostałych przypadkach generowany z metadanych pól aplikacji — nigdy link do zewnętrznej dokumentacji). Aplikacje z własnym OAuth zawierają też informację, czy aplikacja OAuth klienta jest już zarejestrowana dla TEGO agenta (byoConfigured), oraz adres URL przekierowania do zarejestrowania u dostawcy.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta. toolkit `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-info/{toolkit}
Przykładowe żądanie
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"
Odpowiedź
{}
Połącz aplikację przy użyciu danych uwierzytelniających podanych przez użytkownika (klucz API itp., bez OAuth)
Tworzy połączone konto dla aplikacji w trybie credentials bezpośrednio z formularza w produkcie — bez hostowanego procesu wyrażania zgody. Pola danych uwierzytelniających pochodzą z ładunku connect-info aplikacji; należy podać wszystkie wymagane pola. Dane uwierzytelniające są weryfikowane u dostawcy, jeśli jest to obsługiwane (w miarę możliwości — niektóre aplikacje odrzucają błędny klucz dopiero przy pierwszym wywołaniu narzędzia przez agenta). Opcjonalny alias oznacza nowe konto (wiele kont — połączenie już połączonej aplikacji dodaje KOLEJNE konto).
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-credentials
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zarejestruj własną aplikację OAuth klienta dla aplikacji BYO i rozpocznij proces jej łączenia
Dla aplikacji z własnym OAuth (Xero, Shopify...): przyjmuje identyfikator klienta i klucz tajny klienta aplikacji OAuth utworzonej przez klienta u dostawcy (zgodnie z przewodnikiem konfiguracji aplikacji), rejestruje ją dla TEGO agenta (klucz tajny jest przechowywany wyłącznie na nadrzędnej platformie integracji — nigdy w Performance Hub) i od razu uruchamia dla niej hostowany proces logowania. Zwraca adres URL zgody, na który należy skierować użytkownika, zgodnie z tym samym kontraktem co punkt końcowy połączenia. Ponowne przesłanie zastępuje zarejestrowaną aplikację agenta (np. po rotacji klucza tajnego) — istniejące połączone konta nadal działają.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-oauth-app
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Rozpocznij łączenie całego pakietu jednym kliknięciem dla agenta (łańcuch procesów Connect Link)
Uruchamia łańcuchowy proces łączenia dla całego pakietu (np. google-workspace). Zwrócony adres URL otwiera ekran zgody pierwszego zestawu narzędzi; każde zakończenie przekierowuje (302) bezpośrednio do procesu następnego zestawu narzędzi, a całość kończy się na stronie apletu ph-ai-agent. Elementy, które mają już połączone konto, są POMIJANE, więc ponowienie po błędzie w środku łańcucha kontynuuje od brakujących aplikacji zamiast tworzyć zduplikowane konta. Gdy wszystkie elementy są już połączone, cały łańcuch jest uruchamiany ponownie — to jawny proces "dodaj kolejne konto".
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Odłącz jedno połączone konto od agenta
Usuwa pojedyncze połączone konto (wiele kont — pozostałe konta tej samej aplikacji pozostają połączone). Przed usunięciem sprawdzane jest, czy konto należy do tego agenta; jeśli było to OSTATNIE konto aplikacji, zestaw narzędzi jest usuwany z połączonego zestawu agenta (sesja jest odtwarzana z opóźnieniem, aby zaktualizować listę narzędzi agenta).
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/disconnect
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zmień nazwę (alias) jednego z połączonych kont agenta
Ustawia wyświetlany alias pojedynczego połączonego konta. Aliasy są zwykle ustawiane automatycznie po OAuth (na podstawie zalogowanej tożsamości); ten punkt końcowy obsługuje ręczną zmianę nazwy w oknie szczegółów aplikacji. Pusty alias usuwa etykietę. Przed aktualizacją nadrzędną sprawdzane jest, czy konto należy do tego agenta.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta.Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/rename-account
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Włącz lub wyłącz wbudowaną usługę Performance Hub dla agenta
Włącza lub wyłącza dla tego agenta jedną stale dostępną usługę wbudowaną (Smart Search, Weather...). Usługi wbudowane nie wymagają połączenia ani OAuth — są dołączone do każdego agenta i domyślnie włączone; ten przełącznik zapisuje ustawienie dla danego agenta i od razu odtwarza nadrzędną sesję agenta, aby zaktualizować zestaw narzędzi. Osobny przełącznik "External apps" (trasa /enable) całkowicie wyłącza cały serwer MCP aplikacji — gdy jest wyłączony, usługi wbudowane również są niedostępne, niezależnie od ich indywidualnych przełączników.
Parametry
facilityId `string` (wymagane) deviceId `string` (wymagane) UUID balena urządzenia agenta. slug `string` (wymagane) Identyfikator slug usługi wbudowanej.Treść żądania
Punkt końcowy
PATCH /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/built-in/{slug}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przypisz urządzenie Agent AI do obiektu
Przypisanie oparte najpierw na metadanych. Wyszukuje urządzenie według numeru seryjnego w bieżących metadanych urządzeń, wymaga, aby było w sieci, a następnie w razie potrzeby tworzy rekord rejestracji, przydziela region przekaźnika Chisel, port tunelu i klucz tajny, rejestruje to miejsce w przekaźniku oraz wysyła konfigurację obiektu i tunelu do urządzenia przez Balena. Nowe urządzenia otrzymują też domyślne konto usługi MCP (włączone, ograniczone do tego obiektu, ze wszystkimi możliwościami); ponowne parowanie zachowuje istniejące uprawnienia MCP. Opcjonalne ustawienia zaawansowane zastępują wartości domyślne nadawane przy parowaniu — konfigurację kopii zapasowych, włączenie lub wyłączenie MCP, ograniczenie dostępu — a `restoreFrom` wypełnia nowe urządzenie danymi z kopii zapasowej w chmurze innego urządzenia obiektu (źródło aktywne lub wycofane z eksploatacji; dodaje do kolejki przywracanie między repozytoriami, zwracane jako `restoreRequest` do odpytywania o postęp).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/associate/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl urządzenia Agent AI obiektu
Zwraca urządzenia Agent AI obiektu z bieżącym stanem połączenia i tunelu (używane przez przełącznik urządzeń w aplecie).
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/list/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizacja i stan połączenia urządzenia Agent AI
Zwraca informację, czy urządzenie jest w sieci, czy aktualizacja jest dostępna lub oczekuje, oraz oferowane wydanie (wersję przypiętą dla floty, gdy flota jest przypięta; najwyższą udaną, gdy flota śledzi najnowszą wersję).
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/update-status/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Bieżący stan i metryki urządzenia Agent AI
Zwraca wyselekcjonowaną migawkę dla paska metryk i panelu zarządzania w aplecie: pola tożsamości i rejestracji, dostępność i połączenie, wersje oprogramowania oraz najnowsze metryki heartbeat (CPU, temperatura, pamięć, pamięć masowa dla każdego punktu montowania, czas pracy, sieć). Spłaszcza sygnał metadanych urządzenia i status aktualizacji Balena; przy chwilowej awarii jednej z tych części może brakować.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/device-status/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/device-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Opis AI do raportu stanu urządzenia
Zwraca krótkie wyjaśnienie bieżących wykrytych problemów ze stanem, przeznaczone dla operatora. Fakty i kroki procedury zawsze znajdują się w device-status; ten dodatkowy akapit jest generowany w miarę możliwości i może mieć wartość null.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
POST /api/devices/ph-ai-agent/health/{club}/{uuid}/explain
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/health/{club}/{uuid}/explain \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wygeneruj token dostępu bezpośredniego do przekaźnika dla urządzenia Agent AI
Zwraca krótkotrwały podpisany URL, za pomocą którego przeglądarka łączy się BEZPOŚREDNIO z regionalną bramą przekaźnikową urządzenia (z pominięciem globalnego przeskoku przez PH/Sydney), oraz token HS256. PH pozostaje organem decyzyjnym (Google SSO i sprawdzanie modułu oraz obiektu odbywa się tutaj); brama przekaźnikowa weryfikuje token. Serwer pośredniczący /ai-agent-ui pozostaje rozwiązaniem zastępczym.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/access/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyślij wiadomość czatu do sesji urządzenia Agent AI (odpowiedź bezpośrednio z powiadomienia)
Przekaźnik po stronie serwera używany przez akcję odpowiedzi bezpośrednio z powiadomienia web push — service worker wysyła tu żądanie POST (to samo źródło, pliki cookie SSO), dzięki czemu odpowiedź działa bez otwartej karty Performance Hub. PH ustala cel przekaźnika urządzenia (tak samo jak serwer pośredniczący /ai-agent-ui), dodaje x-ph-user do przypisania tury (wynikowe powiadomienie o zakończeniu trafia z powrotem do tego użytkownika) i przekazuje żądanie do /api/chat/start urządzenia z identyfikatorem sesji.
Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/reply
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Odczytaj ustawienia kontroli dostępu urządzenia Agent AI (właściciel)
Zwraca blok dostępu urządzenia (tryb, lista dozwolonych, widoczność, przełącznik PH Support) oraz oczekujące prośby o dostęp. Może go odczytać właściciel urządzenia; inni użytkownicy otrzymują 403.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/access-settings/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-settings/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj ustawienia kontroli dostępu urządzenia Agent AI (właściciel)
Zapisuje tryb (org/restricted), listę dozwolonych dla trybu ograniczonego, widoczność listy (all/admins) i przełącznik "permit access from Performance Hub Support". Dozwolone dla właściciela urządzenia. Samego właściciela można zmienić tylko przez reallocate-owner. Zatwierdzone prośby o dostęp są trwałe — nadal zatwierdzeni wnioskujący są ponownie dołączani do zapisanej listy dozwolonych; usunięcie kogoś z przesłanej listy cofa zatwierdzenie (prośba zmienia się na odrzuconą; można poprosić ponownie).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/access-settings/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zmień właściciela urządzenia Agent AI
Przekazuje własność urządzenia innemu użytkownikowi Performance Hub. Dostępne tylko dla właścicieli kont (dostęp do modułu rozliczeń SaaS) — rozwiązanie awaryjne, gdy właściciel agenta z ograniczonym dostępem odchodzi. Powiadomienie otrzymują zarówno poprzedni, jak i nowy właściciel (w aplikacji, push i e-mail).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/reallocate-owner/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Lista użytkowników obiektu dla selektorów listy dozwolonych i właściciela urządzenia Agent AI
Zwraca adres e-mail i imię oraz nazwisko (+ flagi isOrgAdmin) każdego użytkownika, którego rola daje dostęp do TEGO obiektu. Dostępne tylko dla właściciela urządzenia i osób mogących zmieniać właściciela (właściciel konta), aby zwykli użytkownicy nie mogli przeglądać bazy użytkowników.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/org-users/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/org-users/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Poproś o dostęp do urządzenia Agent AI z ograniczonym dostępem
Tworzy (lub ponownie otwiera) prośbę wnioskującego o dostęp do urządzenia z ograniczonym dostępem — operacja idempotentna dla pary użytkownik+urządzenie. Właściciel otrzymuje powiadomienie w aplikacji, przez web push i e-mailem, z bezpośrednim linkiem do modułu agenta.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/access-request/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zatwierdź lub odrzuć prośbę o dostęp do urządzenia Agent AI (właściciel)
Rozstrzygnięcie oczekującej prośby przez właściciela urządzenia. Zatwierdzenie dodaje wnioskującego do listy dozwolonych urządzenia; w obu przypadkach wnioskujący otrzymuje powiadomienie (w aplikacji, push i e-mail).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/access-request-resolve/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zezwól na aktualizację urządzenia Agent AI i zastosuj ją
Przypina urządzenie do oferowanego wydania (wersji przypiętej dla floty lub najwyższej udanej, gdy flota śledzi najnowszą wersję) i zwalnia blokadę aktualizacji, aby nadzorca balena ją zastosował. Stan na woluminie danych urządzenia jest zachowywany po aktualizacji.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/update/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaplanuj aktualizację urządzenia Agent AI na później
Zapisuje zaplanowany czas instalacji w rejestracji urządzenia. Cykliczne zadanie zaplecza (co 5 minut) stosuje aktualizację (przypięcie + odblokowanie) po upływie zaplanowanego czasu. Nowy harmonogram zastępuje istniejący harmonogram urządzenia.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/update-schedule/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Anuluj zaplanowaną aktualizację urządzenia Agent AI
Usuwa oczekującą zaplanowaną instalację na urządzeniu (bez skutku, jeśli nic nie zaplanowano).
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
DELETE /api/devices/ph-ai-agent/update-schedule/{club}/{uuid}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-schedule/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Uruchom zdalne polecenie na urządzeniu Agent AI
Publikuje dozwolone polecenie MQTT (ponowne uruchomienie, restart kontenera, zablokowanie lub odblokowanie aktualizacji, zarządzanie Wi-Fi) do kontrolera urządzenia działającego na urządzeniu Agent AI. Urządzenie musi być przypisane do obiektu.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/command/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaktualizuj konfigurację urządzenia Agent AI dotyczącą obiektu
Zapisuje ustawienia powiązanego Agenta AI, które może edytować operator: nazwę urządzenia, fizyczną lokalizację urządzenia i harmonogram ponownego uruchamiania. Harmonogram ponownego uruchamiania jest też przesyłany do urządzenia jako zmienna środowiskowa Balena REBOOT_DEVICE (godz. 2:00 czasu lokalnego), tak samo jak w przypadku Display Screens.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/config/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Obiekty, do których można przenieść Agenta AI z tego obiektu
Zwraca obiekty z tej samej organizacji, do których zalogowany użytkownik ma dostęp (z wyjątkiem bieżącego obiektu), na potrzeby selektora „Przenieś do innego obiektu”. Samo przeniesienie wykonuje POST /api/devices/move/:club, który po stronie serwera egzekwuje te same reguły dotyczące tej samej organizacji i dostępu do obiektu docelowego.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/move-targets/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/move-targets/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zakres dostępu MCP, który wnioskujący może przyznać Agentom AI obiektu
Zwraca, co zalogowany użytkownik może przyznać kontu usługi MCP Agenta AI w organizacji tego obiektu: obiekty/regiony w ramach jego własnego dostępu, informację, czy może przyznać zakres całej organizacji, moduły, które posiada, oraz pełny katalog narzędzi MCP (dla zaawansowanej maski poszczególnych narzędzi). Interfejs korzysta z tego, aby użytkownicy widzieli wyłącznie opcje mieszczące się w ich własnych uprawnieniach; punkt końcowy POST mcp-access egzekwuje to samo ograniczenie po stronie serwera.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/mcp-grantable/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-grantable/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz konfigurację konta usługi MCP Agenta AI
Zwraca konfigurację dostępu MCP urządzenia (zakres, moduły, maska narzędzi, pola audytu).
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/mcp-access/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-access/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Skonfiguruj konto usługi MCP Agenta AI
Zapisuje konfigurację dostępu MCP urządzenia z ograniczeniem w chwili przyznania. Wnioskujący mogą przyznać wyłącznie obiekty/regiony w ramach własnego dostępu, zakres organizacji tylko wtedy, gdy mają rolę obejmującą całą organizację, oraz moduły, które sami posiadają w organizacji obiektu. Flaga włączenia jest też przesyłana do urządzenia jako zmienna środowiskowa Balena PH_MCP_ENABLED.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/mcp-access/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz konfigurację VPN Agenta AI (z ukrytymi danymi)
Zwraca flagę obsługi VPN urządzenia i listę połączeń. Treść profili i wartości poświadczeń nigdy nie są zwracane — tylko metadane z importu (serwery zdalne, trasy, DNS) oraz flagi informujące o zapisanych poświadczeniach. Bieżący stan poszczególnych połączeń pochodzi z punktu końcowego device-status (beacon metadata.vpn).
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Włącz lub wyłącz obsługę VPN Agenta AI
Włącza lub wyłącza funkcję VPN urządzenia. Przesyła zmienną urządzenia balena PH_VPN_ENABLED i powiadamia urządzenie (MQTT vpnConfigChanged); po wyłączeniu połączenia są zachowywane (tunele są zatrzymywane, a konfiguracja pozostaje do ponownego włączenia).
Parametry
club `string` (wymagane) uuid `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaimportuj profile OpenVPN do Agenta AI
Akceptuje przesyłane pliki zakodowane w base64 — pojedyncze pliki .ovpn/.conf, pakiety z wieloma plikami (konfiguracja + certyfikaty/klucze) oraz archiwa (.zip, eksporty Pritunl .tar/.tgz, .tblk Tunnelblick, .visc/.visz Viscosity). Profile są normalizowane do kanonicznej postaci inline; każdy profil staje się jednym połączeniem (importowanym jako rozłączone — wprowadź poświadczenia, a następnie połącz). Dla nieprzydatnych plików zwracane są błędy 400 ze wskazówkami.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/vpn-import/{club}/{uuid}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaktualizuj połączenie VPN Agenta AI (nazwa / poświadczenia / split DNS)
Aktualizuje zapisane połączenie. Pola poświadczeń są tylko do zapisu (pominięte = zachowaj zapisaną wartość; pusty ciąg = wyczyść). Zmiany poświadczeń lub split DNS zwiększają numer wersji połączenia, dzięki czemu aktywny tunel uruchamia się ponownie z nowymi wartościami.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Usuń połączenie VPN Agenta AI
Usuwa połączenie z rejestracji i powiadamia urządzenie, które zamyka tunel i usuwa z pamięci podręcznej swój profil/poświadczenia.
Parametry
club `string` (wymagane) uuid `string` (wymagane) connectionId `string` (wymagane)Punkt końcowy
DELETE /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}/{connectionId}
Przykładowe żądanie
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"
Odpowiedź
{}
Połącz / rozłącz połączenie VPN Agenta AI
Model stanu docelowego — ustawia flagę włączenia połączenia w rejestracji i powiadamia urządzenie (MQTT vpnConfigChanged bez danych); urządzenie pobiera wiążący stan przez wywołanie universal-api uwierzytelnione tokenem JWT i uzgadnia swoje tunele. Pominięte powiadomienie zostanie wyrównane przy okresowej synchronizacji.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/vpn-command/{club}/{uuid}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz konfigurację i stan kopii zapasowej w chmurze Agenta AI
Zwraca ustawienia kopii zapasowej urządzenia (włączenie, okres przechowywania, region przechowywania), bieżący stan kopii zapasowych (ostatnia kopia, rozmiar, błędy), ustalony region automatyczny oraz dostępne regiony przechowywania do selektora. Hasło repozytorium restic nigdy nie jest zwracane.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-config/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj konfigurację kopii zapasowej w chmurze Agenta AI
Zapisuje włączenie/okres przechowywania/region. Zmiana obowiązuje od następnego cogodzinnego cyklu kopii zapasowej urządzenia (urządzenie przed każdym uruchomieniem pobiera z PH kontekst uruchomienia), więc nie jest wymagane ponowne uruchomienie urządzenia.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/backup-config/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl źródła przywracania z kopii zapasowej do sparowania nowego Agenta AI
Widok całego obiektu dla opcji „przywróć z kopii zapasowej” w oknie dodawania agenta: każda rejestracja w obiekcie — aktywna ORAZ wycofana/zastąpiona — która nadal ma możliwe do odszyfrowania repozytorium kopii zapasowych i co najmniej jeden użyteczny punkt przywracania, wraz z najnowszymi migawkami. Zwraca także listy opcji konfiguracji kopii zapasowej (allowedRetentionDays, availableRegions), dzięki czemu okno nie potrzebuje UUID urządzenia do wypełnienia list wyboru.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-sources/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-sources/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl punkty przywracania kopii zapasowej Agenta AI
Zwraca indeks migawek urządzenia (od najnowszych) z DynamoDB — bez odwołań do urządzenia ani repozytorium — oraz bieżący stan żądań ręcznej kopii zapasowej / przywracania do odpytywania w panelu. Nieaktualne żądania (nigdy nie podjęte lub bez sygnału postępu) są przedstawiane jako nieudane, dzięki czemu interfejs zawsze może wysłać nowe.
Parametry
club `string` (wymagane) uuid `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zażądaj teraz ręcznej kopii zapasowej Agenta AI
Zapisuje żądanie ręcznego uruchomienia (z notatką użytkownika) w wierszu rejestracji i powiadamia urządzenie przez MQTT. Urządzenie pobiera zweryfikowane żądanie przez wywołanie run-context w universal-api uwierzytelnione tokenem JWT — nawet bez MQTT zostanie ono podjęte w następnym cyklu harmonogramu. Odrzucane, gdy trwa inna kopia zapasowa lub przywracanie.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/backup-run/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przypnij lub odepnij punkt przywracania Agenta AI
Przypięte punkty przywracania są chronione przed usuwaniem w ramach okresu przechowywania — nocna konserwacja urządzenia otrzymuje identyfikatory przypiętych migawek przez wywołanie run-context i wyklucza je z restic forget — a ich wiersze indeksu nigdy nie wygasają (TTL). Odpięcie przywraca normalne zasady przechowywania.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/backup-pin/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przywróć Agenta AI z punktu przywracania kopii zapasowej
Zapisuje żądanie przywrócenia w wierszu rejestracji i powiadamia urządzenie. Pełne przywrócenie nadpisuje /data i /home/hermeswebui (urządzenie najpierw wykonuje automatyczną migawkę zabezpieczającą i zatrzymuje agenta na czas przywracania) i wymaga wpisania nazwy urządzenia jako potwierdzenia. Przekazanie `paths` wykonuje zamiast tego niezakłócające przywrócenie na poziomie plików tylko tych ścieżek. Opcjonalnie po zakończeniu przywracania danych przypina urządzenie z powrotem do wersji oprogramowania z migawki (zob. backup-restore-release).
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/backup-restore/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zastosuj wersję oprogramowania zapisaną przy zakończonym przywróceniu
Ostatni krok przywracania, w którym zażądano wersji oprogramowania z migawki: gdy urządzenie zgłosi zakończenie przywracania danych, przypina urządzenie do zapisanej wersji i odblokowuje aktualizacje (ten sam mechanizm co punkt końcowy aktualizacji). Wywoływane przez odpytywanie w panelu; idempotentne — zapisane przypięcie jest czyszczone po zastosowaniu.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/backup-restore-release/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przeglądaj pliki w punkcie przywracania kopii zapasowej
Wyświetla jeden poziom katalogu migawki restic, obsługiwany w całości po stronie serwera z repozytorium Wasabi (działa, gdy urządzenie jest offline). Odczytywane są tylko metadane drzewa — przy wyświetlaniu list nie są pobierane żadne dane plików.
Parametry
club `string` (wymagane) uuid `string` (wymagane) takenAt `number` (wymagane) path `string` (opcjonalne)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-files/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-files/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukaj nazwy plików w punkcie przywracania kopii zapasowej
Wyszukiwanie nazw plików bez rozróżniania wielkości liter, od wskazanego katalogu w dół, obsługiwane po stronie serwera na podstawie metadanych drzewa restic (dane plików nie są odczytywane; działa, gdy urządzenie jest offline). Przesyła listę strumieniowo i zatrzymuje się po pierwszych 200 dopasowaniach.
Parametry
club `string` (wymagane) uuid `string` (wymagane) takenAt `number` (wymagane) q `string` (wymagane) path `string` (opcjonalne)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-search/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-search/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Co zmieniło się między dwoma punktami przywracania kopii zapasowej
Uruchamia po stronie serwera restic diff między dwiema migawkami urządzenia (tylko metadane drzewa) i zwraca listę dodanych/usuniętych/zmodyfikowanych plików (maksymalnie 500 zmian) oraz statystyki podsumowujące. Wyniki są buforowane — migawki są niezmienne.
Parametry
club `string` (wymagane) uuid `string` (wymagane) fromTakenAt `number` (wymagane) toTakenAt `number` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-diff/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-diff/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Historia wersji jednego pliku we wszystkich punktach przywracania
Jedno wywołanie restic find po stronie serwera we wszystkich migawkach w repozytorium urządzenia, zredukowane do UNIKALNYCH wersji (kolejne trafienia o identycznym rozmiarze i mtime są scalane) i połączone z wierszami indeksu migawek w celu uzyskania dat/rodzajów/notatek.
Parametry
club `string` (wymagane) uuid `string` (wymagane) path `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-file-versions/{club}/{uuid}
Przykładowe żądanie
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"
Odpowiedź
{}
Przeszukaj według nazwy pliku wszystkie punkty przywracania kopii zapasowych urządzenia
Ścieżka odzyskiwania usuniętych plików: jedno wywołanie restic find po stronie serwera we WSZYSTKICH migawkach w repozytorium (bez rozróżniania wielkości liter, podciąg lub wzorzec glob), pogrupowane według ścieżki wraz z punktami przywracania, w których występuje każdy plik. Plik usunięty z urządzenia nadal można tu znaleźć, dopóki zawiera go którykolwiek punkt przywracania.
Parametry
club `string` (wymagane) uuid `string` (wymagane) q `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-find/{club}/{uuid}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-find/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz pojedynczy plik z punktu przywracania kopii zapasowej
Przesyła jeden plik bezpośrednio z repozytorium restic do przeglądarki (jako załącznik). Katalogi są przesyłane jako archiwum tar. Rozmiar jest ograniczony; obsługa odbywa się po stronie serwera, więc działa, gdy urządzenie jest offline.
Parametry
club `string` (wymagane) uuid `string` (wymagane) takenAt `number` (wymagane) path `string` (wymagane)Punkt końcowy
GET /api/devices/ph-ai-agent/backup-file-download/{club}/{uuid}
Przykładowe żądanie
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"
Odpowiedź
{}
Wycofaj Agenta AI z obiektu
Parametry
club `string` (wymagane)Punkt końcowy
POST /api/devices/ph-ai-agent/decommission/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń Agenta AI z obiektu i przywróć ustawienia fabryczne sprzętu
Całkowicie odłącza urządzenie, aby można je było sparować w DOWOLNYM obiekcie, i usuwa wszystkie dane z NUC. Czyszczenie jest uzbrajane przez zmienną urządzenia balena PH_FACTORY_RESET (jednorazowy nonce) PRZED usunięciem zasobów w chmurze, dzięki czemu działa także wtedy, gdy urządzenie jest offline w chwili usunięcia — czyszczenie zostanie wykonane przy następnym połączeniu. Powiadomienie MQTT factoryReset sprawia, że urządzenie online jest czyszczone natychmiast. Usuwanie zasobów w chmurze odwołuje następnie wszystkie poświadczenia i uprawnienia, czyści powiązanie z obiektem w Balena (zmienne urządzenia + tag club) oraz clubID w metadanych, usuwa żądania dostępu i rekord DNS w sieci LAN. Kopie zapasowe w chmurze są ZACHOWYWANE: indeks migawek i hasło repozytorium pozostają w miękko usuniętej rejestracji i mogą służyć jako źródło przywracania podczas dodawania urządzenia zastępczego. Wymaga wpisania nazwy urządzenia jako potwierdzenia.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/reset/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zastąp uszkodzonego Agenta AI nowym NUC (odtwarzanie po awarii)
Jednorazowa wymiana urządzenia: kojarzy zastępczy NUC (miejsce tunelu, sekrety, zmienne balena, inicjalizacja kopii zapasowej), przenosi nazwę, lokalizację, harmonogram ponownego uruchamiania, ustawienia kopii zapasowej, blokadę dostępu i uprawnienie MCP starego urządzenia, przypisuje indeks migawek starego urządzenia do nowego (dzięki czemu cała historia kopii zapasowych pozostaje dostępna), wycofuje starą rejestrację (oznaczoną replacedBy / replacedFrom) i — o ile `restore` nie ma wartości false — kolejkuje pełne przywrócenie wybranego punktu przywracania z repozytorium kopii zapasowych STAREGO urządzenia na nowy sprzęt. Działa, gdy stare urządzenie jest uszkodzone/offline; wymaga wpisania nazwy starego urządzenia jako potwierdzenia. Tylko w ramach tego samego obiektu.
Parametry
club `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/devices/ph-ai-agent/replace/{club}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Rozwiązuje krótki link z kodu QR urządzenia Performance Hub do docelowego linku głębokiego, aby skaner Dodaj urządzenie mógł wykryć typ urządzenia. Obsługiwane są wyłącznie hosty performancehub.co.
Parametry
url `string` (wymagane) Zeskanowany krótki linkPunkt końcowy
GET /api/devices/resolve-qr
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/resolve-qr \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Testuje łączność z kontrolerem Unifi obiektu i poprawność poświadczeń.
Parametry
facilityID `string` (wymagane) Wewnętrzny identyfikator obiektu, dla którego chcesz przetestować łączność z UnifiPunkt końcowy
GET /api/devices/testUnifiController/{facilityID}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/devices/testUnifiController/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje ogólne urządzenie IoT powiązane z obiektem.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
PUT /api/devices/updateGenericDevice/{club}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/devices/updateGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca liczbę oczekujących umów wymagających działania dla użytkownika i powiązanych z nim klubów
Punkt końcowy
GET /api/agreements/agreements-outstanding
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agreements/agreements-outstanding \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla wszystkie umowy dostępne dla klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. contracts-sort `string` (opcjonalne) Sortuj umowy według daty obowiązywania (date-effective) lub alfabetycznie (alphabetical). Domyślnie date-effective. contracts-acknowledgement `string` (opcjonalne) Filtruj umowy według wartości all, acknowledged lub unacknowledged. Domyślnie all. contracts-requirement `string` (opcjonalne) Filtruj umowy według wartości all, signature, checkbox, popup lub none. Domyślnie all. contracts-status `string` (opcjonalne) Filtruj umowy według wartości all, active lub archived. Domyślnie all.Punkt końcowy
GET /api/agreements/list-agreements/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/agreements/list-agreements/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podpisuje umowę na podstawie jej identyfikatora.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu podpisującego umowę. agreementid `string` (wymagane) Identyfikator podpisywanej umowy. body `string` (wymagane) Obiekt JSON zawierający umowę i parametry do dodania lub przesłania do systemu.Punkt końcowy
POST /api/agreements/sign/{club}/{agreementid}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/agreements/sign/{club}/{agreementid} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podsumowanie Model Router obiektu (konfiguracja, saldo, wydatki).
Parametry
clubID `string` (wymagane) tz `string` (opcjonalne) Strefa czasowa IANA przeglądającego — używana zastępczo dla dziennych i miesięcznych okresów wydatków, gdy obiekt nie ma danych o strefie czasowej.Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/overview
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/overview \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Katalog dostępnych modeli ze stanem włączenia dla obiektu (domyślnie wszystkie włączone).
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/models
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/models \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dostępne zabezpieczenia (guardrails) i gotowe szablony PH.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/guardrails
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/guardrails \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Połączone usługi Model Router. Obejmują sparowane urządzenia Agent AI, agentów zewnętrznych z jawnie określonym typem oraz usługę Workflow obiektu. Konfigurację edytuje się przez PATCH /keys/{keyHash}.
Parametry
clubID `string` (wymagane) tz `string` (opcjonalne) Strefa czasowa IANA przeglądającego — używana zastępczo dla dziennych i miesięcznych okresów wydatków, gdy obiekt nie ma danych o strefie czasowej.Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/agents
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/agents \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Włącz Model Router dla obiektu i skonfiguruj jego dostęp do wnioskowania.
Parametry
clubID `string` (wymagane)Punkt końcowy
POST /api/clubs/{clubID}/ai-credits/enable
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/enable \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje plan, listę dozwolonych modeli, zabezpieczenia (guardrails), filtry treści (maskowanie lub blokowanie wyrażeniami regularnymi po stronie PH), limit wydatków i konfigurację automatycznego doładowania.
Parametry
clubID `string` (wymagane)Punkt końcowy
PATCH /api/clubs/{clubID}/ai-credits/config
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/config \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Resetuje do 0 licznik twardego limitu za cały okres (nowy punkt odniesienia na poziomie bieżących wydatków) i zapisuje zamknięty okres w historii.
Parametry
clubID `string` (wymagane)Punkt końcowy
POST /api/clubs/{clubID}/ai-credits/spend-limit/reset-total
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/reset-total \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Historia resetów twardego limitu (od najnowszych) — limit, wydana kwota i znaczniki czasu dla każdego zamkniętego okresu.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/spend-limit/history
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/history \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy nowy klucz API phk_ dla obiektu (tekst jawny jest zwracany tylko raz). Przyjmuje opcjonalne limity wydatków, listę dozwolonych modeli, zabezpieczenia (guardrails), filtry treści oraz limity szybkości rpmLimit/tpmLimit.
Parametry
clubID `string` (wymagane)Punkt końcowy
POST /api/clubs/{clubID}/ai-credits/keys
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys \
-H "x-api-key: YOUR_API_KEY"
Aktualizuje edytowalne pola klucza: etykietę, limity wydatków klucza, listę dozwolonych modeli, zabezpieczenia (guardrails), filtry treści oraz limity szybkości rpmLimit/tpmLimit (synchronizowane z kluczem).
Parametry
clubID `string` (wymagane) keyHash `string` (wymagane)Punkt końcowy
PATCH /api/clubs/{clubID}/ai-credits/keys/{keyHash}
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys/{keyHash} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dzienniki wnioskowania obiektu dla poszczególnych żądań (na żywo, tylko metadane).
Parametry
clubID `string` (wymagane) page `string` (opcjonalne) pageSize `string` (opcjonalne) status `string` (opcjonalne) model `string` (opcjonalne) provider `string` (opcjonalne) source `string` (opcjonalne) `key` lub `agent` keyHash `string` (opcjonalne) Filtruj do jednego klucza lub agenta według jego keyHash w PH. q `string` (opcjonalne) Wyszukiwanie pełnotekstowe według identyfikatora żądania, etykiety klucza lub agenta, modelu, dostawcy i użytkownika końcowego. minutes `string` (opcjonalne) Okres krótszy niż doba (np. Live=1440); zastępuje startDate/endDate. startTs `string` (opcjonalne) Początek okresu w sekundach epoki (powiększanie kliknięciem); zastępuje minuty i daty. endTs `string` (opcjonalne) Koniec okresu w sekundach epoki (powiększanie kliknięciem); zastępuje minuty i daty.Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/logs
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Histogram liczby żądań w czasie dla widoku Logs. Te same filtry co w trasie listy, ale z agregacją po stronie serwera w przedziały czasu (liczba sukcesów i błędów), dzięki czemu odpowiedź jest bardzo mała niezależnie od liczby wpisów. Wielkość przedziału jest dobierana automatycznie do zakresu.
Parametry
clubID `string` (wymagane) status `string` (opcjonalne) model `string` (opcjonalne) provider `string` (opcjonalne) source `string` (opcjonalne) keyHash `string` (opcjonalne) q `string` (opcjonalne) minutes `string` (opcjonalne) startDate `string` (opcjonalne) endDate `string` (opcjonalne) startTs `string` (opcjonalne) endTs `string` (opcjonalne)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/logs/histogram
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs/histogram \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przedziały analityki użycia i sumy dla poszczególnych modeli w wybranym zakresie (na żywo).
Parametry
clubID `string` (wymagane) range `string` (opcjonalne) 24h | 7 | 30 | 90 | year | all (ignorowane, jeśli podano startDate/endDate) startDate `string` (opcjonalne) endDate `string` (opcjonalne) groupBy `string` (opcjonalne) model (domyślnie) | key | source | provider | status — wymiar dla przedziałów i grup subgroupBy `string` (opcjonalne) opcjonalny drugi wymiar zagnieżdżony w każdej grupie (Explore) keyHash `string` (opcjonalne) filtr szczegółowy — ogranicza zakres do jednego klucza lub agenta model `string` (opcjonalne) filtr szczegółowy — ogranicza zakres do jednego modelu provider `string` (opcjonalne) source `string` (opcjonalne) compare `string` (opcjonalne) ustaw na "prev", aby zwrócić także groupsPrev (bezpośrednio poprzedzający okres o tej samej długości)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/stats
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/stats \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Kalendarz dziennej aktywności z ostatniego roku kroczącego (ok. 53 tygodnie, w stylu GitHub).
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/activity
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/activity \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Obciąża zapisaną kartę rozliczeń SaaS, aby dodać przedpłacone środki Model Router.
Parametry
clubID `string` (wymagane) body `object` (opcjonalne)Punkt końcowy
POST /api/clubs/{clubID}/ai-credits/topup
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Finalizuje doładowanie po zakończeniu uwierzytelniania 3DS w aplecie.
Parametry
clubID `string` (wymagane)Punkt końcowy
POST /api/clubs/{clubID}/ai-credits/topup/confirm
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podsumowanie zapisanej karty rozliczeń SaaS, którą obciążają doładowania i automatyczne doładowania.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/payment-method
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/payment-method \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Transakcje księgowe obiektu, od najnowszych. Opcjonalnie filtrowane według typu (np. `types=topup,adjustment` dla historii przepływów środków lub `types=charge-reconcile` z `from`/`to` dla potrąceń za użycie w danym miesiącu).
Parametry
clubID `string` (wymagane) limit `integer` (opcjonalne) Maksymalna liczba wierszy (domyślnie 50, maks. 200) types `string` (opcjonalne) Typy transakcji rozdzielone przecinkami (topup, charge-reconcile, refund, adjustment, trueup-shortfall) from `integer` (opcjonalne) Tylko transakcje z createdAt >= from (sekundy Unix) to `integer` (opcjonalne) Tylko transakcje z createdAt <= to (sekundy Unix)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/transactions
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Różne miesiące `YYYY-MM` (UTC, od najnowszych) zawierające co najmniej jedną transakcję żądanych typów. Zasilają oparte na danych listy rozwijane filtrów roku i miesiąca, dzięki czemu interfejs proponuje tylko okresy, dla których istnieją dane.
Parametry
clubID `string` (wymagane) types `string` (opcjonalne) Typy transakcji rozdzielone przecinkami (topup, charge-reconcile, refund, adjustment, trueup-shortfall)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/transactions/available-periods
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/available-periods \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Potwierdzenie płatności w formacie PDF z oznaczeniem marki dla pojedynczej transakcji Model Router.
Parametry
clubID `string` (wymagane) txId `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pakiet potwierdzeń płatności w formacie PDF z oznaczeniem marki dla wybranych transakcji doładowania, jako plik ZIP. Każdy identyfikator musi dotyczyć doładowania należącego do obiektu — potrącenia za użycie i korekty administracyjne nie mają potwierdzeń i są odrzucane.
Parametry
clubID `string` (wymagane) ids `string` (wymagane) Identyfikatory transakcji rozdzielone przecinkami (maks. 50)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/transactions/receipts.zip
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zestawienia potrąceń za użycie w obiekcie według miesięcy kalendarzowych (UTC), od najnowszych. Bieżący miesiąc jest zawsze uwzględniany i oznaczany jako `isCurrentMonth` (od początku miesiąca do dziś).
Parametry
clubID `string` (wymagane) months `integer` (opcjonalne) Okres wstecz w miesiącach (domyślnie 12, maks. 24; ignorowany, gdy ustawiono `year`) year `integer` (opcjonalne) Ogranicza zestawienia do jednego roku kalendarzowego UTC (np. 2026)Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/usage-statements
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Miesięczne zestawienie użycia (Usage Statement) w formacie PDF z oznaczeniem marki — podsumowanie potrąceń za użycie w danym miesiącu (sumy dzienne i suma całkowita). Wyraźnie nie jest to faktura ani potwierdzenie; potrącenia za użycie nie pobierają płatności.
Parametry
clubID `string` (wymagane) month `string` (wymagane) Miesiąc kalendarzowy UTC, `YYYY-MM`Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/statement.pdf
Przykładowe żądanie
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"
Odpowiedź
{}
Surowe pozycje potrąceń za użycie z danego miesiąca jako CSV (identyfikator transakcji, znacznik czasu UTC, kwota, saldo po transakcji, stan wydatków łącznych) — szczegółowy eksport zgodny z sumą zestawienia miesięcznego.
Parametry
clubID `string` (wymagane) month `string` (wymagane) Miesiąc kalendarzowy UTC, `YYYY-MM`Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/detail.csv
Przykładowe żądanie
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"
Odpowiedź
{}
Podsumowanie użycia i wydatków obiektu (dane na żywo oraz uzgodniona księga).
Parametry
clubID `string` (wymagane) tz `string` (opcjonalne) Strefa czasowa IANA przeglądającego — używana zastępczo dla dziennych i miesięcznych okresów wydatków, gdy obiekt nie ma danych o strefie czasowej.Punkt końcowy
GET /api/clubs/{clubID}/ai-credits/usage
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przypisuje urządzenie AI Edge Processor do klubu lub aktualizuje przypisanie
Parametry
body `string` (wymagane) Obiekt JSON do aktualizacji rejestracji urządzenia AI Edge Processor.Punkt końcowy
POST /api/ai-edge-processor/devices
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przypisuje urządzenie AI Edge Processor do klubu. Identyfikuje urządzenie najpierw na podstawie metadanych (pierwszeństwo ma bieżący sygnał heartbeat), uzupełnia rekord rejestracji, jeśli urządzenie nigdy nie zarejestrowało się samodzielnie, i usuwa nieaktualne rekordy rejestracji pozostawione przez ponownie skonfigurowany sprzęt.
Parametry
body `string` (wymagane) Obiekt JSON do aktualizacji rejestracji urządzenia AI Edge Processor.Punkt końcowy
POST /api/ai-edge-processor/devices/associate
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę rekordów przesłanych danych bbox w klubie
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/bbox-timeline/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bbox-timeline/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Indeks wyszukiwania bazy danych kamer
Przekazuje publiczny indeks wyszukiwania bazy kamer z dokumentacji (producenci, serie, modele, aliasy) używany przez okno Find my camera podczas dodawania kamer sieciowych. Przechowywany w pamięci podręcznej serwera przez 12 godzin.
Punkt końcowy
GET /api/cctv/camera-db/search-index
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/search-index \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Szablony producentów w bazie danych kamer
Przekazuje szablony adresów URL RTSP i ustawienia domyślne jednego producenta z publicznej bazy kamer w dokumentacji. Identyfikator slug jest weryfikowany, aby zapobiec przechodzeniu po ścieżkach. Przechowywane w pamięci podręcznej serwera przez 12 godzin.
Parametry
slug `string` (wymagane) Identyfikator slug producenta (np. hikvision)Punkt końcowy
GET /api/cctv/camera-db/manufacturers/{slug}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/manufacturers/{slug} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych o zameldowaniach w obiekcie
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu lub obiektu, do którego chcesz uzyskać dostęp. startDate `string` (opcjonalne) Data początkowa w formacie YYYY-MM-DD endDate `string` (opcjonalne) Data końcowa w formacie YYYY-MM-DD timezone `string` (opcjonalne) Strefa czasowa do interpretacji dat (domyślnie Australia/Brisbane) nextToken `string` (opcjonalne) Token stronicowania do pobrania następnej stronyPunkt końcowy
GET /api/cctv/check-ins/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/check-ins/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz konfigurację interfejsu telewizji przemysłowej (CCTV)
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/config/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz konfigurację dostarczania treści telewizji przemysłowej (CCTV)
Zwraca domenę treści, której klienci CCTV używają do pobierania zasobów multimedialnych. Domena jest określana przez zmienną środowiskową CONTENT_DOMAIN, a w razie jej braku używana jest wartość domyślna zależna od etapu (produkcja obsługuje /cctv, pozostałe etapy /cctv-stg).
Punkt końcowy
GET /api/cctv/content-config
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/content-config \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmień konfigurację interfejsu telewizji przemysłowej (CCTV)
Parametry
body `object` (wymagane) Obiekt JSON nowego bloku konfiguracji do dodania do systemu.Punkt końcowy
PUT /api/cctv/config/:club/:section
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę dostępnych regionów zasobników dla konfiguracji dostawcy pamięci masowej CCTV
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/bucket-region/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bucket-region/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zresetuj kolekcję niezidentyfikowanych twarzy
Resetuje kolekcję niezidentyfikowanych osób CompreFace w obiekcie, usuwając wszystkie podmioty. Rekordy osób w DynamoDB, wykrycia twarzy i bloki osi czasu w OpenSearch NIE są zmieniane. Usuwane są tylko bazowe dane rozpoznawania twarzy. Nowe profile tymczasowe zostaną utworzone automatycznie, gdy system przetworzy nowe wykrycia z kamer.
Parametry
facilityId `string` (wymagane)Punkt końcowy
DELETE /api/cctv/config/{facilityId}/unidentified-collection
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz informacje o kolekcji niezidentyfikowanych osób
Zwraca bieżącą liczbę podmiotów w kolekcji niezidentyfikowanych osób CompreFace w obiekcie.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/cctv/config/{facilityId}/unidentified-collection-info
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection-info \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje kamerę sieciową (kamerę OEM/IP) przez adres URL strumienia (RTSP, HTTP, HTTPS)
Parametry
body `string` (wymagane) Obiekt JSON do dodania kamery sieciowej.Punkt końcowy
POST /api/cctv/devices/add-network-camera
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-camera \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zbiorczo dodaj kamery sieciowe do urządzenia Edge Processor
Rejestruje wiele kamer sieciowych RTSP/HTTP w jednym urządzeniu Edge Processor, a następnie jednorazowo wysyła FEED_CONFIG, aby urządzenie przeładowało konfigurację tylko raz.
Parametry
body `object` (wymagane)Punkt końcowy
POST /api/cctv/devices/add-network-cameras
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-cameras \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przypisuje urządzenie do klubu lub aktualizuje przypisanie
Parametry
body `string` (wymagane) Obiekt JSON do aktualizacji rejestracji urządzenia CCTV.Punkt końcowy
POST /api/cctv/devices
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przypisuje urządzenie do klubu
Parametry
body `string` (wymagane) Obiekt JSON do aktualizacji rejestracji urządzenia CCTV.Punkt końcowy
POST /api/cctv/devices/associate
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wysyła żądanie MQTT do urządzenia o wskazanym UUID i oczekuje odpowiedzi (przez websocket) z dostępnymi możliwościami kamery.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego należy odpytywane urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/cctv/devices/list-camera-capabilities/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/list-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl rejestracje urządzeń
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/devices/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/devices/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuwa kamerę sieciową, oznaczając ją jako usuniętą i usuwając ją z FEED_CONFIG urządzenia Edge Processor
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego należy urządzenie. balenaUUID `string` (wymagane) UUID kamery sieciowej do usunięcia.Punkt końcowy
DELETE /api/cctv/devices/remove-network-camera/{club}/{balenaUUID}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/devices/remove-network-camera/{club}/{balenaUUID} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisuje skonfigurowane możliwości kamery i stosuje je na urządzeniu jako zmienną środowiskową (przez balena)
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego należy odpytywane urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/cctv/devices/save-camera-capabilities/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisuje maskę ruchu kamery (jeśli skonfigurowano) i stosuje ją na urządzeniu jako zmienną środowiskową (przez balena)
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego należy odpytywane urządzenie. body `string` (wymagane) Obiekt JSON maski kamery.Punkt końcowy
POST /api/cctv/devices/save-camera-mask/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-mask/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wysyła do fizycznego urządzenia określone polecenie v4l2 (np. jasność lub kontrast)
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego należy odpytywane urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/cctv/devices/set-camera-capability/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/set-camera-capability/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przetestuj adres URL strumienia kamery sieciowej
Wysyła polecenie testowe do urządzenia Edge Processor, aby zweryfikować adres URL strumienia kamery za pomocą ffprobe
Treść żądania
Punkt końcowy
POST /api/cctv/devices/test-stream
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Trwale usuwa z bazy danych pojedynczy rekord wykrycia twarzy. Służy do usuwania błędnie dopasowanych lub nieprawidłowych wpisów śledzenia z dziennika aktywności osoby.
Parametry
club `string` (wymagane) fdID `string` (wymagane)Punkt końcowy
DELETE /api/cctv/face-detections/:club/:fdID
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:fdID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych o wykryciach twarzy danej osoby
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personID `string` (wymagane) Identyfikator osoby w systemie identyfikacji twarzyPunkt końcowy
GET /api/cctv/face-detections/:club/:personID
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wykrycia twarzy odwołujące się do wskazanego wycinka obrazu osoby, wyszukiwane przez GSI personCropImage.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personCropImage `string` (wymagane) Adres URL wycinka obrazu osoby zapisany w rekordzie wykrycia twarzy. limit `string` (opcjonalne) Maksymalna liczba zwracanych wykryć. nextToken `string` (opcjonalne) Token stronicowania z poprzedniej odpowiedzi.Punkt końcowy
GET /api/cctv/face-detections-by-person-crop-image/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections-by-person-crop-image/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych o wykryciach twarzy w klubie, pogrupowanych według zakresu względem bieżącego czasu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/face-detections/:club/timeline
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych o wykryciach twarzy w klubie
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/face-detections/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj bloki osi czasu wykryć twarzy w obiekcie za pomocą OpenSearch
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu do przeszukania timezone `string` (wymagane) Strefa czasowa IANA do konwersji dat (np. Pacific/Auckland) startDate `string` (opcjonalne) Filtr daty początkowej (YYYY-MM-DD), konwertowany na startUnix z użyciem strefy czasowej endDate `string` (opcjonalne) Filtr daty końcowej (YYYY-MM-DD), konwertowany na endUnix z użyciem strefy czasowej personId `string` (opcjonalne) Filtruj według identyfikatora osoby query `string` (opcjonalne) Wyszukiwanie pełnotekstowe (np. imię i nazwisko osoby) limit `string` (opcjonalne) Wyniki na stronę (domyślnie 20, maks. 100) filters `string` (opcjonalne) Obiekt filtrów zakodowany w JSON (np. {"matchType":"identified"}) sortBy `string` (opcjonalne) Pole sortowania (startUnix, endUnix, created). Domyślnie endUnix. page `string` (opcjonalne) Numer strony przy stronicowaniu (domyślnie 1) sortOrder `string` (opcjonalne) Kierunek sortowania (asc lub desc). Domyślnie desc.Punkt końcowy
GET /api/cctv/search/face-detections/timeline-blocks/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/face-detections/timeline-blocks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę raportów dotyczących obiektu klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/facility/:club/reports
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/facility/:club/reports \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Uruchamia generowanie mapy cieplnej na żądanie. Wywołuje tę samą logikę Starter, której używa zaplanowane zadanie cron, ale pozwala wskazać konkretny obiekt, datę i godzinę oraz zestaw okresów. Wywołane bez treści działa identycznie jak zadanie cron — skanuje wszystkie kwalifikujące się obiekty i dodaje do kolejki każde urządzenie.
Treść żądania
Punkt końcowy
POST /api/cctv/heatmaps/generate
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Ustala lokalizację złożonego pliku PNG mapy cieplnej z okna kroczącego dla jednego urządzenia. Zwraca tylko metadane JSON — bajty PNG znajdują się w domenie treści, a interfejs tworzy adres URL jako: `${contentDomain}/cctv/${storageService}/${region}/${filePath}?s=${token}` Kolejność ustalania: 1. Trafienie w indeksie DynamoDB `composed#…` → natychmiastowy zwrot (~10 ms). 2. Wasabi HEAD na deterministycznym kluczu pamięci podręcznej. Przy trafieniu zapisywany jest uzupełniający rekord indeksu i następuje zwrot. 3. Zastępczy nieaktualny wynik: istnieje dowolny złożony rekord dla tej krotki (urządzenie, zakres, godzina), nawet z innej daty. Zwracany natychmiast z `cache: 'HIT-STALE'`, aby interfejs mógł *coś* wyświetlić. Nowe składanie jest uruchamiane asynchronicznie. 4. Ścieżka zimna: nie istnieje żaden rekord. Lambda składająca jest dodawana do kolejki przez `InvocationType: 'Event'`, a punkt końcowy zwraca `202 { cache: 'PENDING' }`. Interfejs odpytuje, aż pojawi się rekord (zwykle 3-5 sekund). Obsługa bieżącego dnia: gdy `endDate` to lokalne "dziś" obiektu, punkt końcowy zwraca zamiast tego wczorajszy PNG — dzisiejsze wycinki są nadal zapisywane przez zadanie cron Starter, a nowe złożenie byłoby niekompletne. Odpowiedź powtarza żądane `endDate` i zawiera `endDateUsed` (= wczoraj). Wartości wyliczenia `cache`: - `HIT` — zwrócono z indeksu DDB dla żądanej daty. - `HIT-FALLBACK` — zażądano dnia dzisiejszego; zwrócono wczorajszy rekord indeksu. - `HIT-BACKFILL` — brak w DDB, ale Wasabi miało PNG; rekord został właśnie zapisany. - `HIT-FALLBACK-BACKFILL` — uzupełnienie przy zastępczym wyniku z wczoraj. - `HIT-STALE` — brak rekordu dla żądanej daty, ale istnieje rekord z innej daty dla tej krotki; zwrócono natychmiast, a nowe składanie dodano do kolejki w tle. - `PENDING` — brak jakiegokolwiek rekordu; składanie dodano do kolejki. Interfejs powinien odpytywać. Odpowiedź to `202 Accepted`, bez `filePath`.
Parametry
facilityId `string` (wymagane) deviceUUID `string` (wymagane) Urządzenie, dla którego wykonywane jest składanie. Złożenia są tworzone dla każdego urządzenia osobno. hour `integer` (wymagane) Godzina dnia 0–23, dla której wykonywane jest składanie w całym okresie wstecz. endDate `string` (opcjonalne) Ostatnia data w okresie (YYYY-MM-DD). Domyślnie dziś (strefa czasowa obiektu). range `string` (opcjonalne) Okres wstecz. Musi być jednym z dozwolonych zakresów. nocache `integer` (opcjonalne) Ustaw na `1`, aby pominąć warstwy pamięci podręcznej DDB i HEAD oraz wymusić nowe składanie.Punkt końcowy
GET /api/cctv/heatmaps/hourly/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ustala, dla których godzin dnia istnieją rekordy wycinków `1h` dla urządzenia w kroczącym okresie wstecz. Interfejs używa tego do wypełnienia selektora godzin obok selektora daty i zakresu przed wywołaniem punktu końcowego składania (`/api/cctv/heatmaps/hourly/...`). Przykład: `GET /api/cctv/heatmaps/query-hourly/Birkdale?deviceUUID=abc123&endDate=2026-04-16&range=30d` Wewnętrznie: jedno zapytanie zakresowe DynamoDB na `cctvheatmaps` (`sk BETWEEN 1h#{start}-00 AND 1h#{end}-23`), pogrupowane według godzin. Zwraca jeden wpis na każdą godzinę z co najmniej jednym wycinkiem, w tym reprezentatywny obraz referencyjny JPEG (z najnowszego dnia w okresie — obraz referencyjny jest wspólny dla urządzenia i dnia).
Parametry
facilityId `string` (wymagane) deviceUUID `string` (wymagane) Urządzenie do odpytania. Wycinki godzinowe są tworzone dla każdego urządzenia osobno. endDate `string` (opcjonalne) Ostatnia data w okresie (YYYY-MM-DD). Domyślnie dziś (strefa czasowa obiektu). range `string` (opcjonalne) Okres wstecz. Musi być jednym z dozwolonych zakresów.Punkt końcowy
GET /api/cctv/heatmaps/query-hourly/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/query-hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odpytuje wstępnie wygenerowane rekordy map cieplnych obiektu. **Wszystkie rekordy dla typu okresu:** - `/api/cctv/heatmaps/Birkdale?periodType=1y` - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&periodType=1d` **Zakres dat — jeden typ okresu:** - `/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` **Zakres dat — wszystkie pasujące typy okresów (pomiń periodType):** - `/api/cctv/heatmaps/Birkdale?from=2026-03-01&to=2026-03-31` Zwraca rekordy roczne, półroczne, kwartalne itd. aż do 6h, które pokrywają się z podanym zakresem. **Punkt w czasie — wszystkie 9 typów okresów dla jednego urządzenia:** - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&date=2026-03-15T14:30` Zwraca do 9 rekordów (1y, 6m, 3m, 2m, 1m, 1w, 1d, 12h, 6h).
Parametry
facilityId `string` (wymagane) Identyfikator obiektu. deviceUUID `string` (opcjonalne) Odpytuje wskazane urządzenie. Jeśli go nie podano, odpytywane są wszystkie urządzenia (GSI). periodType `string` (opcjonalne) Filtruje do jednego typu okresu. Jeśli pominięto go przy from/to, odpytywane są wszystkie typy. from `string` (opcjonalne) Data początkowa (yyyy-mm-dd). Musi być używana razem z `to`. to `string` (opcjonalne) Data końcowa (yyyy-mm-dd). Musi być używana razem z `from`. date `string` (opcjonalne) Wyszukiwanie dla punktu w czasie (yyyy-mm-dd lub yyyy-mm-ddTHH:mm). Wymaga deviceUUID. Zwraca jeden rekord na każdy typ okresu.Punkt końcowy
GET /api/cctv/heatmaps/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz miniaturę transmisji na żywo z urządzenia
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu. deviceId `string` (wymagane) Wewnętrzny identyfikator urządzenia CCTV.Punkt końcowy
GET /api/cctv/livestream/:club/thumbnail/:deviceId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/livestream/:club/thumbnail/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Powiadom system CCTV, że zamierzasz oglądać transmisję na żywo
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu. deviceId `string` (wymagane) Wewnętrzny identyfikator urządzenia CCTV.Punkt końcowy
POST /api/cctv/livestream/:club/iswatching/:deviceId
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/livestream/:club/iswatching/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zatwierdź dopasowanie krzyżowe
Ustawia status dopasowania na potwierdzony i zapisuje osobę weryfikującą.
Parametry
club `string` (wymagane) matchId `string` (wymagane)Punkt końcowy
POST /api/cctv/matching/{club}/detail/{matchId}/approve
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/approve \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz pojedyncze dopasowanie krzyżowe ze szczegółami wizyt
Zwraca rekord dopasowania wraz z podziałem czasu na poszczególne wizyty.
Parametry
club `string` (wymagane) matchId `string` (wymagane)Punkt końcowy
GET /api/cctv/matching/{club}/detail/{matchId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ręcznie powiąż niedopasowaną osobę z członkiem
Powiązuje personId z CCTV z określonym członkiem i ustawia dopasowanie jako potwierdzone.
Parametry
club `string` (wymagane) matchId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/cctv/matching/{club}/detail/{matchId}/link
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/link \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Wyświetl dopasowania krzyżowe obiektu
Zwraca stronicowane dopasowania filtrowane według statusu.
Parametry
club `string` (wymagane) status `string` (opcjonalne) limit `integer` (opcjonalne) nextToken `string` (opcjonalne)Punkt końcowy
GET /api/cctv/matching/{club}/list
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odrzuć dopasowanie krzyżowe
Ustawia status dopasowania na odrzucony i zapisuje osobę weryfikującą.
Parametry
club `string` (wymagane) matchId `string` (wymagane)Punkt końcowy
POST /api/cctv/matching/{club}/detail/{matchId}/reject
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/reject \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz zbiorcze liczby dopasowań krzyżowych
Zwraca liczby dopasowań w obiekcie pogrupowane według statusu.
Parametry
club `string` (wymagane) Identyfikator obiektuPunkt końcowy
GET /api/cctv/matching/{club}/summary
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/summary \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń powiązanie automatycznie wyuczonego dopasowania profilu
Przywraca powiązanemu dopasowaniu status odrzuconego i czyści autoLearnedFrom w rekordzie członka.
Parametry
club `string` (wymagane) matchId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/cctv/matching/{club}/detail/{matchId}/unlink
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/unlink \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Odczytuje status trwającej operacji "upsert identified person" (obejmuje tworzenie i edycję). Odczytuje rekord bezpośrednio z tabeli `people-ops` należącej do cctv-rekognition-api, bez pośrednictwa Lambdy. Używane przez interfejs CCTV do odpytywania o postęp po POST /api/cctv/people/{facility}/identified. Ścieżka leży obok `/cctv/people/...` (nie jest w niej zagnieżdżona), aby router express nie dopasował błędnie `operationId` jako `:personID` w `/cctv/people/:club/:personID`. Zobacz kolejność wzorców w createAPIRouter. Zwraca wartość zastępczą `pending`, dopóki Lambda upsertIdentifiedPerson nie zapisze pierwszego wpisu etapu (okno zimnego startu). Mechanizm odpytywania w interfejsie traktuje wartość zastępczą i pending identycznie, dzięki czemu kontrakt pozostaje stabilny dla wywołujących.
Parametry
operationId `string` (wymagane)Punkt końcowy
GET /api/cctv/people-operations/{operationId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people-operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje obraz twarzy (z istniejącego wykrycia śledzenia) do podmiotu rozpoznawania CompreFace danej osoby i zapisuje odwołanie w tabeli zdjęć tymczasowych. NIE przesyła obrazu do Wasabi — już się tam znajduje jako przechwycone wykrycie twarzy.
Parametry
club `string` (wymagane) personID `string` (wymagane) body `string` (wymagane)Punkt końcowy
POST /api/cctv/people/:club/:personID/add-face
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID/add-face \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaj zdjęcia tymczasowe do rekordu osoby
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personID `string` (wymagane) Identyfikator rekordu osoby body `string` (wymagane) Obiekt JSON nowego bloku konfiguracji do dodania do systemu.Punkt końcowy
POST /api/cctv/people/:club/shadow-photos/:personID
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odpytaj o zdjęcia tymczasowe osoby
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personID `string` (wymagane) Identyfikator rekordu osobyPunkt końcowy
GET /api/cctv/people/:club/shadow-photos/:personID
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Trwale usuwa rekord zdjęcia tymczasowego z CCTVShadowPhotosTable i usuwa odpowiadającą mu twarz z CompreFace (jeśli zapisano faceId).
Parametry
club `string` (wymagane) personID `string` (wymagane) id `string` (wymagane) Identyfikator rekordu zdjęcia tymczasowego (klucz główny)Punkt końcowy
DELETE /api/cctv/people/:club/shadow-photos/:personID/:id
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID/:id \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuwa odwołania i powiązane rekordy rozpoznawania według personID
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personID `string` (wymagane) Unikalny identyfikator osoby w CCTV.Punkt końcowy
DELETE /api/cctv/people/:club/:personID
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca rekord osoby w klubie
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. personID `string` (wymagane) Identyfikator osoby w bazie danych.Punkt końcowy
GET /api/cctv/people/:club/:personID
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz strefy dostępu dopasowane do profilu członkostwa osoby
Ustala typ członka, tagi i plany członkostwa osoby, a następnie zwraca rzeczywiste strefy dostępu (origin=membership-plan, niewchłonięte) dopasowane według reguł uwzględniania i wykluczania. accessRestriction każdej strefy jest ograniczane do reguł, które pasowały do osoby. Kamery stref podrzędnych są scalane ze strefami nadrzędnymi.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu personID `string` (wymagane) Identyfikator osoby z tabeli osób CCTVPunkt końcowy
GET /api/cctv/people/{club}/{personID}/allowed-zones
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/{club}/{personID}/allowed-zones \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca bieżący status zadania scalania, w tym wyniki dla poszczególnych źródeł. Odpytuj ten punkt końcowy co 3-5 sekund, dopóki status to IN_PROGRESS.
Parametry
club `string` (wymagane) mergeJobID `string` (wymagane)Punkt końcowy
GET /api/cctv/people/:club/merge-status/:mergeJobID
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-status/:mergeJobID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Uruchamia w tle scalanie wielu profili niezidentyfikowanych osób w jeden profil docelowy. Natychmiast odpowiada kodem 202 z mergeJobID. Postęp sprawdzaj, odpytując /merge-status/:mergeJobID.
Parametry
club `string` (wymagane) body `string` (wymagane)Punkt końcowy
POST /api/cctv/people/:club/merge-unidentified
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-unidentified \
-H "x-api-key: YOUR_API_KEY"
Dodaj twarz do kolekcji czarnej listy obiektu
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektuTreść żądania
Punkt końcowy
POST /api/cctv/people/{facilityId}/blacklist
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Tworzy lub aktualizuje zidentyfikowaną osobę w obiekcie — tworzy nowy rekord albo aktualizuje istniejący. Przekazuje żądanie do Lambdy upsertIdentifiedPerson, która zapisuje rekord osoby, przesyła przekazane zdjęcie do Wasabi i ponownie indeksuje twarz w CompreFace. Gdy `isNewRecord` ma wartość true (domyślnie), Lambda wykonuje gałąź tworzenia (cctvPeople.save), a `personID` jest generowany, jeśli go nie podano. Gdy `isNewRecord` ma wartość false, Lambda wykonuje gałąź aktualizacji (cctvPeople.update) — `personID` jest wymagany i musi wskazywać istniejący rekord.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/cctv/people/{facilityId}/identified
Przykładowe żądanie
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 '{}'
Aktualizuje zestaw opcjonalnych pól partnera synchronizowanych z tabelą osób CCTV obiektu.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektuTreść żądania
Punkt końcowy
PUT /api/cctv/people/{facilityId}/sync-fields
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zwraca listę danych osób w klubie
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/people/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukuje osoby w obiekcie na podstawie obrazu twarzy. Wywołuje Lambdę imageFaceSearch z cctv-rekognition-api, przekazując przesłany obraz base64 i identyfikator obiektu ze ścieżki. Zwraca uszeregowane dopasowania oraz podsumowanie atrybutów DeepFace.
Parametry
club `string` (wymagane) Identyfikator obiektu lub klubu body `string` (wymagane)Punkt końcowy
POST /api/cctv/people/{club}/search-by-face
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{club}/search-by-face \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukaj osoby w obiekcie za pomocą OpenSearch
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu do przeszukania query `string` (opcjonalne) Wyszukiwane hasło (np. imię i nazwisko) page `string` (opcjonalne) Numer strony (domyślnie 1) limit `string` (opcjonalne) Wyniki na stronę (domyślnie 20, maks. 100) filters `string` (opcjonalne) Obiekt filtrów zakodowany w JSON (np. {"membershipStatus":"active"}) sortBy `string` (opcjonalne) Pole sortowania (created, lastName, firstName, membershipUpdatedOn). Domyślnie created. sortOrder `string` (opcjonalne) Kierunek sortowania (asc lub desc). Domyślnie desc.Punkt końcowy
GET /api/cctv/search/people/:facilityId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/people/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje elementy wykrycia twarzy o nowy personID i powiązuje rekordy rozpoznawania
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. body `string` (wymagane) Obiekt JSON nowego bloku konfiguracji do dodania do systemu.Punkt końcowy
POST /api/cctv/people/:club/validate
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/validate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca obiekt ze wszystkimi dostępnymi filtrami danych nagrań CCTV klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/recordings/filters/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/filters/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Strumieniuj nagranie.
Punkt końcowy
GET /api/cctv/recordings/:club/:dir/:filename
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj informacje o nagraniu.
Punkt końcowy
PUT /api/cctv/recordings/:club/:dir/:filename
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca podsumowanie danych nagrań CCTV klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/recordings/:club/summary
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/summary \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych nagrań CCTV klubu na podstawie zakresu względem bieżącego czasu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/recordings/:club/timeline
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę danych nagrań CCTV klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/recordings/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Nagrania są automatycznie usuwane po określonym czasie; użyj tej funkcji, aby je zachować
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
POST /api/cctv/recordings/:club/:action
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:action \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj migawki raportów obiektu w zakresie dat
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu startDate `string` (wymagane) Filtr daty początkowej (YYYY-MM-DD) endDate `string` (wymagane) Filtr daty końcowej (YYYY-MM-DD) deviceIds `string` (opcjonalne) Rozdzielona przecinkami lista identyfikatorów kamer lub urządzeń do filtrowania view `string` (opcjonalne) Alternatywny widok raportu do obliczenia (przekazywany do Lambdy raportu)Punkt końcowy
GET /api/cctv/reports/search-report-snapshots/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/reports/search-report-snapshots/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukiwanie wektorowe w zaindeksowanych materiałach CCTV obiektu. Odpowiada strumieniem text/event-stream przekazywanym z Lambdy searchAnything, dzięki czemu klient może wyświetlać postęp, gdy zimny kontener ładuje koder. Zdarzenia to `status`, a następnie `result` albo `error`. Są trzy sposoby wyszukiwania, w tym dwa przy tej metodzie. Wyślij `query`, aby wyszukiwać według dowolnego tekstu. Wyślij `seedIndex` + `seedKey`, aby wyszukiwać według przykładu — "więcej podobnych" — przy użyciu wektora rekordu, który jest już w indeksie; w ten sposób można znaleźć więcej wyników podobnych do tego, który przegląda użytkownik. Aby wyszukiwać według obrazu, który ma użytkownik, wyślij zamiast tego bajty metodą `POST` na tę samą ścieżkę. Wyślij słowa razem z obrazem, aby zawęzić jedno drugim: **tekst filtruje, obraz szereguje**. Kandydaci pochodzą z przykładu, słowa decydują, którzy z nich pozostaną, a podobieństwo wizualne decyduje o kolejności — dzięki temu wyniki nadal przypominają obraz, a słowa odrzucają te, które nie pasują. Obie metody nigdy nie są łączone w jeden wektor, dlatego `queryKind` pozostaje `similar` przy wyszukiwaniu łączonym; to obecność `query` w wyniku wskazuje, że zastosowano filtr tekstowy. Wyszukiwania łączone dość często nie zwracają niczego — traktuj to jako osobny wynik: `perIndex.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu do przeszukania query `string` (opcjonalne) Dowolny opis tekstowy tego, czego szukasz. Wymagany, chyba że wysłano warm=1 lub przykład. W połączeniu z przykładem przestaje być podstawą szeregowania i staje się filtrem kandydatów przykładu, odrzucając tych, których wynik tekstowy jest niższy niż próg trafności indeksu. seedIndex `string` (opcjonalne) Wyszukiwanie według przykładu zamiast tekstu: indeks, w którym znajduje się rekord przykładu (person-crops, recording-frames, timelapse-frames). Jest to `index` trafienia klikniętego przez użytkownika. Musi być wysłany razem z seedKey. seedKey `string` (opcjonalne) `key` rekordu przykładu, przepisany dosłownie z trafienia. Przykład jest wykluczany z własnych wyników — w przypadku nagrania oznacza to cały klip, ponieważ jego pozostałe klatki dzielą 2 s i są niemal identyczne. seedFrameId `string` (opcjonalne) Wymagane, gdy seedIndex to recording-frames: ten indeks przechowuje jeden rekord na każdą próbkowaną klatkę, a wszystkie mają wspólny klucz klipu, więc sam klucz wskazuje klip, a nie moment. Wyślij `frameId` trafienia. Starsze rekordy go nie mają — wyślij wtedy seedOffsetMs. seedOffsetMs `string` (opcjonalne) Zastępczy identyfikator klatki dla przykładów z recording-frames, których rekord powstał przed wprowadzeniem `frame_id`. Wyślij `offsetMs` trafienia. Ignorowany, gdy podano seedFrameId. warm `string` (opcjonalne) Rozgrzewa kontener Lambda bez uruchamiania wyszukiwania. Wywołaj to przy ładowaniu strony. warmTarget `string` (opcjonalne) Który koder ładuje `warm`: `text` (domyślnie), `image` lub `both`. Moduł wizyjny zajmuje 355 MB wobec 283 MB modułu tekstowego, więc jego rozgrzewanie jest opcjonalne — żądaj `image` dopiero wtedy, gdy użytkownik rzeczywiście przygotował obraz, a nie przy ładowaniu strony. index `string` (opcjonalne) Rozdzielone przecinkami zbiory danych do przeszukania: person-crops, recording-frames, timelapse-frames. Wyniki są scalane w jedną listę posortowaną według wyniku. Domyślnie przeszukiwane są wszystkie trzy; przekaż jawną listę, aby zawęzić wyszukiwanie. timelapse-frames obejmuje kamery, które niczego nie nagrywają, a jedynie tworzą jedną klatkę na minutę; jego próg trafności nie jest jeszcze skalibrowany. model `string` (opcjonalne) Koder używany do zapytania. Musi być zgodny z koderem, którym zaindeksowano zbiór danych. limit `string` (opcjonalne) Liczba wyników zwracanych na indeks (domyślnie 50, maks. 100) — nie jest to suma, więc przeszukanie wszystkich trzech indeksów może zwrócić do trzech razy więcej. W przypadku nagrań liczone są klipy, a nie dopasowane klatki. from `string` (opcjonalne) Dopasowuj tylko materiały przechwycone w tym czasie lub później, w milisekundach od początku epoki. Jest to czas przechwycenia, a nie przesłania. to `string` (opcjonalne) Dopasowuj tylko materiały przechwycone przed tym czasem (z wyłączeniem), w milisekundach od początku epoki. cameraId `string` (opcjonalne) Rozdzielone przecinkami identyfikatory balenaUUID kamer, do których ma zostać zawężone wyszukiwanie — pole `balenaUUID` każdego wpisu zwracanego przez /api/cctv/recordings/filters/:club. Zalecany filtr kamer: każdy indeks przechowuje tę samą wartość, więc jeden filtr zawęża je wszystkie. Zawiera ją tylko część wycinków, dla których udało się połączyć dane z wykryciem twarzy (obecnie ok. 1%), więc zawężanie wycinków według kamery zwróci niewiele wyników lub żadnych, dopóki nie zostanie uruchomione uzupełnianie wycinków; nagrania mają pełne dane i są filtrowane dokładnie. camera `string` (opcjonalne) Rozdzielone przecinkami nazwy kamer, do których ma zostać zawężone wyszukiwanie. W praktyce dotyczy tylko nagrań: person-crops przechowuje pustą nazwę kamery w każdym rekordzie, więc dowolna wartość wyklucza wszystkie wycinki. Używaj raczej cameraId. cameraGroup `string` (opcjonalne) Rozdzielone przecinkami grupy kamer, do których ma zostać zawężone wyszukiwanie. Wypełnione we wszystkich nagraniach, ale tylko w ok. 1% wycinków, z tej samej przyczyny co cameraId. minScore `string` (opcjonalne) Zastępuje próg kosinusowy indeksu, który odfiltrowuje szum. Pomiń w środowisku produkcyjnym; każdy indeks ma skalibrowaną wartość domyślną (oraz osobną, nieskalibrowaną dla wyszukiwań według przykładu). Przekaż 0, aby zobaczyć niefiltrowanych najbliższych sąsiadów podczas debugowania trafności.Punkt końcowy
GET /api/cctv/search/anything/:facilityId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukiwanie według obrazu, który ma użytkownik, a nie według słów lub wyniku widocznego już na ekranie. Pod każdym innym względem identyczne z GET — te same parametry zapytania, ten sam strumień zdarzeń, ten sam kształt wyniku — dlatego opisano tu tylko różnice. Wyślij **oryginalne bajty pliku** jako treść żądania z nagłówkiem Content-Type `image/*`. Nie zmieniaj wcześniej rozmiaru obrazu, nie przycinaj go ani nie koduj ponownie w przeglądarce: serwer odtwarza bardzo konkretną zmianę rozmiaru (ściśnięcie do 256x256 z dwuliniowym jądrem z antyaliasingiem), przy której zbudowano zaindeksowane wektory, a skalowanie w elemencie canvas używa innej. Zmierzono, że taka zamiana daje odległość kosinusową ok. 0,93 od prawidłowej odpowiedzi, czyli większą niż między dwoma naprawdę różnymi obrazami — wyniki wracają więc uszeregowane wiarygodnie, ale błędnie, bez żadnego komunikatu o błędzie. Limit wynosi 4 MB i wynika z ograniczeń transportu, a nie jakości: bajty są przesyłane w ładunku wywołania Lambdy, ograniczonym do 6 MB, a kodowanie base64 zwiększa ich objętość o jedną trzecią. Wyniki są obliczane przez porównanie obrazu z obrazem, więc `queryKind` ma wartość `image`, a wyniki są w tej samej, znacznie wyższej skali co wyszukiwanie według przykładu — nigdy nie są porównywalne z wynikami tekstowymi. Należy spodziewać się, że będą nieco *niższe* niż w równoważnym wyszukiwaniu według przykładu: wektor przykładu zapisało samo urządzenie, a przesłany obraz jest tu ponownie kodowany przez inny silnik, co przesuwa go o kilka setnych względem miejsca, w którym umieściłoby go urządzenie. Pomiary pokazują, że mimo to wyniki mają równą jakość; po prostu nie jest to identyczny zestaw. Dodanie `query` filtruje wyniki według tych słów, dokładnie tak jak w przypadku przykładu. Wysłanie przykładu *i* obrazu jest odrzucane: oba są podstawą szeregowania, więc taka para nie ma sensu. To najdroższe żądanie obsługiwane przez ten punkt końcowy. Przesłany obraz ładuje moduł wizyjny, a dodanie słów ładuje też moduł tekstowy — oba w zimnym kontenerze. Wywołanie `warm=1&warmTarget=image`, gdy użytkownik przygotuje obraz, usuwa ten koszt ze ścieżki krytycznej.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu do przeszukania body `string` (wymagane) Surowe, niezmienione bajty obrazu, maksymalnie 4 MB query `string` (opcjonalne) Opcjonalne słowa zawężające wyniki wyszukiwania obrazem; odrzucane są dopasowania, których wynik tekstowy jest niższy niż próg trafności indeksu.Punkt końcowy
POST /api/cctv/search/anything/:facilityId
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca szczegóły pamięci masowej i inne dane metryk CCTV klubu
Punkt końcowy
GET /api/cctv/storage-details/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/storage-details/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę rekordów przesłanych timelapse'ów klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/timelapse/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/timelapse/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl działania użytkowników wykonane na nagraniach w interfejsie CCTV
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/cctv/ui/actions/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zarejestruj działanie użytkownika wykonane na nagraniach w interfejsie CCTV
Parametry
body `string` (wymagane) Obiekt JSON nowego bloku konfiguracji do dodania do systemu.Punkt końcowy
POST /api/cctv/ui/actions/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz token użytkownika dla interfejsu CCTV
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
GET /api/cctv/ui/token/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/token/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wygeneruj token dostępu tymczasowego lub gościnnego
Parametry
club `string` (wymagane) Unikalny identyfikator klubu. body `string` (wymagane) Obiekt JSON ze szczegółami tokenu do wydania.Punkt końcowy
POST /api/cctv/token/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{
"accessID": "00000000-0000-0000-0000-000000000014"
}
Zwraca listę rekordów tokenów dostępu tymczasowego lub gościnnego
Parametry
club `string` (wymagane) Unikalny identyfikator klubu.Punkt końcowy
GET /api/cctv/token/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz token dostępu na podstawie identyfikatora dostępu
Parametry
accessID `string` (wymagane) Identyfikator rekordu tokenu w bazie danych.Punkt końcowy
POST /guest/cctv/token/:accessID
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/guest/cctv/token/:accessID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń godziny dostępu do obiektu
Parametry
facilityId `string` (wymagane) body `object` (wymagane) Obiekt JSON z nowymi godzinami dostępu.Punkt końcowy
DELETE /api/ai/computer-vision/access-hours/:facilityId
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę godzin dostępu do obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/ai/computer-vision/access-hours/:facilityId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje lub tworzy godziny dostępu do obiektu
Parametry
facilityId `string` (wymagane) body `object` (wymagane) Obiekt JSON z nowymi godzinami dostępu.Punkt końcowy
POST /api/ai/computer-vision/access-hours/:facilityId
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń strefę dostępu obiektu
Parametry
facilityId `string` (wymagane) body `object` (wymagane) Obiekt JSON nowej strefy dostępu.Punkt końcowy
DELETE /api/ai/computer-vision/access-zones/:facilityId
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę stref dostępu obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/ai/computer-vision/access-zones/:facilityId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje lub tworzy strefę dostępu obiektu
Parametry
facilityId `string` (wymagane) body `object` (wymagane) Obiekt JSON nowej strefy dostępu.Punkt końcowy
POST /api/ai/computer-vision/access-zones/:facilityId
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca sumę wszystkich identyfikatorów modułów administracyjnych ze wszystkich marek i obiektów organizacji, wypełnioną jako obiekty modułów.
Parametry
organisationId `string` (wymagane) Identyfikator organizacjiPunkt końcowy
GET /api/organisations/{organisationId}/admin-modules
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/organisations/{organisationId}/admin-modules \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich organizacji
Parametry
includeBrands `string` (opcjonalne) Uwzględnij marki powiązane z organizacją includeFacilities `string` (opcjonalne) Uwzględnij obiekty powiązane z organizacją includeRegions `string` (opcjonalne) Uwzględnij regiony powiązane z organizacjąPunkt końcowy
GET /api/organisations
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/organisations \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Proste narzędzie AI analizujące treść zgłoszenia do wsparcia i tworzące sugestie na podstawie dostępnych tematów oraz proponowanych tematów wyszukiwania Algolia.
Parametry
messageBody `string` (wymagane) Treść wiadomości do wysłania topicData `string` (wymagane) Obiekt lub tablica JSON z topicData zwróconymi z osTicket (system zgłoszeń i wsparcia) facilityId `string` (opcjonalne) Wewnętrzny identyfikator klubu potrzebny do ustalenia właściwego indeksu Algolia do przeszukania.Punkt końcowy
PUT /api/ai/helpers/analyse-support-ticket
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/ai/helpers/analyse-support-ticket \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Proste API do generowania obrazów
Parametry
type `string` (wymagane) Typ obrazu do wygenerowania name `string` (wymagane) Nazwa obrazu maxSize `string` (opcjonalne) Opcjonalny maksymalny rozmiar odpowiedzi, np. 200KB, 1MB lub zwykła liczba bajtów. Obraz jest zmniejszany lub kompresowany, aby się zmieścić.Punkt końcowy
PUT /api/ai/images/:type/:name
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/ai/images/:type/:name \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Proste zapytanie LLM
Lekki punkt końcowy do prostych, bezstanowych zapytań LLM. Korzysta z taniego modelu bez rozumowania (gpt-4o-mini) ze ścisłymi limitami tokenów. Bez historii rozmowy, bez narzędzi, bez strumieniowania — tylko prompt na wejściu i tekst na wyjściu.
Treść żądania
Punkt końcowy
POST /api/ai/llm/query
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zwraca konfigurację Algolia, w tym nazwę indeksu, identyfikator aplikacji i klucz API.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/facilities/{facilityId}/algolia/config
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/algolia/config \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Inicjuje indeks Algolia materiałów marketingowych do druku
Parametry
organisationId `string` (wymagane)Punkt końcowy
PUT /api/algolia/index
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/algolia/index \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukaj materiały marketingowe do druku
Treść żądania
Punkt końcowy
POST /algolia/search-marketing-print
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyszukaj materiały marketingowe do druku
Parametry
club `string` (opcjonalne) Identyfikator klubu searchTerms `string` (opcjonalne) Wyszukiwane hasła algoliaArgs `object` (opcjonalne) Dodatkowe argumenty wyszukiwania AlgoliaPunkt końcowy
GET /algolia/search-marketing-print
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/algolia/search-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zbiorczo zaktualizuj obiekty materiałów marketingowych do druku dla wybranego klubu
Punkt końcowy
POST /algolia/bulk-update-marketing-print
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/algolia/bulk-update-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera z Algolia zasoby materiałów marketingowych do druku.
Parametry
organisationId `string` (wymagane) search `string` (opcjonalne) limit `string` (opcjonalne) brand `string` (opcjonalne) tag `string` (opcjonalne)Punkt końcowy
GET /api/algolia/marketing/assets
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Inicjuje indeks Algolia materiałów marketingowych do druku z konfiguracją obiektu.
Parametry
organisationId `string` (wymagane)Punkt końcowy
POST /api/algolia/marketing/assets
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukuje wskazany indeks Algolia na podstawie wyszukiwanych haseł, klubu lub ustawień regionalnych. Wyszukiwanie można dodatkowo dostosować za pomocą dodatkowych argumentów Algolia.
Parametry
searchTerms `string` (wymagane) Hasła do wyszukania w indeksie Algolia. club `string` (opcjonalne) Wewnętrzny identyfikator klubu wysyłającego żądanie. Jeśli zostanie podany, wyniki wyszukiwania będą filtrowane według regionu powiązanego z klubem. locale `string` (opcjonalne) Ustawienia regionalne używane do ustalenia regionu, jeśli nie podano klubu. Pobierane z navigator.languages. algoliaArgs `string` (opcjonalne) Dodatkowe lub niestandardowe argumenty przekazywane do żądania wyszukiwania Algolia.Punkt końcowy
POST /api/algolia/search-wiki
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/algolia/search-wiki \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla wszystkie ogłoszenia
Punkt końcowy
GET /api/announcements/list
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/announcements/list \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przesyła zasób do PUBLICZNEGO ZASOBNIKA S3 (przez Upload API), który następnie przetwarza i optymalizuje plik, generuje miniatury itp. *Uwaga: zasoby będą publicznie dostępne*
Parametry
file `string` (opcjonalne) Nazwa pliku lub zasobu do przesłania.Punkt końcowy
POST /api/asset-upload
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/asset-upload \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca status przesyłania na podstawie podanego UUID rekordu przesyłania
Parametry
uuid `string` (wymagane) UUID rekordu przesyłaniaPunkt końcowy
GET /api/asset-upload/:uuid
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/asset-upload/:uuid \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyślij polecenie do systemu Sonos w klubie
Parametry
body `object` (wymagane) Obiekt JSON z poleceniem i danymi wejściowymi do wysłania do Sonos.Punkt końcowy
PUT /api/audio-control/command/:club
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/command/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz konfigurację interfejsu Audio Control
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/audio-control/config/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/audio-control/config/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmień konfigurację interfejsu Audio Control
Parametry
body `object` (wymagane) Obiekt JSON nowego bloku konfiguracji do dodania do systemu.Punkt końcowy
PUT /api/audio-control/config/:club/:section
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera ustawienia marki dla wybranego regionu
Parametry
brandId `string` (opcjonalne) Identyfikator marki regionCode `string` (opcjonalne) Kod ISO regionu, dla którego mają zostać pobrane ustawieniaPunkt końcowy
GET /api/brands/{brandId}/regions/{regionCode}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje wiele ustawień marki dla wybranego regionu
Parametry
brandId `string` (opcjonalne) Identyfikator marki do zaktualizowania regionCode `string` (opcjonalne) Kod ISO regionu, dla którego mają zostać zaktualizowane ustawienia acceptFreeTrialBookingsVisibility `string` (opcjonalne) customTrackingCodeVisibility `string` (opcjonalne) displayDataSources `string` (opcjonalne) displayDefaultDataSource `string` (opcjonalne) displayDefaultUI `string` (opcjonalne) displayUIOptions `string` (opcjonalne) defaultAboutBusiness `string` (opcjonalne) defaultAboutBusinessFacebook `string` (opcjonalne) facilityCoverImage `string` (opcjonalne) digitalProfileSettingsVisibility `string` (opcjonalne) facilityHoursVisibility `string` (opcjonalne) facilityLocationVisibility `string` (opcjonalne) facilityPaymentMethods `string` (opcjonalne) facilityPrimaryLogo `string` (opcjonalne) facilityStatusVisibility `string` (opcjonalne) landingPagesVisibility `string` (opcjonalne) lineChatIntegrationVisibility `string` (opcjonalne) whatsAppIntegrationVisibility `string` (opcjonalne) defaultWhatsAppMessage `string` (opcjonalne) socialUrlsVisibility `string` (opcjonalne) yextApiKey `string` (opcjonalne) Klucz API używany przez integrację Yext dla tej marki i regionu. Uwzględniany tylko wtedy, gdy `directorySyncMode` ma wartość `yext`. directorySyncMode `string` (opcjonalne) Mechanizm synchronizacji używany dla obiektów tej marki i regionu. Jeśli nie podano, domyślnie `yext` — dla zgodności wstecznej z markami utworzonymi przed wdrożeniem Directory Publishers. websiteUrl `string` (opcjonalne) androidAppUrl `string` (opcjonalne) iosAppUrl `string` (opcjonalne) featuredMessageDescription `string` (opcjonalne) yextCategoryIds `string` (opcjonalne) Starszy klucz zapisu — w rzeczywistości są to identyfikatory kategorii Google Business Profile (np. gcid:gym). Prefiks "yext" pochodzi sprzed wycofania Yext; zachowano go dla zgodności wstecznej z istniejącymi rekordami w bazie danych. customInputFields `string` (opcjonalne) customInputFieldsToRemove `string` (opcjonalne)Punkt końcowy
PUT /api/brands/{brandId}/regions/{regionCode}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera ustawienia marki dla wybranego obiektu
Parametry
facilityId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane ustawienia markiPunkt końcowy
GET /api/facilities/{facilityId}/brand-settings
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/brand-settings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy nową markę
Parametry
name `string` (wymagane) Nazwa marki organisationId `string` (wymagane) Identyfikator organizacji, do której należy marka redirectDashboard `string` (opcjonalne) Adres URL, na który użytkownik zostanie przekierowany po zalogowaniu zamiast domyślnego paneluPunkt końcowy
POST /api/brands
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich marek
Punkt końcowy
GET /api/brands
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca obiekt marki
Parametry
brandId `string` (wymagane) Identyfikator marki do pobrania includeOrganisation `boolean` (opcjonalne) Czy dołączyć dane organizacji do odpowiedziPunkt końcowy
GET /api/brands/{brandId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje markę według identyfikatora
Parametry
brandId `string` (opcjonalne) Identyfikator marki do zaktualizowania name `string` (wymagane) Nazwa marki brandOrganisationId `string` (opcjonalne) Identyfikator organizacji, do której należy marka redirectDashboard `string` (opcjonalne) Adres URL, na który użytkownik zostanie przekierowany po zalogowaniu zamiast domyślnego panelu yextApiKey `string` (opcjonalne) Klucz API używany do dostępu do Yext API dla tej marki customMenuLayout `object` (opcjonalne) Drzewo układu menu bocznego dla marki (sekcje / grupy / pozycje z odwołaniami do modułów systemowych lub niestandardowych adresów URL). Może je ustawić tylko administrator organizacji, do której należy ta marka.Punkt końcowy
PUT /api/brands/{brandId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl obiekty marki
Zwraca uproszczoną listę obiektów (identyfikator, nazwa, kod ISO regionu) należących do marki. Służy do wypełniania selektorów wyboru obiektów w konfiguracji marki.
Parametry
brandId `string` (wymagane) Identyfikator marki, dla której mają zostać wyświetlone obiektyPunkt końcowy
GET /api/brands/{brandId}/facilities
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/facilities \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich marek powiązanych z organizacją klubu.
Punkt końcowy
GET /api/clubs/{club}/brands
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/brands \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich typów kalendarzy
Punkt końcowy
GET /api/programs/calendars/calendar-types
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/programs/calendars/calendar-types \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca zasób KYC klubu.
Parametry
clubId `string` (wymagane) Identyfikator klubu. key `string` (wymagane) Klucz zasobu KYC.Punkt końcowy
GET /api/clubs/{clubId}/kyc-assets/{key}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets/{key} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca informacje KYC klubu.
Punkt końcowy
GET /api/clubs/{clubId}/kyc
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje informacje KYC klubu.
Parametry
clubId `string` (wymagane) Identyfikator klubu do zaktualizowania. body `object` (wymagane)Punkt końcowy
PUT /api/clubs/{clubId}/kyc
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przesyła zasób KYC klubu.
Parametry
clubId `string` (wymagane) Identyfikator klubu. file `string` (wymagane) Plik do przesłania.Punkt końcowy
POST /api/clubs/{clubId}/kyc-assets
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca ustawienia preferencji klubu.
Punkt końcowy
GET /api/club/preferences/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy lub aktualizuje wpis preferencji klubu.
Treść żądania
Punkt końcowy
POST /api/club/preferences/:club
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zwraca listę członków z umową.
Punkt końcowy
GET /api/clubpass/user/email/exist/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/email/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę członków z umową.
Punkt końcowy
GET /api/clubpass/user/phone/exist/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/phone/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę użytkowników należących do wskazanego klubu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostępPunkt końcowy
GET /api/clubs/{club}/members
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/members \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca informację, czy klub jest otwarty w podanym dniu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. date `string` (wymagane) Data do sprawdzenia w formacie UnixPunkt końcowy
GET /api/club-busy-hours/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club-busy-hours/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie metadane klubu wyświetlane w witrynach Example Club.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/clubs/clubpage/clubdata/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/clubpage/clubdata/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje metadane klubu nowymi danymi przekazanymi z interfejsu. Pola nieobecne w treści żądania są zachowywane (bez SET i bez REMOVE). Pola wysłane jako `null` lub pusty ciąg są czyszczone. Przekaż `updateAll: false`, aby użyć dedykowanej ścieżki częściowego scalania; w obu przypadkach wywołujący nigdy nie muszą wysyłać pól, które do nich nie należą.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. body `string` (wymagane) Obiekt JSON z danymi klubu do zaktualizowania.Punkt końcowy
POST /api/clubs/clubpage/updateclub/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/clubpage/updateclub/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
dodaj nowy rekord niestandardowego śledzenia
Parametry
club `string` (wymagane) identyfikator klubu body `string` (wymagane) Tablica elementów niestandardowego śledzenia.Punkt końcowy
POST /api/clubs/{club}/customtracking
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca niestandardowe śledzenie dla wybranego klubu
Punkt końcowy
GET /api/clubs/customtracking/:clubID
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/customtracking/:clubID \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj wpisy niestandardowego śledzenia
Parametry
club `string` (wymagane) identyfikator klubu body `string` (wymagane) Obiekt JSON z danymi klubu do zaktualizowania.Punkt końcowy
POST /api/clubs/{club}/customtracking/update
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking/update \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca domyślny obraz witryny klubu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/clubs/{club}/default-shop-front
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/default-shop-front \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl drzwi dostępne w obiekcie
Parametry
body `object` (wymagane) Obiekt JSON z danymi klubu do zaktualizowania.Punkt końcowy
POST /api/clubs/integrations/doors/:facilityId
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odblokuj wybrane drzwi w obiekcie
Parametry
body `object` (wymagane) Obiekt JSON z danymi klubu do zaktualizowania.Punkt końcowy
POST /api/clubs/integrations/doors/unlock
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/unlock \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie integracje i szczegóły konfiguracji wskazanego klubu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/clubs/integrations/list/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/integrations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje metadane klubu nowymi danymi przekazanymi z interfejsu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. body `object` (wymagane) Obiekt JSON z danymi klubu do zaktualizowania.Punkt końcowy
POST /api/clubs/integrations/update/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wartość logiczną określającą, czy klub znajduje się w kraju europejskim
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. date `string` (wymagane) Data do sprawdzenia w formacie UnixPunkt końcowy
GET /api/clubs/is-eu/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/is-eu/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca ogólną listę wszystkich klubów w bazie danych.
Punkt końcowy
GET /api/clubs/listclubs
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/listclubs \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca informację, czy klub jest otwarty w podanym dniu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. date `string` (wymagane) Data do sprawdzenia w formacie UnixPunkt końcowy
GET /api/clubs/{club}/open-on/{date}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/open-on/{date} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz opinie o klubie z DynamoDB.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
GET /api/clubs/{club}/reviews
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz ustawienia opinii o klubie z DynamoDB.
Parametry
facilityId `string` (wymagane) identyfikator obiektuPunkt końcowy
GET /api/clubs/{club}/reviews-settings
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj ustawienia opinii o klubie w DynamoDB.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
PUT /api/clubs/{club}/reviews-settings
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponownie włącz automatyczną publikację w ustawieniach opinii.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Publikuje opinię
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. review `string` (wymagane) Wewnętrzny identyfikator opinii do opublikowania.Punkt końcowy
PUT /api/clubs/{club}/reviews/{review}/publish
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/publish \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponownie włącz automatyczną publikację w ustawieniach opinii.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Publikuje odpowiedź na opinię za pośrednictwem serwisu, z którego pochodzi (Google itp.).
Parametry
club `string` (wymagane) Identyfikator obiektu reviewId `string` (wymagane) Identyfikator opinii w PH (wyszukiwany w tabeli club-social-reviews) body `string` (wymagane)Punkt końcowy
POST /api/clubs/{club}/reviews/{reviewId}/respond
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{reviewId}/respond \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Cofa publikację opinii
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. review `string` (wymagane) Wewnętrzny identyfikator opinii, której publikację chcesz cofnąć.Punkt końcowy
PUT /api/clubs/{club}/reviews/{review}/un-publish
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/un-publish \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca z bazy danych PH listę właścicieli należących do wskazanego klubu
Parametry
clubID `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostępPunkt końcowy
GET /api/clubs/{clubID}/owners
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/owners \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie plany członkostwa obiektu.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektuPunkt końcowy
GET /api/facilities/membership-plans/:facilityId
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje rekord planu członkostwa.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu body `object` (wymagane) Obiekt JSON z danymi planu członkostwa do zaktualizowania.Punkt końcowy
PUT /api/facilities/membership-plans/:facilityId
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponownie włącz automatyczną publikację w ustawieniach opinii.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponownie włącz automatyczną publikację w ustawieniach opinii.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich dostępnych walut
Punkt końcowy
GET /api/currencies
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/currencies \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca lokalizację geograficzną na podstawie adresu IP.
Parametry
ip `string` (wymagane) Adres IP do sprawdzeniaPunkt końcowy
GET /api/geo/ip-location/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-location/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca lokalizację geograficzną bieżącego użytkownika na podstawie jego adresu IP.
Punkt końcowy
GET /api/geo/ip-current
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-current \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wyłącznie publiczny adres IP klienta wysyłającego żądanie (bez geolokalizacji i bez wywołań API zewnętrznych firm). Używane przez aplet Agenta AI do porównania publicznego adresu IP przeglądarki z adresem WAN IP zgłaszanym przez urządzenie w celu wykrycia tej samej sieci.
Punkt końcowy
GET /api/geo/client-ip
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/geo/client-ip \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Parser numerów telefonów.
Parametry
body `string` (wymagane) Obiekt JSON z numerem, który chcesz przeanalizować.Punkt końcowy
POST /api/phone/parser
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/phone/parser \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca urządzenie zegara głównego
Parametry
club_id `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie.Punkt końcowy
GET /api/clubs/{club_id}/smart-club/health-check/master-clock
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca główne urządzenie Sonos
Parametry
club_id `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie.Punkt końcowy
GET /api/clubs/{club_id}/smart-club/health-check/sonos-mqtt
Przykładowe żądanie
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"
Odpowiedź
{}
pobierz powiadomienia Duress o niskim poziomie baterii dla wskazanego klubu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/clubs/{club}/smart-club/health-check/low-battery-duress
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca dane analizy sieci
Parametry
club_id `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie.Punkt końcowy
GET /api/clubs/{club_id}/smart-club/health-check/network-analysis
Przykładowe żądanie
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"
Odpowiedź
{}
wyślij powiadomienia Duress o niskim poziomie baterii dla wskazanego klubu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca dane testów szybkości urządzeń dla każdego typu urządzenia
Parametry
club_id `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie.Punkt końcowy
GET /api/clubs/{club_id}/smart-club/health-check/speed-test
Przykładowe żądanie
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"
Odpowiedź
{}
Pobierz statystyki wizytówek obiektu. Domyślnie zwraca zagregowane dzienne sumy ze wszystkich wydawców, a pojedynczego wydawcę, gdy podano `publisherId`.
Parametry
facilityId `string` (wymagane) publisherId `string` (opcjonalne) startDate `string` (wymagane) endDate `string` (wymagane)Punkt końcowy
GET /api/facilities/{facilityId}/directory-insights
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz zagregowane statystyki wizytówek marki ze wszystkich wydawców.
Parametry
brandId `string` (wymagane) startDate `string` (wymagane) endDate `string` (wymagane)Punkt końcowy
GET /api/brands/{brandId}/directory-insights
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Najczęstsze słowa kluczowe wyszukiwania (z podziałem na zawierające nazwę marki i bez niej) dla obiektu, obecnie pobierane z Google Business Profile.
Parametry
facilityId `string` (wymagane) publisherId `string` (opcjonalne) Domyślnie "google" — obecnie obsługiwany jest tylko Google. startDate `string` (wymagane) endDate `string` (wymagane) limit `string` (opcjonalne)Punkt końcowy
GET /api/facilities/{facilityId}/directory-search-keywords
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Najczęstsze słowa kluczowe wyszukiwania dla marki, zagregowane ze wszystkich obiektów.
Parametry
brandId `string` (wymagane) startDate `string` (wymagane) endDate `string` (wymagane) limit `string` (opcjonalne)Punkt końcowy
GET /api/brands/{brandId}/directory-search-keywords
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl pytania i odpowiedzi dla obiektu.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/facilities/{facilityId}/qna
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odpowiedz na pytanie.
Punkt końcowy
POST /api/facilities/{facilityId}/qna/{questionId}/answer
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń odpowiedź.
Punkt końcowy
DELETE /api/facilities/{facilityId}/qna/{questionId}/answer/{answerId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer/{answerId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wydawców włączonych dla organizacji obiektu wraz ze stanem ich połączenia.
Parametry
facilityId `string` (wymagane) organisationId `string` (wymagane)Punkt końcowy
GET /api/facilities/{facilityId}/directory-publishers/resolved
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-publishers/resolved \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz Access Policies dla obiektu
Istniejąca konfiguracja dostępu jest przy pierwszym odczycie automatycznie przekształcana w równoważne, egzekwowane zasady.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/policies/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zastąp Access Policies z optymistyczną kontrolą wersji
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/policies/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Utwórz zasadę dostępu (Access Policy)
Parametry
facilityId `string` (wymagane)Punkt końcowy
POST /api/door-access/policies/{facilityId}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj jedną zasadę dostępu (Access Policy)
Parametry
facilityId `string` (wymagane) policyId `string` (wymagane)Punkt końcowy
PATCH /api/door-access/policies/{facilityId}/{policyId}
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń jedną zasadę dostępu (Access Policy)
Parametry
facilityId `string` (wymagane) policyId `string` (wymagane) revision `integer` (wymagane)Punkt końcowy
DELETE /api/door-access/policies/{facilityId}/{policyId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zduplikuj zasadę dostępu (Access Policy) z nowym stałym identyfikatorem
Parametry
facilityId `string` (wymagane) policyId `string` (wymagane)Punkt końcowy
POST /api/door-access/policies/{facilityId}/{policyId}/duplicate
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Policz użytkowników i drzwi objętych wszystkimi Access Policies
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/policies/{facilityId}/impacts
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/impacts \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Policz użytkowników i drzwi objętych zasadą dostępu (Access Policy)
Parametry
facilityId `string` (wymagane) policyId `string` (wymagane)Punkt końcowy
GET /api/door-access/policies/{facilityId}/{policyId}/impact
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/impact \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl kontrolery drzwi w obiekcie wraz z obowiązującymi regułami Door/Gate Access
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/doors/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisz nadpisania dla poszczególnych drzwi, ikonę i konfigurację po stronie urządzenia
Jedno miejsce zapisu wszystkiego, co aplet administracyjny DGA edytuje dla drzwi: - `accessRulesOverride` / `geofenceOverride` — przekaż `null`, aby wyczyścić i wrócić do ustawienia domyślnego obiektu. - `icon` — stały klucz przesyłany w API (zob. services/door-access/door-icons.js); nieznane wartości zwracają 400. - `holdTimeSeconds` (1–30), `maintenanceMode` (`off` / `force-open` / `force-closed`), `doorLocation` (dowolny tekst, ≤64 znaki), `playNotificationSoundOnRelayToggle` (wartość logiczna), `autoUnlockSchedule` (tygodniowa siatka okien). Kiedyś były to pola dostępne tylko w Device Management, ale aplet zapisuje je teraz bezpośrednio, dzięki czemu administratorzy nie muszą opuszczać panelu drzwi przy codziennych zmianach konfiguracji. Gdy zmieniane jest którekolwiek z pól po stronie urządzenia, trasa przesyła też odpowiednie zmienne środowiskowe Balena (`RELAY_NOTIFICATION_SOUND`, `DOOR_MAINTENANCE_MODE`, `DOOR_AUTO_UNLOCK_SCHEDULE`) i wysyła polecenie MQTT `unlockUpdates`, aby urządzenie przejęło nową konfigurację bez czekania na następne odświeżenie zmiennych Balena. Działanie typu best effort — odpowiedź ma kod 200 nawet wtedy, gdy Balena jest chwilowo nieosiągalna.
Parametry
facilityId `string` (wymagane) doorId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/doors/{facilityId}/{doorId}/override
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Lekkie sprawdzenie stanu Balena na potrzeby komunikatu o ponownym uruchomieniu w panelu drzwi
Panel apletu DGA pobiera te dane z opóźnieniem, gdy administrator otwiera drzwi, aby wyświetlić właściwy komunikat „zapisanie spowoduje ponowne uruchomienie kontrolera”: domyślny wariant „kilka sekund” lub mocniejszy wariant „kilka minut”, gdy oczekuje również aktualizacja wersji. Zwraca płaską migawkę uzyskaną z `balena.models.device.get()`. W razie błędu zwraca `data: null` (zamiast błędu 5xx), dzięki czemu awaria Balena pogarsza jedynie treść komunikatu, zamiast blokować otwarcie panelu.
Parametry
facilityId `string` (wymagane) doorId `string` (wymagane)Punkt końcowy
GET /api/door-access/doors/{facilityId}/{doorId}/device-status
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/device-status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Nadpisanie administracyjne — odblokuj drzwi z apletu
Krótko przełącza przekaźnik, używając bieżącego `holdTimeSeconds` drzwi, zapisując wiersz audytu `admin-override` w ph-door-app-access-events, aby działanie można było przypisać w Rejestrach dostępu. Zawsze kończy się powodzeniem niezależnie od `maintenanceMode === 'force-closed'` — to awaryjne obejście dla administratora. Zwraca 200, gdy tylko publikacja MQTT zostanie wysłana; na stany potwierdzone / nieudane / timed_out nie czeka się tutaj (starszy przepływ /api/devices/door-controllers + /api/ics/devices/command również nie czeka na wynik).
Parametry
facilityId `string` (wymagane) doorId `string` (wymagane)Punkt końcowy
POST /api/door-access/doors/{facilityId}/{doorId}/unlock
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/unlock \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odtwórz na kontrolerze drzwi sygnał dźwiękowy ułatwiający lokalizację
Publikuje polecenie MQTT `beep`, aby kontroler wyemitował trzy sygnały średniej długości (każdy ok. 500 ms, przerwa ok. 350 ms, łącznie ok. 2 s). Używane przez administratorów do fizycznego zlokalizowania kontrolera drzwi na miejscu. Starszy przycisk w Device Management używa ok. 30-sekundowej serii krótkich sygnałów, ale sterownik brzęczyka w oprogramowaniu układowym niezawodnie emituje tylko pierwszy z nich, dlatego aplet wysyła krótszy, bardziej niezawodny wzorzec. Brak wiersza audytu — działanie diagnostyczne bez wpływu na kontrolę dostępu.
Parametry
facilityId `string` (wymagane) doorId `string` (wymagane)Punkt końcowy
POST /api/door-access/doors/{facilityId}/{doorId}/identify
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/identify \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zdalnie uruchom ponownie kontroler drzwi
Publikuje to samo polecenie MQTT `rebootDevice` bez oczekiwania na wynik, które wysyła starszy przycisk „Remotely Reboot Device” w Device Management, ale chronione modułem `door-gate-access`, dzięki czemu administratorzy DGA mogą ponownie uruchomić kontroler z sekcji Advanced panelu drzwi bez osobnego uprawnienia `device-management`. Zwraca 200, gdy tylko publikacja zostanie wysłana; urządzenie przechodzi w tryb offline na czas ponownego uruchamiania.
Parametry
facilityId `string` (wymagane) doorId `string` (wymagane)Punkt końcowy
POST /api/door-access/doors/{facilityId}/{doorId}/reboot
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/reboot \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl wiersze User Access w obiekcie
Zwraca wszystkie nieusunięte wiersze dostępu użytkowników w obiekcie. Obsługuje filtry po stronie klienta (source, search, accessEnabled, hasGrants). Obliczanie `hideExcluded` po stronie serwera z fazy 4 zostanie dodane po wdrożeniu hybrydowego mechanizmu oceny uprawnień; na razie parametr jest akceptowany, ale zwracany jest pełny zestaw.
Parametry
facilityId `string` (wymagane) search `string` (opcjonalne) source `string` (opcjonalne) accessEnabled `string` (opcjonalne) hasGrants `string` (opcjonalne) hideExcluded `boolean` (opcjonalne) Gdy true, ukrywani są zsynchronizowani użytkownicy (source != manual), którzy nie mogą przejść przez żadne drzwi w żadnym czasie w tym obiekcie. Odpowiedź zawiera obiekt `hidden: { count, sample }`.Punkt końcowy
GET /api/door-access/users/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ręcznie utwórz wiersz User Access w obiekcie
Tworzy nowy wiersz z `source: 'manual'`. Zwraca 409 z `existingUserId`, jeśli podany telefon lub e-mail jest już przypisany do wiersza w tym obiekcie.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/users/{facilityId}
Przykładowe żądanie
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 '{}'
Pobierz pojedynczy wiersz User Access
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
GET /api/door-access/users/{facilityId}/{userId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Częściowa aktualizacja wiersza User Access
Edytuje dowolny podzbiór pól tożsamości / autoryzacji. Przekaż `null`, aby wyczyścić pole opcjonalne. Zwraca 409, jeśli nowy telefon lub e-mail koliduje z innym wierszem w tym samym obiekcie. `appMessage` przyjmuje tę samą strukturę co komunikat dla całego obiektu w PUT /api/door-access/rules/{facilityId} — treść, ważność, opcjonalny link, opcjonalny harmonogram rozpoczęcia/zakończenia. Aplikacja mobilna wyświetla ten komunikat na pulpicie tylko wskazanemu użytkownikowi.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Treść żądania
Punkt końcowy
PATCH /api/door-access/users/{facilityId}/{userId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Miękko usuń wiersz User Access
Oznacza wiersz jako `deleted: true` i wyłącza dostęp. Powiązanie dziennika audytu z userId jest zachowywane; administratorzy mogą ręcznie ponownie włączyć dostęp.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
DELETE /api/door-access/users/{facilityId}/{userId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przypisanie dostępu do poszczególnych drzwi dla użytkownika
Dla każdych drzwi zwraca bieżącą deterministyczną autoryzację (`allowedNow`, `allowedVia`, `deniedReason`) oraz skonfigurowane ścieżki dla Access Policies, stałych uprawnień, harmonogramów zasad, administracyjnych uprawnień z oknami czasowymi i aktualnych zmapowanych okien ze źródeł partnerów. Zwraca też bieżącą/następną dostępność i aktualność źródeł. Ustawienia drzwi blockAllAccess i tryb konserwacji są oceniane przed wszystkimi ścieżkami zezwalającymi.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
GET /api/door-access/users/{facilityId}/{userId}/effective-access
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/effective-access \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zbiorczo utwórz wiersze User Access z importu CSV
Tworzy wiele wierszy `source: 'manual'` w jednym żądaniu, korzystając z tej samej walidacji, normalizacji telefonu/e-maila, sprawdzania kolizji w obrębie obiektu, automatycznych wiadomości i (opcjonalnie) logiki zaproszeń co pojedyncze tworzenie. Wiersze są przetwarzane w kolejności, więc późniejszy wiersz kolidujący z wcześniej utworzonym jest zgłaszany jako duplikat. Uprawnienia są podawane jako już ustalone identyfikatory drzwi/grup (klient zamienia nazwy na identyfikatory). Uprawnienia z oknami czasowymi są celowo odrzucane w trybie zbiorczym i należy je dodać po imporcie przez punkt końcowy zastępowania dla poszczególnych użytkowników. Nigdy nie zgłasza wyjątku dla pojedynczego wiersza; wynik każdego wiersza jest raportowany osobno.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/users/{facilityId}/bulk
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zastąp dodatkowe uprawnienia Access Time Window w wierszu User Access
Zastępuje tylko `timeWindowGrants`; stałe `grants` i `sourceTimeWindows` z integracji pozostają bez zmian. Każdy element wymaga zakresu (`facilityWide`, `doors` lub `groups`) oraz bezwzględnego lub tygodniowego `window`. Wysłanie pustej tablicy jawnie czyści wszystkie okna administracyjne.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/users/{facilityId}/{userId}/time-window-grants
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zablokuj wiersz User Access przed aktualizacjami z synchronizacji źródła
Ustawia `decoupledFromSource: true`, czyści wszystkie `sourceTimeWindows` należące do integracji i sprawia, że synchronizacja (cron + strumienie) rejestruje i pomija ten wiersz, dopóki administrator nie wyczyści flagi przez /recouple.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
POST /api/door-access/users/{facilityId}/{userId}/decouple
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/decouple \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponownie połącz wiersz User Access z aktualizacjami z synchronizacji źródła
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
POST /api/door-access/users/{facilityId}/{userId}/recouple
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/recouple \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odwołaj wszystkie tokeny odświeżania aplikacji Door/Gate Access użytkownika
Odwołuje na podstawie zapisanego telefonu/e-maila użytkownika (tabela tokenów odświeżania ma klucz `sha256(plaintext)`; indeksy GSI byMobilePhone / byEmail pozwalają rozesłać usuwanie z poziomu jednego użytkownika). Inni użytkownicy z tym samym telefonem/e-mailem w innym obiekcie również zostaliby wylogowani.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
POST /api/door-access/users/{facilityId}/{userId}/logout
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/logout \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyślij (ponownie) użytkownikowi e-mail z zaproszeniem do aplikacji Door/Gate Access
Wymusza wysłanie e-maila z zaproszeniem do pobrania aplikacji na zapisany adres e-mail użytkownika (tylko e-mail, bez SMS). Pomija warunki kwalifikacji i zabezpieczenia przed ponownym wysłaniem stosowane w automatycznej synchronizacji — to jawne działanie administratora. Zwraca 400, jeśli użytkownik nie ma zapisanego adresu e-mail.
Parametry
facilityId `string` (wymagane) userId `string` (wymagane)Punkt końcowy
POST /api/door-access/users/{facilityId}/{userId}/resend-invite
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/resend-invite \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podgląd odbiorców zbiorczej wysyłki zaproszeń do aplikacji
Wyznacza zbiór użytkowników, którzy otrzymaliby e-mail z zaproszeniem do aplikacji. Pulę bazową stanowi każdy nieusunięty użytkownik z adresem e-mail, który nigdy nie korzystał z aplikacji (puste `appLastSeenAt`). Domyślnie pula jest zawężana do użytkowników, którzy obecnie mają dostęp (dopasowanie reguły lub uprawnienie) i nigdy nie zostali zaproszeni; `includeAlreadyInvited` i `includeNoAccess` ją poszerzają. Żadne e-maile nie są wysyłane — zwracane są liczby, niewielka próbka i identyfikatory userId kandydatów dla punktu końcowego wykonania.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/users/{facilityId}/bulk-invite/preview
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyślij e-maile z zaproszeniem do aplikacji do grupy użytkowników
Wysyła e-mail z zaproszeniem do pobrania aplikacji do każdego z podanych userId (maks. 50 na żądanie; klient dzieli pełną listę kandydatów z podglądu na partie). Każdy użytkownik jest ponownie weryfikowany w chwili wysyłki — wiersze, które już nie istnieją, nie mają adresu e-mail lub od czasu podglądu skorzystały z aplikacji, są pomijane, a nie oznaczane jako nieudane. Wyniki dla poszczególnych użytkowników są raportowane osobno, aby klient mógł podsumować wysłane / nieudane / pominięte.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/users/{facilityId}/bulk-invite
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl grupy drzwi w obiekcie
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/door-groups/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz grupę drzwi
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/door-groups/{facilityId}
Przykładowe żądanie
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 '{}'
Pobierz pojedynczą grupę drzwi
Parametry
facilityId `string` (wymagane) groupId `string` (wymagane)Punkt końcowy
GET /api/door-access/door-groups/{facilityId}/{groupId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj grupę drzwi
Parametry
facilityId `string` (wymagane) groupId `string` (wymagane)Treść żądania
Punkt końcowy
PATCH /api/door-access/door-groups/{facilityId}/{groupId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Miękko usuń grupę drzwi
Parametry
facilityId `string` (wymagane) groupId `string` (wymagane)Punkt końcowy
DELETE /api/door-access/door-groups/{facilityId}/{groupId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl integracje partnerów skonfigurowane w obiekcie
Zwraca integracje partnerów obiektu (id, nazwa, logo, włączenie), łącząc ph-facility-partner-config z katalogiem ph-partners. Ograniczone do modułu door-gate-access (dzięki czemu administratorzy bez dostępu do external-integrations nadal mogą wyświetlać oznaczenia partnerów i listę synchronizacji dla poszczególnych partnerów).
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/partners/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/partners/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odczytaj konfigurację synchronizacji User Access dla obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/sync-config/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj konfigurację synchronizacji User Access dla obiektu
Akceptowane są tylko pola kontrolowane przez administratora (`enabled`, `requireIdentifier` oraz mapa partnerów `partners`); `lastRunAt` i `lastRunCounts` zapisuje sam mechanizm synchronizacji. `partner.partners` to mapa włączenia poszczególnych partnerów z kluczem partnerId (zasada rezygnacji): gdy główne `partner.enabled` jest włączone, partner jest synchronizowany, chyba że ma tu jawny wpis `{ enabled: false }`.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/sync-config/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Odczytaj konfigurację automatycznych wiadomości do poszczególnych użytkowników dla obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/auto-messages/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj konfigurację automatycznych wiadomości do poszczególnych użytkowników dla obiektu
Zapisuje reguły, a następnie natychmiast ponownie ocenia każdy wiersz User Access w obiekcie, aby istniejący użytkownicy od razu otrzymali lub utracili automatyczną wiadomość. Wiadomości ręczne i odłączone wiersze pozostają bez zmian.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/auto-messages/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Stan ponownej oceny automatycznych wiadomości wykonywanej w tle
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/auto-messages/{facilityId}/sweep-status
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId}/sweep-status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Uruchom na żądanie synchronizację User Access dla obiektu
Synchronicznie przetwarza każde włączone źródło (partner / cctv) w obiekcie i ujednolica wiersze ph-door-access-users za pomocą kaskady deduplikacji. Zwraca liczby dla poszczególnych źródeł. Wyłączone źródła są pokazywane jako `skippedSyncDisabled: 1`, a nie pomijane, aby interfejs mógł spójnie wyświetlić oba wiersze.
Parametry
facilityId `string` (wymagane)Punkt końcowy
POST /api/door-access/sync/{facilityId}/run
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/run \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podgląd próbny zbiorczego usunięcia danych synchronizowanych z partnerem
Zwraca liczbę i próbkę wierszy dostępu użytkowników, które zostałyby miękko usunięte, oraz confirmToken, który należy odesłać do punktu końcowego wykonania. Żadne dane nie są modyfikowane. Rejestry dostępu nigdy nie są zmieniane.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/sync/{facilityId}/bulk-delete/preview
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wykonaj zbiorcze usunięcie danych synchronizowanych z partnerem (usunięcie miękkie)
Miękko usuwa każdy wiersz dostępu użytkownika synchronizowany z partnerem w zakresie. Wymaga confirmToken zwróconego przez podgląd; jeśli bieżący zbiór zmienił się od czasu podglądu, token nie będzie pasował i żądanie zostanie odrzucone (409), aby administrator ponownie je przejrzał. Rejestry dostępu są zachowywane.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/door-access/sync/{facilityId}/bulk-delete
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Ostatnia aktywność synchronizacji User Access (dziennik rozwiązywania problemów)
Zwraca najnowsze wyniki synchronizacji dla obiektu (utworzone / pominięte / wyłączone) wraz z przyczyną, aby administratorzy widzieli, dlaczego członek został lub nie został zsynchronizowany. Od najnowszych.
Parametry
facilityId `string` (wymagane) limit `integer` (opcjonalne)Punkt końcowy
GET /api/door-access/sync/{facilityId}/log
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/log \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl zdarzenia Door/Gate Access dla obiektu
Zwraca zdarzenia odblokowania z aplikacji mobilnej, nadpisania administracyjnego i zewnętrznego Partner API w jednym strumieniu w odwrotnej kolejności chronologicznej.
Parametry
facilityId `string` (wymagane) from `integer` (opcjonalne) to `integer` (opcjonalne) limit `integer` (opcjonalne)Punkt końcowy
GET /api/door-access/events/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/events/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Próbna ocena geofencingu dla pinezki trybu testowego administratora
Treść żądania
Punkt końcowy
POST /api/door-access/geofence/test
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz stan wdrożenia / aktywacji obiektu
Steruje stroną startową „Get Started” apletu i banerem postępu konfiguracji. Zwraca bieżące liczby drzwi i użytkowników, dwa wyliczane kroki podstawowe (istnieje użytkownik, istnieją drzwi), zapisane opcjonalne flagi „reviewed” oraz informację, czy obiekt jest aktywowany (oba kroki podstawowe wykonane). Gdy obiekt zostaje aktywowany po raz pierwszy, zapisywany jest znacznik czasu activatedAt.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/door-access/onboarding/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/door-access/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj opcjonalne flagi wdrożenia „reviewed” dla obiektu
Zapisuje opcjonalne flagi listy kontrolnej konfiguracji zaznaczane przez administratora (reguły dostępu, ustawienia synchronizacji, geofencing). Kroki podstawowe i aktywacja są wyliczane na bieżąco z liczby danych i nie można ich tu ustawić. Zwraca pełny odświeżony stan wdrożenia.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/door-access/onboarding/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/lead-events
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/lead-events \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/page-views
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/page-views \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/referrers
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/referrers \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/socials
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/socials \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/top-cities
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/top-cities \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/total-page-views
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/total-page-views \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca odpowiedź JSON z danymi analitycznymi obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane dane analityczne. fromDate `string` (opcjonalne) Data początkowa pobieranych danych analitycznych. toDate `string` (opcjonalne) Data końcowa pobieranych danych analitycznych.Punkt końcowy
GET /clubs/{clubId}/analytics/traffic
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/traffic \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Generuje tymczasowy token JWT (JSON Web Token) dla interfejsu, na potrzeby osadzanych wykresów Google Analytics na stronie „analytics”.
Punkt końcowy
GET /api/ga/onetimetoken
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ga/onetimetoken \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca widżety Panelu z „The Training Camp”, jeśli obiekt ma aktywnych członków.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/reporting/apps/widgets/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/apps/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie nieprzejrzane dni świąteczne obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/reporting/club/{club}/unreviewed-holidays
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/club/{club}/unreviewed-holidays \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Oznacz wszystkie nieprzejrzane dni świąteczne obiektu jako przejrzane.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
PUT /api/reporting/club/{club}/review-holidays
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/reporting/club/{club}/review-holidays \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca raport KPI w formacie CSV, z podziałem na poszczególne miesiące z ostatnich 12 miesięcy. *UWAGA* Tworzy jeden raport dla WSZYSTKICH obiektów w systemie — nie uruchamiaj go wielokrotnie równolegle, bo przeciążysz GymMaster!
Parametry
months `string` (opcjonalne) Liczba miesięcy (od bieżącej daty) do pobrania (domyślnie 12)Punkt końcowy
GET /api/reporting/gymmaster/all-clubs-kpi-report
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/all-clubs-kpi-report \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wykresy przychodów z MMS dla danego obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. range `string` (opcjonalne) Zakres w dniach (licząc wstecz od bieżącej daty), który chcemy pobraćPunkt końcowy
GET /api/reporting/gymmaster/revenuegraph/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/revenuegraph/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca dane/analizy MMS (Member Management System) dla Panelu danego obiektu. Dane obejmują statystyki GymMaster/Perfect Gym oraz inne wewnętrzne wskaźniki zbierane przez nasz system.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. range `string` (opcjonalne) Zakres w dniach (licząc wstecz od bieżącej daty), który chcemy pobraćPunkt końcowy
GET /api/reporting/gymmaster/widgets/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca dane widżetu Myzone na Panelu dla danego obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/reporting/myzone/widgets/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/myzone/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca obiekt z usługami uznanymi za niedostępne przez co najmniej jeden z naszych punktów końcowych strony stanu/monitorowania — konfigurowanych w wewnętrznym narzędziu „Uptime Kuma”.
Punkt końcowy
GET /api/reporting/statuspage/events
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/statuspage/events \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca nadchodzące rezerwacje treningów na najbliższe 7 dni.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/reporting/clubs/{club}/workout-bookings
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/reporting/clubs/{club}/workout-bookings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę historycznych dni świątecznych obiektu.
Parametry
clubId `string` (opcjonalne) Identyfikator klubu fromDate `string` (opcjonalne) Uniksowy znacznik czasu daty początkowej zakresu zwracanych dni świątecznych. toDate `string` (opcjonalne) Uniksowy znacznik czasu daty końcowej zakresu zwracanych dni świątecznych.Punkt końcowy
GET /api/clubs/{clubId}/historical-holidays
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/historical-holidays \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca automatyzacje urządzeń powiązane z obiektem.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, którego urządzenia chcesz wyświetlić.Punkt końcowy
GET /api/ics/automations/list/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ics/automations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje konfigurację urządzenia dla istniejącego ekranu/urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/ics/automations/update/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/automations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje/kojarzy fizyczny ekran lub komputer z Twoim obiektem.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz dodać urządzenie. body `string` (wymagane) Obiekt JSON nowego ekranu do przypisania.Punkt końcowy
POST /api/ics/devices/add/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/add/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Nakazuje urządzeniu połączenie z nowym identyfikatorem SSID na podstawie parametrów.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/ics/devices/changewifi/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/changewifi/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje konfigurację urządzenia dla istniejącego ekranu/urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/ics/devices/command/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/command/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wczytuje adres URL/stronę internetową na ekranie określonego urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
POST /api/ics/devices/loadurl/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/loadurl/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje konfigurację urządzenia dla istniejącego ekranu/urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
PUT /api/ics/devices/update/{club}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmienia nazwę ekranu/urządzenia. Dotyczy tylko rejestracji — w przeciwieństwie do punktu końcowego aktualizacji nic nie jest przesyłane do urządzenia, dlatego jest dostępne również dla ekranów z oprogramowaniem, którego wsparcie się zakończyło.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, do którego należy urządzenie. body `string` (wymagane) Obiekt JSON z parametrami zmiany nazwy.Punkt końcowy
PUT /api/ics/devices/rename/{club}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/rename/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera widżety i linki do multimediów offline dla obiektu na podstawie podanej daty.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, dla którego chcesz zmienić program treści szablonowych. date `string` (wymagane) Data, dla której mają zostać zwrócone adresy URL widżetów — użyj formatu `YYYY-MM-DD`.Punkt końcowy
GET /api/ics/external-resources/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ics/external-resources/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera widżety i linki do multimediów offline dla obiektu na podstawie podanej daty.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, dla którego chcesz zmienić program treści szablonowych.Punkt końcowy
GET /api/ics/list-scheduled-workouts/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ics/list-scheduled-workouts/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmienia program treści szablonowych dla danego obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, dla którego chcesz zmienić program treści szablonowych. body `string` (wymagane) Obiekt JSON z nowym programem treści szablonowych.Punkt końcowy
POST /api/ics/loadprogram/{club}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ics/loadprogram/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera konfigurację programu dla istniejącego ekranu/urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, którego dane programu chcesz pobrać.Punkt końcowy
GET /api/ics/programs/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje konfigurację programu dla istniejącego ekranu/urządzenia.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu, w którym chcesz zaktualizować urządzenie. body `string` (wymagane) Obiekt JSON z parametrami aktualizacji.Punkt końcowy
PUT /api/ics/programs/{club}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera opcje konfiguracji programu.
Punkt końcowy
GET /api/ics/programs/options/{facilityID}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/options/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Czat z kontekstem RAG — nie ma dostępu do narzędzi, tylko do prostego narzędzia żądanie|odpowiedź API, które pozwala bezpośrednio pobierać wiedzę z bazy wiedzy.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Treść żądania
Punkt końcowy
POST /api/llm/chat
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/llm/chat \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Usuń osadzenia artykułu z magazynu wektorów i zaktualizuj stan śledzenia osadzeń
Treść żądania
Punkt końcowy
DELETE /api/llm/delete-article
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl rekordy śledzenia osadzeń według organizacji i stanu
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (ustalany automatycznie, jeśli zostanie pominięty) status `string` (wymagane) Stan, według którego filtrować (jeden z: in_queue, done, anomaly, fail, deleted) Limit `string` (opcjonalne) Maksymalna liczba elementów na stronę LastEvaluatedKey `string` (opcjonalne) JSON z LastEvaluatedKey DynamoDB do paginacjiPunkt końcowy
GET /api/llm/embedding-track/by-org-and-status
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org-and-status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl rekordy śledzenia osadzeń według organizacji (opcjonalnie z filtrem typu zasobu)
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (ustalany automatycznie, jeśli zostanie pominięty) resourceType `string` (opcjonalne) Opcjonalny typ zasobu (np. "article"). Jeśli zostanie podany, filtruje rekordy, w których resourceTypeId zaczyna się od "{type}#". Limit `string` (opcjonalne) Maksymalna liczba elementów na stronę LastEvaluatedKey `string` (opcjonalne) JSON z LastEvaluatedKey DynamoDB do paginacjiPunkt końcowy
GET /api/llm/embedding-track/by-org
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zainicjuj kolekcję bazy danych wektorów organizacji
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Punkt końcowy
POST /api/llm/init-org
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/llm/init-org \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyszukiwanie semantyczne w bazie wiedzy
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Treść żądania
Punkt końcowy
POST /api/llm/semantic-search
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Rozpocznij strumieniowe przetwarzanie artykułów oczekujących w kolejce na osadzenie, z aktualizacjami postępu w czasie rzeczywistym
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Punkt końcowy
POST /api/llm/start-embedding-stream
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/llm/start-embedding-stream \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wstaw lub zaktualizuj osadzenia artykułu w bazie danych wektorów
Obsługuje osadzanie artykułu na podstawie jego bieżącego stanu: - Jeśli artykuł jest nieopublikowany LUB prywatny: usuwa osadzenia - Jeśli artykuł jest opublikowany I publiczny: ponownie osadza pełną treść Zawsze wymaga pełnej treści artykułu.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Treść żądania
Punkt końcowy
POST /api/llm/upsert-embeddings
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Testowy punkt końcowy do zbiorczego usuwania osadzeń artykułów według organizacji i opcjonalnie stanu
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (ustalany automatycznie z kontekstu użytkownika, jeśli zostanie pominięty) status `string` (opcjonalne) Stan, według którego filtrować (opcjonalny — jeśli zostanie pominięty, usuwane są WSZYSTKIE artykuły organizacji niezależnie od stanu) hardDelete `string` (opcjonalne) Czy trwale usunąć rekordy śledzenia osadzeń (true), czy usunąć je miękko przez aktualizację stanu (false)Punkt końcowy
DELETE /api/llm/test/batch-delete-by-status
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/batch-delete-by-status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przekształć tekst i podziel go na fragmenty ze szczegółowymi statystykami
Testowy punkt końcowy, który przekształca tekst i dzieli go na fragmenty, a następnie podaje szczegółowe statystyki rozkładu fragmentów, w tym liczby znaków, wartości procentowe i wskaźniki jakości, ułatwiające ocenę skuteczności podziału.
Treść żądania
Punkt końcowy
POST /api/llm/test/transform-chunk
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz łączną liczbę wektorów w indeksie wektorów organizacji
Testowy punkt końcowy do policzenia wszystkich wektorów w indeksie wektorów organizacji bieżącego użytkownika
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Punkt końcowy
GET /api/llm/test/vector-count
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-count \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń z indeksu wektorów wszystkie wektory dla określonego articleId
Testowy punkt końcowy do usunięcia z indeksu wektorów organizacji bieżącego użytkownika wszystkich wektorów powiązanych z określonym articleId.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany) articleId `string` (wymagane) articleId, dla którego mają zostać usunięte wektory dryRun `string` (opcjonalne) Jeśli true, pokazuje tylko, co zostałoby usunięte, bez faktycznego usuwaniaPunkt końcowy
DELETE /api/llm/test/vector-delete-article
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/vector-delete-article \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przetestuj Vector SDK, wyświetlając wszystkie indeksy
Testowy punkt końcowy do weryfikacji łączności z Vector SDK i wyświetlenia wszystkich indeksów w zasobniku wektorów
Punkt końcowy
GET /api/llm/test/vector-indices
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-indices \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zainicjuj indeks wektorów dla organizacji
Tworzy zasobnik i indeks wektorów dla organizacji bieżącego użytkownika
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany)Punkt końcowy
POST /api/llm/test/vector-init-index
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/llm/test/vector-init-index \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz wszystkie metadane wektorów dla określonego articleId
Testowy punkt końcowy do pobrania z indeksu wektorów wszystkich fragmentów wektorowych i ich metadanych dla określonego articleId. Przydatny do sprawdzenia, jak artykuł jest dzielony na fragmenty i przechowywany. Filtrowaniem zajmuje się usługa magazynu wektorów.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany) articleId `string` (wymagane) Identyfikator artykułu, dla którego mają zostać pobrane metadane wektorówPunkt końcowy
GET /api/llm/test/vector-metadata-by-article
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-metadata-by-article \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz z indeksu wektorów ostatnie wektory z metadanymi
Testowy punkt końcowy do pobrania z indeksu wektorów organizacji bieżącego użytkownika 10 najnowszych wektorów z metadanymi (ale bez danych wektorowych). Przydatny do sprawdzenia struktury metadanych.
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji (zostanie wykryty automatycznie, jeśli nie zostanie podany) limit `string` (opcjonalne) Liczba zwracanych ostatnich wektorów (maks. 100)Punkt końcowy
GET /api/llm/test/vector-recent
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-recent \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przesyła zasób dla Marketing Manager/Designer do magazynu S3.
Parametry
file `string` (opcjonalne) Nazwa pliku lub zasobu do przesłania.Punkt końcowy
POST /api/marketing/design/static/download
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/marketing/design/static/download \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca pojedyncze zasoby w formacie JSON do wczytania w menedżerze zasobów.
Parametry
id `string` (wymagane) Identyfikator zasobu do pobrania. organisationId `string` (wymagane) Identyfikator organizacji obiektu, do którego należy zasób.Punkt końcowy
GET /api/marketing/assets/get/{id}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie zasoby projektowe.
Parametry
body `string` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać. organisationId `string` (wymagane) Identyfikator organizacji obiektu, do którego należy zasób. useCache `string` (opcjonalne) search `string` (opcjonalne) Zapytanie wyszukiwania do filtrowania zasobów według nazwy lub tagów. brand `string` (opcjonalne) Marka, według której filtrować zasoby. tag `string` (opcjonalne) Tag, według którego filtrować zasoby.Punkt końcowy
GET /api/marketing/assets/get
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca jedną stronę zasobów marketingowych do druku dla organizacji. Używa Algolia do wyszukiwania według trafności i paginacji stronami (z łączną liczbą), a gdy Algolia jest niedostępna, korzysta z DynamoDB.
Parametry
organisationId `string` (wymagane) Identyfikator organizacji obiektu, do którego należą zasoby. search `string` (opcjonalne) Zapytanie wyszukiwania do filtrowania zasobów według nazwy lub tagów. brand `string` (opcjonalne) Marka, według której filtrować zasoby. tag `string` (opcjonalne) Tag, według którego filtrować zasoby. page `string` (opcjonalne) Numer strony do pobrania (liczony od zera). limit `string` (opcjonalne) Liczba zasobów na stronę (maks. 300). useCache `string` (opcjonalne) Gdy false, pomija Algolia i wysyła zapytania bezpośrednio do DynamoDB.Punkt końcowy
GET /api/marketing/assets
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę dostępnych zasobów przesłanych przez menedżera zasobów.
Parametry
organisationId `string` (wymagane)Punkt końcowy
GET /api/marketing/assets/list
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/list \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje/zapisuje zasób.
Parametry
body `string` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać. organisationId `string` (wymagane) Identyfikator organizacji obiektu, do którego należy zasób.Punkt końcowy
PUT /api/marketing/assets/save
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/assets/save \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przesyła zasób dla Marketing Manager/Designer do magazynu S3.
Parametry
file `string` (opcjonalne) Nazwa pliku lub zasobu do przesłania. organisationId `string` (opcjonalne) Identyfikator organizacji, do której należy zasób.Punkt końcowy
POST /api/marketing/assets/upload
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/marketing/assets/upload \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich stron niestandardowych organizacji.
Parametry
organisationId `string` (wymagane) Wewnętrzny identyfikator organizacji, dla której mają zostać zwrócone strony niestandardowe.Punkt końcowy
GET /api/marketing/custom-pages
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wstawia lub aktualizuje stronę niestandardową organizacji.
Parametry
organisationId `string` (wymagane) Wewnętrzny identyfikator organizacji, dla której mają zostać zwrócone strony niestandardowe. body `object` (wymagane) Dane strony niestandardowej do wstawienia lub aktualizacji.Punkt końcowy
PUT /api/marketing/custom-pages
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich stron niestandardowych obiektu.
Parametry
facilityId `string` (wymagane) Wewnętrzny identyfikator obiektu, dla którego mają zostać zwrócone strony niestandardowe.Punkt końcowy
GET /api/facilities/{facilityId}/marketing/custom-pages
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca wszystkie wyeksportowane/wyrenderowane projekty dla określonego identyfikatora obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. sort `string` (opcjonalne) Filtr sortowania projektów; obsługiwane wartości: 'oldest', 'newest' lub 'design'.Punkt końcowy
GET /api/marketing/designs/{club}/exports
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/exports \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca w formacie JSON zawartość HTML pojedynczego projektu do wczytania w edytorze.
Parametry
id `string` (wymagane) Identyfikator projektu do pobrania.Punkt końcowy
GET /api/marketing/designs/get/{id}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę mapowań pól wejściowych w projektach i szablonach projektów marketingowych i do druku
Parametry
clubId `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. availableFeatures `string` (opcjonalne) Zwróć wszystkie elementy z określonymi funkcjami brand `string` (opcjonalne) Filtruje projekty według marki features `string` (opcjonalne) Filtruj wyniki na podstawie funkcjiPunkt końcowy
GET /api/marketing/designs/input-mapping/{clubId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/input-mapping/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę projektów dostępnych dla danego obiektu, których można używać w projektach (Print Designs) tworzonych w edytorze marketingowym/do druku w Performance Hub.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. designAdmin `string` (opcjonalne) Zwróć wszystkie dane projektów (widok administratora / użytkownik musi być administratorem). brand `string` (opcjonalne) Filtruje projekty według markiPunkt końcowy
GET /api/marketing/designs/{club}/list
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wymusza w systemie wyrenderowanie/ponowne wyrenderowanie wszystkich miniatur i podglądów projektów (używane głównie po zmianie zasobów „źródłowych” w S3 itp.)... **UWAGA** Tę funkcję można wywołać tylko raz na X minut (a gdy renderowanie już trwa, nie można jej wywołać). Ma to zapobiec nadmiernemu obciążeniu naszych serwerów renderowaniem wszystkich projektów...
Punkt końcowy
GET /api/marketing/designs/render-all-thumbnails
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/render-all-thumbnails \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Inicjuje renderowanie projektu dynamicznego
Parametry
body `string` (wymagane) Obiekt JSON z danymi obiektu, które chcesz wysłać do procesora renderowania projektów...Punkt końcowy
POST /api/marketing/designs/dynamic/render-design
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/marketing/designs/dynamic/render-design \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje/zapisuje/aktualizuje projekt.
Parametry
body `string` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
PUT /api/marketing/designs/{club}/save
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca pojedynczy projekt statyczny w formacie JSON do wczytania
Parametry
id `string` (wymagane) Identyfikator projektu statycznego do pobrania.Punkt końcowy
GET /api/marketing/designs/static/get/{id}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/static/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje/zapisuje/aktualizuje szablon projektu statycznego.
Parametry
body `string` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
PUT /api/marketing/designs/static/{club}/save
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/static/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuwa z systemu zmienną ustawioną przez użytkownika.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. body `string` (wymagane) JSON zawierający identyfikator zmiennej do usunięcia.Punkt końcowy
DELETE /api/marketing/variables/{club}/delete
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/marketing/variables/{club}/delete \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę zmiennych dostępnych dla danego obiektu, których można używać w projektach (Print Designs) tworzonych w edytorze marketingowym/do druku w Performance Hub.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie.Punkt końcowy
GET /api/marketing/variables/{club}/list
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/marketing/variables/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy jedną nową zmienną użytkownika dla danego obiektu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. body `string` (wymagane) Obiekt JSON z nową zmienną.Punkt końcowy
POST /api/marketing/variables/{club}/new
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/marketing/variables/{club}/new \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaje/zapisuje/aktualizuje w systemie jedną lub więcej zmiennych projektu za pomocą tablicy obiektów.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator obiektu wysyłającego żądanie. body `string` (wymagane) Tablica z jednym lub większą liczbą obiektów JSON do dodania/aktualizacji (pozwala zapisać wiele elementów/obiektów w jednym żądaniu API).Punkt końcowy
PUT /api/marketing/variables/{club}/save
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/variables/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca manifest dokumentacji MCP dla zalogowanego użytkownika
Obsługuje stronę `/mcp-docs` w aplikacji. Zwraca adres URL serwera MCP, obsługiwane nagłówki uwierzytelniania, tożsamość wywołującego i flagę administratora oraz przefiltrowaną listę narzędzi (filtrowaną identycznie jak `/mcp/tools/list`, więc strona dokumentacji nigdy nie pokazuje narzędzia, z którego wywołujący nie może faktycznie korzystać).
Punkt końcowy
GET /api/mcp/docs-manifest
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/mcp/docs-manifest \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz umowę użytkownika.
Parametry
body `object` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
POST /api/member-agreements/contracts-tna/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę umów.
Punkt końcowy
GET /api/member-agreements/contracts-tna/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń umowę użytkownika.
Punkt końcowy
DELETE /api/member-agreements/contracts-tna/:club/:id
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca szczegóły umowy.
Punkt końcowy
GET /api/member-agreements/contracts-tna/:club/:id
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj umowę użytkownika.
Parametry
body `object` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
PATCH /api/member-agreements/contracts-tna/:club/:id
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz domyślne umowy obiektu.
Parametry
body `object` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
GET /api/member-agreements/default-tna/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ustaw domyślną umowę obiektu.
Parametry
body `object` (wymagane) Obiekt JSON z danymi obiektu, które chcesz zapisać.Punkt końcowy
POST /api/member-agreements/default-tna/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę umów globalnych lub regionalnych.
Punkt końcowy
GET /api/member-agreements/global-tna/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/global-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę członków z umową.
Punkt końcowy
GET /api/member-agreements/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę członków obiektu według sezonu dla aplikacji Training Camp.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. season `string` (opcjonalne) Sezon Training Camp, według którego chcesz filtrować. userIds `string` (opcjonalne) Tablica identyfikatorów użytkowników do filtrowania. useCache `string` (opcjonalne) Czy używać pamięci podręcznej. isUserMemberInfo `string` (opcjonalne) Jeśli ta opcja jest włączona, dane są filtrowane według userIds (zalecane jest użycie tylko jednego identyfikatora użytkownika) i uwzględniane są potrzebne dane, takie jak tabela wyników i preferencje użytkownika.Punkt końcowy
GET /api/members-leads/trainingcamp/club/season-members/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/club/season-members/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuwa wiele potencjalnych klientów z rezerwacji treningów.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. body `string` (wymagane)Punkt końcowy
DELETE /api/members-leads/workout-booking/club/leads/{club}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę potencjalnych klientów z rezerwacji treningów w obiekcie.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. all `string` (opcjonalne) Czy pokazać wszystkich potencjalnych klientów, czy tylko nadchodzących.Punkt końcowy
GET /api/members-leads/workout-booking/club/leads/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje potencjalnego klienta z rezerwacji treningu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp. body `string` (wymagane)Punkt końcowy
PUT /api/members-leads/workout-booking/club/leads/{club}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przełącza oznaczenie flagą potencjalnego klienta z rezerwacji treningu.
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu. body `string` (wymagane)Punkt końcowy
PATCH /api/members-leads/workout-booking/club/leads/{club}/flag
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club}/flag \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz obowiązujące moduły obiektu
Zwraca wszystkie moduły dostępne dla obiektu, rozwiązując hierarchię: preferencje obiektu → moduły marki → moduły organizacji. Wyniki są buforowane w Redis w celu zwiększenia wydajności.
Parametry
facilityId `string` (wymagane) Identyfikator obiektu, dla którego mają zostać ustalone modułyPunkt końcowy
GET /api/facilities/{facilityId}/modules
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/modules \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
[]
Zwraca katalog modułów oraz konfigurację renderowania menu bocznego. Zwracana jest pełna lista modułów, aby mechanizm renderowania w interfejsie mógł decydować o widoczności dla każdego użytkownika; kontrola dostępu (ACL) nadal jest egzekwowana po stronie serwera przez `auth.checkModuleAccess()`.
Punkt końcowy
GET /api/modules
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/modules \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz kategorie powiadomień.
Punkt końcowy
GET /api/notification/categories
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/notification/categories \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń odczytane powiadomienie.
Punkt końcowy
DELETE /api/club/notification/consumed/:club
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy wiadomość powiadomienia.
Punkt końcowy
POST /api/club/notification/consumed/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca tablicę odczytanych powiadomień.
Punkt końcowy
GET /api/club/notification/consumed/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń wiadomość powiadomienia.
Punkt końcowy
DELETE /api/club/notification/messages/:club
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca tablicę wiadomości powiadomień.
Punkt końcowy
GET /api/club/notification/messages/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje wiadomość powiadomienia.
Punkt końcowy
PATCH /api/club/notification/messages/:club
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy wiadomość powiadomienia.
Parametry
body `string` (wymagane)Punkt końcowy
POST /api/club/notification/messages/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz odbiorców, którzy wyświetlili powiadomienie, według obiektu.
Punkt końcowy
POST /api/club/notification/viewers/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/viewers/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz kategorie powiadomień według użytkownika.
Punkt końcowy
GET /api/club/notification/user-categories/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/user-categories/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy wiadomość powiadomienia.
Punkt końcowy
POST /api/notification/webhook
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/notification/webhook \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz klucz publiczny VAPID dla powiadomień push HTML5
Zwraca klucz publiczny VAPID używany do tworzenia subskrypcji powiadomień push w przeglądarce.
Punkt końcowy
GET /html5-push/vapid-public-key
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/html5-push/vapid-public-key \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisz lub zaktualizuj subskrypcję powiadomień push HTML5
Zapisuje subskrypcję powiadomień push w przeglądarce dla bieżącego użytkownika.
Treść żądania
Punkt końcowy
POST /html5-push/subscribe
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/html5-push/subscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Usuń subskrypcję powiadomień push HTML5
Usuwa subskrypcję powiadomień push w przeglądarce dla bieżącego użytkownika.
Treść żądania
Punkt końcowy
POST /html5-push/unsubscribe
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/html5-push/unsubscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Pobierz stan wdrażania lokalizacji dla wywołującego użytkownika
Zwraca dwie części wdrażania obiektu — konfigurację (dane szczegółowe i wybór produktów, zapisane w preferencjach obiektu) oraz płatność (wyliczaną na bieżąco z rekordu ustawień płatności rozliczeń SaaS) — a także spersonalizowaną dla wywołującego flagę `required`, od której zależy dostęp w powłoce aplikacji. Dotyczy tylko lokalizacji ze stosem technologicznym; lokalizacje ze stosem biznesowym zawsze zwracają required=false.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/onboarding/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisz bieżący postęp kreatora wdrażania dla obiektu
Zapisuje częściowy stan kreatora (wybór produktów, tekst dowolny „Other”, przejrzane dane firmy, bieżący krok), aby po odświeżeniu lub porzuceniu wznowić pracę w miejscu, w którym użytkownik ją przerwał. Nigdy nie oznacza ukończenia — zob. punkt końcowy ukończenia.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/onboarding/{facilityId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Wygeneruj sugestie AI do wstępnego wypełnienia kreatora wdrażania
Na podstawie istniejącego kontekstu obiektu/marki/organizacji proponuje dane obiektu (opis, uporządkowane pola kontaktowe), sugerowany wybór produktów i krótkie spersonalizowane wskazówki. Wyniki są buforowane w Redis przez 7 dni. Sugestie mają wyłącznie charakter doradczy — klient wyświetla je w edytowalnym formularzu do przejrzenia. Zawsze odpowiada kodem 200; `suggestions` ma wartość null, gdy AI jest niedostępna, dzięki czemu kreator działa dalej w ograniczonym zakresie.
Parametry
facilityId `string` (wymagane)Punkt końcowy
POST /api/onboarding/{facilityId}/ai-prefill
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/onboarding/{facilityId}/ai-prefill \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ukończ część konfiguracyjną wdrażania lokalizacji
Weryfikuje potwierdzone wybory/dane, zapisuje dane firmy w rekordzie obiektu, inicjuje układ menu technologicznego obiektu na podstawie wybranych produktów (chyba że istnieje już układ niestandardowy) i oznacza ukończenie konfiguracji. Części płatności celowo NIE można tu ukończyć — jest ona wyliczana na bieżąco z rekordu ustawień płatności rozliczeń SaaS, więc obowiązkowego wymogu karty nie można obejść, wywołując ten punkt końcowy. Zwraca odświeżony stan.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/onboarding/{facilityId}/complete
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyzwól zadeklarowaną akcję integracji partnera dla obiektu
Uruchamia akcję „Run integration” zadeklarowaną w rekordzie partnera (ph-partners.actions[]), w zakresie obiektu. Blokada pojedynczego wykonania w Redis zapobiega równoczesnym ręcznym uruchomieniom tej samej akcji w tym samym obiekcie.
Parametry
partnerId `string` (wymagane) actionId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/partners/{partnerId}/actions/{actionId}/run
Przykładowe żądanie
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 '{}'
Odczytaj stan uruchomienia akcji integracji partnera
Zwraca informację, czy ręczne uruchomienie jest obecnie w toku (blokada pojedynczego wykonania jest utrzymywana), oraz ostatnie żądane uruchomienie — na potrzeby odpytywania przez przycisk w ustawieniach.
Parametry
partnerId `string` (wymagane) actionId `string` (wymagane) facilityId `string` (wymagane)Punkt końcowy
GET /api/partners/{partnerId}/actions/{actionId}/status
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/{partnerId}/actions/{actionId}/status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz wszystkie konfiguracje partnerów dla marki
Parametry
brandId `string` (wymagane) Identyfikator markiPunkt końcowy
GET /api/partners/brand-config/{brandId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/brand-config/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
[]
Utwórz lub zaktualizuj konfigurację partnera dla marki
Parametry
body `object` (wymagane)Punkt końcowy
PUT /api/partners/brand-config
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/partners/brand-config \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przenieś dane integracji GymMaster do facility-partner-config
Wyszukuje wszystkie obiekty z polami gymMasterAPI i gymMasterDomain oraz tworzy/aktualizuje odpowiadające im rekordy facility-partner-config. To jednorazowy punkt końcowy migracji.
Parametry
partnerId `string` (wymagane) Identyfikator partnera GymMaster używany dla wszystkich przeniesionych rekordów dryRun `boolean` (opcjonalne) Jeśli true, tylko raportuje, co zostałoby przeniesione, bez zapisu do bazy danychPunkt końcowy
GET /api/partners/migrate-gymmaster
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/migrate-gymmaster \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Włącz partnera dla organizacji.
Parametry
partnerId `string` (wymagane) Identyfikator partneraPunkt końcowy
POST /api/partners/organisation/enable
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/partners/organisation/enable \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl partnerów organizacji. Administratorzy organizacji widzą tylko partnerów swojej organizacji.
Punkt końcowy
GET /api/partners/organisation
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/organisation \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń partnera organizacji.
Parametry
keyId `string` (wymagane) Identyfikator klucza partnera organizacji organisationId `string` (wymagane) Identyfikator organizacji partneraPunkt końcowy
DELETE /api/partners/organisation/{keyId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/organisation/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj tryb dostępu i moduły partnera organizacji.
Parametry
keyId `string` (wymagane) Identyfikator klucza partnera organizacji organisationId `string` (wymagane) Identyfikator organizacji partnera partnerId `string` (wymagane) Identyfikator partnera accessMode `string` (wymagane) Tryb dostępu partnera modules `string` (opcjonalne) Lista modułów dla trybu dostępu LIMITEDPunkt końcowy
PUT /api/partners/organisation/update-access
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/partners/organisation/update-access \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz zameldowania dla obiektu
Przyjmuje tablicę obiektów zameldowań i przekazuje je do przetworzenia przez Partner API. Maksymalnie 25 zameldowań na żądanie.
Treść żądania
Punkt końcowy
POST /api/partners/check-ins
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Usuń konfigurację partnera dla obiektu
Usuwa konfigurację integracji partnera w obiekcie
Parametry
facilityId `string` (wymagane) Identyfikator obiektu (club ID) partnerId `string` (wymagane) Identyfikator partneraPunkt końcowy
DELETE /api/partners/facility-config/{facilityId}/{partnerId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId}/{partnerId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl wszystkie konfiguracje partnerów dla obiektu
Zwraca wszystkie integracje partnerów skonfigurowane dla danego obiektu
Parametry
facilityId `string` (wymagane) Identyfikator obiektu (club ID)Punkt końcowy
GET /api/partners/facility-config/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz lub zaktualizuj konfigurację partnera dla obiektu
Wstawia lub aktualizuje konfigurację integracji partnera w obiekcie
Treść żądania
Punkt końcowy
POST /api/partners/facility-config
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Usuń członka według memberId
Usuwa istniejący rekord członka na podstawie memberId.
Parametry
memberId `string` (wymagane) Unikalny identyfikator członkaPunkt końcowy
DELETE /api/partners/members/{memberId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/members/{memberId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj członka według memberId
Aktualizuje istniejący rekord członka na podstawie memberId.
Parametry
memberId `string` (wymagane) Unikalny identyfikator członkaTreść żądania
Punkt końcowy
PUT /api/partners/members/{memberId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz stan operacji synchronizacji członków
Zwraca bieżący stan asynchronicznej operacji utworzenia/usunięcia członka, uruchomionej przez POST /api/partners/members lub DELETE /api/partners/members/{memberId}. Interfejs odpytuje ten punkt końcowy zamiast starszego mechanizmu odpytywania listy i dopasowywania nazw. UWAGA: Ograniczenie partnerId/facilityId na poziomie wierszy jest wymagane przez zasady izolacji wielu dzierżawców, ale odłożone do PR wzmacniającego z fazy 3a.1 — operationIds to 128-bitowe identyfikatory UUID, a trasa jest już chroniona dostępem do modułu `external-integrations`. Każdy, kto ma prawidłowy operationId i dostęp do modułu administracyjnego, może sprawdzić jej stan.
Parametry
operationId `string` (wymagane) UUID zwrócony przez POST/DELETEPunkt końcowy
GET /api/partners/members/operations/{operationId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/partners/members/operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz lub zaktualizuj członków obiektu
Przyjmuje tablicę obiektów członków i przekazuje je do przetworzenia przez Partner API. Maksymalnie 25 członków na żądanie.
Treść żądania
Punkt końcowy
POST /api/partners/members
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/partners/members \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Odpowiedź
{}
Utwórz lub zaktualizuj plany członkostwa obiektu
Przyjmuje tablicę obiektów planów członkostwa i przekazuje je do przetworzenia przez Partner API. Maksymalnie 25 planów członkostwa na żądanie.
Treść żądania
Punkt końcowy
POST /api/partners/membership-plans
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Tworzy nową rolę
Parametry
body `string` (wymagane) Obiekt roliPunkt końcowy
POST /api/roles
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę wszystkich ról
Punkt końcowy
GET /api/roles
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuwa rolę według identyfikatora
Punkt końcowy
DELETE /api/roles/{roleId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje rolę według identyfikatora
Parametry
body `string` (wymagane) Obiekt roliPunkt końcowy
PUT /api/roles/{roleId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz nową dodatkową pozycję faktury rozliczeń SaaS
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji, dla której ma zostać utworzona dodatkowa pozycja body `string` (opcjonalne) Treść żądaniaPunkt końcowy
POST /api/saas-billing/additional-line-items
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę dodatkowych pozycji faktury rozliczeń SaaS
Parametry
organisationId `string` (wymagane) Identyfikator organizacjiPunkt końcowy
GET /api/saas-billing/additional-line-items
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę dodatkowych pozycji faktury rozliczeń SaaS obiektu
Punkt końcowy
GET /api/clubs/{clubId}/saas-billing/additional-line-items
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje dodatkową pozycję faktury rozliczeń SaaS
Parametry
itemId `string` (wymagane) Identyfikator dodatkowej pozycji do zaktualizowania body `string` (wymagane) Treść żądaniaPunkt końcowy
PUT /api/saas-billing/additional-line-items/{itemId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items/{itemId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Łączne stawki godzinowe Cloud Agent dla Your Rates
Zwraca oferowane rozmiary Cloud Agent z jedną łączną ceną godzinową (hosting + oprogramowanie). Podział nie jest uwzględniony. usedPlans to jednostki SKU używane w tym obiekcie w ciągu ostatnich 30 dni.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/cloud-agent-rates
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/cloud-agent-rates \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń zaimportowany raport miesięczny
Parametry
club `string` (opcjonalne) Identyfikator klubu reportId `string` (opcjonalne) Identyfikator raportuPunkt końcowy
DELETE /api/saas-billing/extended-access/monthly-usage-report/{reportId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{reportId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz najnowszy raport przestrzeni dyskowej CCTV dla obiektu
Zwraca najnowszą dzienną migawkę przestrzeni dyskowej CCTV obiektu z zapisanych dzienników rozliczeń (z maksymalnie 31 ostatnich dni). Zawiera totalStorage, datę i opłaty związane z przechowywaniem.
Parametry
club `string` (wymagane) Identyfikator klubuPunkt końcowy
GET /api/saas-billing/extended-access/latest-cctv-storage-report/{club}
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca fakturę PDF obiektu za podany okres.
Parametry
club `string` (opcjonalne) Identyfikator klubu month `string` (opcjonalne) Miesiąc raportu w formacie liczbowym. 1 = styczeń, 2 = luty itd. year `string` (opcjonalne) Rok raportu w formacie liczbowym, np. 2021Punkt końcowy
GET /api/saas-billing/extended-access/monthly-usage-report/:club/invoice
Przykładowe żądanie
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"
Odpowiedź
{}
Pakiet faktur PDF za platformę za wybrane miesiące użycia, jako plik ZIP. Zbiorczy odpowiednik pojedynczego punktu końcowego .../invoice — obsługuje pobieranie wielu zaznaczonych pozycji na karcie Invoices & Receipts apletu Billing & Cost Management.
Parametry
club `string` (opcjonalne) Identyfikator klubu months `string` (opcjonalne) Rozdzielone przecinkami miesiące użycia/raportu w formacie YYYY-MM (maks. 24)Punkt końcowy
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/invoices.zip
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca w jednym wywołaniu miesięczne raporty użycia za wiele miesięcy. Obsługuje wykres historii kosztów i zmiany miesiąc do miesiąca w aplecie Billing & Cost Management. Miesiące bez użycia zwracają report: null (zgodnie z odpowiedzią 404 → $0 w interfejsie dla punktu końcowego pojedynczego miesiąca).
Parametry
club `string` (opcjonalne) Identyfikator klubu months `string` (opcjonalne) Rozdzielone przecinkami miesiące użycia w formacie YYYY-MM (maks. 12)Punkt końcowy
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/batch
Przykładowe żądanie
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"
Odpowiedź
{}
Importuj raporty miesięczne obiektu.
Parametry
club `string` (opcjonalne) Identyfikator klubuPunkt końcowy
PUT /api/saas-billing/extended-access/usage-report/:club
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca raport CSV użycia CCTV z ostatnich 30 dni dla wszystkich obiektów.
Punkt końcowy
GET /api/saas-billing/extended-access/usage-report/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla wszystkie raporty dzienne obiektu z danego miesiąca.
Parametry
club `string` (opcjonalne) Identyfikator klubu month `string` (opcjonalne) Miesiąc raportu w formacie liczbowym. 1 = styczeń, 2 = luty itd. year `string` (opcjonalne) Rok raportu w formacie liczbowym, np. 2021Punkt końcowy
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca listę zaimportowanych raportów miesięcznych dla administratora
Parametry
organisationId `string` (wymagane) Identyfikator organizacjiPunkt końcowy
GET /api/saas-billing/extended-access/usage-report/imported
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/imported \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca raport CSV użycia CCTV z ostatnich 30 dni dla wszystkich obiektów.
Parametry
club `string` (opcjonalne) Identyfikator klubu month `string` (opcjonalne) Miesiąc raportu w formacie liczbowym. 1 = styczeń, 2 = luty itd. year `string` (opcjonalne) Rok raportu w formacie liczbowym, np. 2021Punkt końcowy
GET /api/saas-billing/extended-access/monthly-usage-report/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca okresowy raport użycia obiektu.
Parametry
club `string` (opcjonalne) Identyfikator klubu periodStart `string` (opcjonalne) Początek okresu w formacie YYYY-MM-DD periodEnd `string` (opcjonalne) Koniec okresu w formacie YYYY-MM-DDPunkt końcowy
GET /api/saas-billing/extended-access/periodical-usage-report/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/periodical-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pakiet dokumentów rozliczeniowych PDF w jednym pliku ZIP, łączący różne typy dokumentów: faktury za platformę (według miesiąca użycia), potwierdzenia doładowań portfela SaaS i potwierdzenia doładowań Model Router. Zbiorczy odpowiednik punktów końcowych invoices.zip / receipts.zip dla poszczególnych typów, na potrzeby wspólnej karty Invoices & Receipts. Każdy żądany miesiąc/identyfikator musi wskazywać dokument należący do obiektu — dowolna nieprawidłowa wartość powoduje niepowodzenie całego pakietu.
Parametry
clubID `string` (wymagane) invoiceMonths `string` (opcjonalne) Rozdzielone przecinkami miesiące użycia w formacie YYYY-MM walletIds `string` (opcjonalne) Rozdzielone przecinkami identyfikatory transakcji doładowania portfela SaaS aiIds `string` (opcjonalne) Rozdzielone przecinkami identyfikatory transakcji doładowania Model RouterPunkt końcowy
GET /api/clubs/{clubID}/saas-billing/documents.zip
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/documents.zip \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaj notatkę do rekordu miesięcznego
Parametry
recordID `string` (opcjonalne) Identyfikator rekordu do pobrania note `string` (opcjonalne) Notatka do dodania do rekorduPunkt końcowy
POST /api/saas-billing/monthly-records/{recordID}/notes
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID}/notes \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę miesięcznych rekordów rozliczeń SaaS
Parametry
club `string` (opcjonalne) Identyfikator obiektu do pobrania month `string` (opcjonalne) Miesiąc rozliczeniowy w formacie YYYY-MMPunkt końcowy
GET /api/saas-billing/monthly-records/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę miesięcznych rekordów rozliczeń SaaS, których płatność się nie powiodła lub wymaga 3D Secure
Parametry
clubID `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane nieudane rekordy miesięcznePunkt końcowy
GET /api/clubs/:clubID/saas-billing/flagged
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/flagged \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca WSZYSTKIE miesięczne rekordy rozliczeń SaaS (rejestr faktur) obiektu, od najnowszego miesiąca rozliczeniowego. Odpowiednik w zakresie obiektu dostępnego tylko dla administratorów punktu końcowego paginate-monthly-records — obsługuje kartę klienta „Invoices & Receipts” w aplecie Billing & Cost Management.
Parametry
clubID `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać wyświetlone rekordy miesięcznePunkt końcowy
GET /api/clubs/{clubID}/saas-billing/monthly-records
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę miesięcznych rekordów rozliczeń SaaS
Parametry
organisationId `string` (opcjonalne) Identyfikator organizacji month `string` (opcjonalne) Miesiąc w formacie MM. year `string` (opcjonalne) Rok w formacie YYYY. filters `string` (opcjonalne) Filtry ciągu zapytania utworzone przez tabelę danych. order `string` (opcjonalne) Ciąg zapytania utworzony przez tabelę danych.Punkt końcowy
GET /api/saas-billing/monthly-records
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ponów nieudane płatności obiektu
Parametry
clubID `string` (opcjonalne) Identyfikator obiektu, dla którego mają zostać pobrane nieudane rekordy miesięcznePunkt końcowy
PUT /api/clubs/:clubID/saas-billing/retry-failed-payments
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/retry-failed-payments \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj rekord miesięczny
Parametry
recordID `string` (opcjonalne) Identyfikator rekordu do pobrania status `string` (opcjonalne) Stan, na który ma zostać zaktualizowany rekordPunkt końcowy
PUT /api/saas-billing/monthly-records/{recordID}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Sprawdza, czy płatności się powiodły, i aktualizuje stan rekordu
Parametry
clubID `string` (opcjonalne) recordID `string` (opcjonalne) Identyfikator rekordu do pobraniaPunkt końcowy
PUT /api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Dodaj metodę płatności dla obiektu.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
POST /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Synchronizuje metody płatności obiektu ze Stripe.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca budżet wydatków obiektu wraz z wyliczonymi wartościami od początku miesiąca i prognozą.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/budget
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz/zaktualizuj/wyczyść budżet wydatków obiektu.
Parametry
clubID `string` (opcjonalne) body `object` (opcjonalne)Punkt końcowy
PUT /api/clubs/{clubID}/saas-billing/budget
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Usuń metodę płatności z ustawień płatności obiektu.
Parametry
clubID `string` (opcjonalne) paymentMethodID `string` (opcjonalne)Punkt końcowy
DELETE /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}
Przykładowe żądanie
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"
Odpowiedź
{}
Pobierz ustawienia płatności obiektu.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/payment-settings
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj ustawienia płatności obiektu.
Parametry
clubID `string` (opcjonalne) lockedOut `boolean` (opcjonalne) Czy dostęp obiektu do systemu zostanie zablokowany. pauseBilling `boolean` (opcjonalne) Czy automatyczne rozliczanie obiektu zostanie wstrzymane. customerID `string` (opcjonalne) Podanie tej wartości zaktualizuje identyfikator klienta Stripe obiektu. deleteSourceID `string` (opcjonalne) Czy usunąć klienta źródłowego ze Stripe.Punkt końcowy
PUT /api/clubs/{clubID}/saas-billing/payment-settings
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz najwcześniejszy rozliczony miesiąc dla wszystkich obiektów.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
GET /api/saas-billing/payment-settings/earliest-billed-month
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/earliest-billed-month \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl konta, które mogą zdjąć blokadę rozliczeniową obiektu, w kolejności: najpierw użytkownicy z modułem rozliczeń, a administratorzy organizacji tylko awaryjnie, gdy nikt go nie ma.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/lockout-contacts
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/lockout-contacts \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przechodzi stronicowo przez wszystkie obiekty w systemie i zwraca identyfikatory klienta każdego obiektu.
Parametry
clubID `string` (opcjonalne) organisationId `string` (opcjonalne) Identyfikator organizacjiPunkt końcowy
GET /api/saas-billing/payment-settings/customer-ids
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/customer-ids \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ustaw podstawową metodę płatności obiektu.
Parametry
clubID `string` (opcjonalne)Punkt końcowy
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary
Przykładowe żądanie
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"
Odpowiedź
{}
Zaktualizuj profil rozliczeniowy obiektu.
Parametry
clubID `string` (opcjonalne) invoiceEntity `string` (opcjonalne) billingContacts `string` (opcjonalne) Lista identyfikatorów UUID kontaktów KYC ccEmails `string` (opcjonalne) Lista adresów e-mail dodawanych do DW na fakturachPunkt końcowy
PUT /api/clubs/{clubID}/saas-billing/payment-settings/billing-profile
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/billing-profile \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj metodę płatności obiektu.
Parametry
clubID `string` (opcjonalne) cardID `string` (opcjonalne)Punkt końcowy
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID}
Przykładowe żądanie
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"
Odpowiedź
{}
Zwraca zestawienie wszystkich mających zastosowanie opłat za produkty i dodatkowych pozycji dla każdego obiektu do eksportu CSV. Rozwiązuje hierarchię nadpisań globalnych/regionalnych/obiektu dla każdego obiektu, do którego użytkownik ma dostęp.
Parametry
organisationId `string` (wymagane) Identyfikator organizacji do kontroli dostępu (ACL)Punkt końcowy
GET /api/saas-billing/charges-config/export
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/export \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca konfigurację opłat dla określonego celu
Parametry
clubId `string` (opcjonalne) Identyfikator obiektu, dla którego ma zostać pobrana konfiguracja opłatPunkt końcowy
GET /api/saas-billing/charges-config/{clubId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podsumowanie rozliczeń organizacji, do której należy ten obiekt — obowiązujący zakres płatnika, zaplanowana zmiana konsolidacji oraz informacja, czy wywołujący może zarządzać przełącznikiem konsolidacji.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/org/summary
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/summary \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Skonsolidowane miesięczne rekordy organizacji (zestawienia) z podziałem na obiekty, od najnowszych. Puste do czasu rozliczenia pierwszego skonsolidowanego miesiąca organizacji.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/org/monthly-records
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podsumowanie portfela przedpłaconego — saldo, obciążenia za użycie od początku miesiąca, konfiguracja automatycznego doładowania, metoda rozliczeń.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/wallet
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Rejestr portfela, od najnowszych. Portfele w zakresie organizacji obejmują wiersze wszystkich obiektów (każdy zawiera clubID obiektu, z którego pochodzi).
Parametry
clubID `string` (wymagane) limit `string` (opcjonalne) types `string` (opcjonalne) rozdzielone przecinkami typy transakcji from `string` (opcjonalne) to `string` (opcjonalne) cursor `string` (opcjonalne) nextCursor z poprzedniej stronyPunkt końcowy
GET /api/clubs/{clubID}/saas-billing/wallet/transactions
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Potwierdzenie PDF z oznaczeniem marki dla pojedynczej transakcji portfela (doładowania i uznania).
Parametry
clubID `string` (wymagane) txId `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/{txId}/receipt.pdf
Przykładowe żądanie
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"
Odpowiedź
{}
Pakiet potwierdzeń PDF z oznaczeniem marki dla wybranych transakcji doładowania portfela, jako plik ZIP. Każdy identyfikator musi dotyczyć doładowania (kartą lub fakturą) portfela tego obiektu — obciążenia za użycie i korekty nie mają potwierdzeń i są odrzucane.
Parametry
clubID `string` (wymagane) ids `string` (wymagane) Identyfikatory transakcji rozdzielone przecinkami (maks. 50)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Obciąż zapisaną kartę rozliczeń SaaS, aby zasilić saldo przedpłacone. Zwraca requires_action + clientSecret, gdy wymagane jest 3DS.
Parametry
clubID `string` (wymagane) body `object` (opcjonalne)Punkt końcowy
POST /api/clubs/{clubID}/saas-billing/wallet/topup
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Sfinalizuj doładowanie portfela po zakończeniu uwierzytelniania 3DS w aplecie. Operacja idempotentna.
Parametry
clubID `string` (wymagane)Punkt końcowy
POST /api/clubs/{clubID}/saas-billing/wallet/topup/confirm
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj regułę automatycznego doładowania obiektu (zapisaną w wierszu nadpisania profilu rozliczeniowego).
Parametry
clubID `string` (wymagane) body `object` (opcjonalne)Punkt końcowy
PATCH /api/clubs/{clubID}/saas-billing/wallet/auto-topup
Przykładowe żądanie
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/auto-topup \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Faktury doładowań portfela tego obiektu (metoda płatności: faktura), od najnowszych.
Parametry
clubID `string` (wymagane)Punkt końcowy
GET /api/clubs/{clubID}/saas-billing/wallet/invoices
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/invoices \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zażądaj faktury doładowania płatnej z tytułem przelewu (tylko metoda płatności: faktura). Maksymalnie jedna oczekująca faktura na portfel — drugie żądanie zwraca istniejącą fakturę z alreadyPending=true.
Parametry
clubID `string` (wymagane) body `string` (opcjonalne) { amountCents: number }Punkt końcowy
POST /api/clubs/{clubID}/saas-billing/wallet/topup-invoice
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup-invoice \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę zamówień obiektu.
Parametry
facilityID `string` (opcjonalne)Punkt końcowy
GET /api/store/facilities/:facilityID/orders
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/store/facilities/:facilityID/orders \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca listę produktów dostępnych dla obiektu.
Parametry
clubID `string` (wymagane) search `string` (opcjonalne) limit `string` (opcjonalne) page `string` (opcjonalne) Numer strony do paginacji (zaczyna się od 1).Punkt końcowy
GET /api/store/clubs/{clubID}/products
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/store/clubs/{clubID}/products \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl rekordy Stripe obiektu.
Parametry
club `string` (wymagane) fromDate `string` (opcjonalne) Uniksowy znacznik czasu toDate `string` (opcjonalne) Uniksowy znacznik czasu socketID `string` (wymagane) Unikalny identyfikator żądania gniazdaPunkt końcowy
GET /api/club/{club}/stripe/records
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/records \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Anuluj intencję płatności
Parametry
club `string` (wymagane) paymentIntent `string` (opcjonalne)Punkt końcowy
GET /api/club/{club}/stripe/payment-intent/:paymentIntent/cancel
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intent/:paymentIntent/cancel \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz sesję konta Stripe dla komponentów osadzonych
Tworzy sesję konta Stripe (Account Session) dla połączonego konta. Zwraca client_secret używany do inicjalizacji osadzonych komponentów Connect (spory, wypłaty, zarządzanie kontem, dokumenty).
Treść żądania
Punkt końcowy
POST /api/stripe/account-session
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Generuje jednorazowy link do strony KYC Stripe dla połączonego konta.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/club/{club}/stripe/generate-kyc-token
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/generate-kyc-token \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera szczegóły konta połączonego ze Stripe w ramach procesu KYC.
Parametry
club `string` (wymagane)Punkt końcowy
GET /api/club/{club}/stripe/connect-account-details
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/connect-account-details \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zwraca całą historię zgłoszeń na podstawie identyfikatora obiektu
Parametry
club `string` (wymagane) Wewnętrzny identyfikator klubu, do którego chcesz uzyskać dostęp.Punkt końcowy
GET /api/ticketing/clubtickets/{club}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/clubtickets/{club} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera działy
Punkt końcowy
GET /api/ticketing/departments
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/departments \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera szczegóły pojedynczego zgłoszenia
Parametry
user `string` (wymagane) Adres e-mail użytkownika. ticketNumber `string` (wymagane) 6-cyfrowy identyfikator zgłoszenia, do którego chcesz uzyskać dostęp. club `string` (wymagane) Wybrany identyfikator obiektu.Punkt końcowy
GET /api/ticketing/ticket-details/:ticketNumber/:club
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/ticket-details/:ticketNumber/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera tematy
Punkt końcowy
GET /api/ticketing/topics
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/topics \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera wszystkie zgłoszenia utworzone przez bieżącego zalogowanego użytkownika — ta wartość jest ustawiana na podstawie nagłówków dostarczanych przez naszą usługę Google SSO.
Parametry
user `string` (wymagane) Adres e-mail bieżącego zalogowanego użytkownikaPunkt końcowy
GET /api/ticketing/usertickets
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/usertickets \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy nowe zgłoszenie
Parametry
club `string` (wymagane) Wybrany identyfikator obiektu.Punkt końcowy
POST /api/ticketing/clubticket/:club
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/clubticket/:club \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy nowe zgłoszenie
Parametry
subject `string` (wymagane) Temat zgłoszenia. message `string` (wymagane) Pełna treść zgłoszenia.Punkt końcowy
POST /api/ticketing/userticket
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/userticket \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy odpowiedź na istniejące zgłoszenie
Parametry
subject `string` (wymagane) Temat zgłoszenia. message `string` (wymagane) Pełna treść zgłoszenia.Punkt końcowy
POST /api/ticketing/user-reply
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/user-reply \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobiera preferencje użytkownika
Punkt końcowy
GET /api/user-preferences
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Aktualizuje preferencje użytkownika
Parametry
body `string` (wymagane)Punkt końcowy
PUT /api/user-preferences
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmień hasło użytkownika
Zmienia hasło użytkownika. Wymaga weryfikacji kodem OTP, jeśli użytkownik ma numer telefonu, lub dodania numeru telefonu, jeśli go nie ma.
Treść żądania
Punkt końcowy
POST /api/user/change-password
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Sprawdź stan 2FA użytkownika
Zwraca informację, czy 2FA jest włączone dla użytkownika i czy którakolwiek z jego ról wymusza 2FA
Punkt końcowy
GET /api/user/check-2fa-status
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/user/check-2fa-status \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl organizacje, obiekty i regiony, do których użytkownik ma dostęp w określonym module.
Parametry
moduleId `string` (wymagane)Punkt końcowy
POST /api/user/me/modules/{moduleId}/org-access
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/user/me/modules/{moduleId}/org-access \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Tworzy „żądanie powiązania” od użytkownika końcowego z prośbą o „dołączenie” do obiektu.
Parametry
body `string` (wymagane) Obiekt JSON nowego klubu do dodania do systemu.Punkt końcowy
POST /api/user/linkclub
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/user/linkclub \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetla wszystkie obiekty, do których użytkownik ma uprawnienia.
Punkt końcowy
GET /api/user/listauthorised
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/user/listauthorised \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyślij kod OTP dwoma kanałami (e-mail + SMS)
Wysyła kody OTP zarówno na adres e-mail użytkownika, jak i na wskazany numer telefonu. Używane przy operacjach wymagających wysokiego poziomu bezpieczeństwa, takich jak pierwsza weryfikacja numeru telefonu. Ten punkt końcowy tylko wysyła kody OTP i nie modyfikuje żadnych danych użytkownika.
Treść żądania
Punkt końcowy
POST /api/user/send-dual-otp
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyślij kod OTP na numer telefonu lub adres e-mail
Wysyła kod OTP na numer telefonu użytkownika (SMS) lub adres e-mail w celu weryfikacji
Treść żądania
Punkt końcowy
POST /api/user/send-otp
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Sprawdź, czy użytkownik ma ważny dostęp do stron poufnych
Zwraca informację, czy użytkownik ma ważną sesję zweryfikowaną kodem OTP, uprawniającą do dostępu do stron poufnych
Punkt końcowy
GET /api/user/sensitive-page-access
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/user/sensitive-page-access \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zweryfikuj kod OTP i przyznaj dostęp do stron poufnych
Weryfikuje kod OTP i, jeśli jest prawidłowy, przyznaje dostęp do stron poufnych na 1 godzinę
Treść żądania
Punkt końcowy
POST /api/user/sensitive-page-access/verify
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Odwołaj dostęp do stron poufnych (wylogowanie ze stron poufnych)
Odwołuje bieżącą sesję dostępu użytkownika do stron poufnych
Punkt końcowy
POST /api/user/sensitive-page-access/revoke
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/user/sensitive-page-access/revoke \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Włącz lub wyłącz 2FA
Włącza lub wyłącza uwierzytelnianie dwuskładnikowe użytkownika. Wymaga numeru telefonu i weryfikacji kodem OTP.
Treść żądania
Punkt końcowy
POST /api/user/toggle-2fa
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaktualizuj własny profil użytkownika
Pozwala użytkownikowi zaktualizować informacje we własnym profilu (imię, nazwisko, numer telefonu). Przy pierwszym dodawaniu numeru telefonu wymagana jest weryfikacja kodem OTP dwoma kanałami (kody wysłane e-mailem i SMS-em). Przy zmianie istniejącego numeru telefonu wymagany jest tylko kod OTP wysłany e-mailem.
Treść żądania
Punkt końcowy
PATCH /api/user/update-profile
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Pobierz ikonę na podstawie adresu URL.
Punkt końcowy
GET /api/website-icon
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/website-icon \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl szablony wpisów sejfu haseł
Parametry
organisationId `string` (opcjonalne) Kontekst organizacji do sprawdzania dostępu do modułówPunkt końcowy
GET /api/vault/templates
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/vault/templates \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl widoczne wpisy sejfu haseł
Parametry
organisationId `string` (wymagane) scope `string` (opcjonalne)Punkt końcowy
GET /api/vault/entries
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz wpis sejfu haseł
Punkt końcowy
POST /api/vault/entries
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Pobierz wpis sejfu haseł bez ujawniania wartości poufnych
Parametry
entryId `string` (wymagane) organisationId `string` (wymagane)Punkt końcowy
GET /api/vault/entries/{entryId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zaktualizuj wpis sejfu haseł
Punkt końcowy
PUT /api/vault/entries/{entryId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń wpis sejfu haseł
Punkt końcowy
DELETE /api/vault/entries/{entryId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Ujawnij wybrane ukryte lub poufne pola
Punkt końcowy
POST /api/vault/entries/{entryId}/reveal
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries/{entryId}/reveal \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl podsumowania folderów sejfu haseł
Punkt końcowy
GET /api/vault/folders
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/vault/folders \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl wpisy z kodami uwierzytelniającymi
Punkt końcowy
GET /api/vault/authenticator
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/vault/authenticator \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl zarejestrowane typy węzłów przepływu pracy
Punkt końcowy
GET /api/workflow-engine/node-types
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/node-types \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Pobierz projekcję godzin otwarcia obiektu używaną przez bloki przepływu pracy
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/facility-hours/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-hours/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Podgląd nadawcy e-maili przepływu pracy z oznaczeniem marki obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/email-branding/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/email-branding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl zasoby obiektu do konfiguracji wyzwalaczy
Parametry
facilityId `string` (wymagane) resourceType `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/resources/{facilityId}/{resourceType}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/resources/{facilityId}/{resourceType} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl przepływy pracy obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/workflows/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz wersję roboczą przepływu pracy z niepustego grafu
Edytor przechowuje nowy przepływ pracy lokalnie, dopóki nie ma on co najmniej jednego bloku, więc pierwsze zapisanie tworzy go wraz z grafem w jednym wywołaniu. Treść bez `nodes` jest odrzucana, a nie zapisywana.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl poświadczenia, których mogą używać przepływy pracy obiektu
Zwraca własne poświadczenia obiektu oraz poświadczenia udostępnione na poziomie jego marki lub organizacji. Sekrety nigdy nie są zwracane; `hasValue` informuje jedynie, że sekret jest zapisany.
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/credentials/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz poświadczenie przepływu pracy
Poziom zakresu pochodzi z `scopeType`; identyfikatory marki i organizacji są ustalane na podstawie obiektu, a nie przyjmowane od wywołującego.
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/credentials/{facilityId}
Przykładowe żądanie
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 '{}'
Ustawienia przepływów pracy dla całego obiektu (odbiorcy powiadomień o niepowodzeniach)
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/facility-settings/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-settings/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zapisz odbiorców powiadomień o niepowodzeniach dla całego obiektu
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/workflow-engine/facility-settings/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zastąp poświadczenie przepływu pracy
Pusty `secret` zachowuje zapisany sekret, dzięki czemu można zmienić nazwę poświadczenia bez ponownego wprowadzania sekretu. Nie ma możliwości odczytania sekretu.
Parametry
facilityId `string` (wymagane) credentialId `string` (wymagane)Punkt końcowy
PUT /api/workflow-engine/credentials/{facilityId}/{credentialId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Usuń poświadczenie przepływu pracy
Węzły, które się do niego odwołują, przy następnym wywołaniu kończą się bezpiecznym niepowodzeniem, także w już opublikowanych przepływach pracy, ponieważ migawka przechowuje tylko odwołanie.
Parametry
facilityId `string` (wymagane) credentialId `string` (wymagane)Punkt końcowy
DELETE /api/workflow-engine/credentials/{facilityId}/{credentialId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
Pobierz adres URL webhooka wyzwalacza przepływu pracy
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane) nodeId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zmień adres URL webhooka wyzwalacza przepływu pracy
Natychmiast unieważnia poprzedni adres URL.
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane) nodeId `string` (wymagane)Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook/rotate
Przykładowe żądanie
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"
Odpowiedź
{}
Pobierz przepływ pracy według identyfikatora
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz lub zaktualizuj wersję roboczą przepływu pracy
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
PUT /api/workflow-engine/workflows/{facilityId}/{workflowId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Zaktualizuj nazwę i/lub opis przepływu pracy
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Usuń przepływ pracy i jego wersje
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Punkt końcowy
DELETE /api/workflow-engine/workflows/{facilityId}/{workflowId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zduplikuj przepływ pracy do nowej, nieaktywnej wersji roboczej
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Opublikuj bieżącą wersję roboczą (niezmienna migawka wersji)
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/publish
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przywróć wersję roboczą do ostatniej opublikowanej wersji
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/discard
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/discard \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Włącz lub wyłącz przepływ pracy
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}/active
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wygeneruj lub popraw graf przepływu pracy za pomocą AI
Parametry
facilityId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/generate/{facilityId}
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl modele, na których może działać węzeł Agent w tym obiekcie
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/agent-models/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-models/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl narzędzia MCP, które węzeł Agent może dołączyć w tym obiekcie
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/agent-tools/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-tools/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj zapisane rozmowy Agenta w tym obiekcie (powiązania kluczy rozmów)
Parametry
facilityId `string` (wymagane) deviceId `string` (opcjonalne) Ogranicz do rozmów jednego urządzenia Agenta (skonfigurowany w węźle deviceId) q `string` (opcjonalne) Dopasowanie podciągu bez rozróżniania wielkości liter w kluczu rozmowy, identyfikatorze sesji lub nazwie urządzenia limit `integer` (opcjonalne) offset `integer` (opcjonalne)Punkt końcowy
GET /api/workflow-engine/agent-conversations/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-conversations/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj rozmowy przechowywane na samym urządzeniu Agenta w obiekcie
Wyświetla własne sesje urządzenia (rozmowy z paska bocznego interfejsu Agenta), aby przepływ pracy mógł kontynuować istniejącą rozmowę z jej kontekstem. Historia należy do urządzenia; gdy obiekt ma kilka urządzeń, `deviceId` wskazuje, którego dotyczy (urządzenie skonfigurowane w węźle). Nieosiągalne urządzenie → 502.
Parametry
facilityId `string` (wymagane) deviceId `string` (opcjonalne) Urządzenie Agenta skonfigurowane w węźle; pomiń, aby ustalić jedyne urządzenie obiektu q `string` (opcjonalne) Dopasowanie podciągu bez rozróżniania wielkości liter w tytule lub identyfikatorze sesji limit `integer` (opcjonalne) offset `integer` (opcjonalne)Punkt końcowy
GET /api/workflow-engine/agent-device-sessions/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-device-sessions/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj tablice kanban na urządzeniu Agenta w obiekcie
Dostarcza dane do selektora Board ID w bloku Agent: Kanban. Dopasowanie podciągu bez rozróżniania wielkości liter w nazwie lub slugu tablicy; `current` to slug aktywnej tablicy urządzenia, aby selektor zadań mógł domyślnie ustawić swój zakres. Gdy obiekt ma kilka urządzeń, `deviceId` wskazuje, którego dotyczy. Nieosiągalne urządzenie → 502.
Parametry
facilityId `string` (wymagane) deviceId `string` (opcjonalne) Urządzenie Agenta skonfigurowane w węźle; pomiń, aby ustalić jedyne urządzenie obiektu q `string` (opcjonalne) Dopasowanie podciągu bez rozróżniania wielkości liter w nazwie lub slugu tablicy limit `integer` (opcjonalne) offset `integer` (opcjonalne)Punkt końcowy
GET /api/workflow-engine/kanban-boards/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-boards/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Przeszukaj zadania jednej tablicy kanban na urządzeniu Agenta w obiekcie
Dostarcza dane do selektora Task ID w bloku Agent: Kanban. Dopasowanie podciągu bez rozróżniania wielkości liter w identyfikatorze, tytule lub treści zadania; zadania są przechowywane osobno dla każdej tablicy (urządzenie nie obsługuje wyszukiwania między tablicami), więc `board` określa zakres pobierania — pomiń go, aby użyć aktywnej tablicy urządzenia. Nieosiągalne urządzenie → 502.
Parametry
facilityId `string` (wymagane) deviceId `string` (opcjonalne) Urządzenie Agenta skonfigurowane w węźle; pomiń, aby ustalić jedyne urządzenie obiektu board `string` (opcjonalne) Slug tablicy do wyświetlenia; pomiń, aby użyć aktywnej tablicy urządzenia q `string` (opcjonalne) Dopasowanie podciągu bez rozróżniania wielkości liter w identyfikatorze, tytule lub treści zadania limit `integer` (opcjonalne) offset `integer` (opcjonalne)Punkt końcowy
GET /api/workflow-engine/kanban-tasks/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-tasks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl wyselekcjonowane szablony przepływów pracy, przefiltrowane dla tego obiektu
Parametry
facilityId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/templates/{facilityId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz z szablonu fragment grafu dla otwartej wersji roboczej
Parametry
facilityId `string` (wymagane) templateId `string` (wymagane)Punkt końcowy
POST /api/workflow-engine/templates/{facilityId}/{templateId}
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId}/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Kontekst selektora zakresu dla strony administrowania szablonami (poziomy administracyjne)
Punkt końcowy
GET /api/workflow-engine/template-admin/context
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/context \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wyświetl szablony, którymi wywołujący może administrować, wraz z flagami uprawnień
Punkt końcowy
GET /api/workflow-engine/template-admin
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Utwórz szablon (poziomy administracyjne)
Treść żądania
Punkt końcowy
POST /api/workflow-engine/template-admin
Przykładowe żądanie
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 '{}'
Szczegóły szablonu wraz z grafem, dla edytora administracyjnego
Punkt końcowy
GET /api/workflow-engine/template-admin/{templateId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zastąp szablon (organizacja właściciela)
Punkt końcowy
PUT /api/workflow-engine/template-admin/{templateId}
Przykładowe żądanie
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Miękko usuń szablon (organizacja właściciela)
Punkt końcowy
DELETE /api/workflow-engine/template-admin/{templateId}
Przykładowe żądanie
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Zduplikuj widoczny szablon do zakresu docelowego, z którego wywołujący może korzystać
Treść żądania
Punkt końcowy
POST /api/workflow-engine/template-admin/{templateId}/duplicate
Przykładowe żądanie
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 '{}'
Uruchom opublikowany graf przepływu pracy z wyzwalacza ręcznego
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/run
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przetestuj zapisaną wersję roboczą bez publikowania
Wykonuje bieżący graf wersji roboczej i zapisuje wynik z `mode: test` i bez `versionId`. Publikacja, flaga aktywności i `publishedVersionId` nigdy nie są zmieniane. Efekty uboczne są domyślnie symulowane; `sideEffects: live` wymaga dodatkowo `confirmLiveSideEffects: true`.
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Przetestuj jeden węzeł przepływu pracy z listy dozwolonych
Wykonuje jeden węzeł z zapisanej wersji roboczej, który można testować niezależnie. Wartości zmiennych można podać z zapisanych kroków uruchomień. Metody HTTP modyfikujące dane wymagają jawnego potwierdzenia.
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test-node
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Wyświetl ostatnie uruchomienia przepływu pracy
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odczytaj jedno uruchomienie (stan + uporządkowane kroki)
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane) executionId `string` (wymagane)Punkt końcowy
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Anuluj oczekujące opóźnienie (Delay), na którym zatrzymało się czekające uruchomienie
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane) executionId `string` (wymagane)Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel
Przykładowe żądanie
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Odtwórz zakończone uruchomienie z zapisanego ładunku wyzwalacza
`mode: published` ponownie wykonuje dokładnie tę wersję, do której było przypięte pierwotne uruchomienie, z rzeczywistymi efektami ubocznymi. `mode: draft-test` ponownie wykonuje bieżącą wersję roboczą jako test symulowany. Uruchomienia, którego ładunek wyzwalacza został obcięty przy zapisie, nie można odtworzyć.
Parametry
facilityId `string` (wymagane) workflowId `string` (wymagane) executionId `string` (wymagane)Treść żądania
Punkt końcowy
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/retry
Przykładowe żądanie
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 '{}'
Odpowiedź
{}
Indeksowane wyszukiwanie przepływów pracy zawierających dany typ węzła
Parametry
nodeType `string` (wymagane) facilityId `string` (opcjonalne) organisationId `string` (opcjonalne)Punkt końcowy
GET /api/workflow-engine/master-view/{nodeType}
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/master-view/{nodeType} \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Serwer pośredniczący przekierowań OAuth z własną marką (Connected Apps)
Publiczne, nieuwierzytelnione przekierowanie 302, które przekazuje wywołanie zwrotne dostawcy OAuth do wywołania zwrotnego uwierzytelniania nadrzędnej platformy narzędzi, zachowując ciąg zapytania. Pozwala aplikacjom OAuth należącym do PH zarejestrować identyfikator URI przekierowania performancehub.co, dzięki czemu domena dostawcy nadrzędnego nigdy nie pojawia się na pasku adresu (potrzebne w przyszłym projekcie niestandardowych aplikacji OAuth; nieszkodliwe przy uwierzytelnianiu zarządzanym).
Punkt końcowy
GET /guest/connected-apps/oauth-callback
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/oauth-callback \
-H "x-api-key: YOUR_API_KEY"
Strona końcowa łańcucha łączenia (Connected Apps)
Prosta strona „możesz zamknąć to okno” dla karty OAuth, w której działał łańcuch łączenia. Przesyła wynik (połączony pakiet/zestaw narzędzi + identyfikatory nowych kont lub zestaw narzędzi, który się nie powiódł) z powrotem do karty marketplace przez window.opener.postMessage w tym samym źródle; gdy okno otwierające zostało odłączone, korzysta z linku głębokiego do apletu ph-ai-agent, który odtwarza stronę docelową w aplikacji. Wyłącznie informacyjna — nie przechowuje sekretów i nie wykonuje zapisów.
Parametry
connected `string` (opcjonalne) Identyfikator pakietu lub slug zestawu narzędzi, którego łączenie się zakończyło (przypadek powodzenia). accounts `string` (opcjonalne) Rozdzielone przecinkami identyfikatory połączonych kont utworzonych przez łańcuch. connectError `string` (opcjonalne) Slug zestawu narzędzi, którego krok się nie powiódł (przypadek niepowodzenia).Punkt końcowy
GET /guest/connected-apps/finish
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/finish \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}
Wywołanie zwrotne łańcucha łączenia pakietu (Connected Apps)
Etap wywołania zwrotnego OAuth w przepływie łączenia pakietu jednym kliknięciem. Podpisany token JWT stanu (HS256, TTL 30 min) zawiera { clubID, deviceId, suite, toolkits, step, caids } — konta łączą się z tym jednym urządzeniem agenta, a caids gromadzi identyfikatory kont utworzonych na każdym etapie (końcowe przekierowanie do apletu przekazuje je, aby marketplace mógł zaproponować nadanie etykiet nowym kontom). Oznacza zestaw narzędzi danego kroku jako połączony, a następnie przekierowuje (302) do linku Connect Link następnego zestawu narzędzi — lub do strony apletu ph-ai-agent (z linkiem głębokim do agenta), gdy łączenie pakietu się zakończy. Łączenie pojedynczego zestawu narzędzi przechodzi przez tę samą procedurę obsługi z pakietem zawierającym jeden zestaw narzędzi.
Parametry
state `string` (wymagane) Podpisany token JWT stanu łańcucha łączenia.Punkt końcowy
GET /guest/connected-apps/connect-next
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/connect-next \
-H "x-api-key: YOUR_API_KEY"
Wyzwól e-mail z konfiguracją hasła
Weryfikuje podpisany link z e-maila powitalnego, wyzwala e-mail z resetowaniem hasła i wyświetla stronę potwierdzenia. Uwierzytelnianie nie jest wymagane.
Parametry
email `string` (wymagane) Adres e-mail użytkownika sig `string` (wymagane) Podpis HMAC adresu e-mailPunkt końcowy
GET /guest/setup-password
Przykładowe żądanie
curl -X GET https://portal.hub.gymsystems.co/guest/setup-password \
-H "x-api-key: YOUR_API_KEY"
Odpowiedź
{}