---
title: "Create Upload"
method: POST
path: "/v1/uploads"
---

# Create Upload

`POST /v1/uploads`

## Request

- Base URL: `https://api.segly.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.segly.io/v1/uploads`
- Auth: HTTP bearer

## Request body

- UploadCreateRequest
  - `filename` string, required
  - `content_type` 'image/png' | 'image/jpeg' | 'image/webp', required
  - `size_bytes` integer, required
  - `sha256` string, required

## Response `201`

Successful Response

- UploadResource
  - `id` string, required
  - `status` 'pending' | 'uploaded' | 'ready' | 'deleted' | 'expired', required
  - `filename` string, required
  - `content_type` string, required
  - `size_bytes` integer, required
  - `sha256` string, required
  - `width` integer, nullable
  - `height` integer, nullable
  - `expires_at` string, date-time, required
  - `upload` SignedUploadTarget
    - `method` 'PUT'
    - `url` string, required
    - `headers` object, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/segly/apis/segly-io-api.md) · [All operations](https://skmtc.dev/segly/apis/segly-io-api/llms.txt) · [OpenAPI document](https://skmtc.dev/segly/apis/segly-io-api/revisions/f831b05317d0?raw)
