---
title: "Get a signed URL to upload scheduled-post media"
method: POST
path: "/api/v1/scheduler/upload-url"
tags: ["More"]
---

# Get a signed URL to upload scheduled-post media

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

## Request

- Base URL: `https://replyatlas.com`
- URL: `https://replyatlas.com/api/v1/scheduler/upload-url`
- Auth: HTTP bearer

**Plan: Pro & Pro+ (Post scheduler).** Returns a short-lived signed URL. PUT the file bytes to `uploadUrl` with exactly the returned `headers`, then pass `url` to the create/update endpoints. Images: JPEG/PNG/WEBP up to 8 MB. Video: MP4/MOV up to 100 MB (stories 3–60 s).

## Request body

- object
  - `kind` 'image' | 'video', required
  - `contentType` string, required
  - `bytes` integer, required

## Response `200`

uploadUrl, headers, url, objectKey, expiresAt

## Other responses

- `400`: Validation failed
- `401`: Unauthorized
- `402`: Pro+ required

---

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