List training plans
This endpoint requires the
training_plan_library feature to be enabled for the authenticated user’s account.Query parameters
Filter by plan type. One of:
run, bike, swim, strength, custom.Filter by difficulty level. One of:
basic, intermediate, advanced.Organization ID to include public org-level plans. Defaults to the authenticated user’s organization.
Filter by visibility. One of:
public, org, private.Return plans owned by this user ID. Defaults to the authenticated user.
Case-insensitive substring match against plan name or description.
Maximum results per page. Must be between 1 and 50. Enables cursor-based pagination when provided.
Opaque base64-encoded cursor for fetching the next page. Returned in paginated responses.
Set to
true to return lightweight list items without plan content.Example request
Response
Returns an array of training plan objects, or a paginated response object whenlimit is provided.
Unique identifier for the training plan.
Name of the training plan.
Description of the training plan.
Sport type:
run, bike, swim, strength, or custom.Difficulty:
basic, intermediate, or advanced.Total number of weeks in the plan.
Visibility level:
public, org, private, or system.ID of the organization that owns the plan.
Display name of the coach who created the plan.
URL to the plan’s cover image.
Creation timestamp in epoch milliseconds.
Last-updated timestamp in epoch milliseconds.
Create a training plan
Request body
Name of the training plan.
Description of the training plan.
Sport type. One of:
run, bike, swim, strength, custom.Difficulty level. One of:
basic, intermediate, advanced.Number of weeks the plan spans.
Who can see this plan. One of:
public, org, private.ID of the user creating the plan.
Organization to associate this plan with. If not provided, the user’s organization is used automatically.
ID of the coach associated with the plan.
URL for the plan’s cover image.
Preferred workout days. An object with day-of-week keys (
Monday through Sunday) and values of Rest or a workout type string.Array of workout objects to include in the plan. Workouts sourced from the library are tracked for template sync.
Example request
Response
Returns201 Created.
Unique identifier of the created training plan.
Training plan created successfully.Get a training plan
Path parameters
The unique identifier of the training plan.
Example request
Response
Returns the full training plan object. All timestamp fields are returned as epoch milliseconds.Unique identifier for the plan.
Name of the plan.
Array of workout items assigned to the plan.
Per-week summary including calculated mileage and coaching notes.
Update a training plan
Path parameters
The unique identifier of the training plan to update.
Request body
Updated plan name.
Updated plan description.
Updated plan duration in weeks.
Updated difficulty level. One of:
basic, intermediate, advanced.Updated sport type. One of:
run, bike, swim, strength, custom.Updated visibility. One of:
public, org, private. Permission rules apply based on coach role.Updated array of workout items for the plan.
Example request
Response
ID of the updated training plan.
ok on success.Delete a training plan
Path parameters
The unique identifier of the training plan to delete.
Example request
Response
ID of the deleted training plan.
ok on success.List workouts
Query parameters
Filter by workout type. One of:
run, bike, swim, hike, walk, strength.Filter by workout sub-type. Examples:
easy-run, tempo-run, interval-run, long-run.Organization ID to include shared org workouts. Defaults to the user’s organization.
Filter by visibility. One of:
public, org, private.Example request
Response
Returns an array of workout objects. All timestamps are in epoch milliseconds.Unique identifier for the workout.
Name of the workout.
Sport type:
run, bike, swim, hike, walk, or strength.Sub-type such as
easy-run, tempo-run, interval-run, or long-run.Target distance for the workout in meters.
Target duration for the workout in seconds.
Structured blocks defining warm-up, main set, and cool-down segments.
Visibility level:
public, org, private, or system.Display name of the coach who created the workout.
Create a workout
Request body
Name of the workout.
Sport type. One of:
run, bike, swim, hike, walk, strength.Sub-type. One of:
easy-run, tempo-run, interval-run, long-run.ID of the user creating the workout.
Array of content block objects defining the workout structure. See content block fields below.
Target total duration in seconds. Defaults to
0.Target total distance in meters. Defaults to
0.Who can access this workout. One of:
public, org, private.Freeform description of the workout.
Content block fields
Each object incontent_blocks defines one segment of the workout.
Block type. One of:
warm-up, run, interval, recovery-run, cool-down.Optional label for this block.
Target distance for the block in meters.
Target duration for the block in seconds.
Pace zone for this block. One of:
z1, z2, z3, z4, z5.Whether to measure block length by
distance or duration.How intensity is measured. One of:
pace, heartrate, power.Number of times to repeat this block (for intervals).
Nested content blocks for complex interval structures.
Example request
Response
Unique identifier of the created workout.
ok on success.