---
title: "Get Brain Dump Plan"
method: GET
path: "/api/onboarding/brain-dump/plan"
tags: ["v1", "onboarding", "brain-dump"]
---

# Get Brain Dump Plan

`GET /api/onboarding/brain-dump/plan`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

The onboarding plan step: what Otto heard, the team, the ranked tasks.

``ready=false`` means the background jobs are still running; keep
polling. Every other state resolves, a skipped or failed dump to the
role plan, which is stored on this first read.

## Response `200`

Successful Response

- PlanResponse: The plan step's content: what Otto heard, the team, and the tasks. ``ready`` is false only while the background jobs are still running; the tasks and team it carries then are the role plan, so a client that stops waiting has something true to show, and ``progress`` says how far the jobs have got. ``source`` is "llm" for a plan built from the tasks the greeting wrote (ranked by Jev or by the deterministic fallback) and "fallback" for a default set: the role sets, or the generic starters.
  - `ready` boolean, required
  - `source` 'llm' | 'fallback', required
  - `skipped_dump` boolean, required
  - `heard` string, nullable
  - `team` RecommendedExpert[]
    - `template_id` string, required
    - `name` string, required
    - `role` string, required
    - `avatar_url` string, nullable
    - `reason` string
    - `workflow_names` string[]
  - `tasks` SuggestedTask[]
    - `title` string, required
    - `prompt` string, required
    - `icon` string
    - `expert_template_id` string, nullable
    - `why` string, nullable
    - `expert_name` string, nullable
    - `id` string, required
    - `state` 'open' | 'sent' | 'dismissed'
    - `session_id` string, nullable
    - `updated_at` string, date-time, nullable
    - `expert_id` string, nullable
  - `progress` PlanProgress: How far the background jobs have got, for the plan step's checklist. The greeting job writes the tasks and the team job picks the experts, side by side; the plan job, which orders the tasks and gives each its owner, runs once both are done and is what ``ready`` waits on.
    - `tasks_written` boolean
    - `team_chosen` boolean

## Other responses

- `401`: Authentication required

## Changes

- **2026-11-06** `a1220fddf374`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/changes/api/onboarding/brain-dump/plan/get.md)

---

[API](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server.md) - [All operations](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/llms.txt) - [OpenAPI document](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/revisions/90f849acbc07?raw)
