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

# Settle Brain Dump Plan

`POST /api/onboarding/brain-dump/plan/settle`

## Request

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

The plan step stops waiting: the plan it shows becomes the plan.

While the background jobs are still running, the plan is stored as it
stands: the greeting's own tasks once it has written them, with the team
the team job chose (or the role team while it is still choosing), and
the role plan before that. The trial then hires, and Home lists, what
the step showed; the jobs leave both alone. Once a plan is ready this
changes nothing and returns it.

## 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/settle/post.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)
