Video Upload / Listing Services
You can use this service to create video content for products and retrieve videos through integration services for sellers/integrators.
- You need to send "storeFrontCode" as Header Parameter.
- A seller can create only 1 active (not deleted and not rejected) video for the same productContentId.
- The video will not be shown to the end user until isApproved: true.
- All config values (file size limit, duration limits, timeout) are dynamically managed and can be changed.
- After a video is successfully downloaded (SUCCESS) and optimized, the product association is automatically removed from older videos with the same productContentId.
BATCH OPERATION CHECK
After the video creation process, you need to check the status of your videos using the videoId in the response through the Video Listing / Query service.
1. POST Create Video
Initiates the video content creation process. The video is downloaded from the given URL and processed in the background. A rate limit of 200 req/min is set.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Video title. Must be between 3-50 characters. |
| description | string | No | Video description. Maximum 500 characters. |
| videoUrl | string | Yes | URL of the video file to be downloaded. Must start with http:// or https://. Must be in a valid URL format. |
| productContentIds | string[] | Yes | A single content IDs can be associated with maximum 1 video and 1 video can be uploaded to maximum 100 different content ids. |
| videoContentType | string | No | Video content type. If not provided, it will be assigned as PRODUCT_PROMOTION. |
Valid videoContentType values:
| Value | Description |
|---|---|
| PRODUCT_PROMOTION | Product Promotion (default) |
| ASSEMBLY_AND_INSTALLATION | Assembly & Installation |
| PACKAGING | Operations (Packaging) |
| STORE_PROMOTION | Store Promotion |
| ADVERTISEMENT | Advertisement |
| PRODUCT_USAGE_AND_EXPERIENCE | Product Usage & Experience |
Example Request - Create Video
{
"title": "Product Promotion Video",
"description": "New season product promotion",
"videoUrl": "https://cdn.example.com/video.mp4",
"productContentIds": ["123456", "789012"],
"videoContentType": "PRODUCT_PROMOTION"
}Successful Response (200)
The video content is created and a videoId is returned. The video download and processing continues in the background.
{
"videoId": "627b8a1b-7bad-4eaf-9abb-99a9958540c2"
}| Field | Type | Description |
|---|---|---|
| videoId | string | UUID of the created video content. The status can be queried using this ID via the GET endpoint. |
Error Codes
Errors caused by request validations. HTTP Status: 400
| Code | Message |
|---|---|
| seller.integration.title.required | Title is required. |
| seller.integration.title.length | Title must be between 3 and 50 characters. |
| seller.integration.description.length | Description must be a maximum of 500 characters. |
| seller.integration.video.url.required | Video URL is required. |
| seller.integration.video.url.invalid | Video URL must start with http:// or https://. |
| seller.integration.product.content.ids.required | At least one product content ID is required. |
| seller.integration.product.content.ids.max | Product content ID list can contain a maximum of 100 elements. |
| seller.integration.body.required | Required fields are missing. |
| seller.integration.invalid.status | Invalid sellerIntegrationStatus value. Valid values: IN_PROGRESS, SUCCESS, FAILED. |
| seller.integration.invalid.store.front.code | Invalid storeFrontCode value. |
1. GET List / Query Videos
Lists the seller's integration videos. Specific video ID or status-based queries can be made with optional filters. A rate limit of 1000 req/min is set.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | No | - | Query by a specific video ID |
| sellerIntegrationStatus | string | No | - | Filter by integration status |
| page | number | No | 0 | Page number (starts from 0) |
| size | number | No | 10 | Number of records per page |
Valid sellerIntegrationStatus values:
| Value | Description |
|---|---|
| IN_PROGRESS | Video is being downloaded or processed |
| SUCCESS | Video was successfully downloaded |
| FAILED | Video download failed |
Example Response - List Videos
{
"meta": {
"page": 0,
"total": 2,
"totalPage": 1,
"size": 10
},
"data": [
{
"id": "627b8a1b-7bad-4eaf-9abb-99a9958540c2",
"title": "Product Promotion Video",
"description": "New season product promotion",
"status": "SUCCESS",
"videoUrl": "https://cdn.example.com/video.mp4",
"productContentIds": ["123456"],
"optimizedVideoUrl": "https://video-content.dsmcdn.com/.../video_hd.mp4",
"isApproved": true
},
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Assembly Video",
"description": "",
"status": "FAILED",
"videoUrl": "https://cdn.example.com/montaj.avi",
"productContentIds": ["789012"],
"errorCode": "video.content.api.seller.integration.video.format.invalid",
"isApproved": false
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
| id | string | Video content ID (UUID) |
| title | string | Video title |
| description | string | Video description |
| status | string | Integration status: IN_PROGRESS, SUCCESS, FAILED |
| videoUrl | string | The original video URL provided |
| productContentIds | string[] | Associated product content IDs |
| errorCode | string | Error code in case of failure (only in FAILED status) |
| optimizedVideoUrl | string \ null | Optimized video URL (only when SUCCESS and processing is complete) |
| isApproved | boolean | Video approval status. If true, the video is live; if false, it is not yet approved or is being processed. |
status and isApproved relationship:
| status | isApproved | Meaning |
|---|---|---|
| IN_PROGRESS | false | Video is being downloaded or processed |
| SUCCESS | false | Video downloaded, optimization/approval process continues |
| SUCCESS | true | Video is fully ready and live |
| FAILED | false | Video processing failed |
Video File Requirements
| Rule | Value |
|---|---|
| Supported formats | .mp4, .mov |
| Maximum file size | 500 MB |
| Minimum duration | 8 seconds |
| Maximum duration | 120 seconds (2 minutes) |
The video file extension and content (magic bytes) are verified. A file with a .mp4 extension must also have actual content in MP4 format.
Error Codes
Errors that occur during the video download and processing. Returned in the errorCode field.
| Code | Message |
|---|---|
| seller.integration.video.url.invalid | Video URL is invalid or empty. |
| seller.integration.video.format.invalid | Video format is invalid. Only .mp4 and .mov formats are supported. |
| seller.integration.video.size.exceeded | Video size exceeds the maximum allowed limit. |
| seller.integration.video.download.timeout | Video download timed out. |
| seller.integration.video.download.failed | Video download failed. |
| seller.integration.video.duration.invalid | Video duration must be between 8 and 120 seconds. |
Updated 1 day ago