EGYM · AsyncAPI Specification
Egym Events Webhooks
Version
View Spec
View on GitHub
CompanyFitnessHealthWellnessCorporate WellnessConnected EquipmentGym ManagementMember ManagementCheck-inMeasurementsWorkoutsAnalyticsWebhookGermanyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-12'
method: searched
source: https://developer.egym.com/general/webhooks
docs:
- https://developer.egym.com/general/webhooks
- https://developer.egym.com/mms-api-v2/apis/mms-v2/webhooks
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: 'EGYM publishes no AsyncAPI document. The webhook surface is documented in
prose plus a management API in the MMS API V2 OpenAPI; a derived AsyncAPI 3.0.0 rendering
of that documented contract is at asyncapi/egym-mms-events-asyncapi.yml.'
surface: outbound webhooks (EGYM pushes to a partner-hosted HTTPS endpoint)
scope: 'Per gym. Multiple webhooks can be created for a single gym.'
delivery:
transport: HTTPS POST
content_type: application/json
auth_header: x-api-key
auth_note: 'The partner supplies the secret when registering the subscription; EGYM sends
it back on every delivery as x-api-key so the receiver can authenticate the caller.'
timeout_seconds: 5
timeout_behaviour: Requests exceeding 5 seconds are treated as unsuccessful.
requirements:
- HTTPS only, with a valid SSL certificate.
- Endpoint must be reachable by EGYM without additional configuration or VPN.
retry_policy: null
retry_note: No retry, backoff or dead-letter policy is documented.
signature_scheme: null
signature_note: 'No HMAC payload signature is documented — authentication is a shared
secret echoed in a header, so a receiver cannot verify payload integrity.'
ordering: null
replay: null
payload:
shape: flat JSON object
example: '{ "accountId": "[UUID]", "timestamp": 1667921312188, "type": "GYM_CHECKIN" }'
fields:
- {name: accountId, type: uuid, description: Account id of the user.}
- {name: timestamp, type: integer, format: epoch-millis, description: UTC timestamp of the event.}
- {name: type, type: string, description: 'Event type. See the events list below.'}
note: 'The payload is a notification, not a state transfer — it carries no event body
beyond the account id, so a consumer must call back into MMS API V2 (for example
retrieveAccount) to learn what actually changed.'
event_count: 6
events:
- type: GYM_CHECKIN
description: A customer has physically checked in at a gym.
since: null
- type: GYM_CHECKOUT
description: A customer has physically checked out from a gym.
since: null
- type: EQUIPMENT_CHECKIN
description: A customer has physically logged in to equipment in a gym.
since: '2023-12-08'
- type: MEMBERSHIP_DELETE
description: Member data has been deleted from EGYM.
since: '2024-03-21'
- type: GENIUS_ONBOARDING_COMPLETED
description: A member completed EGYM Genius onboarding.
since: null
- type: TEST
description: Test event used to verify a webhook endpoint.
since: null
roadmap_note: EGYM states additional webhook event types will be added in future releases.
consent_filtering:
enabled: true
since: '2026-06-24'
description: 'Webhook events are filtered to account for data-sharing consent, so a
subscriber does not receive events for members who have not consented to share with
that partner.'
source: https://developer.egym.com/mms-api-v2/change-log
management_api:
api: EGYM MMS API V2
spec: openapi/egym-mms-api-v2-openapi.yml
operations:
- {operationId: createWebhook, method: POST, path: /api/v2/webhooks, description: Create a webhook subscription.}
- {operationId: getAllWebhooks, method: GET, path: /api/v2/webhooks, description: List configured webhooks.}
- {operationId: getWebhookById, method: GET, path: '/api/v2/webhooks/{id}', description: Retrieve a webhook subscription.}
- {operationId: updateWebhook, method: PUT, path: '/api/v2/webhooks/{id}', description: Update webhook URL and secret.}
- {operationId: deleteWebhook, method: DELETE, path: '/api/v2/webhooks/{id}', description: Delete a webhook subscription.}
- {operationId: triggerWebhook, method: POST, path: '/api/v2/webhooks/{id}/trigger', description: Fire a TEST event at the registered endpoint to verify it.}
conflict: 409 webhookUrlAlreadyRegistered when the URL is already registered for the gym.
future: 'EGYM states the webhook management API endpoints will be replaced by a UI-based
configuration interface, with migration guidance to follow.'
gaps:
- No AsyncAPI document is published for the event surface.
- No payload signature (HMAC) scheme — only a shared secret echoed as x-api-key.
- No documented retry, backoff, dead-letter or ordering guarantees.
- 'webhooks: is not declared in the MMS API V2 OpenAPI 3.1 document, even though OpenAPI 3.1
supports it and the events are fully specified in prose.'
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/egym-events-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.