> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revoengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a file upload session for a message attachment.

> Create a file upload session for a message attachment. The request enforces thread membership and content visibility for the authenticated caller.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/chat/threads/{threadId}/messages/{messageId}/uploads
openapi: 3.0.0
info:
  title: RevoEngine Platform API
  description: Official RevoEngine Platform API documentation.
  version: 1.3.0
  contact:
    name: Support
    email: support@revoengine.com
  termsOfService: https://docs.revoengine.com/tos
servers:
  - url: https://api.revoengine.com
    description: Production
security: []
tags:
  - name: Accounts
    description: Users, service accounts, API keys, status, and platform access.
    externalDocs:
      description: Identity and access guide
      url: https://docs.revoengine.com/operate/identity-and-access
  - name: Activity
    description: Snapshot-backed activity and version history.
    externalDocs:
      description: Observability guide
      url: https://docs.revoengine.com/operate/observability
  - name: Agent Memory
    description: Administrative access to durable Agent memory.
    externalDocs:
      description: Agent memory and workspaces guide
      url: https://docs.revoengine.com/ai/memory-and-workspaces
  - name: Agent Plugins
    description: Agent plugin definitions, synchronization, testing, and lifecycle.
    externalDocs:
      description: Agent plugins guide
      url: https://docs.revoengine.com/ai/plugins
  - name: Agents
    description: >-
      Agent definitions, runs, sessions, inboxes, memory, tools, workspaces, and
      lifecycle.
    externalDocs:
      description: Autonomous Agents guide
      url: https://docs.revoengine.com/ai/agents
  - name: Assistant
    description: >-
      Assistant threads, messages, responses, goals, reports, sharing,
      attachments, and control.
    externalDocs:
      description: Assistant guide
      url: https://docs.revoengine.com/ai/assistant
  - name: Automation
    description: >-
      Jobs, templates, schedules, events, webhooks, execution history, and
      lifecycle.
    externalDocs:
      description: Automation guide
      url: https://docs.revoengine.com/operate/automation
  - name: Chat
    description: Collaborative chat threads, messages, reactions, uploads, and attachments.
    externalDocs:
      description: Team Chat guide
      url: https://docs.revoengine.com/operate/chat
  - name: Component deployments
    description: >-
      Custom Node.js runtime deployment attempts, readiness, activation, and
      rollback.
    externalDocs:
      description: Custom Node.js guide
      url: https://docs.revoengine.com/build/custom-nodejs
  - name: Components
    description: Components, elements, versions, validation, activation, and lifecycle.
    externalDocs:
      description: Components guide
      url: https://docs.revoengine.com/build/components
  - name: Config
    description: Instance configuration, usage, logs, and cache administration.
    externalDocs:
      description: Instance settings guide
      url: https://docs.revoengine.com/platform/instance-settings
  - name: Database Cache
    description: Instance Database cache values and statistics.
    externalDocs:
      description: Database Cache guide
      url: https://docs.revoengine.com/operate/database-cache
  - name: Database Views
    description: Database Views, previews, refreshes, exports, and controlled data actions.
    externalDocs:
      description: Database Views guide
      url: https://docs.revoengine.com/operate/database-views
  - name: Databases
    description: Database definitions, data, audits, exports, cloning, and lifecycle.
    externalDocs:
      description: Databases guide
      url: https://docs.revoengine.com/operate/databases
  - name: Endpoints
    description: >-
      Endpoint definitions, activation, validation, generated OpenAPI, and
      statistics.
    externalDocs:
      description: Endpoints guide
      url: https://docs.revoengine.com/operate/endpoints
  - name: Files
    description: Compatibility file listing, preview, download, and deletion operations.
    externalDocs:
      description: Files compatibility guide
      url: https://docs.revoengine.com/operate/files
  - name: Groups
    description: Groups, membership, avatars, and lifecycle.
    externalDocs:
      description: Groups guide
      url: https://docs.revoengine.com/operate/groups
  - name: Me
    description: Current user profile, keys, avatar, and session information.
    externalDocs:
      description: Authentication guide
      url: https://docs.revoengine.com/developers/authentication
  - name: Preferences
    description: User and instance preference values.
    externalDocs:
      description: Platform UI guide
      url: https://docs.revoengine.com/platform/ui-tour
  - name: Role Groups
    description: Role groups, members, assigned roles, and lifecycle.
    externalDocs:
      description: Permissions guide
      url: https://docs.revoengine.com/operate/permissions
  - name: Roles
    description: Available platform roles and role details.
    externalDocs:
      description: Permissions guide
      url: https://docs.revoengine.com/operate/permissions
  - name: Search
    description: Cross-domain search over objects visible to the caller.
    externalDocs:
      description: Search and discovery guide
      url: https://docs.revoengine.com/platform/search
  - name: Secrets
    description: >-
      Secret definitions, revisions, activation, reveal, disable, and
      destruction.
    externalDocs:
      description: Secrets guide
      url: https://docs.revoengine.com/operate/secrets
  - name: Storage
    description: >-
      Storage workspaces, folders, objects, upload sessions, signed access, and
      lifecycle.
    externalDocs:
      description: Storage guide
      url: https://docs.revoengine.com/operate/storage
