---
title: "Get Plan"
method: GET
path: "/harness/plan"
tags: ["harness"]
---

# Get Plan

`GET /harness/plan`

## Request

- Base URL: `https://api.getathly.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getathly.com/harness/plan`
- Auth: HTTP bearer

## Query parameters

- `athlete_slug` string, required

## Response `200`

Successful Response

- HarnessPlanStateResponse: The pair's plan state (ATH-460 Phase 2), derived from its most recent ``generate_plan`` job: ``not_started`` is plan mode (the home card reads "Generate My Plan" and the opener fires on app entry), ``in_progress`` (the card reads "In Progress") and ``done`` are not. The one plan signal the frontend reads; the same words the harness package uses. ``has_planned_sessions`` is whether the pair has any live planned series, in any week: in plan mode the coach often plans sessions mid-interview, so the empty-week copy reads "partially built" rather than "nothing planned".
  - `status` 'not_started' | 'in_progress' | 'done', required
  - `has_planned_sessions` boolean, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getathly/apis/athly-api.md) - [All operations](https://skmtc.dev/getathly/apis/athly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getathly/apis/athly-api/revisions/6adfdc258d75?raw)
