---
title: "Start the upload process for any file larger than 10MB."
method: POST
path: "/documents/v1/files_large"
tags: ["files"]
---

# Start the upload process for any file larger than 10MB.

`POST /documents/v1/files_large`

This endpoint is the first step in the upload process. There are a total of
3 steps:
1. **Upload File Init**: This endpoint is called first to initiate the
   upload process. The response
 contains a presigned URL that can be used to upload the file.
2. **Upload File**: The file is uploaded to the presigned URL. This should
   be done using a
multipart/form-data request via a PUT request.
3. **Upload File Finalize**: This endpoint is called to finalize the upload
   process. It verifies the
file and updates the database with the file information.

## Request body

- UploadLargeFileInitRequest
  - `filename` string, required
  - `file_size` integer, required
  - `mime_type` string, nullable
  - `sha256_checksum` string, required

## Response `200`

Response object with the temporary File ID and the presigned URL.

- UploadLargeFileInitResponse
  - `id` string, required
  - `presigned_url` string, nullable

## Other responses

- `400` — Invalid request
- `401` — Unauthorized. Invalid or missing credentials
- `403` — Forbidden. You do not have permission to access this resource
- `422` — Invalid payload provided
- `500` — Internal server error

---

[API](https://skmtc.net/tensorlakeai/apis/tensorlake-api.md) · [All operations](https://skmtc.net/tensorlakeai/apis/tensorlake-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tensorlakeai/tensorlake-api/versions/fb161f7c0ab7/schema)
