---
title: "Generate a MediaLit upload signature"
method: POST
path: "/api/media/presigned"
tags: ["Media Uploads"]
---

# Generate a MediaLit upload signature

`POST /api/media/presigned`

Returns a short-lived upload signature and endpoint for direct file uploads. See `https://docs.medialit.cloud/api/uploadMedia` for the upload request format.

## Response `200`

MediaLit upload signature generated successfully.

- MediaPresignedResponse
  - `signature` string, required — MediaLit upload signature. Send this as the `x-medialit-signature` header to MediaLit.
  - `endpoint` string, uri, required — MediaLit server endpoint. Upload files directly to `${endpoint}/media/create` for multipart uploads or `${endpoint}/media/create/resumable` for TUS resumable uploads.

## Other responses

- `401` — Invalid API key, or no active CourseLit dashboard session was found for the dashboard-only auth path.
- `403` — The resolved school owner or logged-in dashboard user does not have `media:manage` permission.
- `404` — Domain not found.
- `500` — MediaLit signature generation failed.

---

[API](https://skmtc.dev/codelitdev/apis/courselit-rest-api.md) · [All operations](https://skmtc.dev/codelitdev/apis/courselit-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/codelitdev/courselit-rest-api/revisions/3b48f60910dc/schema)
