Generate Premiere Pro XML sequence
curl --request POST \
--url http://localhost:6699/api/v1/export/premiere-xml \
--header 'Content-Type: application/json' \
--header 'X-License-Key: <api-key>' \
--data '
{
"clips": [
{
"source_path": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"fps": 123,
"fps_timebase": 123,
"fps_ntsc": true,
"source_duration_seconds": 123,
"label": "<string>",
"track": "both",
"track_index": 1,
"video_track_index": 2,
"audio_track_index": 2,
"timeline_start_seconds": 123,
"has_audio": true,
"audio_channels": 123,
"audio_sample_rate": 123
}
],
"output_path": "<string>",
"sequence_name": "Untitled Sequence",
"timebase": 123,
"ntsc": true
}
'import requests
url = "http://localhost:6699/api/v1/export/premiere-xml"
payload = {
"clips": [
{
"source_path": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"fps": 123,
"fps_timebase": 123,
"fps_ntsc": True,
"source_duration_seconds": 123,
"label": "<string>",
"track": "both",
"track_index": 1,
"video_track_index": 2,
"audio_track_index": 2,
"timeline_start_seconds": 123,
"has_audio": True,
"audio_channels": 123,
"audio_sample_rate": 123
}
],
"output_path": "<string>",
"sequence_name": "Untitled Sequence",
"timebase": 123,
"ntsc": True
}
headers = {
"X-License-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-License-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
clips: [
{
source_path: '<string>',
start_seconds: 123,
end_seconds: 123,
fps: 123,
fps_timebase: 123,
fps_ntsc: true,
source_duration_seconds: 123,
label: '<string>',
track: 'both',
track_index: 1,
video_track_index: 2,
audio_track_index: 2,
timeline_start_seconds: 123,
has_audio: true,
audio_channels: 123,
audio_sample_rate: 123
}
],
output_path: '<string>',
sequence_name: 'Untitled Sequence',
timebase: 123,
ntsc: true
})
};
fetch('http://localhost:6699/api/v1/export/premiere-xml', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "6699",
CURLOPT_URL => "http://localhost:6699/api/v1/export/premiere-xml",
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([
'clips' => [
[
'source_path' => '<string>',
'start_seconds' => 123,
'end_seconds' => 123,
'fps' => 123,
'fps_timebase' => 123,
'fps_ntsc' => true,
'source_duration_seconds' => 123,
'label' => '<string>',
'track' => 'both',
'track_index' => 1,
'video_track_index' => 2,
'audio_track_index' => 2,
'timeline_start_seconds' => 123,
'has_audio' => true,
'audio_channels' => 123,
'audio_sample_rate' => 123
]
],
'output_path' => '<string>',
'sequence_name' => 'Untitled Sequence',
'timebase' => 123,
'ntsc' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-License-Key: <api-key>"
],
]);
$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 := "http://localhost:6699/api/v1/export/premiere-xml"
payload := strings.NewReader("{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-License-Key", "<api-key>")
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("http://localhost:6699/api/v1/export/premiere-xml")
.header("X-License-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:6699/api/v1/export/premiere-xml")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["X-License-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}"
response = http.request(request)
puts response.read_body{
"output_path": "<string>",
"clip_count": 123,
"total_duration_seconds": 123
}Export
Generate Premiere Pro XML sequence
Generates a Premiere Pro compatible XML sequence file (XMEML v4) from a list of clips. The XML can be imported into Premiere Pro, DaVinci Resolve, Avid, or other NLEs.
POST
/
export
/
premiere-xml
Generate Premiere Pro XML sequence
curl --request POST \
--url http://localhost:6699/api/v1/export/premiere-xml \
--header 'Content-Type: application/json' \
--header 'X-License-Key: <api-key>' \
--data '
{
"clips": [
{
"source_path": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"fps": 123,
"fps_timebase": 123,
"fps_ntsc": true,
"source_duration_seconds": 123,
"label": "<string>",
"track": "both",
"track_index": 1,
"video_track_index": 2,
"audio_track_index": 2,
"timeline_start_seconds": 123,
"has_audio": true,
"audio_channels": 123,
"audio_sample_rate": 123
}
],
"output_path": "<string>",
"sequence_name": "Untitled Sequence",
"timebase": 123,
"ntsc": true
}
'import requests
url = "http://localhost:6699/api/v1/export/premiere-xml"
payload = {
"clips": [
{
"source_path": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"fps": 123,
"fps_timebase": 123,
"fps_ntsc": True,
"source_duration_seconds": 123,
"label": "<string>",
"track": "both",
"track_index": 1,
"video_track_index": 2,
"audio_track_index": 2,
"timeline_start_seconds": 123,
"has_audio": True,
"audio_channels": 123,
"audio_sample_rate": 123
}
],
"output_path": "<string>",
"sequence_name": "Untitled Sequence",
"timebase": 123,
"ntsc": True
}
headers = {
"X-License-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-License-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
clips: [
{
source_path: '<string>',
start_seconds: 123,
end_seconds: 123,
fps: 123,
fps_timebase: 123,
fps_ntsc: true,
source_duration_seconds: 123,
label: '<string>',
track: 'both',
track_index: 1,
video_track_index: 2,
audio_track_index: 2,
timeline_start_seconds: 123,
has_audio: true,
audio_channels: 123,
audio_sample_rate: 123
}
],
output_path: '<string>',
sequence_name: 'Untitled Sequence',
timebase: 123,
ntsc: true
})
};
fetch('http://localhost:6699/api/v1/export/premiere-xml', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "6699",
CURLOPT_URL => "http://localhost:6699/api/v1/export/premiere-xml",
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([
'clips' => [
[
'source_path' => '<string>',
'start_seconds' => 123,
'end_seconds' => 123,
'fps' => 123,
'fps_timebase' => 123,
'fps_ntsc' => true,
'source_duration_seconds' => 123,
'label' => '<string>',
'track' => 'both',
'track_index' => 1,
'video_track_index' => 2,
'audio_track_index' => 2,
'timeline_start_seconds' => 123,
'has_audio' => true,
'audio_channels' => 123,
'audio_sample_rate' => 123
]
],
'output_path' => '<string>',
'sequence_name' => 'Untitled Sequence',
'timebase' => 123,
'ntsc' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-License-Key: <api-key>"
],
]);
$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 := "http://localhost:6699/api/v1/export/premiere-xml"
payload := strings.NewReader("{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-License-Key", "<api-key>")
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("http://localhost:6699/api/v1/export/premiere-xml")
.header("X-License-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:6699/api/v1/export/premiere-xml")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["X-License-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clips\": [\n {\n \"source_path\": \"<string>\",\n \"start_seconds\": 123,\n \"end_seconds\": 123,\n \"fps\": 123,\n \"fps_timebase\": 123,\n \"fps_ntsc\": true,\n \"source_duration_seconds\": 123,\n \"label\": \"<string>\",\n \"track\": \"both\",\n \"track_index\": 1,\n \"video_track_index\": 2,\n \"audio_track_index\": 2,\n \"timeline_start_seconds\": 123,\n \"has_audio\": true,\n \"audio_channels\": 123,\n \"audio_sample_rate\": 123\n }\n ],\n \"output_path\": \"<string>\",\n \"sequence_name\": \"Untitled Sequence\",\n \"timebase\": 123,\n \"ntsc\": true\n}"
response = http.request(request)
puts response.read_body{
"output_path": "<string>",
"clip_count": 123,
"total_duration_seconds": 123
}Authorizations
Raw Jumper Pro license key on every authenticated request, without a Bearer prefix
Body
application/json
Show child attributes
Show child attributes
Where to write the XML file
Name of the sequence in the NLE
Nominal sequence timebase (e.g. 24, 25, 30); inferred from the first clip fps, otherwise 24
Applies the NTSC 1000/1001 rate reduction; inferred from the first clip fps when omitted
Last modified on October 11, 2026
Was this page helpful?

