openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
paths:
  /users/sources/list_files:
    get:
      tags:
      - accepts-api-key
      summary: Request Files Processing
      operationId: request_files_processing_users_sources_list_files_get
      parameters:
      - name: path
        in: query
        required: true
        schema:
          type: string
          title: Path
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          title: Limit
      - name: page
        in: query
        required: true
        schema:
          type: integer
          title: Page
      - name: folder_on_top
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Folder On Top
      - name: group_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Group Name
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileReference'
                title: Response Request Files Processing Users Sources List Files
                  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /users/assets/multipart/complete:
    post:
      tags:
      - accepts-api-key
      summary: Complete Multipart Asset Upload
      description: Complete a multipart upload. Client must supply ETags returned
        from each part upload.
      operationId: complete_multipart_asset_upload_users_assets_multipart_complete_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultipartCompleteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /users/assets/multipart/abort:
    post:
      tags:
      - accepts-api-key
      summary: Abort Multipart Asset Upload
      operationId: abort_multipart_asset_upload_users_assets_multipart_abort_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultipartAbortRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /users/assets/upload_urls:
    post:
      tags:
      - accepts-api-key
      summary: Create Upload Urls
      operationId: create_upload_urls_users_assets_upload_urls_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AssetUploadRequest'
              title: Assets
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssetUploadResponse'
                title: Response Create Upload Urls Users Assets Upload Urls Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /users/assets/preprocess:
    post:
      tags:
      - accepts-api-key
      summary: Process Assets
      operationId: process_assets_users_assets_preprocess_post
      parameters:
      - name: priority
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/TaskPriority'
          default: highest
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessAssetsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestTaskResponse'
                title: Response Process Assets Users Assets Preprocess Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /users/tasks:
    get:
      tags:
      - accepts-api-key
      summary: Get Tasks
      description: "Get pending tasks and recently finished tasks for the user.\n\n\
        Args:\n    finish_before_seconds: Number of seconds to look back for finished\
        \ tasks. Default is 300 (5 minutes)."
      operationId: get_tasks_users_tasks_get
      parameters:
      - name: finish_before_seconds
        in: query
        required: false
        schema:
          type: integer
          default: 300
          title: Finish Before Seconds
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskResponse'
                title: Response Get Tasks Users Tasks Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /asset/{asset_id}/visibility:
    put:
      tags:
      - accepts-api-key
      summary: Set Asset Visibility
      description: Set visibility (is_public_read) for a single asset (SSE). WRITE
        required.
      operationId: set_asset_visibility_asset__asset_id__visibility_put
      parameters:
      - name: asset_id
        in: path
        required: true
        schema:
          type: string
          title: Asset Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetVisibilityRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /asset/{asset_id}/reference:
    put:
      tags:
      - accepts-api-key
      summary: Set Asset Reference
      description: Set reference flag for a single asset (SSE). WRITE required.
      operationId: set_asset_reference_asset__asset_id__reference_put
      parameters:
      - name: asset_id
        in: path
        required: true
        schema:
          type: string
          title: Asset Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetReferenceRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /asset/most_recent:
    get:
      tags:
      - accepts-api-key
      summary: Get Most Recent Files
      description: 'Return the most recently added file(s) the user has read access
        to.

        Uses default group(s) unless group_id is set (user must have read access to
        that group).

        after: only files with last_edit > after (newer).

        before: only files with last_edit < before (older); use the smallest last_edit
        from a previous page to get the next page.

        filetype: only files with the given file type(s).'
      operationId: get_most_recent_files_asset_most_recent_get
      parameters:
      - name: path
        in: query
        required: false
        schema:
          type: string
          default: /
          title: Path
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Limit
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Group Id
      - name: before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Before
      - name: after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: After
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - type: array
                items:
                  $ref: '#/components/schemas/FileType'
              - type: 'null'
              title: Filetype
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileReference'
                title: Response Get Most Recent Files Asset Most Recent Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /asset/folder:
    post:
      tags:
      - accepts-api-key
      summary: Create Folder
      description: 'Create a folder. Either at a path (body.path) or under a parent
        folder (body.parent_asset_id + body.name).

        Path-based: ensures folder and ancestors exist for the user''s default group.

        Parent-based: parent must be a folder the user has WRITE access to.

        Callable with API key (X-Api-Key header) or Bearer token.'
      operationId: create_folder_asset_folder_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFolderRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateFolderResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /asset/{asset_id}/duplicate:
    post:
      tags:
      - accepts-api-key
      summary: Duplicate Asset
      description: 'Duplicate a project asset. Caller must have WRITE on the source
        project.


        Other asset types are not supported yet (404).'
      operationId: duplicate_asset_asset__asset_id__duplicate_post
      parameters:
      - name: asset_id
        in: path
        required: true
        schema:
          type: string
          title: Asset Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DuplicateAssetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /project/{project_id}/export:
    post:
      tags:
      - accepts-api-key
      summary: Export Project
      description: 'Start async export of project to MP4 at one or more resolutions.
        Creates the export asset

        in the API, then enqueues a task that generates each rendition. The export
        appears as a

        new video asset in the project''s export folder (project name + date + .mp4),
        with multiple

        renditions (e.g. 480p, 720p, 1080p, 4k) attached to that asset.


        Returns task_id and asset_id. Poll GET /task/{task_id} for completion; result
        includes asset_id.'
      operationId: export_project_project__project_id__export_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          title: Project Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                enum:
                - 480p
                - 720p
                - 1080p
                - 4k
                type: string
              description: List of resolutions to export (e.g. ["720p", "1080p"])
              title: Renditions
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportProjectResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/response/{chat_id}:
    delete:
      tags:
      - accepts-api-key
      summary: Cancel Response
      operationId: cancel_response_agent_response__chat_id__delete
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title: Response Cancel Response Agent Response  Chat Id  Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - accepts-api-key
      summary: Stream Chat Messages
      description: 'Stream new chat messages as they are added to the database.

        Returns SSE events with message data.'
      operationId: stream_chat_messages_agent_response__chat_id__get
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: After
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/available-llm-models:
    get:
      tags:
      - accepts-api-key
      summary: Get Available Llm Models
      operationId: get_available_llm_models_agent_available_llm_models_get
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AvailableModel'
                title: Response Get Available Llm Models Agent Available Llm Models
                  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/response:
    post:
      tags:
      - accepts-api-key
      summary: Process Agent Message
      operationId: process_agent_message_agent_response_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentMessageRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/response/json:
    post:
      tags:
      - accepts-api-key
      - accepts-api-key
      summary: Process Agent Message Json
      description: 'Same as POST /response but runs with no_interaction=True. Emits
        only SSE events

        `event: tellers.json_result` (progressing while running, then done with full
        result).

        chat_id must be set by the client or is created at the start.'
      operationId: process_agent_message_json_agent_response_json_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentMessageRequestWithoutNoInteraction'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/use-tool:
    post:
      tags:
      - accepts-api-key
      summary: Use Agent Tool
      operationId: use_agent_tool_agent_use_tool_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UseAgentToolRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/chats/list:
    get:
      tags:
      - accepts-api-key
      summary: List Chats
      operationId: list_chats_agent_chats_list_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
          title: Offset
      - name: before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Before
      - name: after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: After
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChatHistoryResponse'
                title: Response List Chats Agent Chats List Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/chat/{chat_id}:
    get:
      tags:
      - accepts-api-key
      summary: Get Chat Info
      operationId: get_chat_info_agent_chat__chat_id__get
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatHistoryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - accepts-api-key
      summary: Delete Chat
      operationId: delete_chat_agent_chat__chat_id__delete
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: cancel_running
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Cancel Running
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/chat/{chat_id}/rename:
    patch:
      tags:
      - accepts-api-key
      summary: Rename Chat
      operationId: rename_chat_agent_chat__chat_id__rename_patch
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: name
        in: query
        required: true
        schema:
          type: string
          title: Name
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agent/chat/{chat_id}/messages:
    get:
      tags:
      - accepts-api-key
      summary: Get Chat
      operationId: get_chat_agent_chat__chat_id__messages_get
      parameters:
      - name: chat_id
        in: path
        required: true
        schema:
          type: string
          title: Chat Id
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
          title: Offset
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 20
          title: Limit
      - name: before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Before
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                  - $ref: '#/components/schemas/ChatMessageUserResponse'
                  - $ref: '#/components/schemas/ChatMessageAgentResponse'
                title: Response Get Chat Agent Chat  Chat Id  Messages Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /create:
    get:
      tags:
      - accepts-api-key
      summary: Create Agent Stream
      description: 'SSE stream for agent creation. GET with query params; same behavior
        as

        POST /agent/response/json. Emits event: tellers.json_result (progressing,
        then done).'
      operationId: create_agent_stream_create_get
      parameters:
      - name: prompt
        in: query
        required: true
        schema:
          type: string
          description: The message/prompt to send to the agent
          title: Prompt
        description: The message/prompt to send to the agent
      - name: tools
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Tool IDs to use. If omitted, defaults to available agent tools.
          title: Tools
        description: Tool IDs to use. If omitted, defaults to available agent tools.
      - name: llm_model
        in: query
        required: false
        schema:
          type: string
          description: The LLM model to use for the response.
          default: gpt-5.4-2026-03-05
          title: Llm Model
        description: The LLM model to use for the response.
      - name: parallel_tool_calls
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to allow parallel tool calls.
          default: false
          title: Parallel Tool Calls
        description: Whether to allow parallel tool calls.
      - name: chat_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Optional chat ID for conversation tracking. Created if omitted.
          title: Chat Id
        description: Optional chat ID for conversation tracking. Created if omitted.
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /settings:
    get:
      tags:
      - accepts-api-key
      summary: Get Settings
      operationId: get_settings_settings_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppSettings'
