Duplicate a video
curl --request POST \
--url https://api.vturb.com/v1/videos/{id}/duplicates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Landing hero (v2)"
}
'import requests
url = "https://api.vturb.com/v1/videos/{id}/duplicates"
payload = { "name": "Landing hero (v2)" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Landing hero (v2)'})
};
fetch('https://api.vturb.com/v1/videos/{id}/duplicates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vturb.com/v1/videos/{id}/duplicates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Landing hero (v2)'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vturb.com/v1/videos/{id}/duplicates"
payload := strings.NewReader("{\n \"name\": \"Landing hero (v2)\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vturb.com/v1/videos/{id}/duplicates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Landing hero (v2)\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vturb.com/v1/videos/{id}/duplicates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Landing hero (v2)\"\n}"
response = http.request(request)
puts response.read_body{
"id": "652f2b1e8f1b2c3d4e5f6a7c",
"status": "ready",
"controls": {
"backward": null,
"big_play": null,
"forward": null,
"fullscreen": null,
"play_pause": null,
"seekbar": null,
"time": null,
"volume": null,
"fake_bar": null,
"speed": null
},
"call_actions": {
"enabled": false,
"items": []
},
"alternative_video": {
"enabled": null,
"id": null
},
"traffic_filter": {
"enabled": null,
"fallback_video_id": null,
"token": null,
"languages": null,
"countries": null,
"devices": null,
"query_params": null,
"block_proxy": null
},
"name": "Copy of Landing hero",
"description": null,
"folder_id": null,
"styles": {
"background_color": null,
"foreground_color": null,
"border_radius": null,
"linear_gradient": {
"enabled": null,
"angle": null,
"primary_color": null,
"primary_stop": null,
"secondary_color": null,
"secondary_stop": null
}
},
"general": {
"currency": null,
"pitch_time": null,
"preload_type": null,
"start_quality": null
},
"immersive_mode": {
"enabled": null,
"desktop": null,
"disable_scrolling": null,
"expand_on_play": null,
"minimize_on_pause": null,
"mobile": null
},
"mini_hooks": {
"enabled": null,
"elements": []
},
"pixels": {
"enabled": null,
"items": []
},
"playback": {
"enabled": null,
"disable_pause": null,
"scroll_to_action_in": null,
"smart_pause": null,
"action_after_finish": {
"type": null,
"start": null
}
},
"subtitle": {
"enabled": null,
"control": null,
"track": {
"name": null,
"url": null
},
"style": {
"font_size": null,
"color": null,
"background_color": null,
"text_align": null,
"bottom": null,
"max_width": null,
"show_by_default": null
}
},
"thumbsniper": {
"enabled": null,
"background_color": null,
"images": {
"start": null,
"pause": null,
"finish": null
},
"cards": []
},
"turbo": {
"enabled": null,
"mode": "single",
"speed": null
},
"headline": {
"enabled": null,
"mode": "single",
"active_number": null,
"variants": []
},
"progress_bar": {
"enabled": null,
"height": null,
"use_base_color": null,
"current_color": null,
"color": null
},
"resume": {
"enabled": null,
"disable_pause": null,
"styles": {
"background_color": null,
"foreground_color": null
},
"texts": {
"play": null,
"replay": null,
"title": null
}
},
"smart_autoplay": {
"enabled": null,
"mode": "single",
"active_number": null,
"variants": []
}
}{
"type": "https://docs.vturb.com/errors/unprocessable_content",
"code": "unprocessable_content",
"message": "The request is invalid. See errors for the fields that failed.",
"request_id": "00000000-0000-0000-0000-000000000000",
"errors": [
{
"field": "base",
"message": "Player video is required"
}
]
}Authorizations
Paste your VTurb API token (vt_...). Sent as Authorization: Bearer <token>.
Path Parameters
Body
Optional name for the copy, used as-is. Omit it to get the source's name with the default copy prefix.
255"Landing hero (v2)"
Response
Creates a copy of the video under a new id. Analytics and A/B test results are not copied. Send name to name the copy; omit it and the copy takes the source's name with a default prefix.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.vturb.com/v1/videos/{id}/duplicates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Landing hero (v2)"
}
'import requests
url = "https://api.vturb.com/v1/videos/{id}/duplicates"
payload = { "name": "Landing hero (v2)" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Landing hero (v2)'})
};
fetch('https://api.vturb.com/v1/videos/{id}/duplicates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vturb.com/v1/videos/{id}/duplicates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Landing hero (v2)'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vturb.com/v1/videos/{id}/duplicates"
payload := strings.NewReader("{\n \"name\": \"Landing hero (v2)\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vturb.com/v1/videos/{id}/duplicates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Landing hero (v2)\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vturb.com/v1/videos/{id}/duplicates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Landing hero (v2)\"\n}"
response = http.request(request)
puts response.read_body{
"id": "652f2b1e8f1b2c3d4e5f6a7c",
"status": "ready",
"controls": {
"backward": null,
"big_play": null,
"forward": null,
"fullscreen": null,
"play_pause": null,
"seekbar": null,
"time": null,
"volume": null,
"fake_bar": null,
"speed": null
},
"call_actions": {
"enabled": false,
"items": []
},
"alternative_video": {
"enabled": null,
"id": null
},
"traffic_filter": {
"enabled": null,
"fallback_video_id": null,
"token": null,
"languages": null,
"countries": null,
"devices": null,
"query_params": null,
"block_proxy": null
},
"name": "Copy of Landing hero",
"description": null,
"folder_id": null,
"styles": {
"background_color": null,
"foreground_color": null,
"border_radius": null,
"linear_gradient": {
"enabled": null,
"angle": null,
"primary_color": null,
"primary_stop": null,
"secondary_color": null,
"secondary_stop": null
}
},
"general": {
"currency": null,
"pitch_time": null,
"preload_type": null,
"start_quality": null
},
"immersive_mode": {
"enabled": null,
"desktop": null,
"disable_scrolling": null,
"expand_on_play": null,
"minimize_on_pause": null,
"mobile": null
},
"mini_hooks": {
"enabled": null,
"elements": []
},
"pixels": {
"enabled": null,
"items": []
},
"playback": {
"enabled": null,
"disable_pause": null,
"scroll_to_action_in": null,
"smart_pause": null,
"action_after_finish": {
"type": null,
"start": null
}
},
"subtitle": {
"enabled": null,
"control": null,
"track": {
"name": null,
"url": null
},
"style": {
"font_size": null,
"color": null,
"background_color": null,
"text_align": null,
"bottom": null,
"max_width": null,
"show_by_default": null
}
},
"thumbsniper": {
"enabled": null,
"background_color": null,
"images": {
"start": null,
"pause": null,
"finish": null
},
"cards": []
},
"turbo": {
"enabled": null,
"mode": "single",
"speed": null
},
"headline": {
"enabled": null,
"mode": "single",
"active_number": null,
"variants": []
},
"progress_bar": {
"enabled": null,
"height": null,
"use_base_color": null,
"current_color": null,
"color": null
},
"resume": {
"enabled": null,
"disable_pause": null,
"styles": {
"background_color": null,
"foreground_color": null
},
"texts": {
"play": null,
"replay": null,
"title": null
}
},
"smart_autoplay": {
"enabled": null,
"mode": "single",
"active_number": null,
"variants": []
}
}{
"type": "https://docs.vturb.com/errors/unprocessable_content",
"code": "unprocessable_content",
"message": "The request is invalid. See errors for the fields that failed.",
"request_id": "00000000-0000-0000-0000-000000000000",
"errors": [
{
"field": "base",
"message": "Player video is required"
}
]
}