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

# Add an uploaded file to a knowledge collection

> Extracts text, splits it, embeds, and indexes the file into this collection.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/knowledge/collections/{id}/ingest/file
openapi: 3.0.0
info:
  title: Flowra API (API Key Endpoints)
  description: >-
    **Flowra** is an AI-powered platform for building agents, workflows, and
    integrations.


    ### Capabilities

    - **Tools & Toolkits** – Define and group tools for agents and workflows.

    - **Workflows** – Orchestrate steps and automate processes.

    - **Triggers** – Schedule or event-based execution.

    - **Auth & Connections** – OAuth, API keys, and connected accounts.

    - **MCP** – Model Context Protocol server integration.

    - **Knowledge / RAG** – Add files and URLs for retrieval-augmented
    generation.


    ### Authentication

    Use the **x-api-key** header with a project API key to access endpoints that
    support API Key auth. Create and manage API keys in the dashboard under your
    project settings.


    Only endpoints that support API Key authentication via the @ApiKeyEnabled()
    decorator.


    Send x-api-key (required). On multi-tenant endpoints, optionally send
    x-username to act as an external user.
  version: '1.0'
  contact:
    name: Flowra
    url: https://flowra.dev
servers:
  - url: https://flowra.dev
    description: Flowra API
security: []
tags:
  - name: Users
    description: User profile
  - name: External Users
    description: End-user identities inside a project (x-username)
  - name: Auth Configs
    description: OAuth and API key configs for toolkits
  - name: Connected Accounts
    description: OAuth connected accounts and link creation
  - name: Toolkits
    description: List and search toolkits
  - name: Tools
    description: List, execute, and manage tools
  - name: Skills
    description: Browse, create, import, and install skills
  - name: Workflow & Agent
    description: Create, run, and inspect workflows and agents
  - name: Triggers
    description: Schedule and event-based trigger instances
  - name: Chat
    description: Threads and streaming agent runs
  - name: File
    description: Upload, list, and download files
  - name: Knowledge
    description: RAG knowledge collections
  - name: Table
    description: Collections and documents
  - name: Sandbox
    description: Ephemeral and durable code sandboxes
  - name: Browser
    description: Live browser sessions and view
  - name: LLM
    description: List AI models and generate completions
  - name: MCP
    description: MCP server management
  - name: usage
    description: Credit balance and usage ledger for the project API key
paths:
  /api/v1/knowledge/collections/{id}/ingest/file:
    post:
      tags:
        - Knowledge
      summary: Add an uploaded file to a knowledge collection
      description: >-
        Extracts text, splits it, embeds, and indexes the file into this
        collection.
      operationId: KnowledgeController_ingestFile
      parameters:
        - name: id
          required: true
          in: path
          description: Collection ID
          schema:
            example: 755ab29c-2864-5cfd-9c2b-4953f7314b21
            type: string
        - name: x-username
          in: header
          required: false
          description: >-
            External user (end user) to act as. Optional — if omitted, Flowra
            uses the project’s default external user. Send a stable username
            (e.g. customer_alice) only when you need another end-user context.
          schema:
            type: string
            default: (project default user)
          example: customer_alice
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeIngestFileDto'
      responses:
        '200':
          description: File added to collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeIngestResultDtoSuccessResponse'
              example:
                success: true
                message: Operation completed successfully
                data:
                  documentIds:
                    - ''
                  chunkCount: 0
                  collectionId: ''
                  collectionName: ''
                  alreadyInCollection: true
                  sourceKey: ''
                  fileName: ''
                  url: ''
      security:
        - x-api-key: []
        - x-api-key: []
          x-username: []
components:
  schemas:
    KnowledgeIngestFileDto:
      type: object
      properties:
        chunkSize:
          type: number
          minimum: 100
          maximum: 4000
          description: Split size in characters (default 1000)
          example: 1000
        chunkOverlap:
          type: number
          minimum: 0
          maximum: 500
          description: Overlap between splits in characters (default 100)
          example: 100
        fileId:
          type: string
          minLength: 1
          description: File id from POST /file/upload/single/chat
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      required:
        - fileId
    KnowledgeIngestResultDtoSuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Success status
          example: true
        message:
          type: string
          description: Success message
          example: Operation completed successfully
        data:
          type: object
          properties:
            documentIds:
              type: array
              items:
                type: string
            chunkCount:
              type: number
              description: Number of new chunks added
            collectionId:
              type: string
            collectionName:
              type: string
            alreadyInCollection:
              type: boolean
            sourceKey:
              type: string
              description: Stable source key used in the sources list
            fileName:
              type: string
            url:
              type: string
          required:
            - documentIds
            - chunkCount
            - collectionId
          example:
            documentIds:
              - ''
            chunkCount: 0
            collectionId: ''
            collectionName: ''
            alreadyInCollection: true
            sourceKey: ''
            fileName: ''
            url: ''
      required:
        - success
        - message
        - data
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Project API key. Create and manage keys in the dashboard under Project →
        API Keys. Send as header: x-api-key: <your-key>
    x-username:
      type: apiKey
      in: header
      name: x-username
      description: >-
        Optional. External user username. If omitted, Flowra uses the project’s
        default external user. Send as header: x-username: <username>

````