curl --request POST \
--url https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"job_name": "My Transcoding Job",
"usage": {
"input": {
"variables": [
{
"default": [
"1"
],
"value": [
"2"
]
}
],
"media_nicknames": [
{
"files": [
"<string>"
]
}
],
"attachments": [
{
"file": "<string>"
}
],
"labels": [
{
"parameters": [
{
"default_value": [
"1"
],
"value": [
"2"
],
"description": [
"This parameter controls the number of audio channels."
],
"minimum_value": [
"1"
],
"maximum_value": [
"10"
],
"increment_value": [
"1"
],
"options": [
{
"options": {
"option1": [
"red"
],
"option2": [
"green"
],
"option3": [
"blue"
]
}
}
]
}
]
}
]
}
}
}
'import requests
url = "https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs"
payload = {
"job_name": "My Transcoding Job",
"usage": { "input": {
"variables": [
{
"default": ["1"],
"value": ["2"]
}
],
"media_nicknames": [{ "files": ["<string>"] }],
"attachments": [{ "file": "<string>" }],
"labels": [{ "parameters": [
{
"default_value": ["1"],
"value": ["2"],
"description": ["This parameter controls the number of audio channels."],
"minimum_value": ["1"],
"maximum_value": ["10"],
"increment_value": ["1"],
"options": [{ "options": {
"option1": ["red"],
"option2": ["green"],
"option3": ["blue"]
} }]
}
] }]
} }
}
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({
job_name: 'My Transcoding Job',
usage: {
input: {
variables: [{default: ['1'], value: ['2']}],
media_nicknames: [{files: ['<string>']}],
attachments: [{file: '<string>'}],
labels: [
{
parameters: [
{
default_value: ['1'],
value: ['2'],
description: ['This parameter controls the number of audio channels.'],
minimum_value: ['1'],
maximum_value: ['10'],
increment_value: ['1'],
options: [{options: {option1: ['red'], option2: ['green'], option3: ['blue']}}]
}
]
}
]
}
}
})
};
fetch('https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs', 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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs",
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([
'job_name' => 'My Transcoding Job',
'usage' => [
'input' => [
'variables' => [
[
'default' => [
'1'
],
'value' => [
'2'
]
]
],
'media_nicknames' => [
[
'files' => [
'<string>'
]
]
],
'attachments' => [
[
'file' => '<string>'
]
],
'labels' => [
[
'parameters' => [
[
'default_value' => [
'1'
],
'value' => [
'2'
],
'description' => [
'This parameter controls the number of audio channels.'
],
'minimum_value' => [
'1'
],
'maximum_value' => [
'10'
],
'increment_value' => [
'1'
],
'options' => [
[
'options' => [
'option1' => [
'red'
],
'option2' => [
'green'
],
'option3' => [
'blue'
]
]
]
]
]
]
]
]
]
]
]),
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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs"
payload := strings.NewReader("{\n \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs")
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 \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": [
"e75e68e192e6fc04ea3940d302d7bec5"
],
"name": [
"Sample Workflow Job Name"
],
"workflow_id": [
"e3c908ad-dc8f-4edb-88f7-c84dec0aef99"
],
"workflow_name": [
"MyWorkflow"
],
"progress": [
90
],
"state": [
"in-process",
"succeeded",
"failed"
],
"workflow_version": "<string>",
"created_at": [
"2020-01-21T15:53:12.388317Z"
],
"updated_at": [
"2020-01-22T15:53:12.182617Z"
],
"elapsed_time": [
"136.08:01:23.5",
"1:23:45"
]
}{
"code": 500,
"message": "An unexpected error occurred"
}{
"error_message": "You don't have permission to access this resource"
}{
"error_message": "404 Not found"
}{
"errors": {
"store_id": "Store with given ID does not exist or is invalid"
}
}{
"error_message": "500 internal error"
}Submit a job to the workflow with the specified identifier.
Submit a job to the workflow with the specified identifier. The workflow must be active in order for this call to be made.
curl --request POST \
--url https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"job_name": "My Transcoding Job",
"usage": {
"input": {
"variables": [
{
"default": [
"1"
],
"value": [
"2"
]
}
],
"media_nicknames": [
{
"files": [
"<string>"
]
}
],
"attachments": [
{
"file": "<string>"
}
],
"labels": [
{
"parameters": [
{
"default_value": [
"1"
],
"value": [
"2"
],
"description": [
"This parameter controls the number of audio channels."
],
"minimum_value": [
"1"
],
"maximum_value": [
"10"
],
"increment_value": [
"1"
],
"options": [
{
"options": {
"option1": [
"red"
],
"option2": [
"green"
],
"option3": [
"blue"
]
}
}
]
}
]
}
]
}
}
}
'import requests
url = "https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs"
payload = {
"job_name": "My Transcoding Job",
"usage": { "input": {
"variables": [
{
"default": ["1"],
"value": ["2"]
}
],
"media_nicknames": [{ "files": ["<string>"] }],
"attachments": [{ "file": "<string>" }],
"labels": [{ "parameters": [
{
"default_value": ["1"],
"value": ["2"],
"description": ["This parameter controls the number of audio channels."],
"minimum_value": ["1"],
"maximum_value": ["10"],
"increment_value": ["1"],
"options": [{ "options": {
"option1": ["red"],
"option2": ["green"],
"option3": ["blue"]
} }]
}
] }]
} }
}
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({
job_name: 'My Transcoding Job',
usage: {
input: {
variables: [{default: ['1'], value: ['2']}],
media_nicknames: [{files: ['<string>']}],
attachments: [{file: '<string>'}],
labels: [
{
parameters: [
{
default_value: ['1'],
value: ['2'],
description: ['This parameter controls the number of audio channels.'],
minimum_value: ['1'],
maximum_value: ['10'],
increment_value: ['1'],
options: [{options: {option1: ['red'], option2: ['green'], option3: ['blue']}}]
}
]
}
]
}
}
})
};
fetch('https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs', 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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs",
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([
'job_name' => 'My Transcoding Job',
'usage' => [
'input' => [
'variables' => [
[
'default' => [
'1'
],
'value' => [
'2'
]
]
],
'media_nicknames' => [
[
'files' => [
'<string>'
]
]
],
'attachments' => [
[
'file' => '<string>'
]
],
'labels' => [
[
'parameters' => [
[
'default_value' => [
'1'
],
'value' => [
'2'
],
'description' => [
'This parameter controls the number of audio channels.'
],
'minimum_value' => [
'1'
],
'maximum_value' => [
'10'
],
'increment_value' => [
'1'
],
'options' => [
[
'options' => [
'option1' => [
'red'
],
'option2' => [
'green'
],
'option3' => [
'blue'
]
]
]
]
]
]
]
]
]
]
]),
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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs"
payload := strings.NewReader("{\n \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\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.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.up.telestream.com/workflow/api/v1/{space_id}/workflows/{workflow_id}/jobs")
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 \"job_name\": \"My Transcoding Job\",\n \"usage\": {\n \"input\": {\n \"variables\": [\n {\n \"default\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ]\n }\n ],\n \"media_nicknames\": [\n {\n \"files\": [\n \"<string>\"\n ]\n }\n ],\n \"attachments\": [\n {\n \"file\": \"<string>\"\n }\n ],\n \"labels\": [\n {\n \"parameters\": [\n {\n \"default_value\": [\n \"1\"\n ],\n \"value\": [\n \"2\"\n ],\n \"description\": [\n \"This parameter controls the number of audio channels.\"\n ],\n \"minimum_value\": [\n \"1\"\n ],\n \"maximum_value\": [\n \"10\"\n ],\n \"increment_value\": [\n \"1\"\n ],\n \"options\": [\n {\n \"options\": {\n \"option1\": [\n \"red\"\n ],\n \"option2\": [\n \"green\"\n ],\n \"option3\": [\n \"blue\"\n ]\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": [
"e75e68e192e6fc04ea3940d302d7bec5"
],
"name": [
"Sample Workflow Job Name"
],
"workflow_id": [
"e3c908ad-dc8f-4edb-88f7-c84dec0aef99"
],
"workflow_name": [
"MyWorkflow"
],
"progress": [
90
],
"state": [
"in-process",
"succeeded",
"failed"
],
"workflow_version": "<string>",
"created_at": [
"2020-01-21T15:53:12.388317Z"
],
"updated_at": [
"2020-01-22T15:53:12.182617Z"
],
"elapsed_time": [
"136.08:01:23.5",
"1:23:45"
]
}{
"code": 500,
"message": "An unexpected error occurred"
}{
"error_message": "You don't have permission to access this resource"
}{
"error_message": "404 Not found"
}{
"errors": {
"store_id": "Store with given ID does not exist or is invalid"
}
}{
"error_message": "500 internal error"
}Authorizations
API key passed as a Bearer token in the Authorization header
Path Parameters
UP Space Id
"d290f1ee-6c54-4b01-90e6-d701748f0851"
Unique identifier of a Workflow
"e3c908ad-dc8f-4edb-88f7-c84dec0aef99"
Body
Response
Job submitted successfully
Unique Job Identifier
["e75e68e192e6fc04ea3940d302d7bec5"]
Workflow Job Name
["Sample Workflow Job Name"]
The identifier of the workflow associated with this job
["e3c908ad-dc8f-4edb-88f7-c84dec0aef99"]
The name of the workflow that this job was associated with
["MyWorkflow"]
Workflow Job Progress
[90]
created, in-process, succeeded, failed, stopped, retry, malfunctioned ["in-process", "succeeded", "failed"]
Workflow Version indicates the revision name
Timestamp when Workflow Job was created as UTC time in iso8601 format
["2020-01-21T15:53:12.388317Z"]
Timestamp when Workflow Job was updated as UTC time in iso8601 format
["2020-01-22T15:53:12.182617Z"]
The elapsed time for the workflow job processing calculated as the difference between created_at and updated_at timestamps. This field is only populated when the workflow job is in a terminal state such as succeeded, failed or stopped.
["136.08:01:23.5", "1:23:45"]
