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 nu

Eindpunt

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 gebruiker

Eindpunt

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//; de chat en terminal van de agent zijn er nooit mee bereikbaar. Viewers hebben de module custom-apps nodig bij een faciliteit binnen de doelgroep van de app; ze hebben NIET de module ph-ai-agent of agenttoegang per apparaat nodig.

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

{}

Klaargezette skill-exports op de AI-agent van een faciliteit (deelkiezer)

Stuurt de lijst met klaargezette exports van de bridge van het apparaat (GET /__skills/exports) via de tunnel door voor de kiezer "Share a skill" van de applet. Exports worden klaargezet door de beveiligings- en overdraagbaarheidscontrole ph-skill-sharing op het apparaat; elk item bevat het resultaat van de scan op het apparaat. Vereist de module ph-ai-agent EN 'open'-toegang per apparaat (dezelfde drempel als voor het publiceren zelf).

Parameters

club `string` (verplicht) device `string` (verplicht)

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Een klaargezette skill-export publiceren als NIEUWE gedeelde skill (conceptversie)

Haalt de benoemde klaargezette export-tarball via de tunnel op van de bridge van het apparaat, pakt die in het geheugen uit (path traversal, symlinks en te grote bestanden worden geweigerd), voert de deterministische beveiligingsscan in de cloud uit, bouwt het manifest op uit de frontmatter van SKILL.md, slaat de tarball content-addressed op in de privé-skillsbucket en maakt de skillkop + een CONCEPT-versie aan. Bij een blokkade door de scan wordt NIETS opgeslagen en worden de bevindingen geretourneerd. De doelgroep wordt begrensd door de eigen rolbereiken van de publicist. Dien het concept in (POST submit) om het te publiceren.

Parameters

club `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Een klaargezette export publiceren als NIEUWE VERSIE van een bestaande gedeelde skill

Dezelfde pipeline als bij publiceren, maar voor een bestaande skill: de naam in SKILL.md van de export moet overeenkomen met de skill, de versie moet nieuw zijn (versies zijn onveranderlijk) en een changelog is verplicht. Alleen de publicist kan versies toevoegen. Bij een blokkade door de scan wordt een versierij met status 'rejected' opgeslagen (alleen het rapport, geen artefact), zodat de bevindingen in de geschiedenis van de publicist zichtbaar zijn.

Parameters

club `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

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

{}

Een gedeelde skill uit de lijst halen (verwijdert de skill uit de bibliotheek)

Alleen voor de publicist. De skill verdwijnt direct uit de bibliotheek en kan niet meer nieuw worden geïnstalleerd; BESTAANDE installaties blijven werken. Uit de lijst halen is een vermeldingsactie, geen noodstop.

Parameters

club `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

De vermelding van een gedeelde skill bewerken (weergavenaam, beschrijving, pictogram)

Alleen voor de publicist. Alleen weergavevelden: de canonieke skillnaam is de identiteit (manifesten, installatiemappen, versievergelijking) en verandert nooit. Een lege string zet een veld terug op null (dan worden de canonieke naam en geen pictogram gebruikt). Pictogrammen gebruiken de MDI-catalogus (mdi:icon-name), hetzelfde formaat als gepubliceerde agent-apps.

Parameters

club `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Eigendom van een gedeelde skill overdragen

Volgt dezelfde overdrachtsflow als bij gepubliceerde apps: de huidige publicist of een accounteigenaar (module billing) kan de skill overdragen aan een andere gebruiker, die daarna de versies en de vermelding beheert. De nieuwe eigenaar moet toegang hebben tot de faciliteit bij de thuisclub van de skill.

Parameters

