---
title: "Finalize Brain Dump"
method: POST
path: "/api/onboarding/brain-dump/finalize"
tags: ["v1", "onboarding", "onboarding", "brain-dump"]
---

# Finalize Brain Dump

`POST /api/onboarding/brain-dump/finalize`

Close out a take: assemble, scan, store, transcribe.

Extraction and greeting generation continue in the background after
this responds — the preparing step polls ``/status`` until
``greeting_ready``. Idempotent per ``recording_id`` — a client that
retries after a timeout gets the stored result rather than a second
transcription.

## Request body

- FinalizeRequest — Finalize one take. ``text`` is the typed fallback: when set, no audio is expected and the dump is stored with ``input_mode=typed``. ``input_mode=skipped`` records the deliberate skip so Path B can be chosen server-side.
  - `recording_id` string, required
  - `input_mode` 'voice' | 'typed' | 'skipped'
  - `duration_secs` number, nullable
  - `mime_type` string, nullable
  - `text` string, nullable

## Response `200`

Successful Response

- FinalizeResponse
  - `status` 'recording_uploaded' | 'transcribing' | 'transcribed' | 'extracting' | 'completed' | 'failed', required
  - `input_mode` 'voice' | 'typed' | 'skipped', required
  - `transcript_preview` string, nullable
  - `error_code` string, nullable

## Other responses

- `401` — Authentication required
- `422` — Validation Error

---

[API](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server.md) · [All operations](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/significant-gravitas/autogpt-agent-server/versions/382041c7ecb2/schema)
