# Abort a multipart upload
`POST https://octopus.livepush.io/streams/{stream_id}/videos/uploadurl/multipart/abort`
Abandons the session and releases the parts already written. Call this on client-side upload failure so storage is not left holding orphaned parts.

The body is whatever the storage provider returns for an abort, which is often empty. A failed abort is not reported as an error status.

Requires a token with the `streams.videos.write` scope.
- **Tag:** Videos
- **Operation ID:** `abortMultipartVideoUpload`
- **Authentication:** Bearer token required
- **Docs:** https://developers.livepush.io/videos/abort-a-multipart-upload/

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `stream_id` | string | yes | Unique identifier of the stream. |


### Request body

`application/json` (required)

- `Key` (string) **required**
- `uploadId` (string) **required**
- `zone` (string) **required**


```json
{
  "Key": "string",
  "uploadId": "string",
  "zone": "eu-central"
}
```


### Example request

```bash
curl -X POST 'https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos/uploadurl/multipart/abort' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "Key": "string",
    "uploadId": "string",
    "zone": "eu-central"
  }'
```


### Responses


#### 200 — Abort a multipart upload.

- `Location` (string) — Final object URL.
- `Bucket` (string)
- `Key` (string)
- `ETag` (string)


```json
{
  "Location": "string",
  "Bucket": "string",
  "Key": "string",
  "ETag": "string"
}
```


#### 401 — Response


#### 404 — Not found for this account.

