---
title: "Get Goal Plan Request"
method: GET
path: "/goals/{goal_id}/plan_request"
tags: ["goals"]
---

# Get Goal Plan Request

`GET /goals/{goal_id}/plan_request`

## 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/goals/{goal_id}/plan_request`
- Auth: none declared
- TypeScript: <https://skmtc.dev/imperfect/apis/imperfect-api/docs/goals/:goal_id/plan_request/get.ts> (a function with typed inputs; its response is checked against the schema)

Only the goal's browser owner can read its retained chat request.

## Path parameters

- `goal_id` string, required

## Response `200`

Successful Response

- GoalPlanRequestResponse: Separate from the public page, behind existing Goals ownership.
  - `server_time` string, date-time, required
  - `requestable_channels` string[]
  - `request` GoalPlanRequest: Private owner progress; populated by the receipt and delivery flow.
    - `channel` 'whatsapp' | 'texts', required
    - `received_at` string, date-time, required
    - `estimated_ready_at` string, date-time, required
    - `status` 'waiting' | 'ready' | 'stopped' | 'failed', required
    - `plan_url` string, nullable
    - `week_one_starts_on` string, date, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-04** `d4f4bc9773d0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/imperfect/apis/imperfect-api/changes/goals/:goal_id/plan_request/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/5b68cf36ce58?raw)
