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

# Upload an asset

> Upload an asset to the system



## OpenAPI

````yaml /openapi.yaml post /api/kb/assets/upload
openapi: 3.1.0
info:
  title: Nuwacom API
  description: API for Nuwacom application
  version: 1.0.0
servers:
  - url: https://{customer-tenant}.nuwacom.ai/
    description: Nuwacom API
security:
  - bearerAuth: []
paths:
  /api/kb/assets/upload:
    post:
      tags:
        - Assets
      summary: Upload an asset
      description: Upload an asset to the system
      operationId: postApiKbAssetsUpload
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                spaceId:
                  anyOf:
                    - type: string
                      minLength: 2
                      maxLength: 6
                    - type: string
                      minLength: 21
                      maxLength: 21
                  description: Unique ID of the space the asset should be added to.
                connectorId:
                  type: number
                  description: >-
                    Identifier of the connector (e.g., SharePoint, Google Drive)
                    the asset belongs to.
                metadata:
                  type: object
                  additionalProperties:
                    path: /api/subscription/paid-seats-left/{organizationId}
                  description: >-
                    JSON metadata string that will be stored alongside the asset
                    (e.g., author, custom tags).
                path:
                  type: array
                  items:
                    type: string
                  description: >-
                    Hierarchical path (array of folder names) describing where
                    the asset lives in the connector.
                file:
                  description: >-
                    The file to upload. This contains the name, MIME type, and
                    data.
              required:
                - spaceId
                - file
      responses:
        '200':
          description: Asset already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                required:
                  - id
        '201':
          description: Asset uploaded successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                required:
                  - id
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````