AutoGPT Onboarding API

The onboarding API from AutoGPT — 14 operation(s) for onboarding.

Operations 15

GET /api/onboarding Onboarding state #
PATCH /api/onboarding Update onboarding state #
GET /api/onboarding/agents Recommended onboarding agents #
DELETE /api/onboarding/brain-dump Discard Brain Dump #
POST /api/onboarding/brain-dump/finalize Finalize Brain Dump #
GET /api/onboarding/brain-dump/intro Get Brain Dump Intro #
POST /api/onboarding/brain-dump/intro/complete Complete Brain Dump Greeting #
POST /api/onboarding/brain-dump/parts Upload Brain Dump Part #
GET /api/onboarding/brain-dump/recording Download Brain Dump Recording #
GET /api/onboarding/brain-dump/status Get Brain Dump Status #
GET /api/onboarding/completed Check if onboarding is completed #
POST /api/onboarding/profile Submit onboarding profile #
POST /api/onboarding/reset Reset onboarding progress #
POST /api/onboarding/step Complete onboarding step #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/autogpt:autogpt-onboarding-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

autogpt-onboarding-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AutoGPT Agent Server Onboarding API
  summary: AutoGPT Agent Server
  description: This server is used to execute agents that are created by the AutoGPT system.
  version: '0.1'
tags:
- name: Onboarding
paths:
  /api/onboarding:
    get:
      tags:
      - Onboarding
      summary: Onboarding state
      operationId: getV1OnboardingState
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOnboarding'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: getV1Onboarding state
    patch:
      tags:
      - Onboarding
      summary: Update onboarding state
      operationId: patchV1UpdateOnboardingState
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserOnboardingUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOnboarding'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: patchV1Update onboarding state
  /api/onboarding/agents:
    get:
      tags:
      - Onboarding
      summary: Recommended onboarding agents
      operationId: getV1RecommendedOnboardingAgents
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/StoreAgentDetails'
                type: array
                title: Response Getv1Recommended Onboarding Agents
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: getV1Recommended onboarding agents
  /api/onboarding/brain-dump:
    delete:
      tags:
      - Onboarding
      summary: Discard Brain Dump
      description: 'Drop a half-uploaded take''s server buffer when the user re-records.


        The row and any stored audio are left alone — only the disposable

        part buffer is cleared.


        ``recording_id`` says *which* take to drop. Without it the row''s

        current take is assumed, which is wrong as soon as a second tab has

        moved the row on: the caller would clear a buffer that is still being

        filled. Callers know their own id, so they send it.'
      operationId: discard_brain_dump
      security:
      - HTTPBearerJWT: []
      parameters:
      - name: recording_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            pattern: ^[A-Za-z0-9_-]{1,64}$
          - type: 'null'
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DumpStatusResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/brain-dump/finalize:
    post:
      tags:
      - Onboarding
      summary: Finalize Brain Dump
      description: '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.'
      operationId: finalize_brain_dump
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinalizeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinalizeResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/intro:
    get:
      tags:
      - Onboarding
      summary: Get Brain Dump Intro
      description: 'Content for the copilot home''s onboarding greeting.


        Pre-generated during finalize, so this is a plain row read — the

        copilot home never waits on a model to render its first screen.

        ``greeting_done=true`` means the client should show nothing and cache

        that locally.'
      operationId: get_brain_dump_intro
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntroCardResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/intro/complete:
    post:
      tags:
      - Onboarding
      summary: Complete Brain Dump Greeting
      description: 'Mark the greeting as done — called when the first message is sent.


        Permanent and content-preserving: the flag flips, the stored greeting

        stays in the row.'
      operationId: complete_brain_dump_greeting
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GreetingDoneResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/parts:
    post:
      tags:
      - Onboarding
      summary: Upload Brain Dump Part
      description: 'Accept one MediaRecorder timeslice blob.


        Parts arrive while the user is still talking, so this stays cheap:

        size checks, buffer, done. Validation that needs the whole stream

        (virus scan, transcription) happens on finalize.'
      operationId: upload_brain_dump_part
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_brain_dump_part'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadPartResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/recommended-providers:
    get:
      tags:
      - Onboarding
      summary: Get Brain Dump Recommended Providers
      description: 'Provider picks for the welcome dialog''s "Connect your tools" panel.


        Written by a background job that runs beside the greeting one; a plain

        row read here. ``ready=false`` means keep polling.'
      operationId: get_brain_dump_recommended_providers
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendedProvidersResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/recording:
    get:
      tags:
      - Onboarding
      summary: Download Brain Dump Recording
      description: 'Hand back the user''s own recording.


        Kept working even when ``status`` is ``failed`` — "your recording is

        safe" has to be true, and this is what makes it checkable.'
      operationId: download_brain_dump_recording
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/brain-dump/status:
    get:
      tags:
      - Onboarding
      summary: Get Brain Dump Status
      description: Polled by the loading screen while the pipeline runs.
      operationId: get_brain_dump_status
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DumpStatusResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
  /api/onboarding/completed:
    get:
      tags:
      - Onboarding
      summary: Check if onboarding is completed
      operationId: getV1CheckIfOnboardingIsCompleted
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatusResponse'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: getV1Check if onboarding is completed
  /api/onboarding/profile:
    post:
      tags:
      - Onboarding
      summary: Submit onboarding profile
      operationId: postV1SubmitOnboardingProfile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingProfileRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: postV1Submit onboarding profile
  /api/onboarding/reset:
    post:
      tags:
      - Onboarding
      summary: Reset onboarding progress
      operationId: postV1ResetOnboardingProgress
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOnboarding'
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
      security:
      - HTTPBearerJWT: []
      x-operation-id-source: normalized
      x-operation-id-original: postV1Reset onboarding progress
  /api/onboarding/step:
    post:
      tags:
      - Onboarding
      summary: Complete onboarding step
      operationId: postV1CompleteOnboardingStep
      security:
      - HTTPBearerJWT: []
      parameters:
      - name: step
        in: query
        required: true
        schema:
          enum:
          - WELCOME
          - USAGE_REASON
          - INTEGRATIONS
          - AGENT_CHOICE
          - AGENT_NEW_RUN
          - AGENT_INPUT
          - CONGRATS
          - ONBOARDING_COMPLETE
          - BUILDER_OPEN
          - CAPABILITY_CARDS
          - AGENTS_TAB_INTRO
          - MARKETPLACE_TAB_INTRO
          - BUILD_TAB_INTRO
          type: string
          title: Step
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          $ref: '#/components/responses/HTTP401NotAuthenticatedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-operation-id-source: normalized
      x-operation-id-original: postV1Complete onboarding step
