Wahoo Fitness · AsyncAPI Specification

Wahoo Cloud Webhooks

Version v1

Wahoo Cloud delivers `workout_summary` webhook events to a callback URL registered against a developer application. Webhooks require the `offline_data` OAuth scope. Failed deliveries (non-200) are retried at 30 minutes, 4 hours, 24 hours, and 72 hours before being dropped.

View Spec View on GitHub FitnessCyclingEndurance TrainingBike ComputersSmart TrainersIndoor CyclingHeart RatePower MetersGPSWearablesHardwareFIT FilesWebhooksOAuthAsyncAPIWebhooksEvents

Channels

workout_summary
subscribe receiveWorkoutSummary
Receive Workout Summary Webhook
Delivered when a workout summary is created or updated for a user that authorized the registered application with the `offline_data` scope.

Messages

WorkoutSummaryEvent
Workout Summary Event

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Wahoo Cloud Webhooks
  version: v1
  description: >-
    Wahoo Cloud delivers `workout_summary` webhook events to a callback URL
    registered against a developer application. Webhooks require the
    `offline_data` OAuth scope. Failed deliveries (non-200) are retried at
    30 minutes, 4 hours, 24 hours, and 72 hours before being dropped.
  contact:
    name: Wahoo Developer Support
    email: [email protected]
    url: https://developers.wahooligan.com
externalDocs:
  description: Wahoo Cloud API Reference — Webhooks
  url: https://cloud-api.wahooligan.com/#webhooks
defaultContentType: application/json
channels:
  workout_summary:
    description: >-
      Delivered when a workout summary is created or updated for a user that
      authorized the registered application with the `offline_data` scope.
    subscribe:
      operationId: receiveWorkoutSummary
      summary: Receive Workout Summary Webhook
      message:
        $ref: '#/components/messages/WorkoutSummaryEvent'
components:
  messages:
    WorkoutSummaryEvent:
      name: WorkoutSummaryEvent
      title: Workout Summary Event
      contentType: application/json
      payload:
        type: object
        properties:
          event:
            type: string
            enum: [workout_summary]
          user:
            type: object
            properties:
              id: { type: integer, format: int64 }
          webhook_token: { type: string }
          workout_summary:
            $ref: '#/components/schemas/WorkoutSummary'
  schemas:
    WorkoutSummary:
      type: object
      properties:
        id: { type: integer, format: int64 }
        workout_id: { type: integer, format: int64 }
        ascent_accum: { type: string }
        calories_accum: { type: string }
        distance_accum: { type: string }
        duration_active_accum: { type: string }
        duration_total_accum: { type: string }
        cadence_avg: { type: string }
        heart_rate_avg: { type: string }
        power_bike_avg: { type: string }
        speed_avg: { type: string }
        work_accum: { type: string }
        file:
          type: object
          properties:
            url: { type: string, format: uri }