Overview
⚠️ 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 changewithout 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.
Terra Planned Workouts API
Push structured workouts directly to your users' fitness devices.
Documentation
Introduction & Quick Start - Get started in 5 minutes
Core Concepts - Workout structure, blocks, steps, targets
Athlete Parameters - Personalizing workouts per user
Sport-Specific Examples - Running, cycling, swimming, strength
Provider Compatibility - What works where
Coercion Warnings - Handling feature limitations
Exercise Reference - Garmin exercise names
Quick Links
OpenAPI Specification (to be added soon)
Garmin Exercise Names reference
API Endpoints
POST
/workouts
Create workout template
GET
/workouts
List all templates
GET
/workouts/{id}
Get template details
DELETE
/workouts/{id}
Delete template
POST
/workouts/{id}/plan?user_id=X
Schedule workout to user
GET
/plannedWorkouts/{id}
Get planned workout details
GET
/plannedWorkouts?user_id=X
List user's scheduled workouts (optional: start_date, end_date)
PATCH
/plannedWorkouts/{id}?user_id=X
Update scheduled date (only planned_date, not athlete params)
DELETE
/plannedWorkouts/{id}?user_id=X
Remove scheduled workout
Deleting a workout template cascades to all scheduled workouts
When you call DELETE /workouts/{id}, Terra automatically removes all planned workouts linked to that template from every connected provider (e.g. Garmin, Suunto, Wahoo) before deleting the template itself. This cannot be undone. If you only want to unschedule a workout for a specific user, use DELETE /plannedWorkouts/{id} instead.
Last updated
Was this helpful?