club `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

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 faciliteit

Eindpunt

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 apparaat

Eindpunt

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 apparaat

Eindpunt

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 verplaatsen

Eindpunt

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

{}

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

{}

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 link

Eindpunt

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 testen

Eindpunt

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 pagina

Eindpunt

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 gezichtsidentificatie

Eindpunt

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

{}

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-ID

Eindpunt

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 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 persoon

Eindpunt

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-personentabel

Eindpunt

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 faciliteit

Request 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 faciliteit

Request 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..textGated` telt kandidaten die bij de afbeelding pasten maar niet bij de woorden, zodat een lege pagina kan worden verklaard als "laat de woorden weg" in plaats van "probeer een andere afbeelding". Een seed-zoekopdracht zonder woorden laadt geen encoder en heeft dus nooit last van een koude start; met woorden vervalt dat voordeel. Hoe dan ook wordt standaard in elke index gezocht: de vectoren van uitsneden, opnamen en timelapses delen één ruimte, zodat een uitsnede van een persoon bijpassende beelden kan vinden. Seed-scores liggen veel hoger dan tekstscores (afbeelding-naar-afbeelding overbrugt geen modaliteitskloof) en worden gefilterd met een aparte, nog niet gekalibreerde ondergrens. `result.queryKind` vertelt je welke schaal je leest, en een score van de ene mag nooit met de andere worden vergeleken. Zoekt standaard in elke index en retourneert één samengevoegde lijst, gesorteerd op score; elke treffer bevat `index` en `kind`, zodat de aanroeper een afbeeldingstreffer van een videotreffer kan onderscheiden (die laatste voegt `offsetMs` toe). Indexen zonder tabel voor de faciliteit worden onder `skipped` gemeld in plaats van te mislukken. Treffers onder de gekalibreerde relevantiegrens van elke index worden weggelaten, zodat een zoekopdracht zonder echte match een lege lijst retourneert in plaats van zelfverzekerde onzin; `perIndex` meldt wat elke index heeft bijgedragen en waarom. Resultaten kunnen worden verfijnd op opnametijd en op camera. Gebruik bij voorkeur `cameraId` in plaats van `camera`: dat is de balenaUUID van de camera, de enige waarde die elke index op dezelfde manier opslaat, zodat één filter ze allemaal verfijnt. Een filter dat een index niet kan toepassen, wordt gemeld onder `perIndex..filtersIgnored` en die index wordt dan zonder verfijning doorzocht in plaats van uit de zoekopdracht te worden weggelaten. Opnametreffers zijn **één per clip, niet één per gematcht frame**: frames worden elke 2 s bemonsterd, dus een persoon die blijft staan, matcht tien bijna identieke frames van dezelfde opname. Elke clip retourneert het beste frame, plus `matchCount` en `offsetsMs` met elk moment in de clip dat matchte; die zijn direct bruikbaar als zoekpunten. Uitsneden van personen worden nooit samengevoegd, omdat twee uitsneden van één persoon twee afzonderlijke waarnemingen zijn.

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-ID

Eindpunt

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-ID

Eindpunt

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 gekoppeld

Eindpunt

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-zoekargumenten

Eindpunt

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 uploadrecord

Eindpunt

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 opgehaald

Eindpunt

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 opgehaald

Eindpunt

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 standaarddashboard

Eindpunt

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 opgenomen

Eindpunt

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 weergegeven

Eindpunt

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

{}

Een dashboardbanner verwijderen

Verwijdert een dashboardbanner van het merk zacht (soft delete).

Parameters

brandId `string` (verplicht) De ID van het merk waartoe de banner behoort bannerId `string` (verplicht) De ID van de banner die wordt verwijderd

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Dashboardbanners van een merk weergeven

Retourneert alle (niet-verwijderde) dashboardbanners die voor het merk zijn geconfigureerd, voor beheer.

Parameters

brandId `string` (verplicht) De ID van het merk waarvan de banners worden weergegeven

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Een dashboardbanner aanmaken of bijwerken

Maakt een nieuwe dashboardbanner voor het merk aan, of werkt een bestaande bij wanneer `bannerId` in de body is opgegeven. Banners kunnen worden ingepland (begin/einde in Unix-seconden, null = onbegrensd) en gericht op het hele merk, specifieke regio's (ISO-codes) of specifieke faciliteiten.

Parameters

