---
title: "Upload media from URLs"
method: POST
path: "/media"
tags: ["Media"]
---

# Upload media from URLs

`POST /media`

Accepts 1 to 20 public image or video URLs (each max 100MB) for async download and processing. Returns 202 immediately with processing status for each item.

## Request body

- object
  - `workspaceId` string, required
  - `mediaUrls` string[], required — Array of 1 to 20 public image/video URLs to upload to the workspace media library. Each file max ~100MB.

## Response `202`

Media upload accepted for processing

- object
  - `data` object[], required
    - `id` string, required
    - `status` 'processing', required

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/planable/apis/planable-public-api.md) · [All operations](https://skmtc.net/planable/apis/planable-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/planable/planable-public-api/revisions/e91a4f756dfe/schema)
