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
API
Management
Updated
Apr 26, 2026

management-api:PATCH:/api/v1/:team_slug/:app_slug/videos/:video_id

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).

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

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.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters3 parameters
NameInRequiredTypeDescription
app_slugpathYesstringApp slug
team_slugpathYesstringTeam slug
video_idpathYesstringVideo ID
Request bodyDocumented body
  • Required: Yes
  • Description: Video data
  • Content: application/json (object)

Update Video Payload

PropertyTypeRequiredDetails
descriptionstringNo-
publicbooleanNo-
statusenum("active", "inactive")No-
titlestringNominLength: 1
translationsobjectNo-

Update Video Translations

PropertyTypeRequiredDetails
descriptionobject[]No-
titleobject[]No-

Video Translation Value

PropertyTypeRequiredDetails
localestringYes-
valuestringNo-

Generated example (synthetic):

{
  "description": "string",
  "public": false,
  "status": "active",
  "title": "string",
  "translations": {
    "description": [
      {
        "locale": "string",
        "value": "string"
      }
    ],
    "title": [
      {
        "locale": "string",
        "value": "string"
      }
    ]
  }
}
Responses5 statuses
StatusDescriptionContent
200Video updated successfullyapplication/json (object)
400Invalid requestapplication/json (object)
401Unauthorized accessapplication/json (object)
404Video not foundapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Update Video Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
Video
PropertyTypeRequiredDetails
attributesobject[]No-
descriptionstringNo-
folder_idstringNo-
idstringNo-
pathstringNo-
publicbooleanNo-
statusstringNo-
titlestringNo-
translationsobjectNo-
variantsobject[]No-
Attribute
PropertyTypeRequiredDetails
created_atstringNo-
descriptionstringNo-
filterablebooleanNo-
idstringNo-
keystringNo-
namestringNo-
template_keystringNo-
template_namestringNo-
translatablebooleanNo-
translationsobjectNo-
updated_atstringNo-
valuesobjectNo-
Video Translations
PropertyTypeRequiredDetails
descriptionobject[]No-
titleobject[]No-
Video Variant
PropertyTypeRequiredDetails
formatstringNo-
heightintegerNo-
urlstringNo-
widthintegerNo-
{
  "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

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

404 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "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.
  • OpenAPI tag: Videos
  • OpenAPI summary: Update video

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
Purpose

Updates video title, description, status, translations, and visibility.

Required inputs

app_slug path team_slug path video_id path

Primary response

200 ยท Video updated successfully

Operation key

management-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