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 teraz

Punkt 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 zaktualizowania

Punkt 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// — czat i terminal agenta nigdy nie są za jego pomocą dostępne. Przeglądający potrzebują modułu custom-apps w obiekcie objętym odbiorcami aplikacji; NIE potrzebują modułu ph-ai-agent ani dostępu do agenta na danym urządzeniu.

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ź

{}

Przygotowane eksporty umiejętności na urządzeniu Agent AI obiektu (selektor udostępniania)

Przekazuje przez tunel listę przygotowanych eksportów mostka urządzenia (GET /__skills/exports) dla selektora "Share a skill" w aplecie. Eksporty są przygotowywane przez działający na urządzeniu proces ph-skill-sharing sprawdzający bezpieczeństwo i przenośność; każdy wpis zawiera wynik skanowania po stronie urządzenia. Wymaga modułu ph-ai-agent ORAZ dostępu 'open' do urządzenia (ten sam próg co sama publikacja).

Parametry

club `string` (wymagane) device `string` (wymagane)

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Opublikuj przygotowany eksport umiejętności jako NOWĄ udostępnioną umiejętność (wersja robocza)

Pobiera przez tunel wskazane archiwum tar przygotowanego eksportu z mostka urządzenia, rozpakowuje je w pamięci (przechodzenie po ścieżkach, dowiązania symboliczne i zbyt duże pliki są odrzucane), uruchamia deterministyczne skanowanie bezpieczeństwa w chmurze, tworzy manifest na podstawie frontmattera SKILL.md, zapisuje archiwum w prywatnym zasobniku umiejętności z adresowaniem według zawartości oraz tworzy rekord główny umiejętności i wersję ROBOCZĄ. Zablokowanie przez skanowanie NIE zapisuje niczego i zwraca wyniki. Odbiorcy są ograniczeni zakresami ról publikującego. Aby opublikować wersję roboczą, prześlij ją (POST submit).

Parametry

club `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Opublikuj przygotowany eksport jako NOWĄ WERSJĘ istniejącej udostępnionej umiejętności

Ten sam proces co przy publikacji, ale dla istniejącej umiejętności: nazwa w SKILL.md eksportu musi być zgodna z umiejętnością, wersja musi być nowa (wersji nie można zmieniać), a lista zmian jest wymagana. Tylko publikujący może dodawać wersje. Zablokowanie przez skanowanie zapisuje rekord wersji ze statusem 'rejected' (tylko raport, bez artefaktu), aby wyniki były widoczne w historii publikującego.

Parametry

club `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

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ź

{}

Wycofaj udostępnioną umiejętność (usuwa ją z biblioteki)

Tylko publikujący. Umiejętność natychmiast znika z biblioteki i nie można jej już instalować; ISTNIEJĄCE instalacje nadal działają — wycofanie dotyczy tylko listy, a nie jest wyłącznikiem awaryjnym.

Parametry

club `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Edytuj wpis udostępnionej umiejętności (nazwa wyświetlana, opis, ikona)

Tylko publikujący. Pola wyłącznie prezentacyjne — kanoniczna nazwa umiejętności stanowi jej tożsamość (manifesty, katalogi instalacji, dopasowywanie wersji) i nigdy się nie zmienia. Pusty ciąg przywraca polu wartość null (używana jest wtedy nazwa kanoniczna lub brak ikony). Ikony pochodzą z katalogu MDI (mdi:icon-name), w tym samym formacie co opublikowane aplikacje agenta.

Parametry

club `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Przekaż własność udostępnionej umiejętności

Działa tak samo jak przekazywanie opublikowanych aplikacji: bieżący publikujący lub właściciel konta (moduł rozliczeń) może przekazać umiejętność innemu użytkownikowi, który odtąd zarządza jej wersjami i wpisem. Nowy właściciel musi mieć dostęp do obiektu w klubie macierzystym umiejętności.

Parametry

