---
title: "Commit to a prescribed endurance session"
method: POST
path: "/planned-workouts"
tags: ["Training"]
---

# Commit to a prescribed endurance session

`POST /planned-workouts`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/planned-workouts`
- Auth: HTTP bearer

Replaces an unmatched plan for the same day and sport. The completed activity is compared against it.

## Headers

- `X-Client-Platform` string
- `X-Client-Version` string

## Request body

- object
  - `name` string, required
  - `modality` string, required: Sport, from the engine's vocabulary (packages/engine/src/sports.ts), e.g. road_biking, running, hiking, strength_training. Known values: road_biking, running, hiking, strength_training, other. Treat unknown values as "other".
  - `blocks` object[], required
    - `label` string, required
    - `repeat` integer, required
    - `work` object, required
      - `minutes` number, required
      - `zone` integer, required: Heart-rate zone, 1–5.
      - `hrLow` number, nullable
      - `hrHigh` number, nullable
      - `powerLow` number, nullable
      - `powerHigh` number, nullable
      - `speedLowMs` number, nullable
      - `speedHighMs` number, nullable
    - `recovery` object, nullable
      - `minutes` number, required
      - `zone` integer, required: Heart-rate zone, 1–5.
      - `hrLow` number, nullable
      - `hrHigh` number, nullable
      - `powerLow` number, nullable
      - `powerHigh` number, nullable
      - `speedLowMs` number, nullable
      - `speedHighMs` number, nullable
  - `forDate` string, date, required: A day on the athlete's own calendar: YYYY-MM-DD, no time zone.
  - `source` 'planned' | 'exported'

## Response `201`

OK

- object
  - `id` string, required: Opaque identifier.

## Other responses

- `401`: Error: UNAUTHORIZED.

---

[API](https://skmtc.dev/bodylab/apis/body-lab-api.md) · [All operations](https://skmtc.dev/bodylab/apis/body-lab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bodylab/apis/body-lab-api/revisions/544c201eaf88?raw)