brandId `string` (verplicht) De ID van het merk waartoe de banner behoort

Request body

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Actieve dashboardbanners voor een faciliteit ophalen

Bepaalt welke dashboardbanners momenteel voor een faciliteit moeten worden getoond, op basis van het merk van de faciliteit, de regio (ISO-landcode) en per banner de enabled-vlag, het tijdvenster en de targeting. Wordt gebruikt door de dashboard-UI's.

Parameters

facilityId `string` (verplicht) De ID van de faciliteit waarvoor banners moeten worden bepaald

Eindpunt

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

Voorbeeldrequest

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

Eindpunt

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-notatie

Eindpunt

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-notatie

Eindpunt

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-notatie

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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 openen

Eindpunt

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 faciliteit

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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-adres

Eindpunt

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

{}

Gedeelde Door/Gate Access-instellingen voor een faciliteit ophalen

Parameters

facilityId `string` (verplicht)

Eindpunt

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

Voorbeeldrequest

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

Antwoord

{}

Gedeelde Door/Gate Access-instellingen voor een faciliteit bijwerken

Parameters

facilityId `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

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

{}

Persoonstypen, statussen en tags voor de faciliteit weergeven

Retourneert de unieke waarden voor persoonstype, lidmaatschapsstatus en tags die voorkomen in de User Access-rijen van de faciliteit (ph-door-access-users), afkomstig uit partnersynchronisatie + handmatige invoer. De door-gate-access-applet gebruikt deze om de keuzelijsten voor toegangsregels te vullen. Tags zijn de vereniging van gesynchroniseerde `tags` en door beheerders ingestelde `customTags`, net als in de regelevaluator.

Parameters

facilityId `string` (verplicht)

Eindpunt

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

Voorbeeldrequest

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

{}

De hybride autorisatietoekenningen op een User Access-rij vervangen

Koppeling voor de hybride evaluator uit fase 3. Toekenningen bestaan naast de tagregels van de faciliteit: een gebruiker krijgt toegang wanneer een van beide overeenkomt op het moment van ontgrendelen.

Parameters

facilityId `string` (verplicht) userId `string` (verplicht)

Request body

Eindpunt

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

Voorbeeldrequest

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

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 ophalen

Eindpunt

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 ophalen

Eindpunt

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 paginering

Eindpunt

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 paginering

Eindpunt

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 verwijderen

Eindpunt

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 opgehaald

Eindpunt

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 functies

Eindpunt

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 merk

Eindpunt

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 bepaald

Eindpunt

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-ID

Eindpunt

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 schrijven

Eindpunt

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 partner

Eindpunt

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 partner

Eindpunt

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 LIMITED

Eindpunt

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-ID

Eindpunt

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 lid

Eindpunt

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 lid

Request 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 geretourneerd

Eindpunt

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) Rolobject

Eindpunt

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) Rolobject

Eindpunt

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 verzoek

Eindpunt

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-ID

Eindpunt

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 verzoek

Eindpunt

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-ID

Eindpunt

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-ID

Eindpunt

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

Eindpunt

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-ID

Eindpunt

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

Eindpunt

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-ID

Eindpunt

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

Eindpunt

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

Eindpunt

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-opwaarderingen

Eindpunt

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 toegevoegd

Eindpunt

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

Eindpunt

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 opgehaald

Eindpunt

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 weergegeven

Eindpunt

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 opgehaald

Eindpunt

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 bijgewerkt

Eindpunt

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 record

Eindpunt

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-ID

Eindpunt

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 ontvangen

Eindpunt

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 ACL

Eindpunt

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 opgehaald

Eindpunt

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 pagina

Eindpunt

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 socketverzoek

Eindpunt

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 gebruiker

Eindpunt

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 moduletoegang

Eindpunt

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

Eindpunt

GET /guest/setup-password

Voorbeeldrequest

curl -X GET https://portal.hub.gymsystems.co/guest/setup-password \
  -H "x-api-key: YOUR_API_KEY"

Antwoord

{}