club `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

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 obiektu

Punkt 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ądzenia

Punkt 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ądzenia

Punkt 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 przeniesienia

Punkt 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ź

{}

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ź

{}

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 link

Punkt 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 Unifi

Punkt 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 strony

Punkt 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 twarzy

Punkt 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ź

{}

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 obiektu

Punkt 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ź

{}

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 osoby

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

Punkt 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 obiektu

Treść żą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 obiektu

Treść żą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..textGated` liczy kandydatów, którzy pasowali do obrazu, ale nie do słów, więc pustą stronę można wyjaśnić jako "usuń słowa", a nie "spróbuj innego obrazu". Wyszukiwanie według przykładu bez słów nie ładuje kodera, więc nigdy nie ponosi kosztu zimnego startu; dodanie słów eliminuje tę zaletę. W obu przypadkach domyślnie przeszukiwane są wszystkie indeksy: wektory wycinków, nagrań i timelapse'ów współdzielą jedną przestrzeń, więc wycinek osoby może znaleźć pasujące nagrania. Wyniki wyszukiwania według przykładu są znacznie wyższe niż wyniki tekstowe (porównanie obrazu z obrazem nie pokonuje różnicy modalności) i są filtrowane przez osobny, jeszcze nieskalibrowany próg — `result.queryKind` wskazuje, w jakiej skali jest wynik, a wyników z jednej skali nigdy nie należy porównywać z drugą. Domyślnie przeszukuje wszystkie indeksy i zwraca jedną scaloną listę posortowaną według wyniku; każde trafienie zawiera `index` i `kind`, aby wywołujący mógł odróżnić trafienie obrazu od trafienia wideo (to drugie zawiera dodatkowo `offsetMs`). Indeksy bez tabeli dla danego obiektu są zgłaszane w `skipped` zamiast powodować błąd. Trafienia poniżej skalibrowanego progu trafności danego indeksu są odrzucane, więc zapytanie bez rzeczywistego dopasowania zwraca pustą listę zamiast pewnie brzmiących, bezsensownych wyników; `perIndex` informuje, co wniósł każdy indeks i dlaczego. Wyniki można zawęzić według czasu przechwycenia i kamery. Używaj `cameraId` zamiast `camera`: to balenaUUID kamery, jedyna wartość zapisywana identycznie w każdym indeksie, więc jeden filtr zawęża je wszystkie. Filtr, którego indeks nie może obsłużyć, jest zgłaszany w `perIndex..filtersIgnored`, a ten indeks jest przeszukiwany bez zawężenia, zamiast zostać pominięty. Trafienia nagrań to **jedno na klip, a nie jedno na dopasowaną klatkę**: klatki są próbkowane co 2 s, więc obiekt, który pozostaje dłużej w kadrze, pasuje do dziesięciu niemal identycznych klatek tego samego nagrania. Każdy klip zwraca najlepszą klatkę oraz `matchCount` i `offsetsMs` z listą wszystkich pasujących momentów w klipie, których można bezpośrednio użyć jako punktów przewijania. Wycinki osób nigdy nie są scalane, ponieważ dwa wycinki jednej osoby to dwa odrębne zaobserwowania.

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 klubu

Punkt 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 organizacji

Punkt 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 Algolia

Punkt 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łania

Punkt 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 ustawienia

Punkt 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 marki

Punkt 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 panelu

Punkt 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 odpowiedzi

Punkt 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 obiekty

Punkt 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ź

{}

Usuń baner panelu

Nietrwale usuwa baner panelu należący do marki.

Parametry

brandId `string` (wymagane) Identyfikator marki, do której należy baner bannerId `string` (wymagane) Identyfikator banera do usunięcia

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Wyświetl banery panelu dla marki

Zwraca wszystkie (nieusunięte) banery panelu skonfigurowane dla marki, na potrzeby zarządzania przez administratora.

Parametry

brandId `string` (wymagane) Identyfikator marki, dla której mają zostać wyświetlone banery

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Utwórz lub zaktualizuj baner panelu