externalDocs:
  description: Documentation
  url: https://docs.revoengine.com
paths:
  /api/v1/chat/threads/{threadId}/messages/{messageId}/uploads:
    post:
      tags:
        - Chat
      summary: Create a file upload session for a message attachment.
      description: >-
        Create a file upload session for a message attachment. The request
        enforces thread membership and content visibility for the authenticated
        caller.
      operationId: ChatController_createUploadSession
      parameters:
        - name: threadId
          required: true
          in: path
          schema:
            type: string
        - name: messageId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStorageUploadSessionDto'
      responses:
        '200':
          description: OK.
      security:
        - bearer: []
components:
  schemas:
    CreateStorageUploadSessionDto:
      type: object
      properties:
        retention:
          description: >-
            Retention for the finalized file. Duration starts at finalization;
            null means no expiration.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/StorageRetentionDto'
        parentStorageEntryId:
          type: string
          description: >-
            Parent folder id. Required for create mode when uploading into a
            folder.
          example: 00000000-0000-4000-8000-000000000000
        storageProviderConfigId:
          type: string
          description: >-
            Optional configured storage id for root-level uploads. Omit for
            managed default storage. Ignored when parentStorageEntryId is
            provided or when replacing an existing file.
          example: 00000000-0000-4000-8000-000000000001
        replaceStorageEntryId:
          type: string
          description: Existing storage entry id to replace instead of creating a new file.
          example: 00000000-0000-4000-8000-000000000002
        replaceExpectedVersion:
          type: number
          description: >-
            Expected current version of the file being replaced. The upload is
            rejected if the file changed after overwrite confirmation.
          example: 3
          minimum: 0
        name:
          type: string
          description: File name. Required for create mode.
          example: contracts.csv
        contentTypeHint:
          type: string
          description: Expected content type.
          example: text/csv
        sizeHint:
          type: number
          description: Expected size in bytes.
          example: 1048576
          minimum: 0
        tier:
          type: string
          description: >-
            Logical storage lifecycle tier. Select only when creating a new file
            or upload session; existing files keep their tier.

            HOT: Active files used in live workflows, previews, and frequent
            downloads.

            WARM: Completed or less-active business files that are still
            occasionally accessed.

            COLD: Compliance snapshots, historic imports, and retained evidence
            that is rarely opened.

            FROZEN: Deep archive or legal-hold data kept mainly for audit or
            recovery obligations.
          enum:
            - HOT
            - WARM
            - COLD
            - FROZEN
          example: HOT
        uploadMode:
          type: string
          description: >-
            Upload mode. Use "direct" for provider resumable uploads, "chunked"
            for explicit numbered parts, and "incremental" for server-assigned
            part numbering by default. Incremental sessions can still re-upload
            a specific part number when repairing an upload.
          enum:
            - direct
            - chunked
            - incremental
          example: incremental
        computeStats:
          type: string
          description: Default post-finalize compute mode for this upload session.
          enum:
            - none
            - sync
            - async
          example: async
        metadata:
          type: object
          description: >-
            File metadata. Values may use any JSON type. Maximum 16 KiB and 64
            top-level keys. Top-level keys starting with "__" are reserved for
            backend use.
          example:
            scope: integration
            source: sdk
        refId:
          type: string
          description: Optional external reference id.
        refType:
          type: string
          description: Optional external reference type.
        refVer:
          type: number
          description: Optional external reference version.
        restricted:
          type: boolean
          description: Whether the finalized entry should be restricted.
        groups:
          description: Explicit allowed group ids for the finalized entry.
          type: array
          items:
            type: string
        users:
          description: Explicit allowed user ids for the finalized entry.
          type: array
          items:
            type: string
    StorageRetentionDto:
      type: object
      properties:
        ttlSeconds:
          type: number
          description: >-
            Positive lifetime in seconds. The lifetime starts when the file is
            finalized.
          minimum: 1
        expiresAt:
          type: string
          description: Absolute future expiration timestamp in ISO 8601 format.
          example: '2026-08-01T12:00:00.000Z'
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      description: Bearer JWT token or API Key (sk-*).
      type: http

````