---
title: "Create Upload Session"
method: POST
path: "/v2/upload"
tags: ["Upload"]
---

# Create Upload Session

`POST /v2/upload`

Initiates a new upload session and returns a presigned URL for S3 upload

## Request body

- CreateUploadRequest
  - `content_hash` string, required — Hash of the content to be uploaded
  - `content_hash_algorithm` string, required — Algorithm used to generate the content hash
  - `content_length` integer, required — Size of the file in bytes

## Response `201`

Upload session created successfully

- CreateUploadResponse
  - `presign_header` object, required — Headers to include in the S3 upload request
    - `Content-Type` string
  - `presign_method` string, required — HTTP method to use for the S3 upload
  - `presign_url` string, required — Pre-signed URL to upload the file directly to S3
  - `upload_id` string, required — Unique identifier for the upload session

## Other responses

- `400` — Bad request
- `500` — Server error

---

[API](https://skmtc.dev/zeabur/apis/zeabur-upload-api.md) · [All operations](https://skmtc.dev/zeabur/apis/zeabur-upload-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zeabur/zeabur-upload-api/revisions/31b26ce3df6c/schema)
