Wahoo Fitness · Capability

Wahoo Cloud API — Plans

Workout plan capability for the Wahoo Cloud API. Manage structured JSON workout plans, including listing plans linked to a workout.

Wahoo Cloud API — Plans is a Naftiko capability published by Wahoo Fitness, one of 7 capabilities the APIs.io network indexes for this provider. It bundles 6 operations.

The capability includes 3 read-only operations and 3 state-changing operations. Lead operation: List Wahoo workout plans. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Wahoo, Plans, Workouts, and Fitness.

Run with Naftiko WahooPlansWorkoutsFitness

MCP Tools

wahoo-list-plans

List Wahoo workout plans.

read-only idempotent
wahoo-create-plan

Create a Wahoo workout plan.

wahoo-get-plan

Get a Wahoo workout plan.

read-only idempotent
wahoo-update-plan

Update a Wahoo workout plan.

idempotent
wahoo-delete-plan

Delete a Wahoo workout plan.

idempotent
wahoo-list-plans-for-workout

List plans linked to a workout.

read-only idempotent

Capability Spec

cloud-plans.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Wahoo Cloud API — Plans
  description: >-
    Workout plan capability for the Wahoo Cloud API. Manage structured
    JSON workout plans, including listing plans linked to a workout.
  tags:
    - Wahoo
    - Plans
    - Workouts
    - Fitness
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
  - namespace: env
    keys:
      WAHOO_ACCESS_TOKEN: WAHOO_ACCESS_TOKEN
capability:
  consumes:
    - type: http
      namespace: cloud-plans
      baseUri: https://api.wahooligan.com
      description: Wahoo Cloud Plans surface.
      resources:
        - name: v1-plans
          path: /v1/plans
          operations:
            - name: listPlans
              method: GET
              description: List plans.
            - name: createPlan
              method: POST
              description: Create a plan.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
        - name: v1-plans-id
          path: /v1/plans/{id}
          operations:
            - name: getPlan
              method: GET
              description: Get a plan by id.
              inputParameters: [{ name: id, in: path, type: integer, required: true }]
            - name: updatePlan
              method: PUT
              description: Update a plan.
              inputParameters:
                - { name: id, in: path, type: integer, required: true }
                - { name: body, in: body, type: object, required: true }
            - name: deletePlan
              method: DELETE
              description: Delete a plan.
              inputParameters: [{ name: id, in: path, type: integer, required: true }]
        - name: v1-workouts-plans
          path: /v1/workouts/{workout_id}/plans
          operations:
            - name: listPlansForWorkout
              method: GET
              description: List plans associated with a workout.
              inputParameters: [{ name: workout_id, in: path, type: integer, required: true }]
      authentication:
        type: bearer
        value: '{{env.WAHOO_ACCESS_TOKEN}}'
        placement: header
  exposes:
    - type: mcp
      namespace: cloud-plans-mcp
      port: 9090
      transport: http
      description: MCP adapter for Wahoo Cloud Plans.
      tools:
        - name: wahoo-list-plans
          description: List Wahoo workout plans.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: cloud-plans.listPlans
        - name: wahoo-create-plan
          description: Create a Wahoo workout plan.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: cloud-plans.createPlan
          with: { body: tools.body }
        - name: wahoo-get-plan
          description: Get a Wahoo workout plan.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: cloud-plans.getPlan
          with: { id: tools.id }
        - name: wahoo-update-plan
          description: Update a Wahoo workout plan.
          hints: { readOnly: false, destructive: false, idempotent: true }
          call: cloud-plans.updatePlan
          with: { id: tools.id, body: tools.body }
        - name: wahoo-delete-plan
          description: Delete a Wahoo workout plan.
          hints: { readOnly: false, destructive: true, idempotent: true }
          call: cloud-plans.deletePlan
          with: { id: tools.id }
        - name: wahoo-list-plans-for-workout
          description: List plans linked to a workout.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: cloud-plans.listPlansForWorkout
          with: { workout_id: tools.workout_id }