EGYM · AsyncAPI Specification

Egym Events Webhooks

Version

View Spec View on GitHub CompanyFitnessHealthWellnessCorporate WellnessConnected EquipmentGym ManagementMember ManagementCheck-inMeasurementsWorkoutsAnalyticsWebhookGermanyAsyncAPIEvents

AsyncAPI Specification

Raw ↑
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.
All 92 tools →

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.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.