---
title: "Cancel a direct upload"
method: DELETE
path: "/api/v1/projects/{projectId}/upload"
tags: ["Sources"]
---

# Cancel a direct upload

`DELETE /api/v1/projects/{projectId}/upload`

## Request

- Base URL: `https://prismclip.com`
- URL: `https://prismclip.com/api/v1/projects/{projectId}/upload`
- Auth: HTTP bearer

Abort an active multipart upload owned by the API-key account and mark its project cancelled. Send the upload session ID in X-PrismClip-Upload-Id.

## Path parameters

- `projectId` string, uuid, required

## Headers

- `X-PrismClip-Upload-Id` string, required: Opaque multipart upload session ID returned when the project was created

## Response `200`

The cancelled project.

- object
  - `project` object, required
    - `id` string, uuid, required
    - `filename` string, required
    - `mimeType` string, required
    - `byteLength` integer, required
    - `durationMs` integer, nullable, required
    - `width` integer, nullable, required
    - `height` integer, nullable, required
    - `status` string, required
    - `claim` string, required
    - `targetSeconds` integer, required
    - `activeMomentSetId` string, uuid, nullable, required
    - `activeRenderVariantId` string, uuid, nullable, required
    - `error` string, nullable, required
    - `createdAt` string, required: ISO 8601 timestamp
    - `updatedAt` string, required: ISO 8601 timestamp
  - `cancelled` true, required

## Other responses

- `401`: The API key is missing or invalid.
- `403`: The API key lacks projects:write.
- `404`: The owned project was not found.
- `409`: The upload session or project state does not match.
- `429`: The API-key rate limit was exceeded.
- `503`: Project or object storage is unavailable.

---

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