Update video
# Update video
Updates video title, description, status, translations, and visibility. The status can only be changed to active or inactive, and only when the current status is active or inactive, not while the video is still uploading (pending).
PATCH
/api/v1/:team_slug/:app_slug/videos/:video_id
PurposeUpdates video title, description, status, translations, and visibility.
Required inputsapp_slug path team_slug path video_id path
Primary response200 ยท Video updated successfully
Operation keymanagement-api:PATCH:/api/v1/:team_slug/:app_slug/videos/:video_id
## API ownership
- API family: Management API
- Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
- Do not use from: Browser-only storefront code or public clients.
- Guide route: [/apis/management/latest](/apis/management/latest)
The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.
## Operation
- Method: `PATCH`
- Path: `/api/v1/:team_slug/:app_slug/videos/:video_id`
- Summary: Update video
- Description: Updates video title, description, status, translations, and visibility. The status can only be changed to active or inactive, and only when the current status is active or inactive, not while the video is still uploading (pending).
- OpenAPI contract:
management-api
- Operation ID: Not documented in the OpenAPI contract.
- Stable operation key: `management-api:PATCH:/api/v1/:team_slug/:app_slug/videos/:video_id`
Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.
## Parameters
| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| app_slug | path | Yes | string | App slug |
| team_slug | path | Yes | string | Team slug |
| video_id | path | Yes | string | Video ID |
## Request body
- Required: Yes
- Description: Video data
- Content: application/json (object)
### Update Video Payload
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `description` | string | No | - |
| `public` | boolean | No | - |
| `status` | enum("active", "inactive") | No | - |
| `title` | string | No | minLength: 1 |
| `translations` | object | No | - |
#### Update Video Translations
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `description` | object[] | No | - |
| `title` | object[] | No | - |
#### Video Translation Value
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `locale` | string | Yes | - |
| `value` | string | No | - |
**Generated example (synthetic):**
```json
{
"description": "string",
"public": false,
"status": "active",
"title": "string",
"translations": {
"description": [
{
"locale": "string",
"value": "string"
}
],
"title": [
{
"locale": "string",
"value": "string"
}
]
}
}
```
## Responses
| Status | Description | Content |
| --- | --- | --- |
| 200 | Video updated successfully | application/json (object) |
| 400 | Invalid request | application/json (object) |
| 401 | Unauthorized access | application/json (object) |
| 404 | Video not found | application/json (object) |
| 500 | Internal server error | application/json (object) |
### 200 - object
#### Update Video Response
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `data` | object | No | - |
| `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes |
| `success` | boolean | No | - |
##### Video
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `attributes` | object[] | No | - |
| `description` | string | No | - |
| `folder_id` | string | No | - |
| `id` | string | No | - |
| `path` | string | No | - |
| `public` | boolean | No | - |
| `status` | string | No | - |
| `title` | string | No | - |
| `translations` | object | No | - |
| `variants` | object[] | No | - |
##### Attribute
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `created_at` | string | No | - |
| `description` | string | No | - |
| `filterable` | boolean | No | - |
| `id` | string | No | - |
| `key` | string | No | - |
| `name` | string | No | - |
| `template_key` | string | No | - |
| `template_name` | string | No | - |
| `translatable` | boolean | No | - |
| `translations` | object | No | - |
| `updated_at` | string | No | - |
| `values` | object | No | - |
##### Video Translations
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `description` | object[] | No | - |
| `title` | object[] | No | - |
##### Video Variant
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `format` | string | No | - |
| `height` | integer | No | - |
| `url` | string | No | - |
| `width` | integer | No | - |
Generated example (synthetic)
```json
{
"data": {
"attributes": [
{
"created_at": "string",
"description": "string",
"filterable": false,
"id": "string",
"key": "string",
"name": "string",
"template_key": "string",
"template_name": "string",
"translatable": false,
"translations": {
"description": null,
"name": null
},
"updated_at": "string",
"values": {}
}
],
"description": "string",
"folder_id": "string",
"id": "string",
"path": "string",
"public": false,
"status": "string",
"title": "string",
"translations": {
"description": [
{
"id": null,
"locale": null,
"value": null
}
],
"title": [
{
"id": null,
"locale": null,
"value": null
}
]
},
"variants": [
{
"format": "string",
"height": 0,
"url": "string",
"width": 0
}
]
},
"details": [
"string"
],
"success": false
}
```
### 400 - object
#### Error Message
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `details` | string[] | No | - |
| `message` | string | No | - |
| `success` | boolean | No | - |
**Generated example (synthetic):**
```json
{
"details": [
"string"
],
"message": "string",
"success": false
}
```
### 401 - object
#### Error Message
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `details` | string[] | No | - |
| `message` | string | No | - |
| `success` | boolean | No | - |
**Generated example (synthetic):**
```json
{
"details": [
"string"
],
"message": "string",
"success": false
}
```
### 404 - object
#### Error Message
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `details` | string[] | No | - |
| `message` | string | No | - |
| `success` | boolean | No | - |
**Generated example (synthetic):**
```json
{
"details": [
"string"
],
"message": "string",
"success": false
}
```
### 500 - object
#### Error Message
| Property | Type | Required | Details |
| --- | --- | --- | --- |
| `details` | string[] | No | - |
| `message` | string | No | - |
| `success` | boolean | No | - |
**Generated example (synthetic):**
```json
{
"details": [
"string"
],
"message": "string",
"success": false
}
```
## Contract identity
Use these fields to confirm you are implementing the intended endpoint contract.
- API family: Management API
- Method: `PATCH`
- Path: `/api/v1/:team_slug/:app_slug/videos/:video_id`
- Operation ID: Not documented in the OpenAPI contract.
- Stable operation key: `management-api:PATCH:/api/v1/:team_slug/:app_slug/videos/:video_id`
- OpenAPI tag: Videos
- OpenAPI summary: Update video