---
title: "Ingest File"
method: POST
path: "/ingest/file"
tags: ["Ingestion"]
---

# Ingest File

`POST /ingest/file`

Ingest a **file** asynchronously.

The file is uploaded to object storage, a *Document* stub is persisted
with ``status='processing'`` and a background worker picks up the heavy
parsing / chunking work.

Args:
    file: Uploaded file from multipart/form-data.
    metadata: JSON-string representing user metadata.
    auth: Caller context – must include *write* permission.
    use_colpali: Switch to multi-vector embeddings.
    folder_name: Optionally scope doc to a folder.
    end_user_id: Optionally scope doc to an end-user.
    redis: arq redis connection – used to enqueue the job.

Returns:
    Document stub with ``status='processing'``.

## Headers

- `authorization` string

## Response `200`

Successful Response

- Document — Represents a document stored in the database documents collection
  - `external_id` string
  - `content_type` string, required
  - `filename` string, nullable
  - `metadata` object
  - `storage_info` object
  - `storage_files` StorageFileInfo[]
    - `bucket` string, required
    - `key` string, required
    - `version` integer
    - `filename` string, nullable
    - `content_type` string, nullable
    - `timestamp` string, date-time
  - `system_metadata` object
  - `additional_metadata` object
  - `chunk_ids` string[]
  - `folder_name` string, nullable
  - `end_user_id` string, nullable
  - `app_id` string, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2025-11-05** `9ade02dd7b1d` — 1 warning
  - removed the request property `rules`

[Change history](https://skmtc.dev/morphik-org/apis/fastapi/changes/ingest/file/post.md)

---

[API](https://skmtc.dev/morphik-org/apis/fastapi.md) · [All operations](https://skmtc.dev/morphik-org/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/morphik-org/fastapi/revisions/9ade02dd7b1d/schema)
