---
title: "Presign Upload"
method: POST
path: "/v1/uploads/presign"
---

# Presign Upload

`POST /v1/uploads/presign`

## Request

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

## Headers

- `x-dev-user-id` string, nullable
- `x-dev-email` string, nullable

## Request body

- PresignUploadRequest
  - `filename` string, required
  - `content_type` 'audio/mpeg' | 'audio/mp3'
  - `size_bytes` integer, required

## Response `200`

Successful Response

- PresignUploadResponse
  - `upload_id` string, uuid, required
  - `object_key` string, required
  - `method` 'PUT', required
  - `url` string, required
  - `fields` object
  - `expires_in` integer, required

## Other responses

- `422`: Validation Error

---

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