components:
  schemas:
    Body_upload_brain_dump_part:
      properties:
        file:
          type: string
          format: binary
          title: File
        recording_id:
          type: string
          pattern: ^[A-Za-z0-9_-]{1,64}$
          title: Recording Id
        part_index:
          type: integer
          minimum: 0.0
          title: Part Index
      type: object
      required:
      - file
      - recording_id
      - part_index
      title: Body_upload_brain_dump_part
    DumpStatusResponse:
      properties:
        status:
          anyOf:
          - $ref: '#/components/schemas/BrainDumpStatus'
          - type: 'null'
        input_mode:
          anyOf:
          - $ref: '#/components/schemas/BrainDumpInputMode'
          - type: 'null'
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
        has_audio:
          type: boolean
          title: Has Audio
          default: false
        greeting_ready:
          type: boolean
          title: Greeting Ready
          default: false
      type: object
      title: DumpStatusResponse
    StoreAgentDetails:
      properties:
        store_listing_version_id:
          type: string
          title: Store Listing Version Id
        slug:
          type: string
          title: Slug
        agent_name:
          type: string
          title: Agent Name
        agent_video:
          type: string
          title: Agent Video
        agent_output_demo:
          type: string
          title: Agent Output Demo
        agent_image:
          items:
            type: string
          type: array
          title: Agent Image
        creator:
          type: string
          title: Creator
        creator_avatar:
          type: string
          title: Creator Avatar
        sub_heading:
          type: string
          title: Sub Heading
        description:
          type: string
          title: Description
        instructions:
          anyOf:
          - type: string
          - type: 'null'
          title: Instructions
        categories:
          items:
            type: string
          type: array
          title: Categories
        runs:
          type: integer
          title: Runs
        rating:
          type: number
          title: Rating
        versions:
          items:
            type: string
          type: array
          title: Versions
        graph_id:
          type: string
          title: Graph Id
        graph_versions:
          items:
            type: string
          type: array
          title: Graph Versions
        last_updated:
          type: string
          format: date-time
          title: Last Updated
        recommended_schedule_cron:
          anyOf:
          - type: string
          - type: 'null'
          title: Recommended Schedule Cron
        owning_org_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Owning Org Id
        active_version_id:
          type: string
          title: Active Version Id
        has_approved_version:
          type: boolean
          title: Has Approved Version
        changelog:
          anyOf:
          - items:
              $ref: '#/components/schemas/ChangelogEntry'
            type: array
          - type: 'null'
          title: Changelog
      type: object
      required:
      - store_listing_version_id
      - slug
      - agent_name
      - agent_video
      - agent_output_demo
      - agent_image
      - creator
      - creator_avatar
      - sub_heading
      - description
      - categories
      - runs
      - rating
      - versions
      - graph_id
      - graph_versions
      - last_updated
      - active_version_id
      - has_approved_version
      title: StoreAgentDetails
    RecommendedProvidersResponse:
      properties:
        ready:
          type: boolean
          title: Ready
        providers:
          items:
            $ref: '#/components/schemas/RecommendedProvider'
          type: array
          title: Providers
          default: []
      type: object
      required:
      - ready
      title: RecommendedProvidersResponse
      description: 'Recommendations for the "Connect your tools" panel.


        ``ready`` is false while the background job is still running — the

        client keeps polling. Once true, ``providers`` is the final answer,

        empty included ("nothing worth recommending" is a real result).'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SuggestedPrompt:
      properties:
        title:
          type: string
          title: Title
        prompt:
          type: string
          title: Prompt
        icon:
          type: string
          title: Icon
          default: sparkle
      type: object
      required:
      - title
      - prompt
      title: SuggestedPrompt
      description: 'One pickable prompt under the greeting.


        ``title`` is the short line the user sees; ``prompt`` is the full

        message that gets sent when they pick it. ``icon`` is a Phosphor icon

        slug from ``intro.PROMPT_ICONS`` — the frontend maps it to the actual

        icon component and falls back to a sparkle for anything unknown.'
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    BrainDumpInputMode:
      type: string
      enum:
      - voice
      - typed
      - skipped
      title: BrainDumpInputMode
    OnboardingProfileRequest:
      properties:
        user_name:
          type: string
          maxLength: 100
          minLength: 1
          title: User Name
        user_role:
          type: string
          maxLength: 100
          minLength: 1
          title: User Role
        pain_points:
          items:
            type: string
          type: array
          maxItems: 20
          title: Pain Points
      type: object
      required:
      - user_name
      - user_role
      title: OnboardingProfileRequest
      description: Request body for onboarding profile submission.
    OnboardingStatusResponse:
      properties:
        is_completed:
          type: boolean
          title: Is Completed
      type: object
      required:
      - is_completed
      title: OnboardingStatusResponse
      description: Response for onboarding completion check.
    UserOnboardingUpdate:
      properties:
        walletShown:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Walletshown
        notified:
          anyOf:
          - items:
              $ref: '#/components/schemas/OnboardingStep'
            type: array
          - type: 'null'
          title: Notified
        usageReason:
          anyOf:
          - type: string
          - type: 'null'
          title: Usagereason
        integrations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Integrations
        otherIntegrations:
          anyOf:
          - type: string
          - type: 'null'
          title: Otherintegrations
        selectedStoreListingVersionId:
          anyOf:
          - type: string
          - type: 'null'
          title: Selectedstorelistingversionid
        agentInput:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Agentinput
        onboardingAgentExecutionId:
          anyOf:
          - type: string
          - type: 'null'
          title: Onboardingagentexecutionid
      type: object
      title: UserOnboardingUpdate
    BrainDumpStatus:
      type: string
      enum:
      - recording_uploaded
      - transcribing
      - transcribed
      - extracting
      - completed
      - failed
      title: BrainDumpStatus
    OnboardingStep:
      type: string
      enum:
      - WELCOME
      - USAGE_REASON
      - INTEGRATIONS
      - AGENT_CHOICE
      - AGENT_NEW_RUN
      - AGENT_INPUT
      - CONGRATS
      - ONBOARDING_COMPLETE
      - GET_RESULTS
      - MARKETPLACE_VISIT
      - MARKETPLACE_ADD_AGENT
      - LIBRARY_RUN_AGENT
      - BUILDER_SAVE_AGENT
      - RE_RUN_AGENT
      - SCHEDULE_AGENT
      - RUN_AGENTS
      - RUN_3_DAYS
      - TRIGGER_WEBHOOK
      - RUN_14_DAYS
      - RUN_AGENTS_100
      - BUILDER_OPEN
      - BUILDER_RUN_AGENT
      - CAPABILITY_CARDS
      - AGENTS_TAB_INTRO
      - MARKETPLACE_TAB_INTRO
      - BUILD_TAB_INTRO
      title: OnboardingStep
      description: Application-level onboarding step identifiers.
    UserOnboarding:
      properties:
        userId:
          type: string
          title: Userid
        completedSteps:
          items:
            $ref: '#/components/schemas/OnboardingStep'
          type: array
          title: Completedsteps
        walletShown:
          type: boolean
          title: Walletshown
        notified:
          items:
            $ref: '#/components/schemas/OnboardingStep'
          type: array
          title: Notified
        rewardedFor:
          items:
            $ref: '#/components/schemas/OnboardingStep'
          type: array
          title: Rewardedfor
        usageReason:
          anyOf:
          - type: string
          - type: 'null'
          title: Usagereason
        integrations:
          items:
            type: string
          type: array
          title: Integrations
        otherIntegrations:
          anyOf:
          - type: string
          - type: 'null'
          title: Otherintegrations
        selectedStoreListingVersionId:
          anyOf:
          - type: string
          - type: 'null'
          title: Selectedstorelistingversionid
        agentInput:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Agentinput
        onboardingAgentExecutionId:
          anyOf:
          - type: string
          - type: 'null'
          title: Onboardingagentexecutionid
        agentRuns:
          type: integer
          title: Agentruns
        lastRunAt:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Lastrunat
        consecutiveRunDays:
          type: integer
          title: Consecutiverundays
      type: object
      required:
      - userId
      - completedSteps
      - walletShown
      - notified
      - rewardedFor
      - usageReason
      - integrations
      - otherIntegrations
      - selectedStoreListingVersionId
      - agentInput
      - onboardingAgentExecutionId
      - agentRuns
      - lastRunAt
      - consecutiveRunDays
      title: UserOnboarding
    UploadPartResponse:
      properties:
        recording_id:
          type: string
          title: Recording Id
        part_index:
          type: integer
          title: Part Index
        received_bytes:
          type: integer
          title: Received Bytes
        total_bytes:
          type: integer
          title: Total Bytes
      type: object
      required:
      - recording_id
      - part_index
      - received_bytes
      - total_bytes
      title: UploadPartResponse
    RecommendedProvider:
      properties:
        provider:
          type: string
          title: Provider
        reason:
          type: string
          title: Reason
          default: ''
      type: object
      required:
      - provider
      title: RecommendedProvider
      description: 'One provider Claude picked from the transcript.


        ``provider`` is a registry id (validated against the live provider

        list before storage); ``reason`` is the one-liner shown under it in

        the welcome dialog''s Recommended section.'
    GreetingDoneResponse:
      properties:
        greeting_done:
          type: boolean
          title: Greeting Done
      type: object
      required:
      - greeting_done
      title: GreetingDoneResponse
    FinalizeResponse:
      properties:
        status:
          $ref: '#/components/schemas/BrainDumpStatus'
        input_mode:
          $ref: '#/components/schemas/BrainDumpInputMode'
        transcript_preview:
          anyOf:
          - type: string
          - type: 'null'
          title: Transcript Preview
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
      type: object
      required:
      - status
      - input_mode
      title: FinalizeResponse
    IntroCardResponse:
      properties:
        path:
          type: string
          title: Path
        greeting:
          type: string
          title: Greeting
        prompts:
          items:
            $ref: '#/components/schemas/SuggestedPrompt'
          type: array
          title: Prompts
          default: []
        greeting_done:
          type: boolean
          title: Greeting Done
          default: false
        greeting_pending:
          type: boolean
          title: Greeting Pending
          default: false
        transcript:
          anyOf:
          - type: string
          - type: 'null'
          title: Transcript
      type: object
      required:
      - path
      - greeting
      title: IntroCardResponse
      description: 'Content for the copilot home''s onboarding greeting.


        ``path`` is "A" when we have something to reflect back and "B" when

        the greeting''s job is to invite a recording instead. ``greeting_done``

        is the server-side "already seen it" flag — when true the client

        shows nothing and caches the fact locally.'
    FinalizeRequest:
      properties:
        recording_id:
          type: string
          pattern: ^[A-Za-z0-9_-]{1,64}$
          title: Recording Id
        input_mode:
          $ref: '#/components/schemas/BrainDumpInputMode'
          default: voice
        duration_secs:
          anyOf:
          - type: number
            maximum: 14400.0
            minimum: 0.0
          - type: 'null'
          title: Duration Secs
        mime_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Mime Type
        text:
          anyOf:
          - type: string
            maxLength: 20000
          - type: 'null'
          title: Text
      type: object
      required:
      - recording_id
      title: FinalizeRequest
      description: '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.'
    ChangelogEntry:
      properties:
        version:
          type: string
          title: Version
        changes_summary:
          type: string
          title: Changes Summary
        date:
          type: string
          format: date-time
          title: Date
      type: object
      required:
      - version
      - changes_summary
      - date
      title: ChangelogEntry
  responses:
    HTTP401NotAuthenticatedError:
      description: Authentication required
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
  securitySchemes:
    APIKeyAuthenticator-X-Postmark-Webhook-Token:
      type: apiKey
      in: header
      name: X-Postmark-Webhook-Token
    HTTPBearer:
      type: http
      scheme: bearer
    HTTPBearerJWT:
      type: http
      scheme: bearer
      bearerFormat: jwt