components:
  schemas:
    AgentMessageRequest:
      properties:
        message:
          type: string
          title: Message
          description: The message to send to the agent
        chat_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Chat Id
          description: Optional chat ID for conversation tracking
        previous_response_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Previous Response Id
          description: The ID of the previous response to the model. Use this to create
            multi-turn conversations.
        llm_verbosity:
          type: string
          enum:
          - low
          - medium
          - high
          title: Llm Verbosity
          description: Range of number of tokens that can be generated by the LLM,
            higher values yield more verbose responses.
          default: low
        llm_reasoning_effort:
          anyOf:
          - type: string
            enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
          - type: 'null'
          title: Llm Reasoning Effort
          description: 'Controls reasoning effort: higher values yield more precise
            but slower responses.'
          default: low
        context:
          anyOf:
          - $ref: '#/components/schemas/AppContext'
          - type: 'null'
          description: The app context when the response is sent.
        llm_model:
          type: string
          enum:
          - gpt-5.4-pro-2026-03-05
          - gpt-5.4
          - gpt-5.4-mini
          - gpt-5.4-nano
          - gpt-5.3-codex
          - gpt-5.2-2025-12-11
          - gpt-5-mini-2025-08-07
          title: Llm Model
          description: The model to use to generate the response.
          default: gpt-5.4
        tools:
          items:
            type: string
          type: array
          title: Tools
          description: The tools to use to generate the response. Defaults to the
            same as GET /settings (AVAILABLE_AGENT_TOOLS if set, else all tools).
        custom_agent_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Agent Id
          description: The ID of the custom agent to use to generate the response.
            If not provided, the default custom agent will be used.
        parallel_tool_calls:
          type: boolean
          title: Parallel Tool Calls
          description: Whether to allow parallel tool calls. If True, the tool calls
            will be executed in parallel. If False, the tool calls will be executed
            sequentially.
          default: false
        override_llm_verbosity:
          anyOf:
          - type: string
            enum:
            - low
            - medium
            - high
          - type: 'null'
          title: Override Llm Verbosity
          description: Override the verbosity of the LLM, range of number of tokens
            that can be generated by the LLM, higher values yield more verbose responses.
        override_llm_reasoning_effort:
          anyOf:
          - type: string
            enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
          - type: 'null'
          title: Override Llm Reasoning Effort
          description: 'Override the reasoning effort of the LLM, controls reasoning
            effort: higher values yield more precise but slower responses.'
        max_mode:
          type: boolean
          title: Max Mode
          description: Whether to enable max mode. If True, the agent will use the
            maximum number of tokens allowed by the model.
          default: false
        no_interaction:
          type: boolean
          title: No Interaction
          description: Whether to disable interaction with the agent. If True, the
            agent will try to generate a response without interacting with the user.
          default: false
      additionalProperties: false
      type: object
      required:
      - message
      title: AgentMessageRequest
    AgentMessageRequestWithoutNoInteraction:
      properties:
        message:
          type: string
          title: Message
          description: The message to send to the agent
        chat_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Chat Id
          description: Optional chat ID for conversation tracking
        previous_response_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Previous Response Id
          description: The ID of the previous response to the model. Use this to create
            multi-turn conversations.
        llm_verbosity:
          type: string
          enum:
          - low
          - medium
          - high
          title: Llm Verbosity
          description: Range of number of tokens that can be generated by the LLM,
            higher values yield more verbose responses.
          default: low
        llm_reasoning_effort:
          anyOf:
          - type: string
            enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
          - type: 'null'
          title: Llm Reasoning Effort
          description: 'Controls reasoning effort: higher values yield more precise
            but slower responses.'
          default: low
        context:
          anyOf:
          - $ref: '#/components/schemas/AppContext'
          - type: 'null'
          description: The app context when the response is sent.
        llm_model:
          type: string
          enum:
          - gpt-5.4-pro-2026-03-05
          - gpt-5.4
          - gpt-5.4-mini
          - gpt-5.4-nano
          - gpt-5.3-codex
          - gpt-5.2-2025-12-11
          - gpt-5-mini-2025-08-07
          title: Llm Model
          description: The model to use to generate the response.
          default: gpt-5.4
        tools:
          items:
            type: string
          type: array
          title: Tools
          description: The tools to use to generate the response. Defaults to the
            same as GET /settings (AVAILABLE_AGENT_TOOLS if set, else all tools).
        custom_agent_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Agent Id
          description: The ID of the custom agent to use to generate the response.
            If not provided, the default custom agent will be used.
        parallel_tool_calls:
          type: boolean
          title: Parallel Tool Calls
          description: Whether to allow parallel tool calls. If True, the tool calls
            will be executed in parallel. If False, the tool calls will be executed
            sequentially.
          default: false
        override_llm_verbosity:
          anyOf:
          - type: string
            enum:
            - low
            - medium
            - high
          - type: 'null'
          title: Override Llm Verbosity
          description: Override the verbosity of the LLM, range of number of tokens
            that can be generated by the LLM, higher values yield more verbose responses.
        override_llm_reasoning_effort:
          anyOf:
          - type: string
            enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
          - type: 'null'
          title: Override Llm Reasoning Effort
          description: 'Override the reasoning effort of the LLM, controls reasoning
            effort: higher values yield more precise but slower responses.'
        max_mode:
          type: boolean
          title: Max Mode
          description: Whether to enable max mode. If True, the agent will use the
            maximum number of tokens allowed by the model.
          default: false
      additionalProperties: false
      type: object
      required:
      - message
      title: AgentMessageRequestWithoutNoInteraction
    AppContext:
      properties:
        current_playback_time:
          anyOf:
          - type: number
          - type: 'null'
          title: Current Playback Time
          description: The current playback time in the project when the response
            is sent.
        on_screen_asset:
          anyOf:
          - type: string
          - type: 'null'
          title: On Screen Asset
          description: The id of the asset on screen when the response is sent.
        on_screen_project:
          anyOf:
          - type: string
          - type: 'null'
          title: On Screen Project
          description: The id of the project on screen when the response is sent.
        selected_clips:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Selected Clips
          description: The ids of the clips selected when the response is sent.
        selected_assets:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Selected Assets
          description: The ids of the assets selected when the response is sent.
        selected_projects:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Selected Projects
          description: The ids of the projects selected when the response is sent.
      additionalProperties: false
      type: object
      title: AppContext
    AppSettings:
      properties:
        maintenance_mode:
          type: boolean
          title: Maintenance Mode
        available_agent_tools:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Available Agent Tools
        available_llm_models:
          items:
            $ref: '#/components/schemas/AvailableModel'
          type: array
          title: Available Llm Models
      type: object
      required:
      - maintenance_mode
      - available_agent_tools
      - available_llm_models
      title: AppSettings
    AssetReferenceRequest:
      properties:
        is_reference:
          type: boolean
          title: Is Reference
      type: object
      required:
      - is_reference
      title: AssetReferenceRequest
    AssetUploadRequest:
      properties:
        content_length:
          type: integer
          title: Content Length
          description: The content length of the asset in bytes
        upload_id:
          type: string
          title: Upload Id
        source_file:
          $ref: '#/components/schemas/SourceFileInfo'
        file_type:
          $ref: '#/components/schemas/FileType'
          default: video
        multipart:
          type: boolean
          title: Multipart
          description: If true, returns presigned multipart upload URLs instead of
            a single PUT URL.
          default: false
        multipart_part_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: Multipart Part Size
          description: Optional multipart part size in bytes (min 5 MiB). If omitted,
            a default is used.
      type: object
      required:
      - content_length
      - upload_id
      - source_file
      title: AssetUploadRequest
    AssetUploadResponse:
      properties:
        upload_id:
          type: string
          title: Upload Id
        asset_id:
          type: string
          title: Asset Id
        presigned_put_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Presigned Put Url
        presigned_put_urls:
          items:
            type: string
          type: array
          title: Presigned Put Urls
        multipart_upload_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Multipart Upload Id
        multipart_part_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: Multipart Part Size
        multipart_part_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Multipart Part Count
      type: object
      required:
      - upload_id
      - asset_id
      title: AssetUploadResponse
    AssetVisibilityRequest:
      properties:
        is_public_read:
          type: boolean
          title: Is Public Read
      type: object
      required:
      - is_public_read
      title: AssetVisibilityRequest
    AvailableModel:
      properties:
        name:
          type: string
          title: Name
        codename:
          type: string
          title: Codename
        has_max_mode:
          type: boolean
          title: Has Max Mode
        compatible_models:
          items:
            type: string
          type: array
          title: Compatible Models
      type: object
      required:
      - name
      - codename
      - has_max_mode
      - compatible_models
      title: AvailableModel
    ChatHistoryResponse:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        custom_agent_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Agent Id
        total_tokens:
          type: number
          title: Total Tokens
        is_running:
          type: boolean
          title: Is Running
      type: object
      required:
      - id
      - name
      - created_at
      - updated_at
      - custom_agent_id
      - total_tokens
      - is_running
      title: ChatHistoryResponse
    ChatMessageAgentResponse:
      properties:
        type:
          type: string
          const: agent
          title: Type
          default: agent
        id:
          type: string
          title: Id
        agent_message:
          additionalProperties: true
          type: object
          title: Agent Message
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - agent_message
      - created_at
      title: ChatMessageAgentResponse
    ChatMessageUserResponse:
      properties:
        type:
          type: string
          const: user
          title: Type
          default: user
        id:
          type: string
          title: Id
        user_message:
          type: string
          title: User Message
        enabled_tools:
          items:
            type: string
          type: array
          title: Enabled Tools
        verbosity:
          type: string
          title: Verbosity
        reasoning_effort:
          type: string
          title: Reasoning Effort
        context:
          additionalProperties: true
          type: object
          title: Context
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - user_message
      - enabled_tools
      - verbosity
      - reasoning_effort
      - context
      - created_at
      title: ChatMessageUserResponse
    CreateFolderRequest:
      properties:
        path:
          anyOf:
          - type: string
          - type: 'null'
          title: Path
        parent_asset_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Parent Asset Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
      type: object
      title: CreateFolderRequest
      description: Either provide path (create at path) or parent_asset_id + name
        (create under parent).
    CreateFolderResponse:
      properties:
        id:
          type: string
          title: Id
        path:
          type: string
          title: Path
      type: object
      required:
      - id
      - path
      title: CreateFolderResponse
    DuplicateAssetResponse:
      properties:
        id:
          type: string
          title: Id
      type: object
      required:
      - id
      title: DuplicateAssetResponse
      description: New asset id after a successful duplicate.
    ExportProjectResponse:
      properties:
        task_id:
          type: string
          title: Task Id
        asset_id:
          type: string
          title: Asset Id
      type: object
      required:
      - task_id
      - asset_id
      title: ExportProjectResponse
      description: 'Response for POST /project/{project_id}/export: task_id and the
        new export asset_id.'
    FileReference:
      properties:
        file_name:
          type: string
          title: File Name
        is_folder:
          type: boolean
          title: Is Folder
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
        file_type:
          anyOf:
          - type: string
          - type: 'null'
          title: File Type
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
        last_edit:
          type: string
          format: date-time
          title: Last Edit
      type: object
      required:
      - file_name
      - is_folder
      - file_id
      - file_type
      - last_edit
      title: FileReference
    FileType:
      type: string
      enum:
      - video
      - audio
      - image
      - placeholder
      - group_clip
      - aaf
      - folder
      - project
      - entity
      - teller_config
      title: FileType
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    MultipartAbortRequest:
      properties:
        asset_id:
          type: string
          title: Asset Id
        multipart_upload_id:
          type: string
          title: Multipart Upload Id
      type: object
      required:
      - asset_id
      - multipart_upload_id
      title: MultipartAbortRequest
    MultipartCompletePart:
      properties:
        part_number:
          type: integer
          title: Part Number
        etag:
          type: string
          title: Etag
      type: object
      required:
      - part_number
      - etag
      title: MultipartCompletePart
    MultipartCompleteRequest:
      properties:
        asset_id:
          type: string
          title: Asset Id
        multipart_upload_id:
          type: string
          title: Multipart Upload Id
        parts:
          items:
            $ref: '#/components/schemas/MultipartCompletePart'
          type: array
          title: Parts
      type: object
      required:
      - asset_id
      - multipart_upload_id
      - parts
      title: MultipartCompleteRequest
    ProcessAssetsRequest:
      properties:
        assets:
          items:
            $ref: '#/components/schemas/AssetUploadResponse'
          type: array
          title: Assets
        version:
          anyOf:
          - $ref: '#/components/schemas/VersionReference'
          - type: 'null'
        cutter_sensitivity:
          type: number
          title: Cutter Sensitivity
          default: 0.5
        generate_time_based_media_description:
          type: boolean
          title: Generate Time Based Media Description
          default: false
        override_entity_ids:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Override Entity Ids
        generate_proxy:
          items:
            type: string
            enum:
            - '360'
            - '480'
            - '720'
            - '1080'
            - '2160'
          type: array
          title: Generate Proxy
          default:
          - '720'
      type: object
      required:
      - assets
      - version
      title: ProcessAssetsRequest
    RequestTaskResponse:
      properties:
        task_id:
          type: string
          title: Task Id
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
      type: object
      required:
      - task_id
      title: RequestTaskResponse
    SourceFileInfo:
      properties:
        sourceName:
          type: string
          title: Sourcename
        sourceUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Sourceurl
        sourceIconUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Sourceiconurl
        authors:
          items:
            type: string
          type: array
          title: Authors
        creationDatetime:
          anyOf:
          - type: integer
          - type: 'null'
          title: Creationdatetime
        additionDatetime:
          type: integer
          title: Additiondatetime
        isCitationRequired:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Iscitationrequired
        citation:
          anyOf:
          - type: string
          - type: 'null'
          title: Citation
        reuseConditionInfo:
          anyOf:
          - type: string
          - type: 'null'
          title: Reuseconditioninfo
        inAppPath:
          items:
            type: string
          type: array
          title: Inapppath
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        keywords:
          items:
            type: string
          type: array
          title: Keywords
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
        sora_remix_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Sora Remix Id
        sora_remix_id_created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Sora Remix Id Created At
        umid:
          anyOf:
          - type: string
          - type: 'null'
          title: Umid
        capture_device_umid:
          anyOf:
          - type: string
          - type: 'null'
          title: Capture Device Umid
        original_file_path:
          anyOf:
          - type: string
          - type: 'null'
          title: Original File Path
        original_ffprobe_metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Original Ffprobe Metadata
      type: object
      required:
      - sourceName
      - sourceUrl
      - sourceIconUrl
      - authors
      - creationDatetime
      - additionDatetime
      - inAppPath
      - title
      - description
      - keywords
      title: SourceFileInfo
    TaskPriority:
      type: string
      enum:
      - highest
      - high
      - medium
      - low
      - lowest
      title: TaskPriority
      description: Task priority is used to prioritize tasks in the queue.
    TaskResponse:
      properties:
        id:
          type: string
          title: Id
        task_type:
          type: string
          title: Task Type
        status:
          type: string
          title: Status
        progress:
          type: number
          title: Progress
        asset_ids:
          items:
            type: string
          type: array
          title: Asset Ids
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        ended_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Ended At
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Message
      type: object
      required:
      - id
      - task_type
      - status
      - progress
      - asset_ids
      - created_at
      - ended_at
      - error_message
      title: TaskResponse
    UseAgentToolRequest:
      properties:
        tool_id:
          type: string
          title: Tool Id
          description: The id of the tool to use
        tool_arguments:
          additionalProperties: true
          type: object
          title: Tool Arguments
          description: The arguments to pass to the tool
      type: object
      required:
      - tool_id
      - tool_arguments
      title: UseAgentToolRequest
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    VersionReference:
      properties:
        embedding_space:
          type: string
          title: Embedding Space
        embedding_strategy:
          type: string
          title: Embedding Strategy
        dimensionality:
          type: integer
          title: Dimensionality
      type: object
      required:
      - embedding_space
      - embedding_strategy
      - dimensionality
      title: VersionReference
