Introductie
Welkom bij de Performance Hub API. Deze API beheert clubgegevens en belangrijke systemen die met je club en de externe systemen ervan integreren, en is geen openbaar bruikbare API. Raadpleeg voor meer informatie over het gebruik van de verschillende Performance Hub-systemen die deze API ondersteunt de afzonderlijke pagina over het betreffende systeem in onze [Performance Hub-documentatie](https://docs.performancehub.co).
Basis-URL
https://portal.hub.gymsystems.co
Authenticatie
Je ontvangt de authenticatiegegevens zodra je integratie is goedgekeurd.
Door het apparaat gemelde gebeurtenis 'agent turn complete' (trigger voor webpush)
Wordt aangeroepen door de sidecar van een gekoppeld AI-agent-apparaat (nooit door browsers) wanneer een agent-run die vanuit de web-UI is gestart, is afgerond en langer duurde dan de meldingsdrempel van het apparaat. Geauthenticeerd met een kortlevende HS256-JWT per apparaat (aud 'events'). Gededupliceerd per apparaat+sessie+start en met een rate limit per apparaat, en daarna afgeleverd bij de HTML5-pushabonnementen van de gebruiker die de run startte, met een deeplink naar het gesprek.
Request body
Eindpunt
POST /ai/events/agent-turn-complete
Voorbeeldrequest
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 '{}'
Antwoord
{}
Pushmelding gestart door de agent (ph-notify-skill)
Wordt aangeroepen door de sidecar van een gekoppeld AI-agent-apparaat namens de agent op het apparaat (de ph-notify-skill) om een willekeurige melding naar de browser en mobiele apparaten van een gebruiker te pushen. Geauthenticeerd met een kortlevende HS256-JWT per apparaat (aud 'events'). De doelgebruiker moet toegang hebben tot het apparaat (toegangsbeleid per agent); zonder doelgebruiker gaat de melding naar de eigenaar van het apparaat. Rate limit per apparaat, los van turn-complete-gebeurtenissen.
Request body
Eindpunt
POST /ai/events/agent-notify
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een meldingsafbeelding uploaden (ph-notify-skill)
Accepteert een ruwe afbeeldingsbody van een gekoppeld apparaat (JWT met aud 'events') en slaat die op in de openbare bucket notify-media onder een niet te raden UUID-sleutel. Objecten worden na 7 dagen automatisch verwijderd (S3-lifecycle). Retourneert de openbare https-URL voor gebruik als `imageUrl` in /ai/events/agent-notify. Maximaal 5 MB; alleen png/jpeg/gif/webp.
Request body
Eindpunt
POST /ai/media/notify-image
Voorbeeldrequest
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 '{}'
Antwoord
{}
MCP-relay op het apparaat voor Connected Apps (externe SaaS-tools)
Streamable-HTTP MCP-endpoint voor gekoppelde AI-agent-apparaten (MCP-server "connected_apps" op de listener :8790 van de sidecar van het apparaat). Geauthenticeerd met een kortlevende HS256-JWT per apparaat (aud 'mcp', dezelfde referentie als /mcp) en afgeschermd door de vlag Connected Apps enabled van de AGENT (koppelingen gelden per agentapparaat, niet per faciliteit). Verzoeken worden doorgestreamd naar de eigen upstream MCP-server van de agent op het toolplatform, waarbij de sessieheaders aan de serverzijde worden toegevoegd; upstream referenties bereiken het apparaat nooit. Toolnamen en de huisstijl van de leverancier worden onderweg in beide richtingen als white-label vervangen. Een upstream 401/410 (verlopen sessie) leidt tot één keer opnieuw aanmaken van de sessie + een nieuwe poging.
Eindpunt
POST /mcp/apps
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/mcp/apps \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
API-auditlogboeken doorzoeken (toegang tot module IAM & Admin)
Doorzoek en filter API-toegangslogboeken met geavanceerde filtermogelijkheden. Gebruikers zien alleen logboeken van organisaties waartoe ze toegang hebben.
Parameters
organisationId `string` (optioneel) Organisatie-ID voor ACL-verificatie (verplicht)Request body
Eindpunt
POST /api/admin/audit-logs/search
Voorbeeldrequest
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 '{}'
Antwoord
{}
Gecachete auditlogstatistieken uit Redis ophalen (toegang tot module IAM & Admin)
Haal geaggregeerde statistieken op uit de Redis-cache zodat het dashboard direct laadt
Parameters
timeWindow `string` (optioneel) Tijdvenster voor statistieken (standaard 12h)Eindpunt
GET /api/admin/audit-logs/statistics-cached
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics-cached \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Auditlogstatistieken ophalen (toegang tot module IAM & Admin)
Haal geaggregeerde statistieken op voor het dashboard. Beperkt tot de organisaties van de gebruiker.
Parameters
startTime `number` (optioneel) Begintijd (Unix-tijdstempel), standaard 24 uur geleden endTime `number` (optioneel) Eindtijd (Unix-tijdstempel), standaard nuEindpunt
GET /api/admin/audit-logs/statistics
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/statistics \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Tijdreeksgegevens voor auditlogboeken ophalen (toegang tot module IAM & Admin)
Haal tijdreeksgegevens in intervallen op voor de visualisatie van de requesttijdlijn
Parameters
timeWindow `string` (optioneel) Tijdvenster voor tijdreeksgegevens: - 1h: afgelopen uur (blokken van 10 minuten) - 12h: afgelopen 12 uur (blokken van 10 minuten) - 24h: afgelopen 24 uur (blokken van 10 minuten) - 7d: afgelopen 7 dagen (blokken van 1 uur) - 14d: afgelopen 14 dagen (blokken van 1 uur)Eindpunt
GET /api/admin/audit-logs/timeseries
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/timeseries \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Organisaties ophalen waarvoor de gebruiker auditlogboeken mag bekijken (toegang tot module IAM & Admin)
Retourneert de lijst met organisaties waarvoor de huidige gebruiker auditlogboeken kan bekijken
Eindpunt
GET /api/admin/audit-logs/user-organisations
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/admin/audit-logs/user-organisations \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De eerste aanroep om een nieuwe club aan te maken. Let op: alleen het 'template'-clubobject wordt aangemaakt. Daarna is een tweede API-request nodig om de club bij te werken met de gegevens ervan, zoals openingstijden, locatie en social-URL's.
Parameters
body `string` (verplicht) JSON-object van de nieuwe club die aan het systeem wordt toegevoegd.Eindpunt
POST /api/admin/clubs/addclub
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/admin/clubs/addclub \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een nieuwe gebruiker aan het systeem toe
Parameters
body `string` (verplicht) JSON-object met de gebruikersgegevens die je wilt toevoegen of bijwerken.Eindpunt
POST /api/users
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/users \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toont alle gebruikers (Google Apps-accounts) met toegang tot het backofficesysteem en de API
Eindpunt
GET /api/admin/users/listusers
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/admin/users/listusers \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
MCP-sleutels van een gebruiker weergeven (afgeschermd). Gebruikers kunnen hun eigen sleutels weergeven.
Parameters
userId `string` (verplicht)Eindpunt
GET /api/users/{userId}/mcp-keys
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een nieuwe MCP-API-sleutel voor een gebruiker aanmaken. Gebruikers kunnen hun eigen sleutels aanmaken.
Parameters
userId `string` (verplicht) body `object` (optioneel)Eindpunt
POST /api/users/{userId}/mcp-keys
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys \
-H "x-api-key: YOUR_API_KEY"
Een MCP-API-sleutel intrekken of verwijderen. Gebruikers kunnen hun eigen sleutels verwijderen.
Parameters
userId `string` (verplicht) keyId `string` (verplicht)Eindpunt
DELETE /api/users/{userId}/mcp-keys/{keyId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/mcp-keys/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een rol van een gebruiker verwijderen
Parameters
userId `string` (optioneel) Het e-mailadres van de gebruiker van wie je de rol wilt verwijderen. roleId `string` (optioneel) De ID van de rol die je van de gebruiker wilt verwijderen.Eindpunt
DELETE /api/users/{userId}/roles/{roleId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/users/{userId}/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de profielgegevens van een bestaande gebruiker bij (firstName, lastName, phoneNumber)
Parameters
userId `string` (verplicht) E-mailadres van de gebruiker body `object` (verplicht) Bij te werken profielgegevens van de gebruikerEindpunt
PATCH /api/users/{userId}
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/users/{userId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een gebruikersrol toevoegen of bijwerken (upsert)
Parameters
body `object` (optioneel)Eindpunt
PUT /api/users/{userId}/roles
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/users/{userId}/roles \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Live Services die op de AI-agent van een faciliteit draaien (publicatiekiezer)
Haalt via de tunnel de Live Services op die de bridge van het apparaat heeft gedetecteerd, voor de kiezer "Publish to Performance Hub" van de applet. Vereist de module ph-ai-agent EN 'open'-toegang per apparaat (dezelfde drempel als voor het publiceren zelf). Elke service krijgt een publishedAppId als er al een Custom App voor de poort bestaat.
Parameters
club `string` (verplicht) device `string` (verplicht)Eindpunt
GET /api/agent-apps/services/{club}/{device}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/services/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Index van MDI-pictogramnamen die in de AI-agent van een faciliteit is ingebouwd (pictogramkiezer)
Stuurt de ingebouwde MDI-pictogramindex van de bridge van het apparaat (GET /__services/icons/mdi/index.json) via de tunnel door. De publicatie- en bewerkkiezer gebruikt de catalogus die bij de applet is meegeleverd (dezelfde vaste versie 7.4.47); SVG's van gepubliceerde apps worden opgehaald uit het lokale @mdi/js-pakket van portal-server. Dezelfde toegangsdrempel als de serviceskiezer (module ph-ai-agent + 'open'-toegang per apparaat).
Parameters
club `string` (verplicht) device `string` (verplicht)Eindpunt
GET /api/agent-apps/mdi-index/{club}/{device}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/mdi-index/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een batch MDI-pictogram-SVG's ophalen van de AI-agent van een faciliteit (voorbeelden in de kiezer)
Haalt in één aanroep tot 60 benoemde MDI-glyphs op uit de ingebouwde pictogramset van het apparaat, server-side opgeschoond met dezelfde allowlist die voor opgeslagen app-pictogrammen geldt. Wordt door de pictogramkiezer gebruikt om zoekresultaten te tonen; onbekende namen komen terug als null.
Parameters
club `string` (verplicht) device `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/mdi-icons/{club}/{device}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Doelgroepbereiken waarnaar de aanvrager vanuit deze faciliteit mag publiceren
Het toekenbare doelgroepbereik van de publicist voor de publicatie- en bewerkkiezer: de faciliteiten die de ph-ai-agent-rollen van de publicist bestrijken (bereik met meerdere faciliteiten), plus of de publicist de positie op organisatieniveau heeft die nodig is voor doelgroepen van het hele merk of de hele organisatie bij het merk of de organisatie van deze faciliteit. Dezelfde regels worden server-side opnieuw afgedwongen bij publiceren en bijwerken (validatePublishAudience); dit endpoint bepaalt alleen de UI.
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-apps/audience-options/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/audience-options/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Collega's automatisch aanvullen voor een app-doelgroep met benoemde gebruikers
Doorzoekt ALLEEN de gebruikers die de aanvrager al kan zien: mensen met rollen die ten minste één faciliteit, regio of organisatie overlappen met de eigen ph-ai-agent-toegang van de aanvrager. Een zoekopdracht van minimaal 2 tekens en een maximum van 10 resultaten maken het endpoint onbruikbaar voor scraping; dezelfde bereikbaarheidsset wordt server-side opnieuw afgedwongen wanneer de doelgroep wordt opgeslagen.
Parameters
club `string` (verplicht) q `string` (verplicht)Eindpunt
GET /api/agent-apps/user-search/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/user-search/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een Live Service van een AI-agent publiceren als Performance Hub Custom App
Registreert een webapp die door de AI-agent van de faciliteit wordt gehost (een door de bridge gedetecteerde Live Service) als menu-item onder "Custom Apps" in het zijmenu voor de gekozen doelgroep. Vereist de module ph-ai-agent bij deze faciliteit EN 'open'-toegang per apparaat; de doelgroep wordt begrensd door de eigen rolbereiken van de publicist (je kunt nooit breder publiceren dan je zelf bereikt). De service-identiteit wordt LIVE bepaald aan de hand van de /__services-lijst van het apparaat; het http/https-schema wordt nooit opgeslagen.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/publish/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Gepubliceerde Custom Apps die bij deze faciliteit zichtbaar zijn
Retourneert de actieve gepubliceerde apps waarvan de doelgroep deze faciliteit omvat, in de vorm die het zijmenu weergeeft (appId, name, icon, description). De doelgroep wordt bij elke aanroep live opnieuw bepaald, zodat toegangswijzigingen direct effect hebben.
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-apps/menu/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/menu/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gepubliceerde apps die vanuit deze faciliteit worden beheerd (weergave voor publicist)
Volledige app-rijen voor apps waarvan de HOME-faciliteit deze club is, voor de beheerlijst "Published Apps" van de applet. Elke rij bevat canManage voor de gebruiker die de request doet (publicist).
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-apps/manage/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een viewer-token met servicebereik aanmaken voor een gepubliceerde Custom App
Retourneert een kortlevende ondertekende URL + token waarmee de browser ÉÉN gepubliceerde app rechtstreeks opent via de regionale relay-gateway van het apparaat. Het token bevat een svc-claim met de servicepoort, zodat de gateway de sessie beperkt tot /__services/proxy/
Parameters
club `string` (verplicht) appId `string` (verplicht)Eindpunt
POST /api/agent-apps/access/{club}/{appId}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/agent-apps/access/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Ondersteuningscontact voor een gepubliceerde Custom App (contactgegevens eigenaar)
Wie deze door een gebruiker gepubliceerde app ondersteunt: het e-mailadres van de publicist (met de eigenaar van de hostende agent als terugvaloptie). Wordt getoond in de offline- en foutpanelen van de viewer, zodat ondersteuningsverzoeken naar de eigenaar van de app gaan in plaats van naar Performance Hub: gepubliceerde apps vallen niet onder de kernondersteuning van PH. De doelgroep van de app wordt eerst opnieuw gecontroleerd; viewers met wie de app nooit is gedeeld, krijgen niets te zien. Gepauzeerde apps worden ook opgehaald (eigenaren krijgen ook vragen als "waarom is dit gepauzeerd?").
Parameters
club `string` (verplicht) appId `string` (verplicht)Eindpunt
GET /api/agent-apps/support-info/{club}/{appId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-apps/support-info/{club}/{appId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een ondersteuningsverzoek e-mailen naar de eigenaar van een gepubliceerde Custom App
Stuurt het bericht van de viewer als e-mail met huisstijl naar het ondersteuningscontact van de app (de publicist, met de agenteigenaar als terugvaloptie): aan de eigenaar, met de viewer in CC (als eigen kopie van het verzoek) en Reply-To ingesteld op de viewer, zodat de eigenaar rechtstreeks antwoordt. Gepubliceerde apps worden door gebruikers onderhouden, dus zo blijft de ondersteuning ervan buiten de wachtrij van Performance Hub. De doelgroep wordt opnieuw gecontroleerd; één verzoek per viewer per app per 15 minuten (Redis-cooldown, fail-open).
Parameters
club `string` (verplicht) appId `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/support-request/{club}/{appId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een gepubliceerde Custom App bijwerken (naam, pictogram, beschrijving, status, doelgroep)
Alleen voor de publicist. Wijzigingen in de doelgroep worden opnieuw gevalideerd tegen de rolbereiken van de BEWERKER, met dezelfde begrenzingsregels als bij publiceren. De status wisselt tussen actief en gepauzeerd (gepauzeerde apps verdwijnen uit menu's en er worden geen tokens meer voor aangemaakt).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/update/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Publicatie van een Custom App intrekken (soft delete)
Alleen voor de publicist. Verwijdert de registerrij zacht: de app verdwijnt direct uit menu's en er worden geen viewer-tokens meer aangemaakt; al uitgegeven gatewaysessies verlopen wanneer het token verloopt.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/unpublish/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Eigendom van een gepubliceerde Custom App overdragen
Volgt dezelfde flow als het toewijzen van een nieuwe eigenaar voor een AI-agent: de huidige publicist of een accounteigenaar (module billing) kan de app overdragen aan een andere gebruiker, die de app daarna beheert. De nieuwe eigenaar moet toegang hebben tot de faciliteit bij de thuisclub van de app.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-apps/transfer-owner/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Volledig scanrapport (+ LLM-beoordeling) voor één skillversie
De volledige lijst met bevindingen voor een versie, alleen voor de publicist en organisatiebeheerders (goedkeuringsbeoordelingen); installateurs zien in plaats daarvan de samengevatte aantallen in de skilldetails.
Parameters
club `string` (verplicht) skillId `string` (verplicht) version `string` (verplicht)Eindpunt
GET /api/agent-skills/scan-report/{club}/{skillId}/{version}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/scan-report/{club}/{skillId}/{version} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een conceptversie van een skill indienen (publiceren of in de wachtrij voor goedkeuring plaatsen)
Brengt een conceptversie verder volgens het governancebeleid van de organisatie. Als de organisatie heeft gekozen voor LLM-beoordeling, wordt eerst de beoordeling van de instructies uitgevoerd (best effort; een oordeel 'fail' wijst af, een oordeel 'flag' dwingt de goedkeuringswachtrij af). Delen op faciliteitsniveau wordt direct gepubliceerd, tenzij de governance goedkeuring vereist; delen in de organisatiebibliotheek (doelgroep merk of organisatie) vereist standaard goedkeuring. Publiceren stelt de latestVersion van de skill in; installaties met beleid 'auto' nemen die over bij de volgende reconcile-ronde.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/submit/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Skillbibliotheek die bij deze faciliteit zichtbaar is (gefilterd op doelgroep)
Actieve skills met ten minste één gepubliceerde versie waarvan de doelgroep deze faciliteit omvat (of de viewer noemt), met een samenvatting van de nieuwste gepubliceerde versie en de verspreiding binnen de organisatie (aantal verschillende faciliteiten, nooit ruwe installatieaantallen). De doelgroep wordt bij elke aanroep live opnieuw bepaald.
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-skills/library/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/library/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Skilldetails (versies, vereisten, scansamenvatting, verspreiding)
Volledige details van één bibliotheekskill: versiegeschiedenis met changelogs en scansamenvattingen (de endpointlijsten per versie voeden de scanvergelijking bij updates), de in het manifest opgegeven vereisten, de herkomst van de publicist en het verspreidingssignaal op basis van het aantal faciliteiten. De doelgroep wordt opnieuw gecontroleerd: viewers met wie een skill nooit is gedeeld, krijgen niets te zien (de publicist en organisatiebeheerders zien de skill altijd).
Parameters
club `string` (verplicht) skillId `string` (verplicht)Eindpunt
GET /api/agent-skills/skill/{club}/{skillId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/skill/{club}/{skillId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Skills die vanuit deze faciliteit zijn gepubliceerd (beheerlijst van de publicist)
Volledige skillrijen waarvan de HOME-faciliteit deze club is, elk met canManage voor de gebruiker die de request doet en een samenvatting van de nieuwste versie (inclusief concepten en wachtende goedkeuringen: dit is de werkweergave van de publicist).
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-skills/manage/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/manage/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een bibliotheekskill installeren op de AI-agent van een faciliteit
Afhankelijk van governance: de installSources van de organisatie moeten het toestaan, de doelgroep van de skill moet deze faciliteit omvatten (of de aanvrager noemen), de versie moet gepubliceerd zijn en de aanvrager moet voldoen aan het whoCanInstall-niveau voor het doelapparaat (eigenaar / toegestane gebruiker / faciliteitsbeheerder / organisatiebeheerder, zie governance). Schrijft de installatierij voor de levenscyclus (de bron van waarheid) en doet direct een push op basis van best effort; de reconcile-cron garandeert levering zodra het apparaat bereikbaar is.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/install/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een wachtende skill-update voor één installatie goedkeuren
Zet de desiredVersion van de installatie op de nieuwste gepubliceerde versie (de handmatige stap bij de beleidsregels 'notify' en 'pinned', en de route wanneer de governance updatePosture 'approvalRequired' instelt). Bewaart de huidige versie als doel voor terugdraaien in één stap en wist een eventuele updatepin na terugdraaien (skipVersion). Hetzelfde whoCanInstall-machtigingsniveau als bij installeren.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/update-approve/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een geïnstalleerde skill terugzetten naar de vorige versie
Zet desiredVersion op de previousVersion van de installatierij (die bij elke versiewijziging wordt bewaard) en laat het normale leveringspad de skill opnieuw installeren. Eén stap: de versies wisselen om, dus twee keer terugdraaien brengt je terug bij het begin. Pint ook updates vast (skipVersion = de versie waarvan is teruggedraaid), zodat het beleid auto/notify de terugdraaiing laat staan. De pin vervalt wanneer een echt nieuwere versie wordt gepubliceerd, bij update-approve of bij set-policy.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/rollback/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een skill verwijderen van de AI-agent van een faciliteit
Markeert de installatierij als pending-uninstall en pusht de gewenste status; de rij wordt verwijderd zodra het apparaat de verwijdering bevestigt (reconcile read-back). Hetzelfde whoCanInstall-machtigingsniveau als bij installeren.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/uninstall/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Het updatebeleid per installatie instellen voor een skill op één apparaat
auto (reconcile past nieuwe gepubliceerde versies automatisch toe, tenzij de updatePosture van de organisatie goedkeuring vereist), notify (de eigenaar krijgt per nieuwe versie één melding en past die handmatig toe) of pinned (verandert nooit zonder expliciete update-approve). Een wijziging van het beleid wist een eventuele updatepin na terugdraaien (skipVersion). Hetzelfde whoCanInstall-machtigingsniveau als bij installeren.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/set-policy/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Skill-installaties op de AI-agent van een faciliteit (tabblad Skills)
De installatierijen voor de levenscyclus van één apparaat, elk met de vermeldingsvelden van de skill en of er een nieuwere gepubliceerde versie bestaat. Vereist 'open'-toegang per apparaat (het tabblad Skills staat in de agentlade).
Parameters
club `string` (verplicht) device `string` (verplicht)Eindpunt
GET /api/agent-skills/installs/{club}/{device}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/installs/{club}/{device} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Skillversies die wachten op goedkeuring in de organisatie van deze faciliteit
De goedkeuringswachtrij voor organisatiebeheerders: elke versie die wacht op goedkeuring binnen de skills van de organisatie, met de skillvermelding en de scan- en LLM-samenvattingen. Alleen voor organisatiebeheerders.
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-skills/approvals/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/approvals/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een wachtende skillversie goedkeuren (publiceert de versie)
Alleen voor organisatiebeheerders. De versie wordt gepubliceerd, de latestVersion van de skill wordt bijgewerkt en de publicist krijgt een melding. Installaties met beleid 'auto' nemen de versie over bij de volgende reconcile-ronde.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/approve/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een wachtende skillversie afwijzen
Alleen voor organisatiebeheerders. De versie wordt afgewezen met de reden van de beoordelaar en de publicist krijgt een melding; die kan de bevindingen oplossen en een nieuwe versie indienen (versies zijn onveranderlijk).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/reject/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Geldende Agent Skill-governance voor de organisatie van deze faciliteit
Het opgeslagen beleid per organisatie, samengevoegd met de platformstandaarden (een organisatie zonder opgeslagen rij krijgt alleen de standaarden). Alleen voor organisatiebeheerders.
Parameters
club `string` (verplicht)Eindpunt
GET /api/agent-skills/governance/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agent-skills/governance/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Agent Skill-governance bijwerken voor de organisatie van deze faciliteit
Gedeeltelijke update: alleen de opgegeven velden veranderen; al het andere behoudt de opgeslagen of standaardwaarde. Alleen voor organisatiebeheerders. Overschrijvingen per apparaat staan in de registratierij en lopen via de bestaande routes voor apparaatconfiguratie.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/agent-skills/governance/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Omgevingsgegevens voor een faciliteit ophalen
Retourneert de huidige weersomstandigheden, inclusief zonsopgang en zonsondergang (via Open-Meteo), en de binnentemperatuur van de faciliteit (van de duress-sensoren) voor de opgegeven club. Wordt 30 minuten in Redis in de cache bewaard.
Parameters
clubId `string` (verplicht) Interne ID van de club of faciliteitEindpunt
GET /api/clubs/{clubId}/environment
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/environment \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een algemeen IoT-apparaat toe aan een club of koppelt het eraan.
Parameters
club `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen. body `string` (verplicht) JSON-object van het nieuwe scherm dat wordt gekoppeld.Eindpunt
POST /api/devices/addGenericDevice/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/addGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een display screen verwijderen en terugzetten naar de fabrieksinstellingen
Verwijdert de actieve koppeling van het scherm met de faciliteit en zet een blijvende fabrieksreset klaar. Een uitgeschakeld scherm voert de reset uit nadat het weer is ingeschakeld en opnieuw verbinding heeft gemaakt, en keert dan terug naar de HDMI-koppelingspagina. Historische factureringsrecords blijven bewaard.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/display-screens/reset/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Koppelt een deurcontroller aan een faciliteit.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/door-controllers/associate/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Werkt de instellingen van een deurcontroller voor een faciliteit bij.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/door-controllers/update/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Haalt een deurcontroller uit gebruik bij een faciliteit.
Parameters
club `string` (verplicht)Eindpunt
POST /api/devices/door-controllers/decommission/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/door-controllers/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de relaisconfiguratie van een deurcontroller.
Parameters
uuid `string` (verplicht)Eindpunt
GET /api/devices/door-controllers/config/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/door-controllers/config/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de metadata van het apparaat
Parameters
uuid `string` (verplicht) Unieke ID van het apparaatEindpunt
GET /api/devices/metadata/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de metadata van het apparaat. De response is de metadatarij op het hoogste niveau (verouderde vorm) plus `detectedType` (camera | ai-edge-processor | door-controller | ph-ai-agent | null) en `online` (true als het apparaat in de afgelopen 5 minuten is bijgewerkt).
Parameters
deviceSerialNumber `string` (verplicht) Serienummer van het apparaatEindpunt
GET /api/devices/metadata/serial/{serialNo}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/metadata/serial/{serialNo} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de Smart Club-gegevens van de club.
Parameters
club_id `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen.Eindpunt
GET /api/clubs/{club_id}/smart-club-data
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club_id}/smart-club-data \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle apparaten die aan een afzonderlijke club zijn gekoppeld.
Parameters
club `string` (verplicht) Interne ID van de club waarvan je de apparaten wilt weergeven.Eindpunt
GET /api/devices/list/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle applicatiereleases (versies) voor onze balena-apparaten.
Eindpunt
GET /api/devices/listReleases
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/listReleases \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verplaatst een apparaat naar een nieuwe faciliteit (club) en werkt de bijbehorende systemen bij.
Parameters
club `string` (verplicht) Bronfaciliteit-ID (de huidige club van het apparaat) body `object` (verplicht) Parameters voor het verplaatsenEindpunt
POST /api/devices/move/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/move/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Probeert verbinding te maken met de router van een faciliteit door het beste apparaat in de club te kiezen en een MQTT-opdracht te sturen om een tunnel op te zetten.
Parameters
facilityID `string` (verplicht) Interne ID van de faciliteit waarvoor de routerverbinding wordt geprobeerd.Eindpunt
GET /api/devices/openRouterWebpage/{facilityID}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/openRouterWebpage/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Catalogus van Cloud Agents (zones, formaten, actuele verkoopprijzen)
Parameters
club `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/cloud/catalog/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/catalog/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een prijsopgave voor een Cloud Agent maken (software + hosting)
Eindpunt
POST /api/devices/ph-ai-agent/cloud/quote/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/quote/{club} \
-H "x-api-key: YOUR_API_KEY"
Een Cloud Agent starten (inrichting in de wachtrij + automatisch koppelen)
Eindpunt
POST /api/devices/ph-ai-agent/cloud/launch/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/launch/{club} \
-H "x-api-key: YOUR_API_KEY"
Status van een Cloud Agent-taak
Eindpunt
GET /api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/jobs/{club}/{jobId} \
-H "x-api-key: YOUR_API_KEY"
Een Cloud Agent definitief verwijderen (VM + balena + registratie)
Eindpunt
POST /api/devices/ph-ai-agent/cloud/delete/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete/{club} \
-H "x-api-key: YOUR_API_KEY"
Een geparkeerde verwijdering van een Cloud Agent afhandelen (back-up opnieuw proberen, verwijderen zonder back-up of annuleren)
Eindpunt
POST /api/devices/ph-ai-agent/cloud/delete-decision/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/cloud/delete-decision/{club} \
-H "x-api-key: YOUR_API_KEY"
De Connected Apps van een agent weergeven (suites + apps met verbonden accounts)
Retourneert de Connected Apps-status van de agent: de vlag enabled, samenvattingen per suite (Google Workspace, Microsoft 365) en de samengestelde app-catalogus met de verbonden accounts per app (meerdere accounts: een agent kan per app meerdere accounts hebben, elk met een optionele alias), bepaald op basis van de upstream-sessie van de agent.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Eindpunt
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Volledige Connected Apps-marketplacecatalogus voor een agent
Retourneert elke app die kan worden verbonden (de volledige toolkitcatalogus voor beheerde authenticatie, server-side circa 12 uur in de cache bewaard) met de niveaus featured/suite en de verbonden accounts van de agent per app, plus samenvattingen per suite en de openstaande verbindingsverzoeken van de agent: één payload voor de app-marketplace waarin aan de clientzijde kan worden gezocht.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Eindpunt
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/catalog
Voorbeeldrequest
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"
Antwoord
{}
Een openstaand verbindingsverzoek van een agent negeren
Markeert het openstaande verbindingsverzoek van de agent voor een toolkit als genegeerd (het verdwijnt uit de sectie "Requested by your agent" van de marketplace). Idempotent: een verzoek negeren dat niet openstaat, doet niets.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/requests/dismiss
Voorbeeldrequest
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 '{}'
Antwoord
{}
Connected Apps voor een agent in- of uitschakelen
Slaat de Connected Apps-schakelaar van de agent op en pusht de Balena-apparaatvariabele PH_APPS_MCP_ENABLED naar dat ene apparaat (best effort: de vlag aan PH-zijde is de harde poort voor de MCP-relay).
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/enable
Voorbeeldrequest
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 '{}'
Antwoord
{}
Beginnen met het verbinden van één app met een agent (OAuth-flow via Connect Link)
Start een gehoste Connect Link-flow voor één toolkit en retourneert de URL waarnaar de gebruiker moet worden gestuurd. Een optionele alias labelt het nieuwe account (meerdere accounts: een app die al verbonden is opnieuw verbinden, voegt NOG een account toe, tot 10 per app). Loopt via dezelfde ketencallback als suiteverbindingen (een suite met één toolkit), zodat de afronding terugkomt op de appletpagina van ph-ai-agent.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Voorbereidingspayload voor het verbinden van één app (modus, referentievelden, installatiehandleiding)
Alles wat het verbindingsdialoogvenster nodig heeft voordat een verbinding start: hoe de app verbinding maakt (oauth = gehoste toestemmingsflow, credentials = formulier in het product), de referentievelden die in de modus credentials moeten worden verzameld en de installatiehandleiding in het product (geschreven voor prioriteitsapps, anders gegenereerd uit de veldmetadata van de app; nooit een link naar externe documentatie). Apps met een eigen OAuth-app geven ook aan of de OAuth-app van de klant al voor DEZE agent is geregistreerd (byoConfigured) en wat de redirect-URL is die bij de provider moet worden geregistreerd.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat. toolkit `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-info/{toolkit}
Voorbeeldrequest
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"
Antwoord
{}
Een app verbinden met referenties van de gebruiker (API-sleutel enz., geen OAuth)
Maakt rechtstreeks vanuit het formulier in het product een verbonden account aan voor een app in de modus credentials, zonder gehoste toestemmingsflow. De referentievelden komen uit de connect-info-payload van de app; elk verplicht veld moet worden ingevuld. Referenties worden waar mogelijk bij de provider gevalideerd (best effort: sommige apps weigeren een verkeerde sleutel pas bij de eerste toolaanroep van de agent). Een optionele alias labelt het nieuwe account (meerdere accounts: een app die al verbonden is opnieuw verbinden, voegt NOG een account toe).
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-credentials
Voorbeeldrequest
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 '{}'
Antwoord
{}
De eigen OAuth-app van de klant registreren voor een BYO-app en de verbindingsflow starten
Voor apps met een eigen OAuth-app (Xero, Shopify, ...): neemt de client-ID en het client secret van de OAuth-app die de klant bij de provider heeft aangemaakt (stap voor stap uitgelegd in de installatiehandleiding van de app), registreert die voor DEZE agent (het secret wordt alleen bij het upstream-integratieplatform opgeslagen, nooit in Performance Hub) en start direct de gehoste aanmeldflow ermee. Retourneert de toestemmings-URL waarnaar de gebruiker moet worden gestuurd, met hetzelfde contract als het connect-endpoint. Opnieuw indienen vervangt de geregistreerde app van de agent (bijv. na het roteren van een secret); bestaande verbonden accounts blijven werken.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-oauth-app
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een suiteverbinding met één klik starten voor een agent (gekoppelde Connect Link-flows)
Start de gekoppelde verbindingsflow voor een hele suite (bijv. google-workspace). De geretourneerde URL opent het toestemmingsscherm van de eerste toolkit; elke afronding stuurt met een 302 direct door naar de flow van de volgende toolkit en eindigt op de appletpagina van ph-ai-agent. Onderdelen die al een verbonden account hebben, worden OVERGESLAGEN, zodat opnieuw proberen na een fout halverwege verdergaat met de ontbrekende apps in plaats van dubbele accounts aan te maken. Als alle onderdelen al verbonden zijn, wordt de hele keten opnieuw doorlopen: dat is de expliciete flow "nog een account toevoegen".
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/connect-suite \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Eén verbonden account loskoppelen van een agent
Verwijdert één verbonden account (meerdere accounts: andere accounts van dezelfde app blijven verbonden). Vóór het verwijderen wordt gecontroleerd of het account bij deze agent hoort; als het het LAATSTE account van de app was, wordt de toolkit uit de verbonden set van de agent verwijderd (de sessie wordt later opnieuw aangemaakt, zodat de toollijst van de agent wordt bijgewerkt).
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/disconnect
Voorbeeldrequest
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 '{}'
Antwoord
{}
Eén van de verbonden accounts van een agent hernoemen (nieuwe alias)
Stelt de weergavealias van één verbonden account in. Aliassen worden normaal gesproken na OAuth automatisch ingesteld (op basis van de aangemelde identiteit); dit endpoint ondersteunt het handmatig hernoemen in het detailvenster van de app. Een lege alias wist het label. Vóór de upstream-update wordt gecontroleerd of het account bij deze agent hoort.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat.Request body
Eindpunt
POST /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/rename-account
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een ingebouwde Performance Hub-service voor een agent in- of uitschakelen
Schakelt één altijd beschikbare ingebouwde service (Smart Search, Weather, ...) in of uit voor deze agent. Ingebouwde services hebben geen verbinding of OAuth nodig: ze zijn bij elke agent inbegrepen en staan standaard aan. Deze schakelaar slaat de overschrijving per agent op en maakt de upstream-sessie van de agent direct opnieuw aan, zodat de toolset wordt bijgewerkt. Let op: de aparte schakelaar "External apps" (de route /enable) is een harde uitschakelaar voor de hele MCP-server voor apps. Als die uit staat, zijn ook ingebouwde services niet beschikbaar, ongeacht hun eigen schakelaars.
Parameters
facilityId `string` (verplicht) deviceId `string` (verplicht) De balena-UUID van het agentapparaat. slug `string` (verplicht) Slug van de ingebouwde service.Request body
Eindpunt
PATCH /api/devices/ph-ai-agent/connected-apps/{facilityId}/{deviceId}/built-in/{slug}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een AI-agent-apparaat aan een faciliteit koppelen
Koppeling op basis van metadata. Zoekt het apparaat op serienummer op in de live apparaatmetadata, vereist dat het online is en maakt dan zo nodig de registratierij aan, wijst een Chisel-relayregio + tunnelpoort + secret toe, registreert die plek op de relay en pusht de faciliteit- en tunnelconfiguratie via Balena naar het apparaat. Nieuwe apparaten krijgen ook een standaard MCP-serviceaccount (ingeschakeld, beperkt tot deze faciliteit, alle mogelijkheden); bij opnieuw koppelen blijft een bestaande MCP-toekenning behouden. Optionele geavanceerde instellingen overschrijven de standaardwaarden bij het koppelen (back-upconfiguratie, MCP aan/uit, toegangsbeperking) en `restoreFrom` vult het nieuwe apparaat met de cloudback-up van een ander apparaat van de faciliteit (actieve of uit gebruik genomen bron; plaatst een herstel tussen repository's in de wachtrij, geretourneerd als `restoreRequest` om de voortgang te pollen).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/associate/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
AI-agent-apparaten van een faciliteit weergeven
Retourneert de AI-agent-apparaten van de faciliteit met de live online- en tunnelstatus (gebruikt door de apparaatwisselaar van de applet).
Parameters
club `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/list/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Update- en onlinestatus van de AI-agent
Retourneert of het apparaat online is, of er een update beschikbaar is of klaarstaat, en de aangeboden release (de vastgezette versie van de vloot als die is vastgezet; de hoogste geslaagde versie als de vloot de nieuwste volgt).
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/update-status/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Live apparaatstatus en statistieken van de AI-agent
Retourneert een samengestelde momentopname voor de statistiekenbalk en de beheerlade van de applet: identiteits- en registratievelden, beschikbaarheid en verbinding, softwareversies en de nieuwste heartbeat-statistieken (CPU, temperatuur, geheugen, opslag per koppelpunt, uptime, netwerk). Voegt het metadatabaken van het apparaat en de Balena-updatestatus samen; bij een tijdelijke storing kan een van beide ontbreken.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/device-status/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/device-status/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
AI-toelichting bij het statusrapport van het apparaat
Retourneert een korte toelichting voor de beheerder bij de huidige afgeleide statusproblemen. Feiten en stappen uit het draaiboek staan altijd in device-status; deze extra alinea is best effort en kan null zijn.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
POST /api/devices/ph-ai-agent/health/{club}/{uuid}/explain
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/health/{club}/{uuid}/explain \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een toegangstoken voor directe verbinding met de relay aanmaken voor een AI-agent
Retourneert een kortlevende ondertekende URL waarmee de browser RECHTSTREEKS verbinding maakt met de regionale relay-gateway van het apparaat (zonder de wereldwijde omweg via PH/Sydney), plus het HS256-token. PH blijft de autoriteit (Google SSO + controles op module en faciliteit gebeuren hier); de relay-gateway verifieert het token. De proxy /ai-agent-ui blijft de terugvaloptie.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/access/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een chatbericht naar een AI-agent-sessie sturen (direct antwoorden vanuit een melding)
Server-side relay die wordt gebruikt door de actie voor direct antwoorden in de webpushmelding: de service worker doet hier een POST (zelfde origin, SSO-cookies), zodat een antwoord werkt zonder dat er een Performance Hub-tabblad open is. PH bepaalt het relaydoel van het apparaat (dezelfde opzoeking als de proxy /ai-agent-ui), zet x-ph-user voor de toeschrijving van de beurt (de daaruit volgende afrondingspush gaat terug naar deze gebruiker) en stuurt door naar /api/chat/start van het apparaat met de sessie-id.
Request body
Eindpunt
POST /api/devices/ph-ai-agent/reply
Voorbeeldrequest
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 '{}'
Antwoord
{}
De toegangsinstellingen van een AI-agent lezen (eigenaar)
Retourneert het toegangsblok van het apparaat (modus, allowlist, zichtbaarheid, schakelaar voor PH Support) plus eventuele openstaande toegangsverzoeken. Leesbaar voor de eigenaar van het apparaat; andere gebruikers krijgen 403.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/access-settings/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/access-settings/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De toegangsinstellingen van een AI-agent bijwerken (eigenaar)
Schrijft de modus (org/restricted), de allowlist voor beperkte toegang, de zichtbaarheid van de lijst (all/admins) en de schakelaar "Permit access from Performance Hub Support". Toegestaan voor de eigenaar van het apparaat. De eigenaar zelf kan alleen via reallocate-owner worden gewijzigd. Goedgekeurde toegangsverzoeken blijven gelden: aanvragers die nog goedgekeurd zijn, worden weer aan de opgeslagen allowlist toegevoegd; iemand uit de verzonden lijst verwijderen trekt de goedkeuring in (het verzoek wordt afgewezen; de persoon kan opnieuw een verzoek indienen).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/access-settings/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De eigenaar van een AI-agent opnieuw toewijzen
Wijst het eigendom van het apparaat toe aan een andere Performance Hub-gebruiker. Alleen voor accounteigenaren (toegang tot de module voor SaaS-facturering): de uitweg wanneer de eigenaar van een beperkte agent vertrekt. Zowel de vorige als de nieuwe eigenaar krijgt een melding (in de app + push + e-mail).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/reallocate-owner/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Gebruikerslijst van de faciliteit voor de allowlist- en eigenaarkiezers van de AI-agent
Retourneert e-mailadres + naam (+ isOrgAdmin-vlaggen) van elke gebruiker wiens rol toegang geeft tot DEZE faciliteit. Alleen voor de eigenaar van het apparaat en wie het eigendom mag toewijzen (accounteigenaar), zodat gewone gebruikers niet het hele gebruikersbestand kunnen opvragen.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/org-users/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/org-users/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegang aanvragen tot een beperkte AI-agent
Maakt het toegangsverzoek van de aanvrager voor een beperkt apparaat aan (of opent het opnieuw); idempotent per gebruiker+apparaat. De eigenaar krijgt een melding in de app, via webpush en per e-mail, met een deeplink naar de agentmodule.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/access-request/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een toegangsverzoek voor een AI-agent goedkeuren of afwijzen (eigenaar)
Afhandeling van een openstaand verzoek door de eigenaar van het apparaat. Bij goedkeuring wordt de aanvrager aan de allowlist van het apparaat toegevoegd; bij beide uitkomsten krijgt de aanvrager een melding (in de app + push + e-mail).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/access-request-resolve/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een AI-agent-update toestaan en toepassen
Zet het apparaat vast op de aangeboden release (de vastgezette versie van de vloot, of de hoogste geslaagde als de vloot de nieuwste volgt) en geeft de updatevergrendeling vrij, zodat de balena-supervisor de update toepast. De status op het datavolume van het apparaat blijft na de update behouden.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/update/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een AI-agent-update voor later inplannen
Slaat een geplande installatietijd op in de registratie van het apparaat. Een terugkerende backendtaak (elke 5 minuten) past de update toe (vastzetten + ontgrendelen) zodra het geplande tijdstip is verstreken. Een nieuwe planning vervangt een eventuele bestaande planning voor het apparaat.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/update-schedule/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een geplande AI-agent-update annuleren
Wist de geplande installatie van het apparaat (doet niets als er niets is gepland).
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
DELETE /api/devices/ph-ai-agent/update-schedule/{club}/{uuid}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/update-schedule/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een externe opdracht uitvoeren op een AI-agent-apparaat
Publiceert een toegestane MQTT-opdracht (herstarten, een container opnieuw starten, updates vergrendelen of ontgrendelen, Wi-Fi-beheer) naar de device-controller op de AI-agent. Het apparaat moet aan de faciliteit zijn gekoppeld.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/command/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De configuratie van een AI-agent voor de faciliteit bijwerken
Slaat door de operator bewerkbare instellingen op voor een gekoppelde AI-agent: de apparaatnaam, de fysieke locatie van het apparaat en het schema voor geplande herstarts. Het herstartschema wordt ook als Balena-omgevingsvariabele REBOOT_DEVICE naar het apparaat gepusht (2 uur 's nachts lokale tijd), net als bij Display Screens.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/config/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Faciliteiten waarnaar een AI-agent bij deze faciliteit kan worden verplaatst
Retourneert de faciliteiten binnen dezelfde organisatie waartoe de aangemelde gebruiker toegang heeft (met uitzondering van de huidige faciliteit), voor de keuzelijst "Move to another facility". De verplaatsing zelf wordt uitgevoerd door POST /api/devices/move/:club, dat dezelfde regels voor dezelfde organisatie en doeltoegang aan de serverzijde afdwingt.
Parameters
club `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/move-targets/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/move-targets/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De MCP-toegang die de aanvrager kan toekennen aan de AI-agents van een faciliteit
Retourneert wat de aangemelde gebruiker mag toekennen aan een MCP-serviceaccount van een AI-agent bij de organisatie van deze faciliteit: de faciliteiten/regio's binnen de eigen toegang, of organisatiebreed bereik mag worden toegekend, de modules waarover de gebruiker beschikt en de volledige MCP-toolcatalogus (voor het geavanceerde masker per tool). De UI gebruikt dit zodat gebruikers alleen opties binnen hun eigen rechten zien; het POST-endpoint mcp-access dwingt dezelfde beperking aan de serverzijde af.
Parameters
club `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/mcp-grantable/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-grantable/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De MCP-serviceaccountconfiguratie van een AI-agent ophalen
Retourneert de MCP-toegangsconfiguratie van het apparaat (bereik, modules, toolmasker, auditvelden).
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/mcp-access/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/mcp-access/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het MCP-serviceaccount van een AI-agent configureren
Slaat de MCP-toegangsconfiguratie van het apparaat op, met beperking op het moment van toekennen. Aanvragers kunnen alleen faciliteiten/regio's binnen hun eigen toegang toekennen, organisatiebreed bereik alleen als ze een organisatiebrede rol hebben, en alleen modules waarover ze zelf beschikken bij de organisatie van de faciliteit. De enabled-vlag wordt ook als Balena-omgevingsvariabele PH_MCP_ENABLED naar het apparaat gepusht.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/mcp-access/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De VPN-configuratie van een AI-agent ophalen (geredigeerd)
Retourneert de VPN-ondersteuningsvlag en de lijst met verbindingen van het apparaat. Profielinhoud en referentiewaarden worden nooit geretourneerd, alleen metadata van het importmoment (remotes, routes, DNS) en vlaggen die aangeven of er referenties zijn. De actuele status per verbinding komt van het device-status-endpoint (beacon metadata.vpn).
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/vpn-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
VPN-ondersteuning van een AI-agent in- of uitschakelen
Schakelt de VPN-functie van het apparaat in of uit. Pusht de Balena-apparaatvariabele PH_VPN_ENABLED en stuurt het apparaat een seintje (MQTT vpnConfigChanged); verbindingen blijven behouden bij uitschakelen (tunnels stoppen; de configuratie blijft bewaard voor opnieuw inschakelen).
Parameters
club `string` (verplicht) uuid `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/vpn-config/{club}/{uuid}
Voorbeeldrequest
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 '{}'
Antwoord
{}
OpenVPN-profiel(en) importeren op een AI-agent
Accepteert base64-gecodeerde uploads: losse .ovpn/.conf-bestanden, bundels met gesplitste bestanden (config + certificaten/sleutels) en archieven (.zip, .tar/.tgz Pritunl-exports, .tblk Tunnelblick, .visc/.visz Viscosity). Profielen worden genormaliseerd naar een canonieke inline vorm; elk profiel wordt één verbinding (geïmporteerd als niet verbonden: voer referenties in en maak daarna verbinding). Bruikbare 400-foutmeldingen bij onbruikbare uploads.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/vpn-import/{club}/{uuid}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een VPN-verbinding van een AI-agent bijwerken (naam / referenties / split-DNS)
Werkt de opgeslagen verbinding bij. Referentievelden zijn alleen-schrijven (weggelaten = opgeslagen waarde behouden; lege tekenreeks = wissen). Wijzigingen in referenties of split-DNS verhogen de revisie van de verbinding, zodat een actieve tunnel opnieuw start met de nieuwe waarden.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een VPN-verbinding van een AI-agent verwijderen
Verwijdert de verbinding uit de registratie en stuurt het apparaat een seintje, waarna het de tunnel afbreekt en het gecachte profiel en de referenties wist.
Parameters
club `string` (verplicht) uuid `string` (verplicht) connectionId `string` (verplicht)Eindpunt
DELETE /api/devices/ph-ai-agent/vpn-connection/{club}/{uuid}/{connectionId}
Voorbeeldrequest
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"
Antwoord
{}
Een VPN-verbinding van een AI-agent verbinden / verbreken
Model met gewenste status: stelt de enabled-vlag van de verbinding in op de registratie en stuurt het apparaat een seintje (MQTT vpnConfigChanged zonder payload); het apparaat haalt de gezaghebbende status op via zijn met JWT geauthenticeerde universal-api-aanroep en stemt zijn tunnels daarop af. Een gemist seintje wordt bij de periodieke synchronisatie alsnog verwerkt.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/vpn-command/{club}/{uuid}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De cloudback-upconfiguratie en -status van een AI-agent ophalen
Retourneert de back-upinstellingen van het apparaat (ingeschakeld, bewaartermijn, opslagregio), de doorlopende back-upstatus (laatste back-up, grootte, fouten), de automatisch bepaalde regio en de beschikbare opslagregio's voor de keuzelijst. Het wachtwoord van de restic-repository wordt nooit geretourneerd.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-config/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-config/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De cloudback-upconfiguratie van een AI-agent bijwerken
Slaat ingeschakeld/bewaartermijn/regio op. Wordt van kracht bij de volgende uurlijkse back-up van het apparaat (het apparaat vraagt PH vóór elke run om de runcontext), dus er is geen herstart van het apparaat nodig.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/backup-config/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Bronnen voor herstel van back-ups weergeven voor het koppelen van een nieuwe AI-agent
Faciliteitsbreed overzicht voor de optie "restore from a backup" in het dialoogvenster voor het toevoegen van een agent: elke registratie in de club (actief EN buiten gebruik gesteld/vervangen) die nog een ontsleutelbare back-uprepository en ten minste één bruikbaar herstelpunt heeft, met de nieuwste snapshots. Retourneert ook de keuzelijsten voor de back-upconfiguratie (allowedRetentionDays, availableRegions), zodat het dialoogvenster geen apparaat-UUID nodig heeft om zijn keuzelijsten te vullen.
Parameters
club `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-sources/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-sources/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De herstelpunten van een AI-agent weergeven
Retourneert de snapshotindex van het apparaat (nieuwste eerst) uit DynamoDB, zonder rondgang naar het apparaat of de repository, plus de huidige status van handmatige back-up- en herstelverzoeken voor polling in het zijpaneel. Verouderde verzoeken (nooit opgepakt, of zonder voortgangssignaal) worden als mislukt weergegeven, zodat de UI altijd een nieuw verzoek kan indienen.
Parameters
club `string` (verplicht) uuid `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-snapshots/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Nu een handmatige back-up van een AI-agent aanvragen
Schrijft een verzoek voor een handmatige run (met de notitie van de gebruiker) naar de registratierij en stuurt het apparaat een seintje via MQTT. Het apparaat haalt het geverifieerde verzoek op via zijn met JWT geauthenticeerde universal-api-aanroep voor de runcontext; ook zonder MQTT wordt het bij de volgende tik van de planner opgepakt. Wordt geweigerd zolang er een andere back-up of herstelbewerking bezig is.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/backup-run/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een herstelpunt van een AI-agent vastzetten of losmaken
Vastgezette herstelpunten worden beschermd tegen opschoning op basis van de bewaartermijn: het nachtelijke onderhoud van het apparaat ontvangt de vastgezette snapshot-id's via de runcontextaanroep en sluit ze uit van restic forget, en hun indexrijen verlopen nooit via TTL. Losmaken herstelt het normale bewaargedrag.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/backup-pin/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een AI-agent herstellen vanaf een herstelpunt
Schrijft een herstelverzoek naar de registratierij en stuurt het apparaat een seintje. Volledige herstelbewerkingen overschrijven /data en /home/hermeswebui (het apparaat maakt eerst automatisch een veiligheidssnapshot en stopt de agent tijdens het herstel) en vereisen dat de apparaatnaam ter bevestiging wordt getypt. Met `paths` wordt in plaats daarvan een niet-verstorend herstel op bestandsniveau van alleen die paden uitgevoerd. Zet het apparaat optioneel terug op de softwarerelease van de snapshot zodra het herstel van de gegevens is voltooid (zie backup-restore-release).
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/backup-restore/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De softwarerelease toepassen die bij een voltooid herstel is vastgelegd
Laatste stap van een herstel waarbij om de softwareversie van de snapshot is gevraagd: zodra het apparaat meldt dat het herstel van de gegevens is voltooid, zet dit het apparaat vast op de opgeslagen release en worden updates ontgrendeld (zelfde werking als het update-endpoint). Aangestuurd door de polling van het zijpaneel; idempotent: de opgeslagen vastzetting wordt gewist zodra deze is toegepast.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/backup-restore-release/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Bestanden in een herstelpunt doorbladeren
Geeft één mapniveau van een restic-snapshot weer, volledig aan de serverzijde geleverd vanuit de Wasabi-repository (werkt ook als het apparaat offline is). Alleen de metadata van de boomstructuur wordt gelezen; voor overzichten worden geen bestandsgegevens gedownload.
Parameters
club `string` (verplicht) uuid `string` (verplicht) takenAt `number` (verplicht) path `string` (optioneel)Eindpunt
GET /api/devices/ph-ai-agent/backup-files/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-files/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Bestandsnamen zoeken in een herstelpunt
Hoofdletterongevoelig zoeken op bestandsnaam vanaf een map naar beneden, aan de serverzijde geleverd vanuit de restic-boommetadata (er worden geen bestandsgegevens gelezen; werkt ook als het apparaat offline is). Streamt het overzicht en stopt bij de eerste 200 resultaten.
Parameters
club `string` (verplicht) uuid `string` (verplicht) takenAt `number` (verplicht) q `string` (verplicht) path `string` (optioneel)Eindpunt
GET /api/devices/ph-ai-agent/backup-search/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-search/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Wat er is gewijzigd tussen twee herstelpunten
Voert aan de serverzijde een restic diff uit tussen twee snapshots van het apparaat (alleen boommetadata) en retourneert de lijst met toegevoegde/verwijderde/gewijzigde bestanden (maximaal 500 wijzigingen) plus samenvattende statistieken. Resultaten worden gecachet, want snapshots zijn onveranderlijk.
Parameters
club `string` (verplicht) uuid `string` (verplicht) fromTakenAt `number` (verplicht) toTakenAt `number` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-diff/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-diff/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Versiegeschiedenis van één bestand over alle herstelpunten
Eén restic find aan de serverzijde over elke snapshot in de repository van het apparaat, samengevoegd tot UNIEKE versies (opeenvolgende treffers met identieke grootte+mtime worden samengevoegd) en gekoppeld aan de rijen van de snapshotindex voor datums/soorten/notities.
Parameters
club `string` (verplicht) uuid `string` (verplicht) path `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-file-versions/{club}/{uuid}
Voorbeeldrequest
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"
Antwoord
{}
Alle herstelpunten van de back-ups van een apparaat doorzoeken op bestandsnaam
Het herstelpad voor verwijderde bestanden: één restic find aan de serverzijde over ALLE snapshots in de repository (hoofdletterongevoelig, deeltekenreeks of glob), gegroepeerd per pad met de herstelpunten waarin elk bestand voorkomt. Een bestand dat van het apparaat is verwijderd, is hier nog te vinden zolang een herstelpunt het bevat.
Parameters
club `string` (verplicht) uuid `string` (verplicht) q `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-find/{club}/{uuid}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/backup-find/{club}/{uuid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eén bestand downloaden uit een herstelpunt
Streamt één bestand rechtstreeks uit de restic-repository naar de browser (als bijlage). Mappen worden als tar-archief gestreamd. Met een maximale grootte; wordt aan de serverzijde geleverd, dus werkt ook als het apparaat offline is.
Parameters
club `string` (verplicht) uuid `string` (verplicht) takenAt `number` (verplicht) path `string` (verplicht)Eindpunt
GET /api/devices/ph-ai-agent/backup-file-download/{club}/{uuid}
Voorbeeldrequest
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"
Antwoord
{}
Een AI-agent buiten gebruik stellen bij een faciliteit
Parameters
club `string` (verplicht)Eindpunt
POST /api/devices/ph-ai-agent/decommission/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/devices/ph-ai-agent/decommission/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een AI-agent uit een faciliteit verwijderen en de hardware terugzetten naar de fabrieksinstellingen
Ontkoppelt het apparaat volledig, zodat het bij ELKE faciliteit kan worden gekoppeld, en wist alle gegevens op de NUC. Het wissen wordt geactiveerd via de Balena-apparaatvariabele PH_FACTORY_RESET (een eenmalige nonce) VÓÓR het opruimen in de cloud, zodat het ook werkt als het apparaat bij het verwijderen offline is: het wissen wordt uitgevoerd zodra het apparaat weer verbinding maakt. Een MQTT-seintje factoryReset zorgt dat het direct gebeurt als het apparaat online is. Het opruimen in de cloud trekt daarna elke referentie en toekenning in, wist de Balena-koppeling met de faciliteit (apparaatvariabelen + clubtag) en de clubID in de metadata, en verwijdert toegangsverzoeken en het LAN-DNS-record. Cloudback-ups blijven BEWAARD: de snapshotindex en het repositorywachtwoord blijven op de zacht verwijderde registratie staan en zijn bruikbaar als herstelbron bij het toevoegen van een vervanger. Vereist dat de naam van het apparaat ter bevestiging wordt getypt.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/reset/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een defecte AI-agent vervangen door een nieuwe NUC (noodherstel)
Apparaatvervanging in één stap: koppelt de vervangende NUC (tunnelslot, geheimen, Balena-variabelen, back-upbasis), neemt de naam, locatie, het herstartschema, de back-upinstellingen, de toegangsblokkering en de MCP-toekenning van het oude apparaat over, koppelt de oude snapshotindex aan het nieuwe apparaat (zodat de volledige back-upgeschiedenis doorzoekbaar blijft), stelt de oude registratie buiten gebruik (gemarkeerd met replacedBy / replacedFrom) en zet, tenzij `restore` false is, een volledig herstel van het gekozen herstelpunt uit de back-uprepository van het OUDE apparaat in de wachtrij voor de nieuwe hardware. Werkt ook als het oude apparaat defect/offline is; vereist dat de naam van het oude apparaat ter bevestiging wordt getypt. Alleen binnen dezelfde faciliteit.
Parameters
club `string` (verplicht)Request body
Eindpunt
POST /api/devices/ph-ai-agent/replace/{club}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Zet een korte QR-link van een Performance Hub-apparaat om naar de deeplink waarnaar deze verwijst, zodat de Add Device-scanner het apparaattype kan herkennen. Alleen performancehub.co-hosts worden gevolgd.
Parameters
url `string` (verplicht) De gescande korte linkEindpunt
GET /api/devices/resolve-qr
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/resolve-qr \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Test de verbinding met de UniFi Controller van een faciliteit en of de referenties juist zijn.
Parameters
facilityID `string` (verplicht) Interne ID van de faciliteit waarmee je de UniFi-verbinding wilt testenEindpunt
GET /api/devices/testUnifiController/{facilityID}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/devices/testUnifiController/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een generiek IoT-apparaat bij met een club.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
PUT /api/devices/updateGenericDevice/{club}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/devices/updateGenericDevice/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toont het aantal openstaande overeenkomsten waarvoor actie nodig is, op basis van een gebruiker en de clubs die eraan gekoppeld zijn
Eindpunt
GET /api/agreements/agreements-outstanding
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agreements/agreements-outstanding \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toont alle overeenkomsten die voor een club beschikbaar zijn
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. contracts-sort `string` (optioneel) Overeenkomsten sorteren op ingangsdatum of alfabetisch. Standaard op ingangsdatum. contracts-acknowledgement `string` (optioneel) Overeenkomsten filteren op alle, bevestigde of niet-bevestigde. Standaard alle. contracts-requirement `string` (optioneel) Overeenkomsten filteren op alle, handtekening, selectievakje, pop-up of geen. Standaard alle. contracts-status `string` (optioneel) Overeenkomsten filteren op alle, actieve of gearchiveerde. Standaard alle.Eindpunt
GET /api/agreements/list-agreements/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/agreements/list-agreements/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Ondertekent een overeenkomst op basis van de ID.
Parameters
club `string` (verplicht) Interne ID van de club die de overeenkomst ondertekent. agreementid `string` (verplicht) ID van de overeenkomst die wordt ondertekend. body `string` (verplicht) JSON-object met de overeenkomst en de parameters die aan het systeem worden toegevoegd of geüpload ...Eindpunt
POST /api/agreements/sign/{club}/{agreementid}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/agreements/sign/{club}/{agreementid} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Model Router-overzicht van de faciliteit (configuratie, saldo, uitgaven).
Parameters
clubID `string` (verplicht) tz `string` (optioneel) IANA-tijdzone van de viewer, als terugvaloptie voor uitgavenvensters per dag en maand wanneer de faciliteit geen tijdzonegegevens heeft.Eindpunt
GET /api/clubs/{clubID}/ai-credits/overview
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/overview \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Catalogus van beschikbare modellen met de ingeschakelde status per faciliteit (standaard allemaal ingeschakeld).
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/models
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/models \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Beschikbare guardrails en PH-sjablonen met voorinstellingen.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/guardrails
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/guardrails \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verbonden Model Router-services. Omvat gekoppelde AI-agent-apparaten, expliciet getypeerde externe agents en de Workflow-service van de faciliteit. De configuratie wordt bewerkt via PATCH /keys/{keyHash}.
Parameters
clubID `string` (verplicht) tz `string` (optioneel) IANA-tijdzone van de viewer, als terugvaloptie voor uitgavenvensters per dag en maand wanneer de faciliteit geen tijdzonegegevens heeft.Eindpunt
GET /api/clubs/{clubID}/ai-credits/agents
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/agents \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Model Router inschakelen voor een faciliteit en de inferentietoegang ervan inrichten.
Parameters
clubID `string` (verplicht)Eindpunt
POST /api/clubs/{clubID}/ai-credits/enable
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/enable \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Abonnement, toegestane modellen, guardrails, contentfilters (regex-afscherming of -blokkering aan PH-zijde), uitgavenlimiet en configuratie voor automatisch opwaarderen bijwerken.
Parameters
clubID `string` (verplicht)Eindpunt
PATCH /api/clubs/{clubID}/ai-credits/config
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/config \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De teller voor de harde limiet over de hele looptijd terugzetten naar 0 (nieuwe basislijn op de huidige uitgaven) en de afgesloten periode in de geschiedenis vastleggen.
Parameters
clubID `string` (verplicht)Eindpunt
POST /api/clubs/{clubID}/ai-credits/spend-limit/reset-total
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/reset-total \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geschiedenis van resets van de harde limiet (nieuwste eerst): limiet, uitgaven en tijdstempels per afgesloten periode.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/spend-limit/history
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/spend-limit/history \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een nieuwe phk_-API-sleutel voor de faciliteit aanmaken (de leesbare sleutel wordt één keer geretourneerd). Accepteert optionele uitgavenlimieten, toegestane modellen, guardrails, contentfilters en de rate limits rpmLimit/tpmLimit.
Parameters
clubID `string` (verplicht)Eindpunt
POST /api/clubs/{clubID}/ai-credits/keys
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys \
-H "x-api-key: YOUR_API_KEY"
Bewerkbare sleutelvelden bijwerken: label, uitgavenlimieten per sleutel, toegestane modellen, guardrails, contentfilters en de rate limits rpmLimit/tpmLimit (gesynchroniseerd met de sleutel).
Parameters
clubID `string` (verplicht) keyHash `string` (verplicht)Eindpunt
PATCH /api/clubs/{clubID}/ai-credits/keys/{keyHash}
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/keys/{keyHash} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Inferentielogboeken per request voor de faciliteit (live, alleen metadata).
Parameters
clubID `string` (verplicht) page `string` (optioneel) pageSize `string` (optioneel) status `string` (optioneel) model `string` (optioneel) provider `string` (optioneel) source `string` (optioneel) `key` of `agent` keyHash `string` (optioneel) Filteren op één sleutel of agent via de PH-keyHash. q `string` (optioneel) Vrij zoeken op request-ID, sleutel- of agentlabel, model, provider en eindgebruiker. minutes `string` (optioneel) Venster korter dan een dag (bijv. Live=1440); overschrijft startDate/endDate. startTs `string` (optioneel) Begin van het venster in epoch-seconden (klikken om in te zoomen); overschrijft minuten en datums. endTs `string` (optioneel) Einde van het venster in epoch-seconden (klikken om in te zoomen); overschrijft minuten en datums.Eindpunt
GET /api/clubs/{clubID}/ai-credits/logs
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Histogram van requests in de tijd voor de logboekweergave. Dezelfde filters als de lijstroute, maar server-side samengevoegd in tijdsintervallen (aantallen geslaagd en mislukt), zodat de response klein blijft, ongeacht het logvolume. De intervalgrootte wordt automatisch gekozen voor de periode.
Parameters
clubID `string` (verplicht) status `string` (optioneel) model `string` (optioneel) provider `string` (optioneel) source `string` (optioneel) keyHash `string` (optioneel) q `string` (optioneel) minutes `string` (optioneel) startDate `string` (optioneel) endDate `string` (optioneel) startTs `string` (optioneel) endTs `string` (optioneel)Eindpunt
GET /api/clubs/{clubID}/ai-credits/logs/histogram
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/logs/histogram \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Intervallen met gebruiksanalyses + totalen per model voor een periode (live).
Parameters
clubID `string` (verplicht) range `string` (optioneel) 24h | 7 | 30 | 90 | year | all (genegeerd als startDate/endDate is opgegeven) startDate `string` (optioneel) endDate `string` (optioneel) groupBy `string` (optioneel) model (standaard) | key | source | provider | status: dimensie voor intervallen + groepen subgroupBy `string` (optioneel) optionele tweede dimensie, genest onder elke groep (Explore) keyHash `string` (optioneel) filter voor verdieping: beperken tot één sleutel of agent model `string` (optioneel) filter voor verdieping: beperken tot één model provider `string` (optioneel) source `string` (optioneel) compare `string` (optioneel) stel in op "prev" om ook groupsPrev te retourneren (de direct voorafgaande periode van gelijke lengte)Eindpunt
GET /api/clubs/{clubID}/ai-credits/stats
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/stats \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Dagelijkse activiteitenkalender over het afgelopen jaar (circa 53 weken, zoals bij GitHub).
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/activity
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/activity \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De opgeslagen kaart voor SaaS-facturering belasten om vooruitbetaald Model Router-tegoed toe te voegen.
Parameters
clubID `string` (verplicht) body `object` (optioneel)Eindpunt
POST /api/clubs/{clubID}/ai-credits/topup
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een opwaardering afronden nadat de applet de 3DS-authenticatie heeft voltooid.
Parameters
clubID `string` (verplicht)Eindpunt
POST /api/clubs/{clubID}/ai-credits/topup/confirm
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Overzicht van de opgeslagen kaart voor SaaS-facturering die bij opwaarderingen en automatisch opwaarderen wordt belast.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/payment-method
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/payment-method \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Grootboektransacties voor de faciliteit, nieuwste eerst. Optioneel gefilterd op type (bijv. `types=topup,adjustment` voor de geschiedenis van geldbewegingen, of `types=charge-reconcile` met `from`/`to` voor de gebruiksafschrijvingen van een maand).
Parameters
clubID `string` (verplicht) limit `integer` (optioneel) Maximaal aantal rijen (standaard 50, maximaal 200) types `string` (optioneel) Kommagescheiden transactietypen (topup, charge-reconcile, refund, adjustment, trueup-shortfall) from `integer` (optioneel) Alleen transacties met createdAt >= from (Unix-seconden) to `integer` (optioneel) Alleen transacties met createdAt <= to (Unix-seconden)Eindpunt
GET /api/clubs/{clubID}/ai-credits/transactions
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Afzonderlijke maanden `YYYY-MM` (UTC, nieuwste eerst) met ten minste één transactie van de gevraagde typen. Voedt de vervolgkeuzefilters voor jaar en maand, zodat de UI alleen perioden aanbiedt waarvoor echt gegevens zijn.
Parameters
clubID `string` (verplicht) types `string` (optioneel) Kommagescheiden transactietypen (topup, charge-reconcile, refund, adjustment, trueup-shortfall)Eindpunt
GET /api/clubs/{clubID}/ai-credits/transactions/available-periods
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/available-periods \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Betalingsbewijs als PDF met huisstijl voor één Model Router-transactie.
Parameters
clubID `string` (verplicht) txId `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/{txId}/receipt.pdf \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Bundel van betalingsbewijzen als PDF met huisstijl voor de geselecteerde opwaarderingstransacties, als ZIP. Elke id moet een opwaardering van de faciliteit zijn: gebruiksafschrijvingen en beheercorrecties hebben geen betalingsbewijs en worden geweigerd.
Parameters
clubID `string` (verplicht) ids `string` (verplicht) Kommagescheiden transactie-id's (maximaal 50)Eindpunt
GET /api/clubs/{clubID}/ai-credits/transactions/receipts.zip
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Samenvattingen per kalendermaand (UTC) van de gebruiksafschrijvingen van de faciliteit, nieuwste eerst. De huidige maand wordt altijd opgenomen en gemarkeerd met `isCurrentMonth` (maand tot nu toe).
Parameters
clubID `string` (verplicht) months `integer` (optioneel) Terugkijkperiode in maanden (standaard 12, maximaal 24; genegeerd als `year` is ingesteld) year `integer` (optioneel) De samenvattingen beperken tot één UTC-kalenderjaar (bijv. 2026)Eindpunt
GET /api/clubs/{clubID}/ai-credits/usage-statements
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage-statements \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maandelijks gebruiksoverzicht als PDF met huisstijl: een samenvatting van de gebruiksafschrijvingen van de maand (subtotalen per dag + totaal). Uitdrukkelijk geen factuur of betalingsbewijs; bij gebruiksafschrijvingen wordt geen betaling geïnd.
Parameters
clubID `string` (verplicht) month `string` (verplicht) UTC-kalendermaand, `YYYY-MM`Eindpunt
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/statement.pdf
Voorbeeldrequest
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"
Antwoord
{}
Ruwe regels van gebruiksafschrijvingen voor een maand als CSV (transactie-id, UTC-tijdstempel, bedrag, saldo erna, momentopname van de totale uitgaven): de detailexport die aansluit op het totaal van het maandoverzicht.
Parameters
clubID `string` (verplicht) month `string` (verplicht) UTC-kalendermaand, `YYYY-MM`Eindpunt
GET /api/clubs/{clubID}/ai-credits/usage-statements/{month}/detail.csv
Voorbeeldrequest
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"
Antwoord
{}
Overzicht van gebruik en uitgaven voor de faciliteit (live plus het afgestemde grootboek).
Parameters
clubID `string` (verplicht) tz `string` (optioneel) IANA-tijdzone van de viewer, als terugvaloptie voor uitgavenvensters per dag en maand wanneer de faciliteit geen tijdzonegegevens heeft.Eindpunt
GET /api/clubs/{clubID}/ai-credits/usage
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/ai-credits/usage \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Koppelt een AI Edge Processor-apparaat aan een club of werkt de koppeling bij
Parameters
body `string` (verplicht) JSON-object voor het bijwerken van de registratie van een AI Edge Processor-apparaat.Eindpunt
POST /api/ai-edge-processor/devices
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Koppelt een AI Edge Processor-apparaat aan een club. Bepaalt het apparaat eerst op basis van metadata (de live heartbeat gaat voor), vult de registratierij aan als het apparaat zich nooit zelf heeft geregistreerd en ruimt verouderde registratierijen op die zijn achtergebleven na het opnieuw inrichten van hardware.
Parameters
body `string` (verplicht) JSON-object voor het bijwerken van de registratie van een AI Edge Processor-apparaat.Eindpunt
POST /api/ai-edge-processor/devices/associate
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ai-edge-processor/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met bbox-uploadrecords in een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/bbox-timeline/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bbox-timeline/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Zoekindex van de cameradatabase
Stuurt de openbare zoekindex camera-db van de documentatie door (fabrikanten, series, modellen, aliassen), die het dialoogvenster Find my camera gebruikt bij het toevoegen van netwerkcamera's. Wordt server-side 12 uur in de cache bewaard.
Eindpunt
GET /api/cctv/camera-db/search-index
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/search-index \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Fabrikantsjablonen van de cameradatabase
Stuurt de RTSP-URL-sjablonen en standaardwaarden van één fabrikant uit de openbare cameradatabase van de documentatie door. De slug wordt gevalideerd om path traversal te voorkomen. Wordt server-side 12 uur in de cache bewaard.
Parameters
slug `string` (verplicht) Slug van de fabrikant (bijv. hikvision)Eindpunt
GET /api/cctv/camera-db/manufacturers/{slug}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/camera-db/manufacturers/{slug} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met check-ingegevens van een faciliteit
Parameters
club `string` (verplicht) Interne ID van de club of faciliteit die je wilt openen. startDate `string` (optioneel) Begindatum in de notatie YYYY-MM-DD endDate `string` (optioneel) Einddatum in de notatie YYYY-MM-DD timezone `string` (optioneel) Tijdzone voor de interpretatie van datums (standaard Australia/Brisbane) nextToken `string` (optioneel) Pagineringstoken voor het ophalen van de volgende paginaEindpunt
GET /api/cctv/check-ins/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/check-ins/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Configuratie ophalen voor de front-end of UI van Camerabewaking
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/config/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Configuratie voor contentlevering van Camerabewaking ophalen
Retourneert het contentdomein dat CCTV-clients gebruiken om media-assets op te halen. Het domein wordt bepaald door de omgevingsvariabele CONTENT_DOMAIN, met een standaardwaarde per stage als terugvaloptie (productie gebruikt /cctv, andere stages gebruiken /cctv-stg).
Eindpunt
GET /api/cctv/content-config
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/content-config \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Configuratie wijzigen voor de front-end of UI van Camerabewaking
Parameters
body `object` (verplicht) JSON-object met het nieuwe configuratieblok dat aan het systeem wordt toegevoegd.Eindpunt
PUT /api/cctv/config/:club/:section
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met beschikbare bucketregio's voor de configuratie van de opslagprovider van Camerabewaking
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/bucket-region/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/bucket-region/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Collectie met niet-geïdentificeerde gezichten resetten
Reset de CompreFace-collectie met niet-geïdentificeerde gezichten van de faciliteit door alle subjects te verwijderen. Persoonsrecords in DynamoDB, gezichtsdetecties en tijdlijnblokken in OpenSearch worden NIET aangetast. Alleen de onderliggende gegevens voor gezichtsherkenning worden gewist. Nieuwe schaduwprofielen worden automatisch aangemaakt wanneer het systeem nieuwe cameradetecties verwerkt.
Parameters
facilityId `string` (verplicht)Eindpunt
DELETE /api/cctv/config/{facilityId}/unidentified-collection
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Informatie over de collectie met niet-geïdentificeerde gezichten ophalen
Retourneert het huidige aantal subjects in de CompreFace-collectie met niet-geïdentificeerde gezichten van de faciliteit.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/cctv/config/{facilityId}/unidentified-collection-info
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/config/{facilityId}/unidentified-collection-info \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een netwerkcamera (OEM- of IP-camera) toe via een stream-URL (RTSP, HTTP, HTTPS)
Parameters
body `string` (verplicht) JSON-object voor het toevoegen van een netwerkcamera.Eindpunt
POST /api/cctv/devices/add-network-camera
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-camera \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Netwerkcamera's in bulk toevoegen aan een Edge Processor
Registreert meerdere RTSP/HTTP-netwerkcamera's bij één Edge Processor en pusht daarna één keer FEED_CONFIG, zodat het apparaat de configuratie maar één keer herlaadt.
Parameters
body `object` (verplicht)Eindpunt
POST /api/cctv/devices/add-network-cameras
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/add-network-cameras \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Koppelt een apparaat aan een club of werkt de koppeling bij
Parameters
body `string` (verplicht) JSON-object voor het bijwerken van de registratie van een CCTV-apparaat.Eindpunt
POST /api/cctv/devices
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Koppelt een apparaat aan een club
Parameters
body `string` (verplicht) JSON-object voor het bijwerken van de registratie van een CCTV-apparaat.Eindpunt
POST /api/cctv/devices/associate
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/associate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Stuurt een MQTT-request naar een specifieke apparaat-UUID en verwacht (via websocket) een response met de beschikbare mogelijkheden van de camera.
Parameters
club `string` (verplicht) Interne ID van de club die eigenaar is van het apparaat dat je opvraagt. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/cctv/devices/list-camera-capabilities/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/list-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Apparaatregistraties weergeven
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/devices/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/devices/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert een netwerkcamera door die als verwijderd te markeren en uit de FEED_CONFIG van de Edge Processor te halen
Parameters
club `string` (verplicht) Interne ID van de club die eigenaar is van het apparaat. balenaUUID `string` (verplicht) UUID van de netwerkcamera die wordt verwijderd.Eindpunt
DELETE /api/cctv/devices/remove-network-camera/{club}/{balenaUUID}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/devices/remove-network-camera/{club}/{balenaUUID} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Slaat alle geconfigureerde cameramogelijkheden op en past ze als omgevingsvariabele toe op het apparaat (via balena)
Parameters
club `string` (verplicht) Interne ID van de club die eigenaar is van het apparaat dat je opvraagt. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/cctv/devices/save-camera-capabilities/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-capabilities/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Slaat een bewegingsmasker (indien geconfigureerd) voor de camera op en past het als omgevingsvariabele toe op het apparaat (via balena)
Parameters
club `string` (verplicht) Interne ID van de club die eigenaar is van het apparaat dat je opvraagt. body `string` (verplicht) JSON-object met het cameramasker.Eindpunt
POST /api/cctv/devices/save-camera-mask/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/save-camera-mask/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Stuurt een specifieke v4l2-opdracht (zoals helderheid of contrast) naar het fysieke apparaat
Parameters
club `string` (verplicht) Interne ID van de club die eigenaar is van het apparaat dat je opvraagt. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/cctv/devices/set-camera-capability/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/devices/set-camera-capability/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een stream-URL van een netwerkcamera testen
Stuurt een testopdracht naar een Edge Processor om een stream-URL van een camera met ffprobe te valideren
Request body
Eindpunt
POST /api/cctv/devices/test-stream
Voorbeeldrequest
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 '{}'
Antwoord
{}
Verwijdert één gezichtsdetectierecord definitief uit de database. Wordt gebruikt om verkeerd gekoppelde of onjuiste trackitems uit het activiteitenlogboek van een persoon te verwijderen.
Parameters
club `string` (verplicht) fdID `string` (verplicht)Eindpunt
DELETE /api/cctv/face-detections/:club/:fdID
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:fdID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met gezichtsdetectiegegevens van een persoon
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personID `string` (verplicht) ID van de persoon in het systeem voor gezichtsidentificatieEindpunt
GET /api/cctv/face-detections/:club/:personID
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert gezichtsdetecties die naar een bepaalde uitsnede van een persoon verwijzen, opgevraagd via de GSI personCropImage.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personCropImage `string` (verplicht) URL van de uitsnede van de persoon die in het gezichtsdetectierecord is opgeslagen. limit `string` (optioneel) Maximaal aantal detecties dat wordt geretourneerd. nextToken `string` (optioneel) Pagineringstoken uit een eerdere response.Eindpunt
GET /api/cctv/face-detections-by-person-crop-image/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections-by-person-crop-image/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met gezichtsdetectiegegevens van een club, gegroepeerd per periode ten opzichte van de huidige tijd
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/face-detections/:club/timeline
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met gezichtsdetectiegegevens van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/face-detections/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/face-detections/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Tijdlijnblokken van gezichtsdetecties in een faciliteit doorzoeken met OpenSearch
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit waarin wordt gezocht timezone `string` (verplicht) IANA-tijdzone voor datumconversie (bijv. Pacific/Auckland) startDate `string` (optioneel) Filter op begindatum (YYYY-MM-DD), met de tijdzone omgezet naar startUnix endDate `string` (optioneel) Filter op einddatum (YYYY-MM-DD), met de tijdzone omgezet naar endUnix personId `string` (optioneel) Filteren op een specifieke persoons-ID query `string` (optioneel) Vrij zoeken (bijv. naam van een persoon) limit `string` (optioneel) Resultaten per pagina (standaard 20, maximaal 100) filters `string` (optioneel) JSON-gecodeerd filterobject (bijv. {"matchType":"identified"}) sortBy `string` (optioneel) Veld waarop wordt gesorteerd (startUnix, endUnix, created). Standaard endUnix. page `string` (optioneel) Paginanummer voor paginering (standaard 1) sortOrder `string` (optioneel) Sorteerrichting (asc of desc). Standaard desc.Eindpunt
GET /api/cctv/search/face-detections/timeline-blocks/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/face-detections/timeline-blocks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met rapporten over de clubfaciliteit
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/facility/:club/reports
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/facility/:club/reports \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Heatmapgeneratie op aanvraag starten. Roept dezelfde Starter-logica aan die de ingeplande cron gebruikt, maar maakt het mogelijk een specifieke faciliteit, datum/tijd en set perioden te kiezen. Zonder body gedraagt de aanroep zich precies als de cron: alle in aanmerking komende faciliteiten worden gescand en elk apparaat wordt in de wachtrij geplaatst.
Request body
Eindpunt
POST /api/cctv/heatmaps/generate
Voorbeeldrequest
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 '{}'
Antwoord
{}
De locatie bepalen van een samengestelde heatmap-PNG met voortschrijdend venster voor één apparaat. Retourneert alleen JSON-metadata: de PNG-bytes staan op het contentdomein en de front-end stelt de URL als volgt samen: `${contentDomain}/cctv/${storageService}/${region}/${filePath}?s=${token}` Volgorde van bepalen: 1. Treffer in de DynamoDB-index `composed#…` → direct retourneren (~10 ms). 2. Wasabi HEAD op de deterministische cachesleutel. Bij een treffer wordt een aanvullende indexrij geschreven en geretourneerd. 3. Verouderde terugvaloptie: er bestaat een samengestelde record voor deze combinatie (apparaat, bereik, uur), ook al is die van een andere datum. Wordt direct geretourneerd met `cache: 'HIT-STALE'`, zodat de FE *iets* kan tonen. Er wordt asynchroon een nieuwe samenstelling gestart. 4. Koud pad: er bestaat helemaal geen record. De Compose-Lambda wordt in de wachtrij geplaatst via `InvocationType: 'Event'` en het endpoint retourneert `202 { cache: 'PENDING' }`. De FE pollt tot er een record is (meestal na 3-5 seconden). Afhandeling van vandaag: als `endDate` de lokale "vandaag" van de faciliteit is, levert het endpoint in plaats daarvan de PNG van gisteren: de slices van vandaag worden nog door de Starter-cron geschreven en een nieuwe samenstelling zou onvolledig zijn. De response herhaalt de gevraagde `endDate` en bevat `endDateUsed` (= gisteren). Enum `cache`: - `HIT`: geleverd uit de DDB-index voor de gevraagde datum. - `HIT-FALLBACK`: vandaag gevraagd; de indexrij van gisteren geleverd. - `HIT-BACKFILL`: niet in DDB, maar Wasabi had de PNG; de rij is zojuist geschreven. - `HIT-FALLBACK-BACKFILL`: aanvulling op de terugvaloptie van gisteren. - `HIT-STALE`: geen record voor de gevraagde datum, maar er bestaat wel een record van een andere datum voor deze combinatie; direct geleverd, en op de achtergrond wordt een nieuwe samenstelling in de wachtrij geplaatst. - `PENDING`: helemaal geen record; de samenstelling is in de wachtrij geplaatst. De FE moet pollen. De response is `202 Accepted`, zonder `filePath`.
Parameters
facilityId `string` (verplicht) deviceUUID `string` (verplicht) Apparaat waarvoor wordt samengesteld. Samenstellingen zijn per apparaat. hour `integer` (verplicht) Uur van de dag (0–23) waarvoor over het terugkijkvenster wordt samengesteld. endDate `string` (optioneel) Laatste datum in het venster (YYYY-MM-DD). Standaard vandaag (tijdzone van de faciliteit). range `string` (optioneel) Terugkijkvenster. Moet een van de toegestane bereiken zijn. nocache `integer` (optioneel) Stel in op `1` om de cachelagen DDB + HEAD te omzeilen en een nieuwe samenstelling af te dwingen.Eindpunt
GET /api/cctv/heatmaps/hourly/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Bepalen welke uren van de dag `1h`-slicerecords hebben voor een apparaat over een voortschrijdend terugkijkvenster. De front-end gebruikt dit om de uurkiezer naast een datum- en bereikkiezer te vullen voordat het samenstellingsendpoint (`/api/cctv/heatmaps/hourly/...`) wordt aangeroepen. Voorbeeld: `GET /api/cctv/heatmaps/query-hourly/Birkdale?deviceUUID=abc123&endDate=2026-04-16&range=30d` Intern: één DynamoDB-bereikquery op `cctvheatmaps` (`sk BETWEEN 1h#{start}-00 AND 1h#{end}-23`), gegroepeerd per uur. Retourneert één item per uur met ten minste één slice, inclusief een representatieve referentie-JPEG (van de meest recente dag in het venster; de referentie wordt per apparaat per dag gedeeld).
Parameters
facilityId `string` (verplicht) deviceUUID `string` (verplicht) Apparaat dat wordt opgevraagd. Slices per uur zijn per apparaat. endDate `string` (optioneel) Laatste datum in het venster (YYYY-MM-DD). Standaard vandaag (tijdzone van de faciliteit). range `string` (optioneel) Terugkijkvenster. Moet een van de toegestane bereiken zijn.Eindpunt
GET /api/cctv/heatmaps/query-hourly/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/query-hourly/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Vooraf gegenereerde heatmaprecords voor een faciliteit opvragen. **Alle records voor een periodetype:** - `/api/cctv/heatmaps/Birkdale?periodType=1y` - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&periodType=1d` **Datumbereik, één periodetype:** - `/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` **Datumbereik, alle toepasselijke periodetypen (laat periodType weg):** - `/api/cctv/heatmaps/Birkdale?from=2026-03-01&to=2026-03-31` Retourneert jaarlijkse, halfjaarlijkse, driemaandelijkse enz. records tot en met 6h die het opgegeven bereik overlappen. **Op een tijdstip, alle 9 periodetypen voor één apparaat:** - `/api/cctv/heatmaps/Birkdale?deviceUUID=abc123&date=2026-03-15T14:30` Retourneert maximaal 9 records (1y, 6m, 3m, 2m, 1m, 1w, 1d, 12h, 6h).
Parameters
facilityId `string` (verplicht) De identificatie van de faciliteit. deviceUUID `string` (optioneel) Een specifiek apparaat opvragen. Zonder deze waarde wordt over alle apparaten gezocht (GSI). periodType `string` (optioneel) Filteren op één periodetype. Zonder deze waarde maar met from/to worden alle typen opgevraagd. from `string` (optioneel) Begindatum (yyyy-mm-dd). Moet samen met `to` worden gebruikt. to `string` (optioneel) Einddatum (yyyy-mm-dd). Moet samen met `from` worden gebruikt. date `string` (optioneel) Opvragen op een tijdstip (yyyy-mm-dd of yyyy-mm-ddTHH:mm). Vereist deviceUUID. Retourneert één record per periodetype.Eindpunt
GET /api/cctv/heatmaps/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/heatmaps/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De livestreamminiatuur van het apparaat ophalen
Parameters
club `string` (verplicht) Interne ID van de club. deviceId `string` (verplicht) Interne ID van het CCTV-apparaat.Eindpunt
GET /api/cctv/livestream/:club/thumbnail/:deviceId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/livestream/:club/thumbnail/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het camerabewakingssysteem laten weten dat je een livestream gaat bekijken
Parameters
club `string` (verplicht) Interne ID van de club. deviceId `string` (verplicht) Interne ID van het CCTV-apparaat.Eindpunt
POST /api/cctv/livestream/:club/iswatching/:deviceId
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/livestream/:club/iswatching/:deviceId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een intersectiematch goedkeuren
Zet de matchstatus op bevestigd en legt de beoordelaar vast.
Parameters
club `string` (verplicht) matchId `string` (verplicht)Eindpunt
POST /api/cctv/matching/{club}/detail/{matchId}/approve
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/approve \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eén intersectiematch met bezoekdetails ophalen
Retourneert de matchrecord en de uitsplitsing van de tijden per bezoek.
Parameters
club `string` (verplicht) matchId `string` (verplicht)Eindpunt
GET /api/cctv/matching/{club}/detail/{matchId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een niet-gematchte persoon handmatig aan een lid koppelen
Koppelt een CCTV-personId aan een specifiek lid en zet de match op bevestigd.
Parameters
club `string` (verplicht) matchId `string` (verplicht)Request body
Eindpunt
POST /api/cctv/matching/{club}/detail/{matchId}/link
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/link \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Intersectiematches voor een faciliteit weergeven
Retourneert gepagineerde matches, gefilterd op status.
Parameters
club `string` (verplicht) status `string` (optioneel) limit `integer` (optioneel) nextToken `string` (optioneel)Eindpunt
GET /api/cctv/matching/{club}/list
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een intersectiematch afwijzen
Zet de matchstatus op afgewezen en legt de beoordelaar vast.
Parameters
club `string` (verplicht) matchId `string` (verplicht)Eindpunt
POST /api/cctv/matching/{club}/detail/{matchId}/reject
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/reject \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Samenvattende aantallen van intersectiematching ophalen
Retourneert de aantallen matches per status voor de faciliteit.
Parameters
club `string` (verplicht) Faciliteit-IDEindpunt
GET /api/cctv/matching/{club}/summary
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/matching/{club}/summary \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De koppeling van een automatisch geleerde profielmatch ongedaan maken
Zet een gekoppelde match terug naar de status afgewezen en wist autoLearnedFrom in de ledenrecord.
Parameters
club `string` (verplicht) matchId `string` (verplicht)Request body
Eindpunt
POST /api/cctv/matching/{club}/detail/{matchId}/unlink
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/matching/{club}/detail/{matchId}/unlink \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
De status lezen van een lopende bewerking "upsert identified person" (geldt voor aanmaken en bewerken). Leest de rij rechtstreeks uit de tabel `people-ops` van cctv-rekognition-api, zonder tussenstap via een Lambda. Wordt door de CCTV-front-end gebruikt om de voortgang te pollen na POST /api/cctv/people/{facility}/identified. Het pad staat naast `/cctv/people/...` (niet eronder genest), zodat de express-router `operationId` niet ten onrechte als `:personID` kan matchen op `/cctv/people/:club/:personID`. Zie de glob-volgorde van createAPIRouter. Retourneert een tijdelijke waarde `pending` zolang de Lambda upsertIdentifiedPerson nog geen eerste stage-item heeft geschreven (venster van de koude start). De pollinghook van de FE behandelt de tijdelijke waarde en pending hetzelfde, zodat het contract voor aanroepers stabiel blijft.
Parameters
operationId `string` (verplicht)Eindpunt
GET /api/cctv/people-operations/{operationId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people-operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een gezichtsafbeelding (uit een bestaande trackdetectie) toe aan het CompreFace-herkenningssubject van de persoon en slaat een verwijzing op in de tabel met schaduwfoto's. Uploadt de afbeelding NIET naar Wasabi: die staat daar al als opname van een gezichtsdetectie.
Parameters
club `string` (verplicht) personID `string` (verplicht) body `string` (verplicht)Eindpunt
POST /api/cctv/people/:club/:personID/add-face
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID/add-face \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Schaduwfoto's toevoegen aan een persoonsrecord
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personID `string` (verplicht) Record-ID van de persoon body `string` (verplicht) JSON-object met het nieuwe configuratieblok dat aan het systeem wordt toegevoegd.Eindpunt
POST /api/cctv/people/:club/shadow-photos/:personID
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Schaduwfoto's van een persoon opvragen
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personID `string` (verplicht) Record-ID van de persoonEindpunt
GET /api/cctv/people/:club/shadow-photos/:personID
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert een schaduwfotorecord definitief uit CCTVShadowPhotosTable en verwijdert het bijbehorende gezicht uit CompreFace (als faceId is opgeslagen).
Parameters
club `string` (verplicht) personID `string` (verplicht) id `string` (verplicht) De record-ID van de schaduwfoto (primaire sleutel)Eindpunt
DELETE /api/cctv/people/:club/shadow-photos/:personID/:id
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/shadow-photos/:personID/:id \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert verwijzingen en bijbehorende rekognition-records op basis van een personID
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personID `string` (verplicht) Unieke ID van de CCTV-persoon.Eindpunt
DELETE /api/cctv/people/:club/:personID
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een persoonsrecord van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. personID `string` (verplicht) Database-ID van de persoon.Eindpunt
GET /api/cctv/people/:club/:personID
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/:personID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegangszones ophalen die passen bij het lidmaatschapsprofiel van een persoon
Bepaalt het lidtype, de tags en de lidmaatschapsabonnementen van de persoon en retourneert vervolgens de echte toegangszones (origin=membership-plan, niet geabsorbeerd) die volgens de insluit- en uitsluitregels passen. De accessRestriction van elke zone wordt ingekort tot alleen de regels die op de persoon van toepassing waren. Camera's van onderliggende zones worden samengevoegd in de bovenliggende zones.
Parameters
club `string` (verplicht) Interne ID van de faciliteit personID `string` (verplicht) Persoons-ID uit de CCTV-personentabelEindpunt
GET /api/cctv/people/{club}/{personID}/allowed-zones
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/{club}/{personID}/allowed-zones \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de huidige status van een samenvoegtaak, inclusief de resultaten per bron. Poll dit endpoint elke 3-5 seconden zolang de status IN_PROGRESS is.
Parameters
club `string` (verplicht) mergeJobID `string` (verplicht)Eindpunt
GET /api/cctv/people/:club/merge-status/:mergeJobID
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-status/:mergeJobID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Start op de achtergrond het samenvoegen van meerdere niet-geïdentificeerde persoonsprofielen tot één overblijvend profiel. Antwoordt direct met 202 en een mergeJobID. Poll /merge-status/:mergeJobID voor de voortgang.
Parameters
club `string` (verplicht) body `string` (verplicht)Eindpunt
POST /api/cctv/people/:club/merge-unidentified
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/merge-unidentified \
-H "x-api-key: YOUR_API_KEY"
Een gezicht toevoegen aan de zwartelijstcollectie van een faciliteit
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteitRequest body
Eindpunt
POST /api/cctv/people/{facilityId}/blacklist
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een geïdentificeerde persoon in een faciliteit toevoegen of bijwerken (upsert): maakt een nieuwe record aan of werkt een bestaande bij. Wordt doorgestuurd naar de Lambda upsertIdentifiedPerson, die de persoonsrecord schrijft, een eventueel meegestuurde foto naar Wasabi uploadt en het gezicht opnieuw indexeert in CompreFace. Als `isNewRecord` true is (standaard), voert de Lambda de aanmaaktak uit (cctvPeople.save) en wordt een `personID` gegenereerd als die niet is opgegeven. Als `isNewRecord` false is, voert de Lambda de updatetak uit (cctvPeople.update): `personID` is dan verplicht en moet een bestaande record aanduiden.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/cctv/people/{facilityId}/identified
Voorbeeldrequest
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 '{}'
De set optionele partnervelden bijwerken die voor een faciliteit naar de CCTV-personentabel worden gesynchroniseerd.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteitRequest body
Eindpunt
PUT /api/cctv/people/{facilityId}/sync-fields
Voorbeeldrequest
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 '{}'
Antwoord
{}
Retourneert een lijst met persoonsgegevens van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/people/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/people/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Personen in een faciliteit zoeken op gezichtsafbeelding. Roept de Lambda imageFaceSearch van cctv-rekognition-api aan met de geüploade base64-afbeelding en de faciliteit-ID uit het pad. Retourneert gerangschikte matches plus een samenvatting van DeepFace-kenmerken.
Parameters
club `string` (verplicht) Faciliteit- of club-ID body `string` (verplicht)Eindpunt
POST /api/cctv/people/{club}/search-by-face
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/{club}/search-by-face \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Personen in een faciliteit zoeken met OpenSearch
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit waarin wordt gezocht query `string` (optioneel) Zoekterm (bijv. naam) page `string` (optioneel) Paginanummer (standaard 1) limit `string` (optioneel) Resultaten per pagina (standaard 20, maximaal 100) filters `string` (optioneel) JSON-gecodeerd filterobject (bijv. {"membershipStatus":"active"}) sortBy `string` (optioneel) Veld waarop wordt gesorteerd (created, lastName, firstName, membershipUpdatedOn). Standaard created. sortOrder `string` (optioneel) Sorteerrichting (asc of desc). Standaard desc.Eindpunt
GET /api/cctv/search/people/:facilityId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/people/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt gezichtsdetectie-items bij met een nieuwe personID en koppelt rekognition-records
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. body `string` (verplicht) JSON-object met het nieuwe configuratieblok dat aan het systeem wordt toegevoegd.Eindpunt
POST /api/cctv/people/:club/validate
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/people/:club/validate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een object met alle beschikbare filters voor de CCTV-opnamegegevens van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/recordings/filters/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/filters/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Opname streamen.
Eindpunt
GET /api/cctv/recordings/:club/:dir/:filename
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Informatie over de opname bijwerken.
Eindpunt
PUT /api/cctv/recordings/:club/:dir/:filename
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:dir/:filename \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een samenvatting van de CCTV-opnamegegevens van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/recordings/:club/summary
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/summary \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met CCTV-opnamegegevens van een club op basis van een periode ten opzichte van de huidige tijd
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/recordings/:club/timeline
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club/timeline \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met CCTV-opnamegegevens van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/recordings/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/recordings/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Opnamen worden na een vaste periode automatisch verwijderd; gebruik deze functie om opnamen te bewaren
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
POST /api/cctv/recordings/:club/:action
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/recordings/:club/:action \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Momentopnamen van rapporten voor een faciliteit binnen een datumbereik zoeken
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit startDate `string` (verplicht) Filter op begindatum (YYYY-MM-DD) endDate `string` (verplicht) Filter op einddatum (YYYY-MM-DD) deviceIds `string` (optioneel) Kommagescheiden lijst met camera- of apparaat-ID's om op te filteren view `string` (optioneel) Alternatieve rapportweergave die wordt berekend (doorgestuurd naar de rapport-Lambda)Eindpunt
GET /api/cctv/reports/search-report-snapshots/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/reports/search-report-snapshots/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Vectorzoekopdracht in de geïndexeerde CCTV-media van een faciliteit. Antwoordt met een text/event-stream die vanuit de Lambda searchAnything wordt doorgegeven, zodat de client de voortgang kan tonen terwijl een koude container de encoder laadt. De gebeurtenissen zijn `status`, gevolgd door `result` of `error`. Er zijn drie manieren om te zoeken, waarvan twee met dit werkwoord. Stuur `query` om op vrije tekst te zoeken. Stuur `seedIndex` + `seedKey` om op voorbeeld te zoeken ("meer zoals dit"), met de vector van een rij die al in de index staat; zo vind je meer van een resultaat dat de gebruiker bekijkt. Om te zoeken op een afbeelding die de gebruiker heeft, `POST` je de bytes in plaats daarvan naar hetzelfde pad. Stuur woorden met een afbeelding om het ene met het andere te verfijnen: **tekst filtert, afbeelding rangschikt**. Kandidaten komen uit de seed, de woorden bepalen welke overblijven en visuele gelijkenis bepaalt de volgorde. De resultaten lijken dus nog steeds op de afbeelding en de woorden gooien de resultaten weg die niet passen. De twee worden nooit tot één vector gemengd; daarom blijft `queryKind` `similar` bij een gecombineerde zoekopdracht. Aan de aanwezigheid van `query` in het resultaat zie je dat er een tekstfilter is toegepast. Verwacht dat gecombineerde zoekopdrachten vrij vaak niets opleveren en behandel dat als een aparte uitkomst: `perIndex.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit waarin wordt gezocht query `string` (optioneel) Beschrijving in vrije tekst van waarnaar wordt gezocht. Verplicht, tenzij warm=1 of een seed wordt meegestuurd. In combinatie met een seed wordt de tekst niet meer gerangschikt, maar een filter op de kandidaten van de seed: kandidaten met een tekstscore onder de relevantiegrens van de index vallen af. seedIndex `string` (optioneel) Zoeken op voorbeeld in plaats van op tekst: de index waarin de seed-rij staat (person-crops, recording-frames, timelapse-frames). Dit is de `index` van de treffer waarop de gebruiker heeft geklikt. Moet samen met seedKey worden verzonden. seedKey `string` (optioneel) De `key` van de seed-rij, letterlijk overgenomen uit de treffer. De seed wordt uitgesloten van de eigen resultaten; bij een opname betekent dat de hele clip, omdat de andere frames 2 s uit elkaar liggen en bijna identiek zijn. seedFrameId `string` (optioneel) Verplicht als seedIndex recording-frames is: die index slaat één rij per bemonsterd frame op en die delen allemaal de sleutel van de clip, dus de sleutel alleen duidt een clip aan en geen moment. Stuur de `frameId` van de treffer. Oudere rijen hebben die niet; stuur dan seedOffsetMs. seedOffsetMs `string` (optioneel) Alternatieve frame-identificatie voor recording-frames-seeds waarvan de rij ouder is dan `frame_id`. Stuur de `offsetMs` van de treffer. Wordt genegeerd als seedFrameId is opgegeven. warm `string` (optioneel) Een Lambda-container voorbereiden zonder een zoekopdracht uit te voeren. Roep dit aan bij het laden van de pagina. warmTarget `string` (optioneel) Welke encoder `warm` laadt: `text` (standaard), `image` of `both`. De vision tower is 355 MB tegenover 283 MB voor de text tower, dus het voorbereiden ervan is optioneel: vraag `image` pas aan zodra de gebruiker echt een afbeelding heeft klaargezet, niet bij het laden van de pagina. index `string` (optioneel) Kommagescheiden datasets om te doorzoeken: person-crops, recording-frames, timelapse-frames. Resultaten worden samengevoegd tot één lijst, gesorteerd op score. Standaard worden alle drie doorzocht; geef een expliciete lijst op om dit te beperken. timelapse-frames omvat camera's die niets opnemen en alleen één frame per minuut maken; de relevantiegrens daarvan is nog niet gekalibreerd. model `string` (optioneel) Encoder waarmee wordt gezocht. Moet overeenkomen met de encoder waarmee de dataset is geïndexeerd. limit `string` (optioneel) Aantal resultaten per index (standaard 50, maximaal 100). Dit is geen totaal: een zoekopdracht in alle drie de indexen kan tot drie keer zoveel opleveren. Bij opnamen worden clips geteld en geen gematchte frames. from `string` (optioneel) Alleen media matchen die op of na dit tijdstip zijn opgenomen, in milliseconden sinds de epoch. Let op: dit is de opnametijd, niet de uploadtijd. to `string` (optioneel) Alleen media matchen die vóór dit tijdstip zijn opgenomen (exclusief), in milliseconden sinds de epoch. cameraId `string` (optioneel) Kommagescheiden balenaUUID's van camera's om op te verfijnen: het veld `balenaUUID` van elk item dat /api/cctv/recordings/filters/:club retourneert. Het voorkeursfilter voor camera's: elke index slaat deze waarde op, dus één filter verfijnt ze allemaal. Let op: alleen uitsneden waarvan de koppeling met de gezichtsdetectie is gelukt, hebben deze waarde (nu circa 1%), dus het verfijnen van uitsneden op camera levert weinig of niets op totdat de aanvulling van uitsneden is uitgevoerd; opnamen zijn volledig gevuld en filteren exact. camera `string` (optioneel) Kommagescheiden cameranamen om op te verfijnen. In de praktijk alleen voor opnamen: person-crops slaat in elke rij een lege cameranaam op, dus elke waarde hier sluit alle uitsneden uit. Gebruik bij voorkeur cameraId. cameraGroup `string` (optioneel) Kommagescheiden cameragroepen om op te verfijnen. Gevuld bij alle opnamen, maar bij slechts circa 1% van de uitsneden, om dezelfde reden als bij cameraId. minScore `string` (optioneel) De cosinusondergrens per index overschrijven die ruis wegfiltert. Laat dit in productie weg; elke index heeft een gekalibreerde standaardwaarde (en een aparte, niet-gekalibreerde voor seed-zoekopdrachten). Geef 0 op om ongefilterde naaste buren te zien bij het debuggen van relevantie.Eindpunt
GET /api/cctv/search/anything/:facilityId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Zoeken op een afbeelding die de gebruiker heeft, in plaats van op woorden of op een resultaat dat al op het scherm staat. In alle andere opzichten identiek aan de GET (dezelfde queryparameters, dezelfde eventstream, dezelfde resultaatvorm), dus hier staat alleen wat afwijkt. Stuur de **oorspronkelijke bestandsbytes** als request body met een `image/*` Content-Type. Verklein, snijd of hercodeer de afbeelding niet eerst in de browser: de server gebruikt een heel specifieke verkleining (samendrukken tot 256x256 met een bilineaire kernel met anti-aliasing) waarmee de geïndexeerde vectoren zijn gemaakt, en canvasschaling gebruikt een andere. Gemeten komt die vervanging ongeveer 0,93 cosinus van het juiste antwoord uit, verder dan twee echt verschillende afbeeldingen. De resultaten komen dan aannemelijk maar verkeerd gerangschikt terug, zonder foutmelding. Maximaal 4 MB; dat is een transportbeperking en geen kwaliteitsbeperking: de bytes reizen mee in de payload van de Lambda-aanroep, die maximaal 6 MB is, en base64 maakt ze een derde groter. Resultaten worden gescoord van afbeelding naar afbeelding, dus `queryKind` is `image` en de scores staan op dezelfde veel hogere schaal als bij een seed-zoekopdracht: nooit vergelijkbaar met tekstscores. Verwacht dat ze iets *lager* uitvallen dan bij een gelijkwaardige seed-zoekopdracht: de vector van een seed is door het apparaat zelf geschreven, terwijl een upload hier door een andere engine opnieuw wordt gecodeerd, waardoor die een paar honderdsten verschuift ten opzichte van waar het apparaat hem zou plaatsen. Gemeten zijn de resultaten desondanks van gelijke kwaliteit; het is alleen niet exact dezelfde set. Het toevoegen van `query` filtert de resultaten op die woorden, precies zoals bij een seed. Een seed *en* een afbeelding sturen wordt geweigerd: beide zijn wat wordt gerangschikt, dus de combinatie heeft geen betekenis. Dit is de duurste request die het endpoint afhandelt. Een geüploade afbeelding laadt de vision tower, en woorden toevoegen laadt ook de text tower, beide op een koude container. Met `warm=1&warmTarget=image` zodra de gebruiker een afbeelding klaarzet, haal je dat van het kritieke pad.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit waarin wordt gezocht body `string` (verplicht) Ruwe afbeeldingsbytes, ongewijzigd, maximaal 4 MB query `string` (optioneel) Optionele woorden om de afbeeldingsresultaten te verfijnen; matches met een tekstscore onder de relevantiegrens van de index vallen af.Eindpunt
POST /api/cctv/search/anything/:facilityId
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/search/anything/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert opslaggegevens en andere statistieken voor de camerabewaking van de club
Eindpunt
GET /api/cctv/storage-details/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/storage-details/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met timelapse-uploadrecords van een club
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/timelapse/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/timelapse/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikersacties weergeven die op de opnamen in de front-end of UI van Camerabewaking zijn uitgevoerd
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/cctv/ui/actions/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een gebruikersactie vastleggen die op de opnamen in de front-end of UI van Camerabewaking is uitgevoerd
Parameters
body `string` (verplicht) JSON-object met het nieuwe configuratieblok dat aan het systeem wordt toegevoegd.Eindpunt
POST /api/cctv/ui/actions/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/ui/actions/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikerstoken ophalen voor de front-end of UI van Camerabewaking
Parameters
club `string` (verplicht) Club-IDEindpunt
GET /api/cctv/ui/token/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/ui/token/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Token genereren voor tijdelijke toegang of gasttoegang
Parameters
club `string` (verplicht) De unieke identificatie van de club. body `string` (verplicht) JSON-object met de gegevens van het token dat wordt uitgegeven.Eindpunt
POST /api/cctv/token/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{
"accessID": "00000000-0000-0000-0000-000000000014"
}
Retourneert een lijst met records van tokens voor tijdelijke toegang of gasttoegang
Parameters
club `string` (verplicht) De unieke identificatie van de club.Eindpunt
GET /api/cctv/token/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/cctv/token/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegangstoken ophalen via toegangs-ID
Parameters
accessID `string` (verplicht) ID van het tokenrecord in de database.Eindpunt
POST /guest/cctv/token/:accessID
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/guest/cctv/token/:accessID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegangstijden van een faciliteit verwijderen
Parameters
facilityId `string` (verplicht) body `object` (verplicht) JSON-object met de nieuwe toegangstijden.Eindpunt
DELETE /api/ai/computer-vision/access-hours/:facilityId
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met toegangstijden van een faciliteit
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/ai/computer-vision/access-hours/:facilityId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt toegangstijden van een faciliteit bij of maakt ze aan
Parameters
facilityId `string` (verplicht) body `object` (verplicht) JSON-object met de nieuwe toegangstijden.Eindpunt
POST /api/ai/computer-vision/access-hours/:facilityId
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-hours/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een toegangszone van een faciliteit verwijderen
Parameters
facilityId `string` (verplicht) body `object` (verplicht) JSON-object met de nieuwe toegangszone.Eindpunt
DELETE /api/ai/computer-vision/access-zones/:facilityId
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met toegangszones van een faciliteit
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/ai/computer-vision/access-zones/:facilityId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een toegangszone van een faciliteit bij of maakt die aan
Parameters
facilityId `string` (verplicht) body `object` (verplicht) JSON-object met de nieuwe toegangszone.Eindpunt
POST /api/ai/computer-vision/access-zones/:facilityId
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ai/computer-vision/access-zones/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de vereniging van alle beheermodule-ID's over alle merken en faciliteiten van een organisatie, ingevuld als moduleobjecten.
Parameters
organisationId `string` (verplicht) Organisatie-IDEindpunt
GET /api/organisations/{organisationId}/admin-modules
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/organisations/{organisationId}/admin-modules \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle organisaties
Parameters
includeBrands `string` (optioneel) Merken opnemen die aan de organisatie zijn gekoppeld includeFacilities `string` (optioneel) Faciliteiten opnemen die aan de organisatie zijn gekoppeld includeRegions `string` (optioneel) Regio's opnemen die aan de organisatie zijn gekoppeldEindpunt
GET /api/organisations
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/organisations \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een eenvoudige AI-hulpfunctie die de inhoud van een ondersteuningsticket analyseert en suggesties doet op basis van beschikbare onderwerpen, plus voorgestelde Algolia-zoekonderwerpen...
Parameters
messageBody `string` (verplicht) Inhoud van het te verzenden bericht topicData `string` (verplicht) JSON-object of -array met de topicData die door osTicket (het ticket- en ondersteuningssysteem) is geretourneerd facilityId `string` (optioneel) De interne ID van de club, nodig om de juiste Algolia-index te bepalen waarin wordt gezocht.Eindpunt
PUT /api/ai/helpers/analyse-support-ticket
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/ai/helpers/analyse-support-ticket \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een eenvoudige API voor het genereren van afbeeldingen
Parameters
type `string` (verplicht) Type afbeelding dat wordt gegenereerd name `string` (verplicht) Naam van de afbeelding maxSize `string` (optioneel) Optionele maximale responsgrootte, bijv. 200KB, 1MB of een gewoon aantal bytes. De afbeelding wordt verkleind of gecomprimeerd zodat die past.Eindpunt
PUT /api/ai/images/:type/:name
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/ai/images/:type/:name \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eenvoudige LLM-query
Lichtgewicht endpoint voor eenvoudige, stateless LLM-query's. Gebruikt een goedkoop model zonder redeneervermogen (gpt-4o-mini) met strikte tokenlimieten. Geen gespreksgeschiedenis, geen tools, geen streaming: alleen een prompt erin en tekst eruit.
Request body
Eindpunt
POST /api/ai/llm/query
Voorbeeldrequest
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 '{}'
Antwoord
{}
Retourneert de Algolia-configuratie, inclusief indexnaam, app-ID en API-sleutel.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/facilities/{facilityId}/algolia/config
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/algolia/config \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Initialiseert de Algolia-index voor marketingprint
Parameters
organisationId `string` (verplicht)Eindpunt
PUT /api/algolia/index
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/algolia/index \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Zoeken naar marketingprintmateriaal
Request body
Eindpunt
POST /algolia/search-marketing-print
Voorbeeldrequest
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 '{}'
Antwoord
{}
Zoeken naar marketingprintmateriaal
Parameters
club `string` (optioneel) Club-ID searchTerms `string` (optioneel) Zoektermen algoliaArgs `object` (optioneel) Aanvullende Algolia-zoekargumentenEindpunt
GET /algolia/search-marketing-print
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/algolia/search-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Marketingprintobjecten voor een specifieke club in bulk bijwerken
Eindpunt
POST /algolia/bulk-update-marketing-print
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/algolia/bulk-update-marketing-print \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt marketingprintmateriaal op uit Algolia.
Parameters
organisationId `string` (verplicht) search `string` (optioneel) limit `string` (optioneel) brand `string` (optioneel) tag `string` (optioneel)Eindpunt
GET /api/algolia/marketing/assets
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Initialiseert de Algolia-index voor marketingprint met de configuratie van de faciliteit.
Parameters
organisationId `string` (verplicht)Eindpunt
POST /api/algolia/marketing/assets
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/algolia/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voert een zoekopdracht uit in een opgegeven Algolia-index op basis van zoektermen, club en/of landinstelling. De zoekopdracht kan verder worden aangepast met aanvullende Algolia-argumenten.
Parameters
searchTerms `string` (verplicht) De termen waarnaar in de Algolia-index wordt gezocht. club `string` (optioneel) Interne ID van de club die de request doet. Als die is opgegeven, wordt de zoekopdracht gefilterd op de regio die aan de club is gekoppeld. locale `string` (optioneel) De landinstelling waarmee de regio wordt bepaald als er geen club is opgegeven. Afgeleid van navigator.languages. algoliaArgs `string` (optioneel) Aanvullende of aangepaste argumenten die aan de Algolia-zoekrequest worden doorgegeven.Eindpunt
POST /api/algolia/search-wiki
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/algolia/search-wiki \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toont alle aankondigingen
Eindpunt
GET /api/announcements/list
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/announcements/list \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Uploadt een asset naar een OPENBARE S3-BUCKET (via de Upload-API), die het bestand vervolgens naverwerkt en optimaliseert, miniaturen genereert enzovoort. *Let op: assets worden openbaar beschikbaar*
Parameters
file `string` (optioneel) Naam van het bestand of de asset die wordt geüpload.Eindpunt
POST /api/asset-upload
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/asset-upload \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de uploadstatus op basis van de opgegeven uuid van de uploadrecord
Parameters
uuid `string` (verplicht) UUID van de uploadrecordEindpunt
GET /api/asset-upload/:uuid
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/asset-upload/:uuid \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een opdracht naar de Sonos van de club sturen
Parameters
body `object` (verplicht) JSON-object met de opdracht en invoer die naar Sonos worden gestuurd.Eindpunt
PUT /api/audio-control/command/:club
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/command/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Configuratie ophalen voor de front-end van Audiobediening
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/audio-control/config/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/audio-control/config/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Configuratie wijzigen voor de front-end van Audiobediening
Parameters
body `object` (verplicht) JSON-object met het nieuwe configuratieblok dat aan het systeem wordt toegevoegd.Eindpunt
PUT /api/audio-control/config/:club/:section
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/audio-control/config/:club/:section \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt merkinstellingen op voor een specifieke regio
Parameters
brandId `string` (optioneel) De ID van het merk regionCode `string` (optioneel) De ISO-code van de regio waarvoor de instellingen worden opgehaaldEindpunt
GET /api/brands/{brandId}/regions/{regionCode}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt meerdere merkinstellingen bij voor een specifieke regio
Parameters
brandId `string` (optioneel) De ID van het merk dat wordt bijgewerkt regionCode `string` (optioneel) De ISO-code van de regio waarvoor de instellingen worden bijgewerkt acceptFreeTrialBookingsVisibility `string` (optioneel) customTrackingCodeVisibility `string` (optioneel) displayDataSources `string` (optioneel) displayDefaultDataSource `string` (optioneel) displayDefaultUI `string` (optioneel) displayUIOptions `string` (optioneel) defaultAboutBusiness `string` (optioneel) defaultAboutBusinessFacebook `string` (optioneel) facilityCoverImage `string` (optioneel) digitalProfileSettingsVisibility `string` (optioneel) facilityHoursVisibility `string` (optioneel) facilityLocationVisibility `string` (optioneel) facilityPaymentMethods `string` (optioneel) facilityPrimaryLogo `string` (optioneel) facilityStatusVisibility `string` (optioneel) landingPagesVisibility `string` (optioneel) lineChatIntegrationVisibility `string` (optioneel) whatsAppIntegrationVisibility `string` (optioneel) defaultWhatsAppMessage `string` (optioneel) socialUrlsVisibility `string` (optioneel) yextApiKey `string` (optioneel) API-sleutel die de Yext-integratie voor deze combinatie van merk en regio gebruikt. Wordt alleen gebruikt als `directorySyncMode` `yext` is. directorySyncMode `string` (optioneel) Welke sync-backend moet draaien voor faciliteiten onder deze combinatie van merk en regio. Standaard `yext` als de waarde ontbreekt, voor achterwaartse compatibiliteit met merken van vóór de uitrol van Directory Publishers. websiteUrl `string` (optioneel) androidAppUrl `string` (optioneel) iosAppUrl `string` (optioneel) featuredMessageDescription `string` (optioneel) yextCategoryIds `string` (optioneel) Verouderde opslagsleutel: dit zijn eigenlijk categorie-ID's van Google Business Profile (bijv. gcid:gym). Het voorvoegsel "yext" dateert van vóór de uitfasering van Yext en is behouden voor achterwaartse compatibiliteit met bestaande databaserijen. customInputFields `string` (optioneel) customInputFieldsToRemove `string` (optioneel)Eindpunt
PUT /api/brands/{brandId}/regions/{regionCode}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId}/regions/{regionCode} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt merkinstellingen op voor een specifieke faciliteit
Parameters
facilityId `string` (optioneel) De ID van de faciliteit waarvoor de merkinstellingen worden opgehaaldEindpunt
GET /api/facilities/{facilityId}/brand-settings
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/brand-settings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een nieuw merk aan
Parameters
name `string` (verplicht) De naam van het merk organisationId `string` (verplicht) De ID van de organisatie waartoe het merk behoort redirectDashboard `string` (optioneel) De URL waarnaar na het inloggen wordt doorgestuurd in plaats van het standaarddashboardEindpunt
POST /api/brands
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle merken
Eindpunt
GET /api/brands
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het merkobject
Parameters
brandId `string` (verplicht) De ID van het merk dat wordt opgehaald includeOrganisation `boolean` (optioneel) Of de organisatiegegevens in de response worden opgenomenEindpunt
GET /api/brands/{brandId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een merk bij op basis van ID
Parameters
brandId `string` (optioneel) De ID van het merk dat wordt bijgewerkt name `string` (verplicht) De naam van het merk brandOrganisationId `string` (optioneel) De ID van de organisatie waartoe het merk behoort redirectDashboard `string` (optioneel) De URL waarnaar na het inloggen wordt doorgestuurd in plaats van het standaarddashboard yextApiKey `string` (optioneel) De API-sleutel waarmee de Yext-API voor dit merk wordt benaderd customMenuLayout `object` (optioneel) Indeling van het zijmenu per merk (secties / groepen / items met verwijzingen naar systeemmodules of aangepaste URL's). Kan alleen worden ingesteld door een organisatiebeheerder van de organisatie van dit merk.Eindpunt
PUT /api/brands/{brandId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/brands/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Faciliteiten van een merk weergeven
Retourneert een beknopte lijst met faciliteiten (id, naam, ISO-code van de regio) die bij het merk horen. Wordt gebruikt om faciliteitskiezers voor targeting in de merkconfiguratie te vullen.
Parameters
brandId `string` (verplicht) De ID van het merk waarvan de faciliteiten worden weergegevenEindpunt
GET /api/brands/{brandId}/facilities
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/facilities \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle merken die aan de organisatie van de club zijn gekoppeld.
Eindpunt
GET /api/clubs/{club}/brands
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/brands \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle agendatypen
Eindpunt
GET /api/programs/calendars/calendar-types
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/programs/calendars/calendar-types \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de KYC-asset van een club.
Parameters
clubId `string` (verplicht) De ID van de club. key `string` (verplicht) De sleutel van de KYC-asset.Eindpunt
GET /api/clubs/{clubId}/kyc-assets/{key}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets/{key} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de KYC-gegevens van de club.
Eindpunt
GET /api/clubs/{clubId}/kyc
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de KYC-gegevens van de club bij.
Parameters
clubId `string` (verplicht) De ID van de club die wordt bijgewerkt. body `object` (verplicht)Eindpunt
PUT /api/clubs/{clubId}/kyc
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Uploadt een KYC-asset voor een club.
Parameters
clubId `string` (verplicht) De ID van de club. file `string` (verplicht) Het bestand dat wordt geüpload.Eindpunt
POST /api/clubs/{clubId}/kyc-assets
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubId}/kyc-assets \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de voorkeursinstellingen van de club.
Eindpunt
GET /api/club/preferences/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/preferences/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een item met clubvoorkeuren aan of werkt het bij.
Request body
Eindpunt
POST /api/club/preferences/:club
Voorbeeldrequest
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 '{}'
Antwoord
{}
Retourneert een lijst met leden met een overeenkomst.
Eindpunt
GET /api/clubpass/user/email/exist/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/email/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met leden met een overeenkomst.
Eindpunt
GET /api/clubpass/user/phone/exist/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubpass/user/phone/exist/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met gebruikers die bij de opgegeven club horen
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openenEindpunt
GET /api/clubs/{club}/members
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/members \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert of de club op een bepaalde datum open is.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. date `string` (verplicht) Te controleren datum in Unix-notatieEindpunt
GET /api/club-busy-hours/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club-busy-hours/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle metadata van de club die op de websites van Example Club wordt weergegeven.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/clubs/clubpage/clubdata/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/clubpage/clubdata/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de metadata van een club bij met nieuwe gegevens uit de front-end. Velden die niet in de request body staan, blijven behouden (geen SET, geen REMOVE). Velden die als `null` of lege string worden verzonden, worden gewist. Geef `updateAll: false` op om het speciale pad voor gedeeltelijk samenvoegen te gebruiken; hoe dan ook hoeven aanroepers nooit velden te sturen die niet van hen zijn.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. body `string` (verplicht) JSON-object met de clubgegevens die je wilt bijwerken.Eindpunt
POST /api/clubs/clubpage/updateclub/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/clubpage/updateclub/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
nieuwe aangepaste trackingrecord toevoegen
Parameters
club `string` (verplicht) id van de club body `string` (verplicht) Array met aangepaste trackingitems.Eindpunt
POST /api/clubs/{club}/customtracking
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert aangepaste tracking voor een specifieke club
Eindpunt
GET /api/clubs/customtracking/:clubID
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/customtracking/:clubID \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Aangepaste trackingitems bijwerken
Parameters
club `string` (verplicht) id van de club body `string` (verplicht) JSON-object met de clubgegevens die je wilt bijwerken.Eindpunt
POST /api/clubs/{club}/customtracking/update
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/customtracking/update \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de standaardafbeelding van de winkelpui van een club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/clubs/{club}/default-shop-front
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/default-shop-front \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Deuren weergeven die in de faciliteit beschikbaar zijn
Parameters
body `object` (verplicht) JSON-object met de clubgegevens die je wilt bijwerken.Eindpunt
POST /api/clubs/integrations/doors/:facilityId
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een specifieke deur in de faciliteit ontgrendelen
Parameters
body `object` (verplicht) JSON-object met de clubgegevens die je wilt bijwerken.Eindpunt
POST /api/clubs/integrations/doors/unlock
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/doors/unlock \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle integraties en de configuratiegegevens voor de opgegeven club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/clubs/integrations/list/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/integrations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de metadata van een club bij met nieuwe gegevens uit de front-end.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. body `object` (verplicht) JSON-object met de clubgegevens die je wilt bijwerken.Eindpunt
POST /api/clubs/integrations/update/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/integrations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een boolean die aangeeft of de club in een Europees land ligt
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. date `string` (verplicht) Te controleren datum in Unix-notatieEindpunt
GET /api/clubs/is-eu/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/is-eu/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een overzichtslijst van alle clubs in onze database.
Eindpunt
GET /api/clubs/listclubs
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/listclubs \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert of de club op een bepaalde datum open is.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. date `string` (verplicht) Te controleren datum in Unix-notatieEindpunt
GET /api/clubs/{club}/open-on/{date}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/open-on/{date} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De clubreviews ophalen uit DynamoDB.
Parameters
club `string` (verplicht) Club-IDEindpunt
GET /api/clubs/{club}/reviews
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De instellingen voor clubreviews ophalen uit DynamoDB.
Parameters
facilityId `string` (verplicht) faciliteit-IDEindpunt
GET /api/clubs/{club}/reviews-settings
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De instellingen voor clubreviews bijwerken in DynamoDB.
Parameters
club `string` (verplicht) Club-IDEindpunt
PUT /api/clubs/{club}/reviews-settings
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Automatisch publiceren in de reviewinstellingen opnieuw inschakelen.
Parameters
club `string` (verplicht) Club-IDEindpunt
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Publiceert een review
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. review `string` (verplicht) Interne ID van de review die je wilt publiceren.Eindpunt
PUT /api/clubs/{club}/reviews/{review}/publish
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/publish \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Automatisch publiceren in de reviewinstellingen opnieuw inschakelen.
Parameters
club `string` (verplicht) Club-IDEindpunt
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een reactie op een review terugplaatsen via de oorspronkelijke publisher (Google enz.).
Parameters
club `string` (verplicht) Faciliteit-ID reviewId `string` (verplicht) PH-review-ID (opgezocht in de tabel club-social-reviews) body `string` (verplicht)Eindpunt
POST /api/clubs/{club}/reviews/{reviewId}/respond
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{reviewId}/respond \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt een review offline
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. review `string` (verplicht) Interne ID van de review die je offline wilt halen.Eindpunt
PUT /api/clubs/{club}/reviews/{review}/un-publish
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/{review}/un-publish \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met eigenaren die bij de opgegeven club horen, uit de PH-database
Parameters
clubID `string` (verplicht) Interne ID van de club die je wilt openenEindpunt
GET /api/clubs/{clubID}/owners
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/owners \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle lidmaatschapsabonnementen van de faciliteit.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteitEindpunt
GET /api/facilities/membership-plans/:facilityId
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een record van een lidmaatschapsabonnement bij.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit body `object` (verplicht) JSON-object met de gegevens van het lidmaatschapsabonnement die je wilt bijwerken.Eindpunt
PUT /api/facilities/membership-plans/:facilityId
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/facilities/membership-plans/:facilityId \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Automatisch publiceren in de reviewinstellingen opnieuw inschakelen.
Parameters
club `string` (verplicht) Club-IDEindpunt
PUT /api/clubs/{club}/reviews/publish-recent-reviews
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews/publish-recent-reviews \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Automatisch publiceren in de reviewinstellingen opnieuw inschakelen.
Parameters
club `string` (verplicht) Club-IDEindpunt
PUT /api/clubs/{club}/reviews-settings/re-enable-auto-publish
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{club}/reviews-settings/re-enable-auto-publish \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle beschikbare valuta
Eindpunt
GET /api/currencies
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/currencies \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de geografische locatie op basis van een IP-adres.
Parameters
ip `string` (verplicht) Op te zoeken IP-adresEindpunt
GET /api/geo/ip-location/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-location/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de geografische locatie van de huidige gebruiker op basis van diens IP-adres.
Eindpunt
GET /api/geo/ip-current
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/geo/ip-current \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alleen het openbare IP-adres van de aanvragende client (geen geolocatie, geen API-aanroep naar derden). Wordt door de AI-agent-applet gebruikt om het openbare IP-adres van de browser te vergelijken met het WAN-IP-adres dat een apparaat meldt, om te detecteren of ze op hetzelfde netwerk zitten.
Eindpunt
GET /api/geo/client-ip
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/geo/client-ip \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Telefoonnummerparser.
Parameters
body `string` (verplicht) JSON-object met het nummer dat je wilt parseren.Eindpunt
POST /api/phone/parser
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/phone/parser \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het masterklokapparaat
Parameters
club_id `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen.Eindpunt
GET /api/clubs/{club_id}/smart-club/health-check/master-clock
Voorbeeldrequest
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"
Antwoord
{}
Retourneert het master-Sonos-apparaat
Parameters
club_id `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen.Eindpunt
GET /api/clubs/{club_id}/smart-club/health-check/sonos-mqtt
Voorbeeldrequest
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"
Antwoord
{}
meldingen over een bijna lege batterij van duress-apparaten ophalen voor een bepaalde club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/clubs/{club}/smart-club/health-check/low-battery-duress
Voorbeeldrequest
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"
Antwoord
{}
Retourneert gegevens van de netwerkanalyse
Parameters
club_id `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen.Eindpunt
GET /api/clubs/{club_id}/smart-club/health-check/network-analysis
Voorbeeldrequest
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"
Antwoord
{}
meldingen over een bijna lege batterij van duress-apparaten verzenden voor een bepaalde club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/clubs/{club}/smart-club/health-check/send-low-battery-duress-notifs
Voorbeeldrequest
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"
Antwoord
{}
Retourneert snelheidstestgegevens per apparaattype
Parameters
club_id `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen.Eindpunt
GET /api/clubs/{club_id}/smart-club/health-check/speed-test
Voorbeeldrequest
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"
Antwoord
{}
Vermeldingsinzichten voor een faciliteit ophalen. Retourneert standaard geaggregeerde dagtotalen over alle publishers, of één publisher wanneer `publisherId` is opgegeven.
Parameters
facilityId `string` (verplicht) publisherId `string` (optioneel) startDate `string` (verplicht) endDate `string` (verplicht)Eindpunt
GET /api/facilities/{facilityId}/directory-insights
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geaggregeerde vermeldingsinzichten voor een merk ophalen over alle publishers.
Parameters
brandId `string` (verplicht) startDate `string` (verplicht) endDate `string` (verplicht)Eindpunt
GET /api/brands/{brandId}/directory-insights
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-insights \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Belangrijkste zoekwoorden (met uitsplitsing naar merk- en niet-merkgebonden) voor een faciliteit, momenteel afkomstig uit Google Business Profile.
Parameters
facilityId `string` (verplicht) publisherId `string` (optioneel) Standaard "google": momenteel wordt alleen Google ondersteund. startDate `string` (verplicht) endDate `string` (verplicht) limit `string` (optioneel)Eindpunt
GET /api/facilities/{facilityId}/directory-search-keywords
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Belangrijkste zoekwoorden voor een merk, geaggregeerd over alle faciliteiten.
Parameters
brandId `string` (verplicht) startDate `string` (verplicht) endDate `string` (verplicht) limit `string` (optioneel)Eindpunt
GET /api/brands/{brandId}/directory-search-keywords
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/brands/{brandId}/directory-search-keywords \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Vragen en antwoorden voor een faciliteit weergeven.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/facilities/{facilityId}/qna
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een vraag beantwoorden.
Eindpunt
POST /api/facilities/{facilityId}/qna/{questionId}/answer
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een antwoord verwijderen.
Eindpunt
DELETE /api/facilities/{facilityId}/qna/{questionId}/answer/{answerId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/facilities/{facilityId}/qna/{questionId}/answer/{answerId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de publishers die zijn ingeschakeld voor de organisatie van de faciliteit, met hun verbindingsstatus.
Parameters
facilityId `string` (verplicht) organisationId `string` (verplicht)Eindpunt
GET /api/facilities/{facilityId}/directory-publishers/resolved
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/directory-publishers/resolved \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Access Policies voor een faciliteit ophalen
Bestaande toegangsconfiguratie wordt bij de eerste keer lezen automatisch omgezet naar gelijkwaardige afgedwongen beleidsregels.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/policies/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Access Policies vervangen met optimistische revisiecontrole
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/policies/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een Access Policy maken
Parameters
facilityId `string` (verplicht)Eindpunt
POST /api/door-access/policies/{facilityId}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eén Access Policy bijwerken
Parameters
facilityId `string` (verplicht) policyId `string` (verplicht)Eindpunt
PATCH /api/door-access/policies/{facilityId}/{policyId}
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eén Access Policy verwijderen
Parameters
facilityId `string` (verplicht) policyId `string` (verplicht) revision `integer` (verplicht)Eindpunt
DELETE /api/door-access/policies/{facilityId}/{policyId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een Access Policy dupliceren met een nieuwe stabiele ID
Parameters
facilityId `string` (verplicht) policyId `string` (verplicht)Eindpunt
POST /api/door-access/policies/{facilityId}/{policyId}/duplicate
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Betrokken gebruikers en deuren tellen voor alle Access Policies
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/policies/{facilityId}/impacts
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/impacts \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikers en deuren tellen die door een Access Policy worden beïnvloed
Parameters
facilityId `string` (verplicht) policyId `string` (verplicht)Eindpunt
GET /api/door-access/policies/{facilityId}/{policyId}/impact
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/policies/{facilityId}/{policyId}/impact \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Deurcontrollers bij een faciliteit weergeven met hun effectieve Door/Gate Access-regels
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/doors/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Overschrijvingen per deur, pictogram en configuratie aan apparaatzijde opslaan
Eén schrijfpunt voor alles wat de DGA-beheerapplet aan een deur bewerkt: - `accessRulesOverride` / `geofenceOverride`: geef `null` door om te wissen en terug te vallen op de standaard van de faciliteit. - `icon`: stabiele sleutel (zie services/door-access/door-icons.js); onbekende waarden geven 400. - `holdTimeSeconds` (1\u201330), `maintenanceMode` (`off` / `force-open` / `force-closed`), `doorLocation` (vrije tekst, \u226464 tekens), `playNotificationSoundOnRelayToggle` (boolean), `autoUnlockSchedule` (wekelijks tijdvensterraster). Dit waren vroeger velden die alleen in Device Management stonden, maar de applet schrijft ze nu ter plekke, zodat beheerders het deurpaneel niet hoeven te verlaten voor alledaagse configuratiewijzigingen. Wanneer een van de velden aan apparaatzijde wordt gewijzigd, pusht de route ook de bijbehorende Balena-omgevingsvariabelen (`RELAY_NOTIFICATION_SOUND`, `DOOR_MAINTENANCE_MODE`, `DOOR_AUTO_UNLOCK_SCHEDULE`) en verstuurt een MQTT-opdracht `unlockUpdates`, zodat het apparaat de nieuwe configuratie oppikt zonder te wachten op de volgende vernieuwing van de Balena-omgeving. Best-effort \u2014 de respons geeft 200, ook als Balena tijdelijk onbereikbaar is.
Parameters
facilityId `string` (verplicht) doorId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/doors/{facilityId}/{doorId}/override
Voorbeeldrequest
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 '{}'
Antwoord
{}
Lichte controle van de Balena-status voor de herlaadmelding in het deurpaneel
Het paneel van de DGA-applet haalt dit pas op wanneer een beheerder een deur opent, zodat het de juiste tekst "saving will reload the controller" kan tonen: de standaardvariant "a few seconds", of de sterkere variant "several minutes" wanneer er ook een release-update in behandeling is. Retourneert een platte snapshot afgeleid van `balena.models.device.get()`. Valt bij fouten terug op `data: null` (in plaats van een 5xx-fout), zodat een Balena-storing alleen de meldingstekst beïnvloedt en het openen van het paneel niet blokkeert.
Parameters
facilityId `string` (verplicht) doorId `string` (verplicht)Eindpunt
GET /api/door-access/doors/{facilityId}/{doorId}/device-status
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/device-status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Beheerdersoverschrijving: een deur ontgrendelen vanuit de applet
Schakelt het relais kort om met de huidige `holdTimeSeconds` van de deur en schrijft een auditrij `admin-override` naar ph-door-app-access-events, zodat de actie in de Access Logs herleidbaar is. Slaagt altijd, ongeacht `maintenanceMode === 'force-closed'`: dit is de nooduitgang voor beheerders. Retourneert 200 zodra de MQTT-publicatie is verzonden; er wordt hier niet gewacht op de statussen confirmed / failed / timed_out (de oudere flow /api/devices/door-controllers + /api/ics/devices/command wacht ook niet op bevestiging).
Parameters
facilityId `string` (verplicht) doorId `string` (verplicht)Eindpunt
POST /api/door-access/doors/{facilityId}/{doorId}/unlock
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/unlock \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een piepsignaal ter lokalisatie afspelen op de deurcontroller
Publiceert een MQTT-opdracht `beep`, zodat de controller drie middellange piepjes laat horen (elk ~500 ms, ~350 ms pauze, ~2 s totaal). Wordt door beheerders gebruikt om een deurcontroller ter plaatse fysiek te vinden. De oudere knop in Device Management gebruikt een reeks korte piepjes van ~30 s, maar de zoemerdriver in de firmware laat alleen de eerste betrouwbaar horen, dus de applet stuurt in plaats daarvan een korter, betrouwbaarder patroon. Geen auditrij \u2014 diagnostische actie zonder gevolgen voor de toegangscontrole.
Parameters
facilityId `string` (verplicht) doorId `string` (verplicht)Eindpunt
POST /api/door-access/doors/{facilityId}/{doorId}/identify
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/identify \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een deurcontroller op afstand herstarten
Publiceert dezelfde MQTT-opdracht `rebootDevice` zonder bevestiging die de oudere knop "Remotely Reboot Device" in Device Management verstuurt, maar afgeschermd door de module `door-gate-access`, zodat DGA-beheerders een controller kunnen herstarten vanuit het onderdeel Advanced van het deurpaneel zonder aparte `device-management`-toekenning. Retourneert 200 zodra de publicatie is verzonden; het apparaat gaat offline zolang de herstart duurt.
Parameters
facilityId `string` (verplicht) doorId `string` (verplicht)Eindpunt
POST /api/door-access/doors/{facilityId}/{doorId}/reboot
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/doors/{facilityId}/{doorId}/reboot \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
User Access-rijen bij een faciliteit weergeven
Retourneert elke niet-verwijderde user-access-rij bij de faciliteit. Ondersteunt filters aan clientzijde (source, search, accessEnabled, hasGrants). De berekening `hideExcluded` aan serverzijde uit fase 4 wordt toegevoegd zodra de hybride evaluator voor toekenningen beschikbaar is; voorlopig wordt de parameter geaccepteerd maar wordt de volledige set geretourneerd.
Parameters
facilityId `string` (verplicht) search `string` (optioneel) source `string` (optioneel) accessEnabled `string` (optioneel) hasGrants `string` (optioneel) hideExcluded `boolean` (optioneel) Indien true worden gesynchroniseerde gebruikers (source != manual) die bij deze faciliteit op geen enkel moment door een deur zouden kunnen, verborgen. De respons bevat een envelop `hidden: { count, sample }`.Eindpunt
GET /api/door-access/users/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Handmatig een User Access-rij maken bij een faciliteit
Maakt een nieuwe rij aan met `source: 'manual'`. Retourneert 409 met `existingUserId` als het opgegeven telefoonnummer of e-mailadres al bij een rij bij deze faciliteit hoort.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/users/{facilityId}
Voorbeeldrequest
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 '{}'
Eén User Access-rij ophalen
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
GET /api/door-access/users/{facilityId}/{userId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gedeeltelijke update van een User Access-rij
Bewerkt een willekeurige subset van identiteits- en autorisatievelden. Geef `null` door om een optioneel veld te wissen. Retourneert 409 als het nieuwe telefoonnummer of e-mailadres conflicteert met een andere rij bij dezelfde faciliteit. `appMessage` accepteert dezelfde vorm als het faciliteitsbrede bericht op PUT /api/door-access/rules/{facilityId}: hoofdtekst, ernst, optionele link, optioneel begin-/eindschema. De mobiele app toont dit alleen op het dashboard van de betreffende gebruiker.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Request body
Eindpunt
PATCH /api/door-access/users/{facilityId}/{userId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een User Access-rij zacht verwijderen
Markeert de rij met `deleted: true` en schakelt de toegang uit. De koppeling van het auditlogboek met de userId blijft behouden; beheerders kunnen de toegang handmatig weer inschakelen.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
DELETE /api/door-access/users/{facilityId}/{userId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegangsherkomst per deur voor een gebruiker
Retourneert voor elke deur de huidige deterministische autorisatie (`allowedNow`, `allowedVia`, `deniedReason`) en de geconfigureerde paden voor Access Policies, permanente toekenningen, beleidsschema's, tijdvenstertoekenningen door beheerders en actuele gekoppelde tijdvensters uit partnerbronnen. Retourneert ook huidige/volgende beschikbaarheid en de actualiteit van de bron. Deur- blockAllAccess en onderhoud worden vóór alle toegangspaden geëvalueerd.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
GET /api/door-access/users/{facilityId}/{userId}/effective-access
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/effective-access \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
User Access-rijen in bulk maken via een CSV-import
Maakt meerdere rijen met `source: 'manual'` in één verzoek, met hergebruik van dezelfde validatie, normalisatie van telefoon/e-mail, conflictcontrole per faciliteit, automatische berichten en (optionele) uitnodigingslogica als bij het afzonderlijk aanmaken. Rijen worden op volgorde verwerkt, dus een latere rij die conflicteert met een eerder aangemaakte rij wordt als duplicaat gemeld. Toekenningen worden aangeleverd als al omgezette deur-/groeps-ID's (de client zet namen om naar ID's). Tijdvenstertoekenningen worden in bulk bewust geweigerd en moeten na de import worden toegevoegd via het vervangings-endpoint per gebruiker. Geeft nooit een fout per rij; de uitkomst van elke rij wordt afzonderlijk gemeld.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/users/{facilityId}/bulk
Voorbeeldrequest
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 '{}'
Antwoord
{}
Aanvullende Access Time Window-toekenningen op een User Access-rij vervangen
Vervangt alleen `timeWindowGrants`; permanente `grants` en `sourceTimeWindows` van integraties blijven ongewijzigd. Elk item vereist een bereik (`facilityWide`, `doors` of `groups`) en een absoluut of wekelijks `window`. Een lege array versturen wist expliciet alle tijdvensters van beheerders.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/users/{facilityId}/{userId}/time-window-grants
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een User Access-rij bevriezen tegen synchronisatie-updates vanuit de bron
Stelt `decoupledFromSource: true` in, wist alle door integraties beheerde `sourceTimeWindows` en zorgt dat synchronisatie (cron + streams) deze rij logt en overslaat totdat een beheerder de vlag wist via /recouple.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
POST /api/door-access/users/{facilityId}/{userId}/decouple
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/decouple \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een User Access-rij opnieuw koppelen aan synchronisatie-updates vanuit de bron
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
POST /api/door-access/users/{facilityId}/{userId}/recouple
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/recouple \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle vernieuwingstokens van de Door/Gate Access-app voor een gebruiker intrekken
Trekt in op basis van het opgeslagen telefoonnummer/e-mailadres van de gebruiker (de tabel met vernieuwingstokens heeft als sleutel `sha256(plaintext)`; met de GSI's byMobilePhone / byEmail kunnen we vanuit één gebruiker in één keer verwijderen). Andere gebruikers met hetzelfde telefoonnummer/e-mailadres bij een andere faciliteit worden ook afgemeld.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
POST /api/door-access/users/{facilityId}/{userId}/logout
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/logout \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De uitnodigingsmail voor de Door/Gate Access-app (opnieuw) naar een gebruiker sturen
Verstuurt de uitnodigingsmail voor het downloaden van de app geforceerd naar het opgeslagen e-mailadres van de gebruiker (alleen e-mail; geen sms). Negeert de controles op geschiktheid en al-verzonden die het automatische synchronisatiepad gebruikt: dit is een expliciete beheerdersactie. Retourneert 400 als er geen e-mailadres van de gebruiker bekend is.
Parameters
facilityId `string` (verplicht) userId `string` (verplicht)Eindpunt
POST /api/door-access/users/{facilityId}/{userId}/resend-invite
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/users/{facilityId}/{userId}/resend-invite \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een voorbeeld bekijken van de ontvangers van een bulkverzending van app-uitnodigingen
Berekent welke gebruikers een uitnodigingsmail voor de app zouden ontvangen. De basisgroep is elke niet-verwijderde gebruiker met een e-mailadres die de app nog nooit heeft gebruikt (`appLastSeenAt` leeg). Standaard wordt de groep beperkt tot gebruikers die momenteel toegang hebben (regelovereenkomst of toekenning) en nog nooit zijn uitgenodigd; `includeAlreadyInvited` en `includeNoAccess` verruimen dit. Er worden geen e-mails verzonden: retourneert aantallen, een kleine steekproef en de kandidaat-userIds voor het uitvoerings-endpoint.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/users/{facilityId}/bulk-invite/preview
Voorbeeldrequest
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 '{}'
Antwoord
{}
Uitnodigingsmails voor de app naar een groep gebruikers sturen
Verstuurt de uitnodigingsmail voor het downloaden van de app naar elk van de opgegeven userIds (max. 50 per verzoek; de client verdeelt de volledige kandidatenlijst uit het voorbeeld in batches). Elke gebruiker wordt bij het verzenden opnieuw gevalideerd: rijen die niet meer bestaan, geen e-mailadres hebben of de app sinds het voorbeeld hebben gebruikt, worden overgeslagen en nooit als mislukt gemeld. De uitkomst per gebruiker wordt afzonderlijk gemeld, zodat de client verzonden / mislukt / overgeslagen kan samenvatten.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/users/{facilityId}/bulk-invite
Voorbeeldrequest
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 '{}'
Antwoord
{}
Deurgroepen bij een faciliteit weergeven
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/door-groups/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een deurgroep maken
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/door-groups/{facilityId}
Voorbeeldrequest
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 '{}'
Eén deurgroep ophalen
Parameters
facilityId `string` (verplicht) groupId `string` (verplicht)Eindpunt
GET /api/door-access/door-groups/{facilityId}/{groupId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een deurgroep bijwerken
Parameters
facilityId `string` (verplicht) groupId `string` (verplicht)Request body
Eindpunt
PATCH /api/door-access/door-groups/{facilityId}/{groupId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een deurgroep zacht verwijderen
Parameters
facilityId `string` (verplicht) groupId `string` (verplicht)Eindpunt
DELETE /api/door-access/door-groups/{facilityId}/{groupId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/door-access/door-groups/{facilityId}/{groupId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De partnerintegraties weergeven die bij een faciliteit zijn geconfigureerd
Retourneert de partnerintegraties van de faciliteit (id, naam, logo, ingeschakeld) door ph-facility-partner-config te koppelen aan de ph-partners-catalogus. Valt onder door-gate-access (zodat beheerders zonder toegang tot external-integrations toch partnerbadges en de synchronisatielijst per partner kunnen weergeven).
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/partners/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/partners/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De User Access-synchronisatieconfiguratie voor een faciliteit lezen
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/sync-config/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De User Access-synchronisatieconfiguratie voor een faciliteit bijwerken
Alleen de velden die door beheerders worden ingesteld (`enabled`, `requireIdentifier` en de partnermap `partners`) worden geaccepteerd; `lastRunAt` en `lastRunCounts` worden door de synchronisatie-engine zelf geschreven. `partner.partners` is een inschakelmap per partner met partnerId als sleutel (opt-out): wanneer de hoofdschakelaar `partner.enabled` aan staat, synchroniseert een partner tenzij hier een expliciete vermelding `{ enabled: false }` voor staat.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/sync-config/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De configuratie voor geautomatiseerde berichten per gebruiker voor een faciliteit lezen
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/auto-messages/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De configuratie voor geautomatiseerde berichten per gebruiker voor een faciliteit bijwerken
Slaat de regels op en evalueert daarna direct elke User Access-rij bij de faciliteit opnieuw, zodat bestaande gebruikers hun geautomatiseerde bericht meteen krijgen of verliezen. Handmatige berichten en ontkoppelde rijen blijven ongewijzigd.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/auto-messages/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Status van de herevaluatie van automatische berichten op de achtergrond
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/auto-messages/{facilityId}/sweep-status
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/auto-messages/{facilityId}/sweep-status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een User Access-synchronisatie op aanvraag uitvoeren voor een faciliteit
Doorloopt synchroon elke ingeschakelde bron (partner / cctv) bij de faciliteit en brengt de rijen in ph-door-access-users in lijn via de waterval voor ontdubbeling. Retourneert aantallen per bron. Uitgeschakelde bronnen verschijnen als `skippedSyncDisabled: 1` in plaats van te ontbreken, zodat de UI beide rijen consistent kan weergeven.
Parameters
facilityId `string` (verplicht)Eindpunt
POST /api/door-access/sync/{facilityId}/run
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/run \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Proefrun van een bulkverwijdering van door partners gesynchroniseerde rijen
Retourneert het aantal + een steekproef van de user-access-rijen die zacht verwijderd zouden worden, plus een confirmToken die moet worden teruggestuurd naar het uitvoerings-endpoint. Er worden geen gegevens gewijzigd. Toegangslogboeken worden nooit beïnvloed.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/sync/{facilityId}/bulk-delete/preview
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een bulkverwijdering van door partners gesynchroniseerde rijen uitvoeren (zacht verwijderen)
Verwijdert elke door partners gesynchroniseerde user-access-rij binnen het bereik zacht. Vereist de confirmToken uit het voorbeeld; als de actuele set sinds het voorbeeld is gewijzigd, komt de token niet overeen en wordt het verzoek geweigerd (409), zodat de beheerder opnieuw controleert. Toegangslogboeken blijven bewaard.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/door-access/sync/{facilityId}/bulk-delete
Voorbeeldrequest
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 '{}'
Antwoord
{}
Recente User Access-synchronisatieactiviteit (logboek voor probleemoplossing)
Retourneert de meest recente synchronisatie-uitkomsten voor een faciliteit (aangemaakt / overgeslagen / uitgeschakeld) met de reden, zodat beheerders kunnen zien waarom een lid wel of niet is gesynchroniseerd. Nieuwste eerst.
Parameters
facilityId `string` (verplicht) limit `integer` (optioneel)Eindpunt
GET /api/door-access/sync/{facilityId}/log
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/sync/{facilityId}/log \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Door/Gate Access-gebeurtenissen voor een faciliteit weergeven
Retourneert ontgrendelgebeurtenissen via mobiel, beheerdersoverschrijving en de externe Partner API in één omgekeerd chronologische feed.
Parameters
facilityId `string` (verplicht) from `integer` (optioneel) to `integer` (optioneel) limit `integer` (optioneel)Eindpunt
GET /api/door-access/events/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/events/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een proefevaluatie van een geofence uitvoeren voor de testpin van de beheerder
Request body
Eindpunt
POST /api/door-access/geofence/test
Voorbeeldrequest
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 '{}'
Antwoord
{}
De onboarding-/activeringsstatus voor een faciliteit ophalen
Stuurt de landingspagina "Get Started" en de voortgangsbanner voor de installatie van de applet aan. Retourneert actuele aantallen deuren + gebruikers, de twee afgeleide kernstappen (er bestaat een gebruiker, er bestaat een deur), de opgeslagen optionele "reviewed"-vlaggen en of de faciliteit is geactiveerd (beide kernstappen voltooid). De eerste keer dat een faciliteit wordt geactiveerd, wordt de tijdstempel activatedAt vastgelegd.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/door-access/onboarding/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/door-access/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De optionele onboardingvlaggen "reviewed" voor een faciliteit bijwerken
Slaat de optionele vlaggen van de installatiechecklist op die een beheerder afvinkt (toegangs- regels, synchronisatie-instellingen, geofencing). De kernstappen en activering worden live afgeleid uit gegevensaantallen en kunnen hier niet worden ingesteld. Retourneert de volledige vernieuwde onboardingstatus.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/door-access/onboarding/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/lead-events
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/lead-events \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/page-views
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/page-views \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/referrers
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/referrers \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/socials
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/socials \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/top-cities
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/top-cities \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/total-page-views
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/total-page-views \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een JSON-respons met analysegegevens van de club.
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor analysegegevens moeten worden opgehaald. fromDate `string` (optioneel) De begindatum van de op te halen analysegegevens. toDate `string` (optioneel) De einddatum van de op te halen analysegegevens.Eindpunt
GET /clubs/{clubId}/analytics/traffic
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/clubs/{clubId}/analytics/traffic \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Genereert een tijdelijke front-end-JWT (JSON Web Token) voor insluitbare Google Analytics-grafieken op de front-endpagina 'analytics'.
Eindpunt
GET /api/ga/onetimetoken
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ga/onetimetoken \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert dashboardwidgets van 'The Training Camp' als de club actieve leden heeft.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/reporting/apps/widgets/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/apps/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle niet-gecontroleerde feestdagen van de club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/reporting/club/{club}/unreviewed-holidays
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/club/{club}/unreviewed-holidays \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle niet-gecontroleerde feestdagen van de club als gecontroleerd markeren.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
PUT /api/reporting/club/{club}/review-holidays
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/reporting/club/{club}/review-holidays \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het KPI-rapport in CSV-indeling, per maand uitgesplitst over de afgelopen 12 maanden. *NOTE* Dit maakt één rapport voor ALLE clubs in het systeem. Voer dit niet meerdere keren tegelijk uit, anders raakt GymMaster overbelast!
Parameters
months `string` (optioneel) Aantal maanden (vanaf de huidige datum) dat moet worden opgehaald (standaard 12)Eindpunt
GET /api/reporting/gymmaster/all-clubs-kpi-report
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/all-clubs-kpi-report \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de omzetgrafiek(en) van het MMS voor een bepaalde club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. range `string` (optioneel) Bereik in dagen (terugtellend vanaf de huidige datum) dat we willen ophalenEindpunt
GET /api/reporting/gymmaster/revenuegraph/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/revenuegraph/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de MMS-gegevens/-analyses (Member Management System) van het dashboard voor een bepaalde club. De gegevens omvatten statistieken van GymMaster/Perfect Gym en andere interne meetwaarden die ons systeem verzamelt.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. range `string` (optioneel) Bereik in dagen (terugtellend vanaf de huidige datum) dat we willen ophalenEindpunt
GET /api/reporting/gymmaster/widgets/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/gymmaster/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de gegevens van de Myzone-widget op het dashboard voor een bepaalde club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/reporting/myzone/widgets/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/myzone/widgets/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een object met services die door een of meer van onze statuspagina-/monitoringendpoints als offline worden beschouwd, geconfigureerd via de interne tool 'Uptime Kuma'.
Eindpunt
GET /api/reporting/statuspage/events
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/statuspage/events \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert komende trainingsboekingen voor de komende 7 dagen.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/reporting/clubs/{club}/workout-bookings
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/reporting/clubs/{club}/workout-bookings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met historische feestdagen voor een club.
Parameters
clubId `string` (optioneel) Club-ID fromDate `string` (optioneel) Unix-tijdstempel van de begindatum van het bereik van te retourneren feestdagen. toDate `string` (optioneel) Unix-tijdstempel van de einddatum van het bereik van te retourneren feestdagen.Eindpunt
GET /api/clubs/{clubId}/historical-holidays
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/historical-holidays \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert apparaatautomatiseringen die aan de club zijn gekoppeld.
Parameters
club `string` (verplicht) Interne ID van de club waarvan je de apparaten wilt weergeven.Eindpunt
GET /api/ics/automations/list/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ics/automations/list/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de apparaatconfiguratie bij voor een bestaand scherm/apparaat.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/ics/automations/update/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/automations/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een fysiek schermapparaat/computer toe aan of koppelt deze aan je club.
Parameters
club `string` (verplicht) Interne ID van de club waaronder je het apparaat wilt toevoegen. body `string` (verplicht) JSON-object van het nieuwe scherm dat wordt gekoppeld.Eindpunt
POST /api/ics/devices/add/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/add/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geeft het apparaat opdracht om op basis van parameters verbinding te maken met een nieuwe SSID.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/ics/devices/changewifi/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/changewifi/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de apparaatconfiguratie bij voor een bestaand scherm/apparaat.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/ics/devices/command/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/command/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Laadt een URL/webpagina op een specifiek apparaatscherm.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
POST /api/ics/devices/loadurl/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/devices/loadurl/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de apparaatconfiguratie bij voor een bestaand scherm/apparaat.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
PUT /api/ics/devices/update/{club}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/update/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Wijzigt de naam van een scherm/apparaat. Alleen registratie: in tegenstelling tot het update-endpoint wordt er niets naar het apparaat gepusht, dus het is ook beschikbaar voor schermen met een softwareversie die niet meer wordt ondersteund.
Parameters
club `string` (verplicht) Interne ID van de club waartoe het apparaat behoort. body `string` (verplicht) JSON-object met de parameters voor de naamswijziging.Eindpunt
PUT /api/ics/devices/rename/{club}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/ics/devices/rename/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt widgets en links naar offline media voor een club op, op basis van de opgegeven datum.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je de templated content wilt wijzigen. date `string` (verplicht) Datum waarvoor widget-URL's worden geretourneerd: gebruik de notatie `YYYY-MM-DD`.Eindpunt
GET /api/ics/external-resources/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ics/external-resources/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt widgets en links naar offline media voor een club op, op basis van de opgegeven datum.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je de templated content wilt wijzigen.Eindpunt
GET /api/ics/list-scheduled-workouts/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ics/list-scheduled-workouts/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Wijzigt de templated content voor een bepaalde club.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je de templated content wilt wijzigen. body `string` (verplicht) JSON-object met de nieuwe templated content.Eindpunt
POST /api/ics/loadprogram/{club}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ics/loadprogram/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de programmaconfiguratie op voor een bestaand scherm/apparaat.
Parameters
club `string` (verplicht) Interne ID van de club waarvan je programmagegevens wilt ophalen.Eindpunt
GET /api/ics/programs/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de programmaconfiguratie bij voor een bestaand scherm/apparaat.
Parameters
club `string` (verplicht) Interne ID van de club waarvoor je het apparaat wilt bijwerken. body `string` (verplicht) JSON-object met de updateparameters.Eindpunt
PUT /api/ics/programs/{club}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/ics/programs/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de opties voor de programmaconfiguratie op.
Eindpunt
GET /api/ics/programs/options/{facilityID}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ics/programs/options/{facilityID} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Chatten met RAG-context. Dit heeft geen toegang tot tools, alleen tot een eenvoudige API-tool voor verzoek|respons waarmee je rechtstreeks kennis uit de kennisbank haalt.
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Request body
Eindpunt
POST /api/llm/chat
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/llm/chat \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Artikel-embeddings uit de vectoropslag verwijderen en de trackingstatus van de embeddings bijwerken
Request body
Eindpunt
DELETE /api/llm/delete-article
Voorbeeldrequest
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 '{}'
Antwoord
{}
Records van de embeddingtracker weergeven per organisatie en status
Parameters
organisationId `string` (optioneel) Organisatie-ID (wordt automatisch bepaald als deze ontbreekt) status `string` (verplicht) Status om op te filteren (moet een van de volgende zijn: in_queue, done, anomaly, fail, deleted) Limit `string` (optioneel) Maximaal aantal items per pagina LastEvaluatedKey `string` (optioneel) JSON van de DynamoDB LastEvaluatedKey voor pagineringEindpunt
GET /api/llm/embedding-track/by-org-and-status
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org-and-status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Records van de embeddingtracker weergeven per organisatie (optioneel gefilterd op resourcetype)
Parameters
organisationId `string` (optioneel) Organisatie-ID (wordt automatisch bepaald als deze ontbreekt) resourceType `string` (optioneel) Optioneel resourcetype (bijv. "article"). Indien opgegeven, wordt gefilterd op resourceTypeId die begint met "{type}#". Limit `string` (optioneel) Maximaal aantal items per pagina LastEvaluatedKey `string` (optioneel) JSON van de DynamoDB LastEvaluatedKey voor pagineringEindpunt
GET /api/llm/embedding-track/by-org
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/embedding-track/by-org \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De vectordatabasecollectie van de organisatie initialiseren
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Eindpunt
POST /api/llm/init-org
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/llm/init-org \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Semantisch zoeken in de kennisbank
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Request body
Eindpunt
POST /api/llm/semantic-search
Voorbeeldrequest
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 '{}'
Antwoord
{}
Streamingverwerking starten van artikelen in de wachtrij voor embedding, met realtime voortgangsupdates
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Eindpunt
POST /api/llm/start-embedding-stream
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/llm/start-embedding-stream \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Artikel-embeddings upserten in de vectordatabase
Verwerkt de embedding van artikelen op basis van de huidige status: - Als het artikel niet gepubliceerd OF privé is: verwijdert de embeddings - Als het artikel gepubliceerd EN openbaar is: maakt opnieuw embeddings met de volledige inhoud Vereist altijd de volledige artikeltekst.
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Request body
Eindpunt
POST /api/llm/upsert-embeddings
Voorbeeldrequest
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 '{}'
Antwoord
{}
Test-endpoint om artikel-embeddings in bulk te verwijderen per organisatie en optionele status
Parameters
organisationId `string` (optioneel) Organisatie-ID (wordt automatisch bepaald uit de gebruikerscontext als deze ontbreekt) status `string` (optioneel) Status om op te filteren (optioneel; indien weggelaten worden ALLE artikelen van de organisatie verwijderd, ongeacht de status) hardDelete `string` (optioneel) Of trackingrecords van embeddings definitief moeten worden verwijderd (true) of zacht verwijderd door de status bij te werken (false)Eindpunt
DELETE /api/llm/test/batch-delete-by-status
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/batch-delete-by-status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Tekst transformeren en opdelen in chunks, met gedetailleerde statistieken
Test-endpoint dat tekst transformeert en in chunks opdeelt, en vervolgens gedetailleerde statistieken geeft over de verdeling van de chunks, waaronder aantallen tekens, percentages en kwaliteitsmetingen, om te helpen beoordelen hoe effectief de opdeling is.
Request body
Eindpunt
POST /api/llm/test/transform-chunk
Voorbeeldrequest
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 '{}'
Antwoord
{}
Het totale aantal vectoren in de vectorindex voor de organisatie ophalen
Test-endpoint om alle vectoren in de vectorindex voor de organisatie van de huidige gebruiker te tellen
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Eindpunt
GET /api/llm/test/vector-count
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-count \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle vectoren voor een specifieke articleId uit de vectorindex verwijderen
Test-endpoint om alle vectoren die bij een specifieke articleId horen uit de vectorindex voor de organisatie van de huidige gebruiker te verwijderen.
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven) articleId `string` (verplicht) De articleId waarvoor vectoren moeten worden verwijderd dryRun `string` (optioneel) Indien true wordt alleen getoond wat zou worden verwijderd, zonder daadwerkelijk te verwijderenEindpunt
DELETE /api/llm/test/vector-delete-article
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/llm/test/vector-delete-article \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De Vector SDK testen door alle indexen weer te geven
Test-endpoint om de verbinding met de Vector SDK te controleren en alle indexen in de vectorbucket weer te geven
Eindpunt
GET /api/llm/test/vector-indices
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-indices \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De vectorindex voor een organisatie initialiseren
Maakt de vectorbucket en -index voor de organisatie van de huidige gebruiker
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven)Eindpunt
POST /api/llm/test/vector-init-index
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/llm/test/vector-init-index \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle vectormetadata voor een specifieke articleId ophalen
Test-endpoint om alle vectorchunks en hun metadata voor een specifieke articleId uit de vectorindex op te halen. Handig om te bekijken hoe een artikel in chunks is opgedeeld en opgeslagen. Het filteren wordt afgehandeld door de vectoropslagservice.
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven) articleId `string` (verplicht) De artikel-ID waarvoor vectormetadata moet worden opgehaaldEindpunt
GET /api/llm/test/vector-metadata-by-article
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-metadata-by-article \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Recente vectoren met metadata uit de vectorindex ophalen
Test-endpoint om de 10 meest recente vectoren met metadata (maar zonder vectorgegevens) op te halen uit de vectorindex voor de organisatie van de huidige gebruiker. Handig om de structuur van de metadata te bekijken.
Parameters
organisationId `string` (optioneel) De organisatie-ID (wordt automatisch gedetecteerd als deze niet is opgegeven) limit `string` (optioneel) Aantal te retourneren recente vectoren (max. 100)Eindpunt
GET /api/llm/test/vector-recent
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/llm/test/vector-recent \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Uploadt een asset voor de Marketing Manager/Designer naar S3-opslag.
Parameters
file `string` (optioneel) Naam van het bestand of de asset die wordt geüpload.Eindpunt
POST /api/marketing/design/static/download
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/marketing/design/static/download \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de afzonderlijke assets in JSON-indeling om in de assetmanager te laden.
Parameters
id `string` (verplicht) ID van de op te halen asset. organisationId `string` (verplicht) De organisatie-ID van de faciliteit waartoe de asset behoort.Eindpunt
GET /api/marketing/assets/get/{id}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle ontwerpassets.
Parameters
body `string` (verplicht) JSON-object met clubgegevens die je wilt opslaan. organisationId `string` (verplicht) De organisatie-ID van de faciliteit waartoe de asset behoort. useCache `string` (optioneel) search `string` (optioneel) De zoekopdracht om assets op naam of tags te filteren. brand `string` (optioneel) Het merk om assets op te filteren. tag `string` (optioneel) De tag om assets op te filteren.Eindpunt
GET /api/marketing/assets/get
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/get \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert één pagina met marketingprintassets voor een organisatie. Gebruikt Algolia voor zoeken op relevantie + paginering per pagina (met totalen) en valt terug op DynamoDB als Algolia niet beschikbaar is.
Parameters
organisationId `string` (verplicht) De organisatie-ID van de faciliteit waartoe de assets behoren. search `string` (optioneel) De zoekopdracht om assets op naam of tags te filteren. brand `string` (optioneel) Het merk om assets op te filteren. tag `string` (optioneel) De tag om assets op te filteren. page `string` (optioneel) Op te halen paginanummer (beginnend bij nul). limit `string` (optioneel) Aantal assets per pagina (max. 300). useCache `string` (optioneel) Indien false wordt Algolia overgeslagen en wordt DynamoDB rechtstreeks bevraagd.Eindpunt
GET /api/marketing/assets
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met beschikbare assets die via de assetmanager zijn geüpload.
Parameters
organisationId `string` (verplicht)Eindpunt
GET /api/marketing/assets/list
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/assets/list \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een asset toe/slaat deze op.
Parameters
body `string` (verplicht) JSON-object met clubgegevens die je wilt opslaan. organisationId `string` (verplicht) De organisatie-ID van de faciliteit waartoe de asset behoort.Eindpunt
PUT /api/marketing/assets/save
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/assets/save \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Uploadt een asset voor de Marketing Manager/Designer naar S3-opslag.
Parameters
file `string` (optioneel) Naam van het bestand of de asset die wordt geüpload. organisationId `string` (optioneel) De ID van de organisatie waartoe de asset behoort.Eindpunt
POST /api/marketing/assets/upload
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/marketing/assets/upload \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle aangepaste pagina's voor een organisatie.
Parameters
organisationId `string` (verplicht) Interne ID van de organisatie waarvoor aangepaste pagina's moeten worden geretourneerd.Eindpunt
GET /api/marketing/custom-pages
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een aangepaste pagina voor een organisatie toe of werkt deze bij (upsert).
Parameters
organisationId `string` (verplicht) Interne ID van de organisatie waarvoor aangepaste pagina's moeten worden geretourneerd. body `object` (verplicht) Gegevens van de aangepaste pagina voor de upsert.Eindpunt
PUT /api/marketing/custom-pages
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle aangepaste pagina's voor een faciliteit.
Parameters
facilityId `string` (verplicht) Interne ID van de faciliteit waarvoor aangepaste pagina's moeten worden geretourneerd.Eindpunt
GET /api/facilities/{facilityId}/marketing/custom-pages
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/marketing/custom-pages \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert alle geëxporteerde/gerenderde ontwerpen voor een specifieke club-ID.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet. sort `string` (optioneel) Filter om ontwerpen op te sorteren; 'oldest', 'newest' of 'design' worden ondersteund.Eindpunt
GET /api/marketing/designs/{club}/exports
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/exports \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de afzonderlijke HTML-inhoud van een ontwerp in JSON-indeling om in de editor te laden.
Parameters
id `string` (verplicht) ID van het op te halen ontwerp.Eindpunt
GET /api/marketing/designs/get/{id}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met invoerkoppelingen in marketing- en printontwerpen en ontwerpsjablonen
Parameters
clubId `string` (verplicht) Interne ID van de club die het verzoek doet. availableFeatures `string` (optioneel) Alle items met specifieke functies retourneren brand `string` (optioneel) Filtert ontwerpen op merk features `string` (optioneel) Resultaten filteren op functiesEindpunt
GET /api/marketing/designs/input-mapping/{clubId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/input-mapping/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met beschikbare ontwerpen voor een bepaalde club, die kunnen worden gebruikt in ontwerpen (Print Designs) die in de marketing-/printeditor van de hub zijn gemaakt.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet. designAdmin `string` (optioneel) Alle ontwerpgegevens retourneren (beheerdersweergave / vereist dat de gebruiker beheerder is). brand `string` (optioneel) Filtert ontwerpen op merkEindpunt
GET /api/marketing/designs/{club}/list
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Dwingt het systeem om alle miniaturen en voorbeelden van ontwerpen (opnieuw) te renderen (vooral gebruikt als we 'upstream'-assets in S3 enz. wijzigen)... **NOTE** Je kunt deze functie maar één keer per X minuten aanroepen (en niet als er al een render bezig is). Zo voorkomen we dat onze servers overbelast raken door het renderen van alle ontwerpen...
Eindpunt
GET /api/marketing/designs/render-all-thumbnails
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/render-all-thumbnails \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Start het renderen van een dynamisch ontwerp
Parameters
body `string` (verplicht) JSON-object met clubgegevens die je naar de renderprocessor voor ontwerpen wilt sturen...Eindpunt
POST /api/marketing/designs/dynamic/render-design
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/marketing/designs/dynamic/render-design \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een ontwerp toe/slaat het op/werkt het bij.
Parameters
body `string` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
PUT /api/marketing/designs/{club}/save
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het afzonderlijke statische ontwerp in JSON-indeling om te laden
Parameters
id `string` (verplicht) ID van het op te halen statische ontwerp.Eindpunt
GET /api/marketing/designs/static/get/{id}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/designs/static/get/{id} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een statisch ontwerpsjabloon toe/slaat het op/werkt het bij.
Parameters
body `string` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
PUT /api/marketing/designs/static/{club}/save
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/designs/static/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert een door de gebruiker ingestelde variabele uit het systeem.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet. body `string` (verplicht) JSON met de ID van de te verwijderen variabele.Eindpunt
DELETE /api/marketing/variables/{club}/delete
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/marketing/variables/{club}/delete \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met beschikbare variabelen voor een bepaalde club, die kunnen worden gebruikt in ontwerpen (Print Designs) die in de marketing-/printeditor van de hub zijn gemaakt.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet.Eindpunt
GET /api/marketing/variables/{club}/list
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/marketing/variables/{club}/list \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt één nieuwe gebruikersvariabele voor de opgegeven club.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet. body `string` (verplicht) JSON-object met de nieuwe variabele.Eindpunt
POST /api/marketing/variables/{club}/new
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/marketing/variables/{club}/new \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Voegt een of meer ontwerpvariabelen toe aan het systeem, slaat ze op of werkt ze bij via een array van objecten.
Parameters
club `string` (verplicht) Interne ID van de club die het verzoek doet. body `string` (verplicht) Array van een of meer JSON-objecten die moeten worden toegevoegd/bijgewerkt (hiermee kun je meerdere items/objecten in één API-verzoek opslaan).Eindpunt
PUT /api/marketing/variables/{club}/save
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/marketing/variables/{club}/save \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het MCP-documentatiemanifest voor de aangemelde gebruiker
Voedt de pagina `/mcp-docs` in de app. Retourneert de URL van de MCP-server, de ondersteunde authenticatieheaders, de identiteit/beheerdersvlag van de aanroeper en de gefilterde lijst met tools (op dezelfde manier gefilterd als `/mcp/tools/list`, zodat de documentatiepagina nooit een tool toont die de aanroeper niet echt kan gebruiken).
Eindpunt
GET /api/mcp/docs-manifest
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/mcp/docs-manifest \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikersovereenkomst maken.
Parameters
body `object` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
POST /api/member-agreements/contracts-tna/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met overeenkomsten.
Eindpunt
GET /api/member-agreements/contracts-tna/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikersovereenkomst verwijderen.
Eindpunt
DELETE /api/member-agreements/contracts-tna/:club/:id
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de details van een overeenkomst.
Eindpunt
GET /api/member-agreements/contracts-tna/:club/:id
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikersovereenkomst bijwerken.
Parameters
body `object` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
PATCH /api/member-agreements/contracts-tna/:club/:id
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/member-agreements/contracts-tna/:club/:id \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Standaardovereenkomsten van de club ophalen.
Parameters
body `object` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
GET /api/member-agreements/default-tna/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Standaardovereenkomst van de club instellen.
Parameters
body `object` (verplicht) JSON-object met clubgegevens die je wilt opslaan.Eindpunt
POST /api/member-agreements/default-tna/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/member-agreements/default-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met globale of regionale overeenkomsten.
Eindpunt
GET /api/member-agreements/global-tna/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/global-tna/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met leden met een overeenkomst.
Eindpunt
GET /api/member-agreements/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/member-agreements/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met clubleden per seizoen voor de app van het trainingskamp.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. season `string` (optioneel) Seizoen van het trainingskamp waarop je wilt filteren. userIds `string` (optioneel) Array van gebruikers-ID's om op te filteren. useCache `string` (optioneel) Of de cache moet worden gebruikt. isUserMemberInfo `string` (optioneel) Indien ingeschakeld worden de gegevens gefilterd op userIds (bij voorkeur slechts één gebruikers-ID) en worden benodigde gegevens zoals het klassement en gebruikersvoorkeuren meegenomen.Eindpunt
GET /api/members-leads/trainingcamp/club/season-members/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/trainingcamp/club/season-members/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert meerdere leads voor trainingsboekingen.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. body `string` (verplicht)Eindpunt
DELETE /api/members-leads/workout-booking/club/leads/{club}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met leads voor trainingsboekingen van een club.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. all `string` (optioneel) Alle leads tonen of alleen de komende.Eindpunt
GET /api/members-leads/workout-booking/club/leads/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een lead voor een trainingsboeking bij.
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen. body `string` (verplicht)Eindpunt
PUT /api/members-leads/workout-booking/club/leads/{club}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Schakelt de markering van een lead voor een trainingsboeking in of uit.
Parameters
club `string` (verplicht) Interne ID van de club. body `string` (verplicht)Eindpunt
PATCH /api/members-leads/workout-booking/club/leads/{club}/flag
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/members-leads/workout-booking/club/leads/{club}/flag \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Effectieve modules voor een faciliteit ophalen
Retourneert alle modules die beschikbaar zijn voor een faciliteit door de hiërarchie te doorlopen: faciliteitsvoorkeuren → merkmodules → organisatiemodules. Resultaten worden voor betere prestaties in Redis gecachet.
Parameters
facilityId `string` (verplicht) De faciliteits-ID waarvoor modules moeten worden bepaaldEindpunt
GET /api/facilities/{facilityId}/modules
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/facilities/{facilityId}/modules \
-H "x-api-key: YOUR_API_KEY"
Antwoord
[]
Retourneert de modulecatalogus plus de weergaveconfiguratie van het zijmenu. De volledige modulelijst wordt geretourneerd, zodat de front-end-renderer per gebruiker kan bepalen wat zichtbaar is; ACL wordt nog steeds aan de serverzijde afgedwongen via `auth.checkModuleAccess()`.
Eindpunt
GET /api/modules
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/modules \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Meldingscategorieën ophalen.
Eindpunt
GET /api/notification/categories
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/notification/categories \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gelezen melding verwijderen.
Eindpunt
DELETE /api/club/notification/consumed/:club
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een meldingsbericht.
Eindpunt
POST /api/club/notification/consumed/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een array van gelezen meldingen.
Eindpunt
GET /api/club/notification/consumed/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/consumed/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Meldingsbericht verwijderen.
Eindpunt
DELETE /api/club/notification/messages/:club
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een array van meldingsberichten.
Eindpunt
GET /api/club/notification/messages/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een meldingsbericht bij.
Eindpunt
PATCH /api/club/notification/messages/:club
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een meldingsbericht.
Parameters
body `string` (verplicht)Eindpunt
POST /api/club/notification/messages/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/messages/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De kijkers van een melding per club ophalen.
Eindpunt
POST /api/club/notification/viewers/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/club/notification/viewers/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Meldingscategorieën per gebruiker ophalen.
Eindpunt
GET /api/club/notification/user-categories/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/notification/user-categories/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een meldingsbericht.
Eindpunt
POST /api/notification/webhook
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/notification/webhook \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Openbare VAPID-sleutel ophalen voor HTML5-pushmeldingen
Retourneert de openbare VAPID-sleutel waarmee pushabonnementen in de browser worden gemaakt.
Eindpunt
GET /html5-push/vapid-public-key
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/html5-push/vapid-public-key \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een HTML5-pushabonnement opslaan of bijwerken
Slaat een pushabonnement in de browser op voor de huidige gebruiker.
Request body
Eindpunt
POST /html5-push/subscribe
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/html5-push/subscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Een HTML5-pushabonnement verwijderen
Verwijdert een pushabonnement in de browser voor de huidige gebruiker.
Request body
Eindpunt
POST /html5-push/unsubscribe
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/html5-push/unsubscribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
De onboardingstatus van de locatie voor de aanroepende gebruiker ophalen
Retourneert de twee onboardingonderdelen voor een faciliteit: installatie (gegevens + productkeuzes, opgeslagen in de clubvoorkeuren) en betaling (live afgeleid van het record met betalingsinstellingen van de SaaS-facturering), plus een voor de aanroeper gepersonaliseerde vlag `required` waarop de app-shell blokkeert. Alleen voor locaties met de technologiestack; locaties met de businessstack retourneren altijd required=false.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/onboarding/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Tussentijdse voortgang van de onboardingwizard voor een faciliteit opslaan
Slaat een gedeeltelijke wizardstatus op (productkeuzes, vrije tekst bij "Other", gecontroleerde bedrijfsgegevens, huidige stap), zodat de gebruiker na vernieuwen of afbreken verdergaat waar hij was gebleven. Markeert nooit als voltooid: zie het complete- endpoint.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/onboarding/{facilityId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/onboarding/{facilityId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
AI-suggesties genereren om de onboardingwizard vooraf in te vullen
Gebruikt de bestaande context van club/merk/organisatie om gegevens van de faciliteit voor te stellen (beschrijvende tekst, opgeschoonde contactvelden), voorgestelde product- keuzes en korte gepersonaliseerde tips. Resultaten worden 7 dagen in Redis gecachet. Suggesties zijn alleen adviserend: de client toont ze in een bewerkbaar controleformulier. Reageert altijd met 200; `suggestions` is null als AI niet beschikbaar is, zodat de wizard netjes blijft werken.
Parameters
facilityId `string` (verplicht)Eindpunt
POST /api/onboarding/{facilityId}/ai-prefill
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/onboarding/{facilityId}/ai-prefill \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het installatiedeel van de locatie-onboarding voltooien
Valideert de bevestigde keuzes/gegevens, slaat de bedrijfs- gegevens op in het clubrecord, vult de indeling van het techmenu van de faciliteit op basis van de productkeuzes (tenzij er al een aangepaste indeling bestaat) en markeert de installatie als voltooid. Het betalingsdeel kan hier bewust NIET worden voltooid: dit wordt live afgeleid van het record met betalingsinstellingen van de SaaS-facturering, zodat de verplichte kaartvereiste niet kan worden omzeild door dit endpoint aan te roepen. Retourneert de vernieuwde status.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/onboarding/{facilityId}/complete
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een gedeclareerde actie van een partnerintegratie voor een faciliteit starten
Voert een actie "Run integration" uit die in het partnerrecord is gedeclareerd (ph-partners.actions[]), binnen het bereik van een faciliteit. Een Redis-vergrendeling (single-flight) voorkomt gelijktijdige handmatige runs voor dezelfde actie+faciliteit.
Parameters
partnerId `string` (verplicht) actionId `string` (verplicht)Request body
Eindpunt
POST /api/partners/{partnerId}/actions/{actionId}/run
Voorbeeldrequest
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 '{}'
De runstatus van een actie van een partnerintegratie lezen
Retourneert of er momenteel een handmatige run bezig is (single-flight-vergrendeling actief), plus de laatst aangevraagde run, zodat de knop in de instellingen dit kan pollen.
Parameters
partnerId `string` (verplicht) actionId `string` (verplicht) facilityId `string` (verplicht)Eindpunt
GET /api/partners/{partnerId}/actions/{actionId}/status
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/{partnerId}/actions/{actionId}/status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle partnerconfiguraties voor een merk ophalen
Parameters
brandId `string` (verplicht) De merk-IDEindpunt
GET /api/partners/brand-config/{brandId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/brand-config/{brandId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
[]
Een partnerconfiguratie voor een merk maken of bijwerken
Parameters
body `object` (verplicht)Eindpunt
PUT /api/partners/brand-config
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/partners/brand-config \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Integratiegegevens van GymMaster migreren naar facility-partner-config
Bevraagt alle clubs met de velden gymMasterAPI en gymMasterDomain en maakt/werkt de bijbehorende facility-partner-config-records bij. Dit is een eenmalig migratie-endpoint.
Parameters
partnerId `string` (verplicht) De GymMaster-partner-ID die voor alle gemigreerde records moet worden gebruikt dryRun `boolean` (optioneel) Indien true wordt alleen gemeld wat zou worden gemigreerd, zonder naar de database te schrijvenEindpunt
GET /api/partners/migrate-gymmaster
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/migrate-gymmaster \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een partner inschakelen voor een organisatie.
Parameters
partnerId `string` (verplicht) ID van de partnerEindpunt
POST /api/partners/organisation/enable
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/partners/organisation/enable \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Partners van de organisatie weergeven. Organisatiebeheerders zien alleen de partners van hun eigen organisatie.
Eindpunt
GET /api/partners/organisation
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/organisation \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een partner van de organisatie verwijderen.
Parameters
keyId `string` (verplicht) Sleutel-ID van de organisatiepartner organisationId `string` (verplicht) Organisatie-ID van de partnerEindpunt
DELETE /api/partners/organisation/{keyId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/organisation/{keyId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Toegangsmodus en modules van een organisatiepartner bijwerken.
Parameters
keyId `string` (verplicht) Sleutel-ID van de organisatiepartner organisationId `string` (verplicht) Organisatie-ID van de partner partnerId `string` (verplicht) Partner-ID accessMode `string` (verplicht) Toegangsmodus voor de partner modules `string` (optioneel) Lijst met modules voor de toegangsmodus LIMITEDEindpunt
PUT /api/partners/organisation/update-access
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/partners/organisation/update-access \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Check-ins voor een faciliteit maken
Accepteert een array van check-inobjecten en stuurt deze door naar de Partner API voor verwerking. Maximaal 25 check-ins per verzoek.
Request body
Eindpunt
POST /api/partners/check-ins
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een partnerconfiguratie voor een faciliteit verwijderen
Verwijdert de configuratie van een partnerintegratie bij een faciliteit
Parameters
facilityId `string` (verplicht) Faciliteits-ID (club-ID) partnerId `string` (verplicht) Partner-IDEindpunt
DELETE /api/partners/facility-config/{facilityId}/{partnerId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId}/{partnerId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Alle partnerconfiguraties voor een faciliteit weergeven
Retourneert alle partnerintegraties die voor de opgegeven faciliteit zijn geconfigureerd
Parameters
facilityId `string` (verplicht) Faciliteits-ID (club-ID)Eindpunt
GET /api/partners/facility-config/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/facility-config/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een partnerconfiguratie voor een faciliteit maken of bijwerken
Voegt de configuratie van een partnerintegratie bij een faciliteit toe of werkt deze bij (upsert)
Request body
Eindpunt
POST /api/partners/facility-config
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een lid verwijderen op memberId
Verwijdert een bestaand ledenrecord op basis van de memberId.
Parameters
memberId `string` (verplicht) Unieke identificatie van het lidEindpunt
DELETE /api/partners/members/{memberId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/partners/members/{memberId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een lid bijwerken op memberId
Werkt een bestaand ledenrecord bij op basis van de memberId.
Parameters
memberId `string` (verplicht) Unieke identificatie van het lidRequest body
Eindpunt
PUT /api/partners/members/{memberId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
De status van een ledensynchronisatie ophalen
Retourneert de huidige status van een asynchrone bewerking voor het maken/verwijderen van een lid die is gestart via POST /api/partners/members of DELETE /api/partners/members/{memberId}. De frontend pollt dit endpoint ter vervanging van de oudere flow met lijstpolling + naamvergelijking. NOTE Afbakening op rijniveau op partnerId/facilityId is verplicht volgens de regels voor multi-tenant-isolatie, maar is uitgesteld tot een hardening-PR in fase 3a.1: operationIds zijn 128-bits UUID's en de route is al afgeschermd door moduletoegang tot `external-integrations`. Iedereen met een geldige operationId en toegang tot de beheermodule kan de status ervan opvragen.
Parameters
operationId `string` (verplicht) UUID die door POST/DELETE is geretourneerdEindpunt
GET /api/partners/members/operations/{operationId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/partners/members/operations/{operationId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Leden voor een faciliteit maken of bijwerken
Accepteert een array van ledenobjecten en stuurt deze door naar de Partner API voor verwerking. Maximaal 25 leden per verzoek.
Request body
Eindpunt
POST /api/partners/members
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/partners/members \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord
{}
Lidmaatschapsplannen voor een faciliteit maken of bijwerken
Accepteert een array van objecten met lidmaatschapsplannen en stuurt deze door naar de Partner API voor verwerking. Maximaal 25 lidmaatschapsplannen per verzoek.
Request body
Eindpunt
POST /api/partners/membership-plans
Voorbeeldrequest
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 '{}'
Antwoord
{}
Maakt een nieuwe rol
Parameters
body `string` (verplicht) RolobjectEindpunt
POST /api/roles
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met alle rollen
Eindpunt
GET /api/roles
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/roles \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Verwijdert een rol op ID
Eindpunt
DELETE /api/roles/{roleId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een rol bij op ID
Parameters
body `string` (verplicht) RolobjectEindpunt
PUT /api/roles/{roleId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/roles/{roleId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een nieuwe extra factuurregel maken voor de SaaS-factuur
Parameters
organisationId `string` (optioneel) De organisatie-ID waarvoor de extra factuurregel moet worden gemaakt body `string` (optioneel) Hoofdtekst van het verzoekEindpunt
POST /api/saas-billing/additional-line-items
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met extra factuurregels voor de SaaS-factuur
Parameters
organisationId `string` (verplicht) De organisatie-IDEindpunt
GET /api/saas-billing/additional-line-items
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met extra factuurregels voor de SaaS-factuur van de club
Eindpunt
GET /api/clubs/{clubId}/saas-billing/additional-line-items
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubId}/saas-billing/additional-line-items \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt een extra factuurregel voor de SaaS-factuur bij
Parameters
itemId `string` (verplicht) De ID van de bij te werken extra factuurregel body `string` (verplicht) De hoofdtekst van het verzoekEindpunt
PUT /api/saas-billing/additional-line-items/{itemId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/additional-line-items/{itemId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gecombineerde uurtarieven voor Cloud Agent voor Your Rates
Retourneert de aangeboden Cloud Agent-formaten met één gecombineerde uurprijs (hosting + software). De uitsplitsing is niet inbegrepen. usedPlans zijn SKU's die deze faciliteit in de afgelopen 30 dagen heeft gebruikt.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/cloud-agent-rates
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/cloud-agent-rates \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geïmporteerd maandrapport verwijderen
Parameters
club `string` (optioneel) Club-ID reportId `string` (optioneel) Rapport-IDEindpunt
DELETE /api/saas-billing/extended-access/monthly-usage-report/{reportId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/{reportId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het nieuwste CCTV-opslagrapport voor een club ophalen
Retourneert de meest recente dagelijkse CCTV-opslagsnapshot voor de club uit de opgeslagen factureringslogboeken (maximaal de afgelopen 31 dagen). Bevat totalStorage, date en opslaggerelateerde kosten.
Parameters
club `string` (verplicht) Club-IDEindpunt
GET /api/saas-billing/extended-access/latest-cctv-storage-report/{club}
Voorbeeldrequest
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"
Antwoord
{}
Retourneert een pdf-factuur voor de club voor de opgegeven periode.
Parameters
club `string` (optioneel) Club-ID month `string` (optioneel) Maand van het rapport als getal. 1 = januari, 2 = februari enz. year `string` (optioneel) Jaar van het rapport als getal, bijv. 2021Eindpunt
GET /api/saas-billing/extended-access/monthly-usage-report/:club/invoice
Voorbeeldrequest
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"
Antwoord
{}
Bundel van platformfactuur-pdf's voor de geselecteerde gebruiksmaanden, als ZIP. Bulkvariant van het afzonderlijke endpoint .../invoice; voedt de download met meervoudige selectie op het tabblad Invoices & Receipts van de Billing & Cost Management-applet.
Parameters
club `string` (optioneel) Club-ID months `string` (optioneel) Door komma's gescheiden gebruiks-/rapportmaanden in de notatie YYYY-MM (max. 24)Eindpunt
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/invoices.zip
Voorbeeldrequest
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"
Antwoord
{}
Retourneert maandelijkse gebruiksrapporten voor meerdere gebruiksmaanden in één aanroep. Voedt de grafiek Cost History en de verschillen per maand in de Billing & Cost Management-applet. Maanden zonder gebruik retourneren report: null (overeenkomend met de 404 → $0 in de UI van het endpoint voor één maand).
Parameters
club `string` (optioneel) Club-ID months `string` (optioneel) Door komma's gescheiden gebruiksmaanden in de notatie YYYY-MM (max. 12)Eindpunt
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/batch
Voorbeeldrequest
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"
Antwoord
{}
Maandrapporten voor de club importeren.
Parameters
club `string` (optioneel) Club-IDEindpunt
PUT /api/saas-billing/extended-access/usage-report/:club
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een CSV-rapport van het CCTV-gebruik in de afgelopen 30 dagen voor alle clubs.
Eindpunt
GET /api/saas-billing/extended-access/usage-report/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geeft alle dagrapporten van de maand voor de club weer.
Parameters
club `string` (optioneel) Club-ID month `string` (optioneel) Maand van het rapport als getal. 1 = januari, 2 = februari enz. year `string` (optioneel) Jaar van het rapport als getal, bijv. 2021Eindpunt
GET /api/saas-billing/extended-access/monthly-usage-report/{club}/daily-reports
Voorbeeldrequest
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"
Antwoord
{}
Retourneert een lijst met geïmporteerde maandrapporten voor de beheerder
Parameters
organisationId `string` (verplicht) Organisatie-IDEindpunt
GET /api/saas-billing/extended-access/usage-report/imported
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/usage-report/imported \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een CSV-rapport van het CCTV-gebruik in de afgelopen 30 dagen voor alle clubs.
Parameters
club `string` (optioneel) Club-ID month `string` (optioneel) Maand van het rapport als getal. 1 = januari, 2 = februari enz. year `string` (optioneel) Jaar van het rapport als getal, bijv. 2021Eindpunt
GET /api/saas-billing/extended-access/monthly-usage-report/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/monthly-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het periodieke gebruiksrapport voor de club.
Parameters
club `string` (optioneel) Club-ID periodStart `string` (optioneel) Begin van de periode in de notatie YYYY-MM-DD periodEnd `string` (optioneel) Einde van de periode in de notatie YYYY-MM-DDEindpunt
GET /api/saas-billing/extended-access/periodical-usage-report/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/extended-access/periodical-usage-report/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Bundel van pdf's van factureringsdocumenten als één ZIP, met verschillende documenttypen: platformfacturen (per gebruiksmaand), ontvangstbewijzen van opwaarderingen van de SaaS-wallet en ontvangstbewijzen van Model Router-opwaarderingen. Bulkvariant van de endpoints invoices.zip / receipts.zip per type, voor het samengevoegde tabblad Invoices & Receipts. Elke opgevraagde maand/id moet verwijzen naar een document van de faciliteit; één ongeldige waarde laat de hele bundel mislukken.
Parameters
clubID `string` (verplicht) invoiceMonths `string` (optioneel) Door komma's gescheiden gebruiksmaanden in de notatie YYYY-MM walletIds `string` (optioneel) Door komma's gescheiden transactie-id's van opwaarderingen van de SaaS-wallet aiIds `string` (optioneel) Door komma's gescheiden transactie-id's van Model Router-opwaarderingenEindpunt
GET /api/clubs/{clubID}/saas-billing/documents.zip
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/documents.zip \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een notitie toevoegen aan een maandrecord
Parameters
recordID `string` (optioneel) De ID van het op te halen record note `string` (optioneel) De notitie die aan het record moet worden toegevoegdEindpunt
POST /api/saas-billing/monthly-records/{recordID}/notes
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID}/notes \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met maandrecords van de SaaS-facturering
Parameters
club `string` (optioneel) De ID van de op te halen club month `string` (optioneel) De factureringsmaand in de notatie YYYY-MMEindpunt
GET /api/saas-billing/monthly-records/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met maandrecords van de SaaS-facturering die zijn mislukt of 3D Secure vereisen
Parameters
clubID `string` (optioneel) De ID van de club waarvoor de mislukte maandrecords moeten worden opgehaaldEindpunt
GET /api/clubs/:clubID/saas-billing/flagged
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/flagged \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert ALLE maandrecords van de SaaS-facturering (het factuurgrootboek) voor een club, nieuwste factureringsmaand eerst. Variant op clubniveau van het endpoint paginate-monthly-records dat alleen voor beheerders is; voedt het tabblad "Invoices & Receipts" voor klanten in de Billing & Cost Management-applet.
Parameters
clubID `string` (optioneel) De ID van de club waarvoor de maandrecords moeten worden weergegevenEindpunt
GET /api/clubs/{clubID}/saas-billing/monthly-records
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met maandrecords van de SaaS-facturering
Parameters
organisationId `string` (optioneel) Organisatie-ID month `string` (optioneel) Maand in de notatie MM. year `string` (optioneel) Jaar in de notatie YYYY. filters `string` (optioneel) Door de datatabel aangemaakte filters voor de querystring. order `string` (optioneel) Door de datatabel aangemaakte querystring.Eindpunt
GET /api/saas-billing/monthly-records
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Mislukte betalingen voor een club opnieuw proberen
Parameters
clubID `string` (optioneel) De ID van de club waarvoor de mislukte maandrecords moeten worden opgehaaldEindpunt
PUT /api/clubs/:clubID/saas-billing/retry-failed-payments
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/:clubID/saas-billing/retry-failed-payments \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een maandrecord bijwerken
Parameters
recordID `string` (optioneel) De ID van het op te halen record status `string` (optioneel) De status waarnaar het record moet worden bijgewerktEindpunt
PUT /api/saas-billing/monthly-records/{recordID}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/saas-billing/monthly-records/{recordID} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Controleert of betalingen zijn geslaagd en werkt de status van het record bij
Parameters
clubID `string` (optioneel) recordID `string` (optioneel) De ID van het op te halen recordEindpunt
PUT /api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/monthly-records/{recordID}/validate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een betaalmethode toevoegen voor een club.
Parameters
clubID `string` (optioneel)Eindpunt
POST /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Synchroniseert de betaalmethoden van een club met Stripe.
Parameters
clubID `string` (optioneel)Eindpunt
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/payment-methods \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert het uitgavenbudget van de faciliteit plus de berekende MTD/prognose.
Parameters
clubID `string` (optioneel)Eindpunt
GET /api/clubs/{clubID}/saas-billing/budget
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het uitgavenbudget van de faciliteit maken/bijwerken/wissen.
Parameters
clubID `string` (optioneel) body `object` (optioneel)Eindpunt
PUT /api/clubs/{clubID}/saas-billing/budget
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/budget \
-H "x-api-key: YOUR_API_KEY"
Een betaalmethode verwijderen uit de betalingsinstellingen van de club.
Parameters
clubID `string` (optioneel) paymentMethodID `string` (optioneel)Eindpunt
DELETE /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}
Voorbeeldrequest
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"
Antwoord
{}
De betalingsinstellingen van een club ophalen.
Parameters
clubID `string` (optioneel)Eindpunt
GET /api/clubs/{clubID}/saas-billing/payment-settings
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De betalingsinstellingen van een club bijwerken.
Parameters
clubID `string` (optioneel) lockedOut `boolean` (optioneel) Of de club wordt buitengesloten van het systeem. pauseBilling `boolean` (optioneel) Of automatische facturering voor de club wordt gepauzeerd. customerID `string` (optioneel) Hiermee wordt de Stripe-klant-ID van de club bijgewerkt. deleteSourceID `string` (optioneel) Of de bronklant in Stripe moet worden verwijderd.Eindpunt
PUT /api/clubs/{clubID}/saas-billing/payment-settings
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De vroegste gefactureerde maand voor alle clubs ophalen.
Parameters
clubID `string` (optioneel)Eindpunt
GET /api/saas-billing/payment-settings/earliest-billed-month
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/earliest-billed-month \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geeft de accounts weer die een factureringsblokkering voor een club kunnen opheffen, in volgorde: eerst gebruikers met de factureringsmodule, en organisatiebeheerders alleen als terugvaloptie wanneer niemand die module heeft.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/lockout-contacts
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/lockout-contacts \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Door alle clubs in het systeem bladeren en de klant-ID's van elke club retourneren.
Parameters
clubID `string` (optioneel) organisationId `string` (optioneel) Organisatie-IDEindpunt
GET /api/saas-billing/payment-settings/customer-ids
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/payment-settings/customer-ids \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De primaire betaalmethode voor een club instellen.
Parameters
clubID `string` (optioneel)Eindpunt
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{paymentMethodID}/primary
Voorbeeldrequest
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"
Antwoord
{}
Het factureringsprofiel van een club bijwerken.
Parameters
clubID `string` (optioneel) invoiceEntity `string` (optioneel) billingContacts `string` (optioneel) Lijst met UUID's van KYC-contactpersonen ccEmails `string` (optioneel) Lijst met e-mailadressen die een kopie (cc) van facturen ontvangenEindpunt
PUT /api/clubs/{clubID}/saas-billing/payment-settings/billing-profile
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/payment-settings/billing-profile \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een betaalmethode voor een club bijwerken.
Parameters
clubID `string` (optioneel) cardID `string` (optioneel)Eindpunt
PUT /api/clubs/{clubID}/saas-billing/payment-settings/payment-methods/{cardID}
Voorbeeldrequest
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"
Antwoord
{}
Retourneert per faciliteit een uitsplitsing van alle toepasselijke productkosten en extra factuurregels voor CSV-export. Doorloopt de hiërarchie van globale/regionale/faciliteitsoverschrijvingen voor elke faciliteit waartoe de gebruiker toegang heeft.
Parameters
organisationId `string` (verplicht) Organisatie-ID voor ACLEindpunt
GET /api/saas-billing/charges-config/export
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/export \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de kostenconfiguratie van een specifiek doel
Parameters
clubId `string` (optioneel) De club-ID van de club waarvoor de kostenconfiguratie moet worden opgehaaldEindpunt
GET /api/saas-billing/charges-config/{clubId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/saas-billing/charges-config/{clubId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Factureringsoverzicht van de organisatie van deze faciliteit: effectief betalersbereik, een eventuele geplande wijziging in de consolidatie en of de aanroeper de consolidatieschakelaar mag beheren.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/org/summary
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/summary \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geconsolideerde maandrecords (overzichten) van de organisatie met de uitsplitsing per faciliteit, nieuwste eerst. Leeg totdat de eerste geconsolideerde maand van de organisatie is afgerekend.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/org/monthly-records
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/org/monthly-records \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Overzicht van de prepaid wallet: saldo, gebruiksafschrijvingen van de lopende maand, configuratie voor automatisch opwaarderen, factureringsmethode.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/wallet
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Grootboek van de wallet, nieuwste eerst. Wallets op organisatieniveau bevatten de rijen van alle faciliteiten (elk met de clubID van herkomst).
Parameters
clubID `string` (verplicht) limit `string` (optioneel) types `string` (optioneel) door komma's gescheiden transactietypen from `string` (optioneel) to `string` (optioneel) cursor `string` (optioneel) nextCursor van een vorige paginaEindpunt
GET /api/clubs/{clubID}/saas-billing/wallet/transactions
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Pdf-ontvangstbewijs met huisstijl voor één wallettransactie (opwaarderingen en tegoeden).
Parameters
clubID `string` (verplicht) txId `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/{txId}/receipt.pdf
Voorbeeldrequest
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"
Antwoord
{}
Bundel van pdf-ontvangstbewijzen met huisstijl voor de geselecteerde opwaarderingstransacties van de wallet, als ZIP. Elke id moet een opwaardering (kaart of factuur) van de wallet van deze faciliteit zijn; gebruiksafschrijvingen en correcties hebben geen ontvangstbewijzen en worden geweigerd.
Parameters
clubID `string` (verplicht) ids `string` (verplicht) Kommagescheiden transactie-id's (maximaal 50)Eindpunt
GET /api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/transactions/receipts.zip \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een opgeslagen kaart van de SaaS-facturering belasten om prepaid saldo toe te voegen. Retourneert requires_action + clientSecret wanneer 3DS nodig is.
Parameters
clubID `string` (verplicht) body `object` (optioneel)Eindpunt
POST /api/clubs/{clubID}/saas-billing/wallet/topup
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een opwaardering van de wallet afronden nadat de applet de 3DS-authenticatie heeft voltooid. Idempotent.
Parameters
clubID `string` (verplicht)Eindpunt
POST /api/clubs/{clubID}/saas-billing/wallet/topup/confirm
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup/confirm \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De regel voor automatisch opwaarderen van de faciliteit bijwerken (opgeslagen in de overschrijvingsrij van het factureringsprofiel).
Parameters
clubID `string` (verplicht) body `object` (optioneel)Eindpunt
PATCH /api/clubs/{clubID}/saas-billing/wallet/auto-topup
Voorbeeldrequest
curl -X PATCH https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/auto-topup \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Opwaarderingsfacturen voor de wallet van deze faciliteit (betaalmethode factuur), nieuwste eerst.
Parameters
clubID `string` (verplicht)Eindpunt
GET /api/clubs/{clubID}/saas-billing/wallet/invoices
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/invoices \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een opwaarderingsfactuur met betalingskenmerk aanvragen (alleen voor de betaalmethode factuur). Maximaal één openstaande factuur per wallet; een tweede verzoek retourneert de bestaande factuur met alreadyPending=true.
Parameters
clubID `string` (verplicht) body `string` (optioneel) { amountCents: number }Eindpunt
POST /api/clubs/{clubID}/saas-billing/wallet/topup-invoice
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/clubs/{clubID}/saas-billing/wallet/topup-invoice \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met bestellingen voor de faciliteit.
Parameters
facilityID `string` (optioneel)Eindpunt
GET /api/store/facilities/:facilityID/orders
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/store/facilities/:facilityID/orders \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert een lijst met producten die beschikbaar zijn voor de club.
Parameters
clubID `string` (verplicht) search `string` (optioneel) limit `string` (optioneel) page `string` (optioneel) Het paginanummer voor paginering (begint bij 1).Eindpunt
GET /api/store/clubs/{clubID}/products
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/store/clubs/{clubID}/products \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Stripe-records van de club weergeven.
Parameters
club `string` (verplicht) fromDate `string` (optioneel) Unix-tijdstempel toDate `string` (optioneel) Unix-tijdstempel socketID `string` (verplicht) Unieke identificatie voor het socketverzoekEindpunt
GET /api/club/{club}/stripe/records
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/records \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een betalingsintentie annuleren
Parameters
club `string` (verplicht) paymentIntent `string` (optioneel)Eindpunt
GET /api/club/{club}/stripe/payment-intent/:paymentIntent/cancel
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/payment-intent/:paymentIntent/cancel \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een Stripe Account Session maken voor ingesloten componenten
Maakt een Stripe Account Session voor een gekoppeld account. Retourneert een client_secret waarmee ingesloten Connect-componenten worden geïnitialiseerd (geschillen, uitbetalingen, accountbeheer, documenten).
Request body
Eindpunt
POST /api/stripe/account-session
Voorbeeldrequest
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 '{}'
Antwoord
{}
Genereert een eenmalige link naar de Stripe-KYC-pagina voor een gekoppeld account.
Parameters
club `string` (verplicht)Eindpunt
GET /api/club/{club}/stripe/generate-kyc-token
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/generate-kyc-token \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de accountgegevens van een gekoppeld Stripe-account op als onderdeel van het KYC-proces.
Parameters
club `string` (verplicht)Eindpunt
GET /api/club/{club}/stripe/connect-account-details
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/club/{club}/stripe/connect-account-details \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Retourneert de volledige ticketgeschiedenis op basis van de club-ID
Parameters
club `string` (verplicht) Interne ID van de club die je wilt openen.Eindpunt
GET /api/ticketing/clubtickets/{club}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/clubtickets/{club} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de afdelingen op
Eindpunt
GET /api/ticketing/departments
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/departments \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de details van één ticket op
Parameters
user `string` (verplicht) E-mailadres van de gebruiker. ticketNumber `string` (verplicht) 6-cijferige ID van het ticket dat je wilt openen. club `string` (verplicht) De geselecteerde club-ID.Eindpunt
GET /api/ticketing/ticket-details/:ticketNumber/:club
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/ticket-details/:ticketNumber/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de onderwerpen op
Eindpunt
GET /api/ticketing/topics
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/topics \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt alle tickets op die zijn gemaakt door de momenteel aangemelde gebruiker. Let op: dit wordt ingesteld op basis van de headers van onze Google SSO-service.
Parameters
user `string` (verplicht) E-mailadres van de momenteel aangemelde gebruikerEindpunt
GET /api/ticketing/usertickets
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/ticketing/usertickets \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een nieuw ticket
Parameters
club `string` (verplicht) De geselecteerde club-ID.Eindpunt
POST /api/ticketing/clubticket/:club
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/clubticket/:club \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een nieuw ticket
Parameters
subject `string` (verplicht) Onderwerp van het ticket. message `string` (verplicht) Volledig bericht van het ticket.Eindpunt
POST /api/ticketing/userticket
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/userticket \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een antwoord op een bestaand ticket
Parameters
subject `string` (verplicht) Onderwerp van het ticket. message `string` (verplicht) Volledig bericht van het ticket.Eindpunt
POST /api/ticketing/user-reply
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/ticketing/user-reply \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Haalt de voorkeuren van een gebruiker op
Eindpunt
GET /api/user-preferences
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Werkt de voorkeuren van een gebruiker bij
Parameters
body `string` (verplicht)Eindpunt
PUT /api/user-preferences
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/user-preferences \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Gebruikerswachtwoord wijzigen
Wijzigt het wachtwoord van de gebruiker. Vereist OTP-verificatie als de gebruiker een telefoonnummer heeft, of vereist dat een telefoonnummer wordt toegevoegd als dat ontbreekt.
Request body
Eindpunt
POST /api/user/change-password
Voorbeeldrequest
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 '{}'
Antwoord
{}
De 2FA-status van de gebruiker controleren
Retourneert of 2FA is ingeschakeld voor de gebruiker en of een van diens rollen 2FA verplicht stelt
Eindpunt
GET /api/user/check-2fa-status
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/user/check-2fa-status \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De organisaties, faciliteiten en regio's weergeven waartoe de gebruiker toegang heeft voor een specifieke module.
Parameters
moduleId `string` (verplicht)Eindpunt
POST /api/user/me/modules/{moduleId}/org-access
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/user/me/modules/{moduleId}/org-access \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Maakt een 'Linking Request' van een eindgebruiker die vraagt om lid te worden van een club.
Parameters
body `string` (verplicht) JSON-object van de nieuwe club die aan het systeem wordt toegevoegd.Eindpunt
POST /api/user/linkclub
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/user/linkclub \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geeft alle clubs weer waarvoor de gebruiker is gemachtigd.
Eindpunt
GET /api/user/listauthorised
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/user/listauthorised \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
OTP via twee kanalen versturen (e-mail + sms)
Verstuurt OTP-codes naar zowel het e-mailadres van de gebruiker als een opgegeven telefoonnummer. Wordt gebruikt voor bewerkingen met hoge beveiliging, zoals de eerste verificatie van een telefoonnummer. Dit endpoint verstuurt alleen OTP's en wijzigt geen gebruikersgegevens.
Request body
Eindpunt
POST /api/user/send-dual-otp
Voorbeeldrequest
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 '{}'
Antwoord
{}
OTP naar telefoonnummer of e-mailadres versturen
Verstuurt een OTP-code naar het telefoonnummer (sms) of e-mailadres van de gebruiker ter verificatie
Request body
Eindpunt
POST /api/user/send-otp
Voorbeeldrequest
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 '{}'
Antwoord
{}
Controleren of de gebruiker geldige toegang tot gevoelige pagina's heeft
Retourneert of de gebruiker een geldige, met OTP geverifieerde sessie heeft voor toegang tot gevoelige pagina's
Eindpunt
GET /api/user/sensitive-page-access
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/user/sensitive-page-access \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
OTP verifiëren en toegang tot gevoelige pagina's verlenen
Verifieert de OTP-code en verleent bij een geldige code 1 uur toegang tot gevoelige pagina's
Request body
Eindpunt
POST /api/user/sensitive-page-access/verify
Voorbeeldrequest
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 '{}'
Antwoord
{}
Toegang tot gevoelige pagina's intrekken (afmelden bij gevoelige pagina's)
Trekt de huidige sessie van de gebruiker voor toegang tot gevoelige pagina's in
Eindpunt
POST /api/user/sensitive-page-access/revoke
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/user/sensitive-page-access/revoke \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
2FA in- of uitschakelen
Schakelt tweestapsverificatie voor de gebruiker in of uit. Vereist een telefoonnummer en OTP-verificatie.
Request body
Eindpunt
POST /api/user/toggle-2fa
Voorbeeldrequest
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 '{}'
Antwoord
{}
Eigen profiel van de gebruiker bijwerken
Hiermee kan een gebruiker zijn eigen profielgegevens bijwerken (voornaam, achternaam, telefoonnummer). Bij het voor het eerst toevoegen van een telefoonnummer is OTP-verificatie via twee kanalen vereist (codes via zowel e-mail als sms). Bij het wijzigen van een bestaand telefoonnummer is alleen een OTP via e-mail vereist.
Request body
Eindpunt
PATCH /api/user/update-profile
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een pictogram ophalen op basis van de URL.
Eindpunt
GET /api/website-icon
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/website-icon \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Sjablonen voor items in de wachtwoordkluis weergeven
Parameters
organisationId `string` (optioneel) Organisatiecontext voor controles op moduletoegangEindpunt
GET /api/vault/templates
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/vault/templates \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Zichtbare items in de wachtwoordkluis weergeven
Parameters
organisationId `string` (verplicht) scope `string` (optioneel)Eindpunt
GET /api/vault/entries
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een item in de wachtwoordkluis maken
Eindpunt
POST /api/vault/entries
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries \
-H "x-api-key: YOUR_API_KEY"
Een item in de wachtwoordkluis ophalen zonder onthulde geheime waarden
Parameters
entryId `string` (verplicht) organisationId `string` (verplicht)Eindpunt
GET /api/vault/entries/{entryId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een item in de wachtwoordkluis bijwerken
Eindpunt
PUT /api/vault/entries/{entryId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een item in de wachtwoordkluis verwijderen
Eindpunt
DELETE /api/vault/entries/{entryId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/vault/entries/{entryId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geselecteerde verborgen of geheime velden onthullen
Eindpunt
POST /api/vault/entries/{entryId}/reveal
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/vault/entries/{entryId}/reveal \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Overzichten van mappen in de wachtwoordkluis weergeven
Eindpunt
GET /api/vault/folders
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/vault/folders \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Items met authenticatorcodes weergeven
Eindpunt
GET /api/vault/authenticator
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/vault/authenticator \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Geregistreerde typen workflowknooppunten weergeven
Eindpunt
GET /api/workflow-engine/node-types
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/node-types \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De projectie van de openingstijden van de faciliteit ophalen die door workflowblokken wordt gebruikt
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/facility-hours/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-hours/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een voorbeeld bekijken van de workflow-e-mailafzender met de huisstijl van de faciliteit
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/email-branding/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/email-branding/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Resources van de faciliteit weergeven voor de configuratie van triggers
Parameters
facilityId `string` (verplicht) resourceType `string` (verplicht)Eindpunt
GET /api/workflow-engine/resources/{facilityId}/{resourceType}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/resources/{facilityId}/{resourceType} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Workflows voor een faciliteit weergeven
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/workflows/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een conceptworkflow maken op basis van een niet-lege graaf
De editor houdt een nieuwe workflow lokaal totdat deze ten minste één blok heeft, zodat de eerste keer opslaan de workflow met zijn graaf in één aanroep maakt. Een hoofdtekst zonder `nodes` wordt geweigerd in plaats van opgeslagen.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Referenties weergeven die de workflows van een faciliteit mogen gebruiken
Retourneert de eigen referenties van de faciliteit plus alle referenties die op merk- of organisatieniveau worden gedeeld. Geheimen worden nooit geretourneerd; `hasValue` geeft alleen aan dat er een is opgeslagen.
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/credentials/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een workflowreferentie maken
Het bereikniveau komt uit `scopeType`; de merk- en organisatie-id's worden bepaald op basis van de faciliteit en niet overgenomen van de aanroeper.
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/credentials/{facilityId}
Voorbeeldrequest
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 '{}'
Faciliteitsbrede workflowinstellingen (ontvangers van foutmeldingen)
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/facility-settings/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/facility-settings/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Faciliteitsbrede ontvangers van foutmeldingen opslaan
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
PUT /api/workflow-engine/facility-settings/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een workflowreferentie vervangen
Een lege `secret` behoudt het opgeslagen geheim, zodat een referentie kan worden hernoemd zonder het opnieuw in te voeren. Een geheim kan op geen enkele manier worden teruggelezen.
Parameters
facilityId `string` (verplicht) credentialId `string` (verplicht)Eindpunt
PUT /api/workflow-engine/credentials/{facilityId}/{credentialId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een workflowreferentie verwijderen
Knooppunten die ernaar verwijzen, mislukken veilig bij de volgende aanroep, ook in al gepubliceerde workflows, omdat een snapshot alleen de verwijzing opslaat.
Parameters
facilityId `string` (verplicht) credentialId `string` (verplicht)Eindpunt
DELETE /api/workflow-engine/credentials/{facilityId}/{credentialId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/credentials/{facilityId}/{credentialId} \
-H "x-api-key: YOUR_API_KEY"
De webhook-URL van een workflowtrigger ophalen
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht) nodeId `string` (verplicht)Eindpunt
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De webhook-URL van een workflowtrigger vernieuwen
Maakt de vorige URL direct ongeldig.
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht) nodeId `string` (verplicht)Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/nodes/{nodeId}/webhook/rotate
Voorbeeldrequest
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"
Antwoord
{}
Een workflow ophalen op id
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Eindpunt
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een conceptworkflow maken of bijwerken
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
PUT /api/workflow-engine/workflows/{facilityId}/{workflowId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Naam en/of beschrijving van een workflow bijwerken
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een workflow en de versies ervan verwijderen
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Eindpunt
DELETE /api/workflow-engine/workflows/{facilityId}/{workflowId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een workflow dupliceren naar een nieuw inactief concept
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/duplicate \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Het huidige concept publiceren (onveranderlijke versiesnapshot)
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/publish
Voorbeeldrequest
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 '{}'
Antwoord
{}
Het concept terugzetten naar de laatst gepubliceerde versie
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/discard
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/discard \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een workflow in- of uitschakelen
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
PATCH /api/workflow-engine/workflows/{facilityId}/{workflowId}/active
Voorbeeldrequest
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 '{}'
Antwoord
{}
Een workflowgraaf genereren of herzien met AI
Parameters
facilityId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/generate/{facilityId}
Voorbeeldrequest
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 '{}'
Antwoord
{}
Modellen weergeven waarop een Agent-knooppunt voor deze faciliteit kan draaien
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/agent-models/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-models/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
MCP-tools weergeven die een Agent-knooppunt voor deze faciliteit mag koppelen
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/agent-tools/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-tools/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De opgeslagen Agent-gesprekken van deze faciliteit doorzoeken (koppelingen op Conversation key)
Parameters
facilityId `string` (verplicht) deviceId `string` (optioneel) Beperken tot de gesprekken van één Agent-apparaat (de geconfigureerde deviceId van het knooppunt) q `string` (optioneel) Hoofdletterongevoelige deeltekenreeksovereenkomst op de Conversation key, sessie-id of apparaatnaam limit `integer` (optioneel) offset `integer` (optioneel)Eindpunt
GET /api/workflow-engine/agent-conversations/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-conversations/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De gesprekken doorzoeken die op het Agent-apparaat van de faciliteit zelf staan
Geeft de eigen sessies van het apparaat weer (de gesprekken in de zijbalk van de Agent-UI), zodat een workflow een bestaand gesprek met de bijbehorende context kan voortzetten. Het apparaat beheert de geschiedenis; als de faciliteit meerdere apparaten heeft, bepaalt `deviceId` welk apparaat (het geconfigureerde apparaat van het knooppunt). Onbereikbaar apparaat → 502.
Parameters
facilityId `string` (verplicht) deviceId `string` (optioneel) Het geconfigureerde Agent-apparaat van het knooppunt; laat weg om het enige apparaat van de faciliteit te gebruiken q `string` (optioneel) Hoofdletterongevoelige deeltekenreeksovereenkomst op de sessietitel of -id limit `integer` (optioneel) offset `integer` (optioneel)Eindpunt
GET /api/workflow-engine/agent-device-sessions/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/agent-device-sessions/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De borden op het kanbanbord van het Agent-apparaat van de faciliteit doorzoeken
Voedt de Board ID-kiezer van het blok Agent: Kanban. Hoofdletterongevoelige deeltekenreeksovereenkomst op de bordnaam of slug; `current` is de slug van het actieve bord van het apparaat, zodat de taakkiezer daar standaard op kan filteren. Als de faciliteit meerdere apparaten heeft, bepaalt `deviceId` welk apparaat. Onbereikbaar apparaat → 502.
Parameters
facilityId `string` (verplicht) deviceId `string` (optioneel) Het geconfigureerde Agent-apparaat van het knooppunt; laat weg om het enige apparaat van de faciliteit te gebruiken q `string` (optioneel) Hoofdletterongevoelige deeltekenreeksovereenkomst op de bordnaam of slug limit `integer` (optioneel) offset `integer` (optioneel)Eindpunt
GET /api/workflow-engine/kanban-boards/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-boards/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De taken van één bord op het kanbanbord van het Agent-apparaat van de faciliteit doorzoeken
Voedt de Task ID-kiezer van het blok Agent: Kanban. Hoofdletterongevoelige deeltekenreeksovereenkomst op de taak-id, titel of inhoud; taken staan per bord (het apparaat kan niet over borden heen zoeken), dus `board` bepaalt wat wordt opgehaald. Laat dit weg voor het actieve bord van het apparaat. Onbereikbaar apparaat → 502.
Parameters
facilityId `string` (verplicht) deviceId `string` (optioneel) Het geconfigureerde Agent-apparaat van het knooppunt; laat weg om het enige apparaat van de faciliteit te gebruiken board `string` (optioneel) De slug van het bord dat moet worden weergegeven; laat weg voor het actieve bord van het apparaat q `string` (optioneel) Hoofdletterongevoelige deeltekenreeksovereenkomst op de taak-id, titel of inhoud limit `integer` (optioneel) offset `integer` (optioneel)Eindpunt
GET /api/workflow-engine/kanban-tasks/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/kanban-tasks/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Samengestelde workflowsjablonen weergeven, gefilterd voor deze faciliteit
Parameters
facilityId `string` (verplicht)Eindpunt
GET /api/workflow-engine/templates/{facilityId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een sjabloon omzetten in een graaffragment voor het geopende concept
Parameters
facilityId `string` (verplicht) templateId `string` (verplicht)Eindpunt
POST /api/workflow-engine/templates/{facilityId}/{templateId}
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/templates/{facilityId}/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Context voor de bereikkiezer op de beheerpagina voor sjablonen (beheerniveaus)
Eindpunt
GET /api/workflow-engine/template-admin/context
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/context \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Sjablonen weergeven die de aanroeper mag beheren, met rechtenvlaggen
Eindpunt
GET /api/workflow-engine/template-admin
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een sjabloon maken (beheerniveaus)
Request body
Eindpunt
POST /api/workflow-engine/template-admin
Voorbeeldrequest
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 '{}'
Sjabloondetails, inclusief graaf, voor de beheereditor
Eindpunt
GET /api/workflow-engine/template-admin/{templateId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een sjabloon vervangen (eigenaarsorganisatie)
Eindpunt
PUT /api/workflow-engine/template-admin/{templateId}
Voorbeeldrequest
curl -X PUT https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een sjabloon zacht verwijderen (eigenaarsorganisatie)
Eindpunt
DELETE /api/workflow-engine/template-admin/{templateId}
Voorbeeldrequest
curl -X DELETE https://portal.hub.gymsystems.co/api/workflow-engine/template-admin/{templateId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een zichtbaar sjabloon dupliceren naar een doelbereik dat de aanroeper mag gebruiken
Request body
Eindpunt
POST /api/workflow-engine/template-admin/{templateId}/duplicate
Voorbeeldrequest
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 '{}'
De gepubliceerde graaf van een workflow uitvoeren via een handmatige trigger
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/run
Voorbeeldrequest
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 '{}'
Antwoord
{}
Het opgeslagen concept testen zonder het te publiceren
Voert de huidige conceptgraaf uit en legt het resultaat vast met `mode: test` en zonder `versionId`. Publicatie, de live-vlag en `publishedVersionId` worden nooit aangeraakt. Neveneffecten worden standaard gesimuleerd; `sideEffects: live` vereist daarnaast `confirmLiveSideEffects: true`.
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test
Voorbeeldrequest
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 '{}'
Antwoord
{}
Eén workflowknooppunt van de toegestane lijst testen
Voert één afzonderlijk testbaar knooppunt uit het opgeslagen concept uit. Variabelewaarden kunnen worden aangeleverd vanuit vastgelegde runstappen. Wijzigende HTTP-methoden vereisen expliciete bevestiging.
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/test-node
Voorbeeldrequest
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 '{}'
Antwoord
{}
Recente runs van een workflow weergeven
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht)Eindpunt
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Eén run lezen (status + geordende stappen)
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht) executionId `string` (verplicht)Eindpunt
GET /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
De openstaande Delay annuleren waarop een wachtende run staat te wachten
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht) executionId `string` (verplicht)Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel
Voorbeeldrequest
curl -X POST https://portal.hub.gymsystems.co/api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/cancel \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Een voltooide run opnieuw afspelen vanaf de vastgelegde triggerpayload
`mode: published` voert exact de versie opnieuw uit waaraan de oorspronkelijke run was gekoppeld, met echte neveneffecten. `mode: draft-test` voert het huidige concept opnieuw uit als gesimuleerde test. Een run waarvan de triggerpayload bij het schrijven is afgekapt, kan niet opnieuw worden afgespeeld.
Parameters
facilityId `string` (verplicht) workflowId `string` (verplicht) executionId `string` (verplicht)Request body
Eindpunt
POST /api/workflow-engine/workflows/{facilityId}/{workflowId}/runs/{executionId}/retry
Voorbeeldrequest
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 '{}'
Antwoord
{}
Geïndexeerd opzoeken van workflows die een bepaald knooppunttype bevatten
Parameters
nodeType `string` (verplicht) facilityId `string` (optioneel) organisationId `string` (optioneel)Eindpunt
GET /api/workflow-engine/master-view/{nodeType}
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/api/workflow-engine/master-view/{nodeType} \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
White-label OAuth-omleidingsproxy (Connected Apps)
Openbare, niet-geauthenticeerde 302 die een OAuth-providercallback doorstuurt naar de authenticatiecallback van het upstream toolplatform, met behoud van de querystring. Hiermee kunnen OAuth-apps van PH een performancehub.co-omleidings-URI registreren, zodat het domein van de upstream leverancier nooit in de adresbalk verschijnt (nodig voor het toekomstige project met aangepaste OAuth-apps; onschadelijk bij beheerde authenticatie).
Eindpunt
GET /guest/connected-apps/oauth-callback
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/oauth-callback \
-H "x-api-key: YOUR_API_KEY"
Eindpagina van de koppelingsketen (Connected Apps)
Lichte landingspagina "you can close this window" voor het OAuth-tabblad waarin een koppelingsketen is uitgevoerd. Stuurt het resultaat (gekoppelde suite/toolkit + nieuwe account-id's, of de mislukte toolkit) terug naar het marketplace-tabblad via window.opener.postMessage met dezelfde origin; als de verbinding met de opener is verbroken, valt het terug op een deeplink naar de ph-ai-agent-applet die de landingspagina in de app nabootst. Puur informatief: bevat geen geheimen en schrijft niets.
Parameters
connected `string` (optioneel) Suite-id of toolkit-slug die klaar is met koppelen (bij succes). accounts `string` (optioneel) Door komma's gescheiden id's van gekoppelde accounts die de keten heeft gemaakt. connectError `string` (optioneel) Toolkit-slug waarvan de stap is mislukt (bij een fout).Eindpunt
GET /guest/connected-apps/finish
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/finish \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}
Callback voor het koppelen van een suite in een keten (Connected Apps)
OAuth-callbackstap voor de suitekoppeling met één klik. De ondertekende status-JWT (HS256, TTL van 30 min) bevat { clubID, deviceId, suite, toolkits, step, caids }: de accounts worden gekoppeld aan dat ene agentapparaat, en caids verzamelt de account-id's die elke stap heeft gemaakt (de laatste omleiding naar de applet geeft ze mee, zodat de marketplace kan aanbieden de nieuwe accounts een label te geven). Markeert de toolkit van de stap als gekoppeld en stuurt daarna met een 302 door naar de Connect Link van de volgende toolkit, of naar de pagina van de ph-ai-agent-applet (met een deeplink naar de agent) wanneer de suite klaar is. Koppelingen van één toolkit lopen via dezelfde handler met een suite van één toolkit.
Parameters
state `string` (verplicht) Ondertekende status-JWT van de koppelingsketen.Eindpunt
GET /guest/connected-apps/connect-next
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/guest/connected-apps/connect-next \
-H "x-api-key: YOUR_API_KEY"
E-mail voor het instellen van een wachtwoord activeren
Valideert de ondertekende link uit een welkomstmail, activeert een e-mail voor het opnieuw instellen van het wachtwoord en toont een bevestigingspagina. Geen authenticatie vereist.
Parameters
email `string` (verplicht) E-mailadres van de gebruiker sig `string` (verplicht) HMAC-handtekening voor de e-mailEindpunt
GET /guest/setup-password
Voorbeeldrequest
curl -X GET https://portal.hub.gymsystems.co/guest/setup-password \
-H "x-api-key: YOUR_API_KEY"
Antwoord
{}