---
title: "Create a presigned temporary upload"
method: POST
path: "/uploads"
tags: ["Uploads"]
---

# Create a presigned temporary upload

`POST /uploads`

## Request

- Base URL: `https://api.promptessor.com/v1`
- URL: `https://api.promptessor.com/v1/uploads`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://auth.promptessor.com/authorize`
    - Token URL: `https://auth.promptessor.com/token` scopes: `uploads:write`

## Request body

- object
  - `scope` 'analysis' | 'refinement' | 'feedback' | 'generation' | 'reverse_image' | 'reverse_video', required
  - `filename` string, required
  - `contentType` string, required: Images: image/jpeg, image/png, image/webp, image/gif. reverse_video: video/mp4, video/quicktime, video/webm.
  - `size` integer, required: Maximum 5 MB for images and 100 MB for reverse_video.

## Response `200`

Success

- object
  - `data` UploadCreation, required
    - `id` string, required
    - `status` 'pending', required
    - `uploadUrl` string, uri, required
    - `requiredHeaders` object, required
    - `uploadUrlExpiresAt` string, date-time, required
    - `assetExpiresAt` string, date-time, required
  - `requestId` string, required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `403`: Insufficient scope or plan entitlement
- `429`: Rate, concurrency, usage, or active-resource limit reached
- `500`: Unexpected server failure
- `503`: A required dependent service is unavailable

---

[API](https://skmtc.dev/promptessor/apis/promptessor-public-api.md) - [All operations](https://skmtc.dev/promptessor/apis/promptessor-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/promptessor/apis/promptessor-public-api/revisions/b77103396027?raw)
