---
title: "Upload User Files"
method: POST
path: "/user/projects/file/upload"
tags: ["public"]
---

# Upload User Files

`POST /user/projects/file/upload`

## Response `200`

Successful Response

- CategorizedFilesSnapshot
  - `user_files` UserFileSnapshot[], required
    - `id` string, uuid, required
    - `temp_id` string, nullable
    - `name` string, required
    - `project_id` integer, nullable
    - `user_id` string, uuid, nullable, required
    - `file_id` string, required
    - `created_at` string, date-time, required
    - `status` 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED' | 'DELETING', required
    - `last_accessed_at` string, date-time, nullable, required
    - `file_type` string, nullable, required
    - `chat_file_type` 'image' | 'document' | 'plain_text' | 'csv', required
    - `token_count` integer, nullable, required
    - `chunk_count` integer, nullable, required
  - `rejected_files` RejectedFile[], required
    - `file_name` string, required
    - `reason` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-01-13** `7f4d7f7b70ee` — 2 breaking, 1 info
  - removed the required property `non_accepted_files` from the response with the `200` status
  - removed the required property `unsupported_files` from the response with the `200` status
  - added the required property `rejected_files` to the response with the `200` status
- **2026-01-06** `2d941ea53eb3` — 1 info
  - endpoint added
- **2025-08-21** `9321c45d93b5` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/onyx-dot-app/apis/onyx-api/changes/user/projects/file/upload/post.md)

---

[API](https://skmtc.dev/onyx-dot-app/apis/onyx-api.md) · [All operations](https://skmtc.dev/onyx-dot-app/apis/onyx-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/onyx-dot-app/onyx-api/revisions/2980a9073ffe/schema)
