---
title: "Mint presigned upload URL"
method: POST
path: "/api/v1/media/upload-url"
tags: ["Media"]
---

# Mint presigned upload URL

`POST /api/v1/media/upload-url`

## Request

- Base URL: `https://storylayer.ai`
- URL: `https://storylayer.ai/api/v1/media/upload-url`
- Auth: HTTP bearer

Mint presigned upload URL

## Request body

- RequestUploadUrlRequest
  - `project_id` string, uuid, required
  - `filename` string, required
  - `content_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'video/mp4', required

## Response `200`

Success

- UploadUrlResponse
  - `upload_url` string, uri
  - `file_url` string, uri
  - `expires_at` string, date-time

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

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