Overview (pre-release)

⚠️ Pre-Release / Under Construction

This page is currently under active development and is provided in a pre-release state.

Content may be incomplete, outdated, or inaccurate, and details may change without notice as the implementation evolves.

Please use this documentation for early reference only, and avoid relying on it for production-critical decisions until the page is marked as stable.

Planned Workouts API

The Planned Workouts API enables you to create structured workout templates and push them directly to platforms including Garmin, Wahoo, Coros and more.

What You Can Do

  • Create Workout Templates: Design reusable workouts with detailed steps, intervals, and targets

  • Push to Devices: Send workouts directly to user devices through their connected fitness platforms

  • Manage Schedules: Schedule workouts for specific dates and manage user training calendars

  • Fetch User Workouts: Retrieve both Terra-created and provider-native workouts

Core Concepts

Workout Templates

Reusable workout definitions stored in your Terra account. Templates define:

  • Sport type (running, cycling, swimming, etc.)

  • Workout structure (warmup, intervals, cooldown)

  • Step durations (time, distance, lap-button, open)

  • Intensity targets (pace zones, heart rate zones, power zones, etc.)

Planned Workouts

Scheduled instances of workout templates pushed to user devices. When you create a planned workout:

  1. You reference a workout template ID

  2. Specify a user's connection ID

  3. Set a planned date

  4. The system pushes it to the user's device via their provider (Garmin, Wahoo, etc.)

API Endpoints

Workout Templates

  • POST /v2/workouts - Create a workout template

  • GET /v2/workouts - List all your workout templates

  • GET /v2/workouts/{workout_id} - Get a specific workout template

  • DELETE /v2/workouts/{workout_id} - Delete a workout template

Planned Workouts

  • POST /v2/plannedWorkouts - Create and push a planned workout to a device

  • GET /v2/plannedWorkouts - Get all planned workouts for a connection

  • GET /v2/plannedWorkouts/{planned_workout_id} - Get a specific planned workout

  • GET /v2/plannedWorkouts/connection/{connection_id}/provider/{provider_workout_id} - Get by provider ID

  • PATCH /v2/plannedWorkouts/{planned_workout_id} - Update planned workout date

  • DELETE /v2/plannedWorkouts/{planned_workout_id} - Delete a planned workout

  • DELETE /v2/plannedWorkouts/connection/{connection_id}/provider/{provider_workout_id} - Delete by provider ID

Last updated

Was this helpful?