---
title: "Create an upload link"
method: POST
path: "/v1/uploads"
tags: ["Uploads"]
---

# Create an upload link

`POST /v1/uploads`

## Request

- Base URL: `https://www.postquick.ai/api`
- URL: `https://www.postquick.ai/api/v1/uploads`
- Auth: HTTP bearer

Create a one-hour link where the account owner uploads an image or video in their browser. Use this when you cannot send the file yourself (for example, a file shared in a chat). Give the user `uploadPageUrl`, wait for them to confirm, then call getUploadLink to read `mediaUrl`.

## Request body

- object
  - `mediaKind` 'image' | 'video', required: Images: JPEG, PNG, WebP, or GIF up to 10MB. Videos: MP4, WebM, or MOV up to 500MB.

## Response `201`

Upload link created.

- object
  - `success` true, required
  - `data` object, required
    - `upload` object, required
      - `id` string, required
      - `mediaKind` 'image' | 'video', required
      - `status` 'pending' | 'uploaded' | 'expired', required
      - `uploadPageUrl` string, uri, required: Page where the signed-in account owner uploads the file
      - `mediaUrl` string, uri, nullable, required: Hosted media URL once status is "uploaded". Pass it to createPost, createVideo, or createStory.
      - `expiresAt` string, date-time, required

## Other responses

- `400`: Invalid mediaKind.

---

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