---
title: "Refresh Upload Url"
method: POST
path: "/v1/content/{content_id}/upload-url"
---

# Refresh Upload Url

`POST /v1/content/{content_id}/upload-url`

Recover an upload whose Mux URL expired, or cancel its Mux session.

Before minting anything the server asks Mux about the OLD upload: if it
actually completed (the client's final-chunk ack was lost), the existing
asset is ADOPTED onto this row instead of being orphaned — a fresh URL
here would strand a live, billed Mux asset whose webhook no longer
matches any mapping (upload-sdk spec §6.3/§8.3).

The guard accepts "errored" rows with no asset in addition to
"waiting_for_upload": the status-sync poller flips timed-out uploads to
errored, and that is exactly the state a client returning after a long
gap finds.

## Path parameters

- `content_id` string, uuid, required

## Request body

- UploadUrlRequest — Body for POST /v1/content/{id}/upload-url. cancel=true releases the Mux upload session (client cancel()); the default (false) re-mints a fresh upload URL for the same content row.
  - `cancel` boolean

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/shortkit/apis/shortkit-api.md) · [All operations](https://skmtc.net/shortkit/apis/shortkit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shortkit/shortkit-api/versions/4ff6d068cf75/schema)