Tworzy nowy baner panelu dla marki lub aktualizuje istniejący, gdy w treści przekazano `bannerId`. Banery można planować (początek i koniec w sekundach Unix, null = bez ograniczenia) i kierować do całej marki, wybranych regionów (kody ISO) lub wybranych obiektów.

Parametry

brandId `string` (wymagane) Identyfikator marki, do której należy baner

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Pobierz aktywne banery Panelu dla obiektu

Ustala banery Panelu, które powinny być obecnie wyświetlane dla obiektu, na podstawie marki obiektu, regionu (kod kraju ISO) oraz flagi włączenia, okna harmonogramu i kierowania każdego banera. Używane przez interfejsy Panelu.

Parametry

facilityId `string` (wymagane) Identyfikator obiektu, dla którego mają zostać ustalone banery

Punkt końcowy

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

Przykładowe żądanie

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

Punkt 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 Unix

Punkt 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 Unix

Punkt 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 Unix

Punkt 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 klubu

Punkt 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 obiektu

Punkt 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 klubu

Punkt 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 klubu

Punkt 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 klubu

Punkt 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ęp

Punkt 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 obiektu

Punkt 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 klubu

Punkt 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 klubu

Punkt 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 sprawdzenia

Punkt 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 wspólne ustawienia Door/Gate Access dla obiektu

Parametry

facilityId `string` (wymagane)

Punkt końcowy

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

Przykładowe żądanie

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

Odpowiedź

{}

Zaktualizuj wspólne ustawienia Door/Gate Access dla obiektu

Parametry

facilityId `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

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 typy osób, statusy i tagi dla obiektu

Zwraca unikalne wartości typu osoby, statusu członkostwa i tagów występujące w wierszach User Access obiektu (ph-door-access-users), pochodzące z synchronizacji z partnerem i wpisów ręcznych. Aplet door-gate-access używa ich do wypełniania list rozwijanych reguł dostępu. Tagi są sumą zsynchronizowanych `tags` i administracyjnych `customTags`, zgodnie z mechanizmem oceny reguł.

Parametry

facilityId `string` (wymagane)

Punkt końcowy

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

Przykładowe żądanie

curl -X GET https://portal.hub.gymsystems.co/api/door-access/people-config/{facilityId} \
  -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 uprawnienia autoryzacji hybrydowej w wierszu User Access

Interfejs hybrydowego mechanizmu oceny z fazy 3. Uprawnienia działają obok reguł tagów obiektu — użytkownik uzyskuje dostęp, gdy w chwili odblokowania pasuje którekolwiek z nich.

Parametry

facilityId `string` (wymagane) userId `string` (wymagane)

Treść żądania

Punkt końcowy

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

Przykładowe żądanie

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

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 paginacji

Punkt 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 paginacji

Punkt 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 usuwania

Punkt 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ów

Punkt 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 funkcji

Punkt 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 marki

Punkt 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ły

Punkt 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 marki

Punkt 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 danych

Punkt 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 partnera

Punkt 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 partnera

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

Punkt 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 partnera

Punkt 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łonka

Punkt 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łonka

Treść żą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/DELETE

Punkt 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 roli

Punkt 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 roli

Punkt 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ść żądania

Punkt 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 organizacji

Punkt 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ść żądania

Punkt 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 raportu

Punkt 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 klubu

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

Punkt 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 klubu

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

Punkt 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 organizacji

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

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

Punkt 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 Router

Punkt 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 rekordu

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

Punkt 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ęczne

Punkt 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ęczne

Punkt 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ęczne

Punkt 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 rekord

Punkt 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 pobrania

Punkt 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 organizacji

Punkt 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 fakturach

Punkt 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łat

Punkt 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 strony

Punkt 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 gniazda

Punkt 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żytkownika

Punkt 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łów

Punkt 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-mail

Punkt 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ź

{}