---
title: "Mine"
method: GET
path: "/plans/mine"
tags: ["plans"]
---

# Mine

`GET /plans/mine`

## Request

- Base URL: `https://api.imperfect.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.imperfect.co/plans/mine`
- Auth: HTTP bearer

## Query parameters

- `user_id` string, nullable

## Response `200`

Successful Response

- PlanMine
  - `weeks` PlanWeek[]
    - `starts` string, date, required
    - `ends` string, date, required
    - `status` 'done' | 'written' | 'planned', required
    - `unknown_days` integer, required
    - `by_sport` object
  - `units` WeekUnits
    - `distance` 'km' | 'mi'
    - `climb` 'm' | 'ft'
  - `as_of` string, date, required
  - `seq` integer, required
  - `goal` PlanGoalSummary, required
    - `goal_id` string, required
    - `title` string, required
  - `blocks` PlanBlock[], required
    - `starts` string, date, required
    - `ends` string, date, nullable
    - `purpose` string, nullable
  - `week` PlanDay[], required
    - `date` string, date, required
    - `headline` string, nullable
    - `reading_state` 'present' | 'missing', nullable
    - `morning` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
    - `afternoon` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
    - `evening` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
  - `today` PlanDay, required
    - `date` string, date, required
    - `headline` string, nullable
    - `reading_state` 'present' | 'missing', nullable
    - `morning` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
    - `afternoon` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
    - `evening` PlanPeriod
      - `activities` PlanActivity[]
        - `title` string, nullable
        - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
        - `duration` PlanDuration
          - `hours` number, nullable
          - `minutes` number, nullable
        - `distance` PlanDistance
          - `value` number, required
          - `unit` 'km' | 'mi' | 'm' | 'yd', required
          - `approximate` boolean, nullable
        - `climb` PlanClimb
          - `value` number, required
          - `unit` 'm' | 'ft', required
        - `intensity` string, nullable
        - `why` string, nullable
      - `markdown` string, nullable
  - `timeline` PlanStretch[]
    - `kind` 'periods' | 'day' | 'week' | 'stretch', required
    - `starts` string, date, required
    - `ends` string, date, nullable
    - `focus` string, nullable
    - `summary` string, nullable
    - `load` PlanLoad
      - `hours` number, nullable
      - `distance` PlanDistance
        - `value` number, required
        - `unit` 'km' | 'mi' | 'm' | 'yd', required
        - `approximate` boolean, nullable
    - `sessions` PlanActivity[]
      - `title` string, nullable
      - `sport` 'run' | 'ride' | 'swim' | 'strength' | 'mobility' | 'walk' | 'other', required
      - `duration` PlanDuration
        - `hours` number, nullable
        - `minutes` number, nullable
      - `distance` PlanDistance
        - `value` number, required
        - `unit` 'km' | 'mi' | 'm' | 'yd', required
        - `approximate` boolean, nullable
      - `climb` PlanClimb
        - `value` number, required
        - `unit` 'm' | 'ft', required
      - `intensity` string, nullable
      - `why` string, nullable
    - `lighter` boolean, nullable
  - `events` PlanEvent[]
    - `name` string, required
    - `date` string, date, nullable, required
    - `through` string, date, nullable
    - `first` boolean, required
  - `changes_since_seen` PlanChange[], required
    - `seq` integer, required
    - `date` string, date, required
    - `touched` PlanTouch[], required
      - `date` string, date, required
      - `through` string, date, nullable
      - `period` 'morning' | 'afternoon' | 'evening', nullable
      - `activity_index` integer, nullable
    - `reason` string, nullable
    - `description` string, nullable
  - `previous_version_date` string, date, nullable
  - `checkpoints` PlanCheckpoint[], nullable
    - `date` string, date, required
    - `through` string, date, nullable
    - `name` string, nullable
    - `measure` string, nullable
  - `factor_links` FactorLink[], nullable
    - `factor` string, required
    - `description` string, required
  - `cadence` integer, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-22** `bc8c745a41a9`: 9 info
  - added the optional property `timeline/items/load/anyOf[subschema #1: PlanLoad]/distance/anyOf[subschema #1: PlanDistance]/approximate` to the response with the `200` status
  - added the optional property `timeline/items/sessions/items/distance/anyOf[subschema #1: PlanDistance]/approximate` to the response with the `200` status
  - added the optional property `today/afternoon/anyOf[subschema #1: PlanPeriod]/activities/items/distance/anyOf[subschema #1: PlanDistance]/approximate` to the response with the `200` status
  - added the optional property `today/evening/anyOf[subschema #1: PlanPeriod]/activities/items/distance/anyOf[subschema #1: PlanDistance]/approximate` to the response with the `200` status
  - …5 more
- **2026-10-20** `27c7aaed5200`: 1 warning, 11 info
  - removed the optional property `timeline/items/event` from the response with the `200` status
  - added the optional property `checkpoints/anyOf[subschema #1]/items/through` to the response with the `200` status
  - added the optional property `events` to the response with the `200` status
  - added the optional property `timeline/items/sessions/items/climb` to the response with the `200` status
  - …8 more
- **2026-10-16** `ebb935a87133`: 1 info
  - added the optional property `timeline` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/imperfect/apis/imperfect-api/changes/plans/mine/get.md)

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) - [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) - [OpenAPI document](https://skmtc.dev/imperfect/apis/imperfect-api/revisions/5f9db30c6e6e?raw)
