LightFlow API documentation (2.0.1)

Download OpenAPI specification:Download

For information about getting started, please see Lightflow Getting Started.

Assets

An asset is a video, including the output formats used to watch it online and offline, and the set of optimizations applied to maximize the viewers quality of experience. The assets generated by LightFlow are ready to be streamed through Internet.

List assets

Return a paginated list of assets.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

creationDateFrom
string

Created date from filter (ISO date format)

creationDateTo
string

Created date to filter (ISO date format)

features
string

Features filter (perceptual-quality, perceptual-quality-per-scene, content-moderation, archive-enrichment, taxonomy-classifier, face-recognition). Provided as comma-separated string values

status
string

Status filter (queued, running, error, finished, canceled). Provided as comma-separated string values

inputUrlPath
string

Input URL filter

uuid
string

Asset UUID filter

name
string

Name filter

referenceId
string

Reference ID filter

tags
string

Tags filter

label
string

Label filter

showDemo
string

If set to true, response includes assets from demo account

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create an asset

Publish a new asset.

Authorizations:
bearerAuth
Request Body schema: application/json
label
string

The asset will be tagged with a label. Usage and billing information for assets /reports/usage-metrics can be then filtered by the label (100 characters max).

priority
number
Default: 50

Priority of the asset processing to start. Value between 0 (lowest) to 100 (highest).

object

Asset configuration.

Array of objects

List of callbacks that will be used to notify when the asset processing task is done.

object

Asset metadata.

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "priority": 50,
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "workflowId": "string",
  • "username": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24",
  • "status": "string",
  • "stage": "string",
  • "priority": 50,
  • "assetError": {
    },
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "playbackManifests": [
    ],
  • "metadata": {
    },
  • "duration": -1,
  • "transcodeRenditions": [
    ],
  • "stageTimings": {
    },
  • "statusTimings": {
    }
}

Retrieve an asset

Return the asset whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/mVvxI');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "workflowId": "string",
  • "username": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24",
  • "status": "string",
  • "stage": "string",
  • "priority": 50,
  • "assetError": {
    },
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "playbackManifests": [
    ],
  • "metadata": {
    },
  • "duration": -1,
  • "transcodeRenditions": [
    ],
  • "stageTimings": {
    },
  • "statusTimings": {
    }
}

Update asset metadata

Updates the asset metadata object with the provided data

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be updated.

Request Body schema: application/json
name
string

Name of the asset.

value
string

Value of asset.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

Delete an asset

Delete the asset whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be deleted.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/assets/90VLf');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Retrieve an asset playback info

Return the asset playback info whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/Y2lq8/playback');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "protection": {
    },
  • "playbackManifests": [
    ],
  • "rootPath": "string",
  • "imagesConfigJSON": "string",
  • "images": [
    ]
}

Delete a set of assets

Delete a set of assets

Authorizations:
bearerAuth
Request Body schema: application/json
uuids
required
Array of strings

Array of UUIDs to be deleted from Lightflow

Responses

Request samples

Content type
application/json
{
  • "uuids": [
    ]
}

Relaunch an asset

Create a new job for a previous asset and overwrites its former parameters.

Authorizations:
bearerAuth
Request Body schema: application/json
label
string

The asset will be tagged with a label. Usage and billing information for assets /reports/usage-metrics can be then filtered by the label (100 characters max).

priority
number
Default: 50

Priority of the asset processing to start. Value between 0 (lowest) to 100 (highest).

object

Asset configuration.

Array of objects

List of callbacks that will be used to notify when the asset processing task is done.

object

Asset metadata.

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "priority": 50,
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "workflowId": "string",
  • "username": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24",
  • "status": "string",
  • "stage": "string",
  • "priority": 50,
  • "assetError": {
    },
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "playbackManifests": [
    ],
  • "metadata": {
    },
  • "duration": -1,
  • "transcodeRenditions": [
    ],
  • "stageTimings": {
    },
  • "statusTimings": {
    }
}

Stop processing an asset

Cancel an asset that is being processed.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset to be cancelled.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('PUT', '/assets/DqhJ8/cancel');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Retrieve an encoding ladder

Return a JSON object with the smart encoding ladder.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose ladder should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/N0FIb/output');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": {
    }
}

Retrieve input details

Return a JSON object with the asset info.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose input details should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/ljOYP/input');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": {
    }
}

Retrieve R/D curves

Return a JSON object with the R/D curves of a processed asset.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose R/D curves should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/HEb7r/predictions');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "predictions": {
    },
  • "version": "string"
}

Retrieve results

Return a JSON object with archive enrichment results.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose archive enrichment results should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/X7cCO/archive-enrichment');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Retrieve results

Return a JSON object with content moderation results.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose content moderation results should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/OISDb/content-moderation');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Retrieve results

Return a JSON object with face recognition results.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose face recognition results should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/YSYis/face-recognition');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": {
    }
}

Retrieve results

Return a JSON object with taxonomy classifier results.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Id of the asset whose taxonomy classifier results should be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/assets/anzZ8/taxonomy-classifier');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "data": { }
}

Inputs and Outputs

Manage storage locations used as input/outputs of the assets.
Supported locations:

Google Cloud Storage
id: gcs

id description
bucket Bucket name
accessKey Access key
secretKey Secret key


AWS S3
id: s3

id description
bucket Bucket name
accessKey Access key
secretKey Secret key


Azure
id: abs

id description
bucket Bucket name
accessKey Access key
secretKey Secret key


Akamai NetStorage
id: netstorage

id description
host NetStorage hostname
username NetStorage username
password NetStorage password


FTP / SFTP
id: ftp

id description
host Hostname
port Port
username Username
password Password
secure (boolean) Is secure server


Object Matrix
id: object-matrix

id description
bucket Bucket name
accessKey Access key
secretKey Secret key


Scality
id: scality

id description
bucket Bucket name
accessKey Access key
secretKey Secret key

List input/output types

Return a paginated list of supported input/output location types. These types can be defined as asset's input, output or both.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/inputs-outputs-types');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

List input/outputs location

Return a paginated list of configured input/output location. These objects can be referenced in the asset creation process, used as input, output or both.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/inputs-outputs');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create an input/output location

Return the created input/output location.

Example:

curl -XPOST 'https://api.lightflow.media/inputs-outputs' \
  -H 'authorization: Bearer API_KEY' \
  -H 'content-type: application/json' \
  -d '{
      "storageId":"s3",
      "storageType":"input-output",
      "name":"S3 bucket",
      "args":[{
        "id":"bucket",
        "value":"custom_bucket"
      },{
        "id":"accessKey",
        "value":"access_key"
      },{
        "id":"secretKey",
        "value":"secret_key"
      }]
    }'
Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Name of the storage.

storageId
required
string

Unique identifier of the input/output storage location. See supported location types for details.

storageType
required
string

Type of the input/output storage. It can be "input", "output" or "input-output".

Array of objects

Set of arguments required by the specified storage type. See supported location types for details.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "storageId": "string",
  • "storageType": "string",
  • "args": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "storageId": "string",
  • "storageType": "string",
  • "args": [
    ]
}

Retrieve an input/output location

Return the input/output whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the input/output location to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/inputs-outputs/Nn1iX');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "storageId": "string",
  • "storageType": "string",
  • "args": [
    ]
}

Update an input/output location

Update the asset whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the input/output location to be removed.

Request Body schema: application/json
uuid
string

Unique identifier of the input/output storage location.

name
string

Name of the storage.

storageId
string

Unique identifier of the input/output storage location type. See supported location types for details.

storageType
string

Type of the input/output storage. It can be "input", "output" or "input-output".

Array of objects

Set of arguments required by the specified storage type. See supported location types for details.

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "storageId": "string",
  • "storageType": "string",
  • "args": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "storageId": "string",
  • "storageType": "string",
  • "args": [
    ]
}

Delete an input/output location

Delete the asset whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the input/output location to be removed.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/inputs-outputs/93eQe');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Encoders

Manage the list of encoders available to run transcoding jobs.

List encoders

Return a paginated list of encoders.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/encoders');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create an encoder

Create an encoder.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Name of the encoder.

type
required
string
Enum: "lightflow" "aws" "brightcovecms" "azure"

Type of the encoder.

inputUuid
string

For AWS Media Convert encoders, unique identifier of the S3 storage to be used as the default input storage.

outputUuid
string

For AWS Media Convert encoders, unique identifier of the S3 storage to be used as the default output storage.

apiKey
string

For AWS Media Convert encoders, API Key generated in AWS console to access the encoder.

apiSecret
string

For AWS Media Convert encoders, API Secret generated in AWS console to access the encoder.

endpointURL
string

For AWS Media Convert encoders, API Endpoint URL provided by AWS to access the encoder (example: https://somecode.mediaconvert.us-east-2.amazonaws.com).

queue
string

For AWS Media Convert encoders, Id of the On demand Queue. If empty, the default queue configured in AWS will be used (example: arn:aws:mediaconvert:us-east-2:1111111111111:queues/Default).

role
string

For AWS Media Convert encoders, Role to use to create encoding jobs (example: arn:aws:iam::1111111111111:role/MediaConvertRole).

clientId
string

For Brightcove based encoder, client Id of the Brightcove account.

clientSecret
string

For Brightcove based encoder, client secret of the Brightcove account.

accountId
string

For Brightcove based encoder, Id of the Brightcove account.

fallbackProfileId
string

For Brightcove based encoder, Id of the default encoding profile. It will be used in case of failure while creating a custom encoding profile for an specific asset.

tenantId
string

For Azure Media Services encoder, the Tenant Id for the Azure subscription.

client
string

For Azure Media Services encoder, Id of the Service Principal App.

key
string

For Azure Media Services encoder, the service principal password.

subscriptionId
string

For Azure Media Services encoder, the Id of the Azure susbscription.

azureAccountName
string

For Azure Media Services encoder, the Azure Media Services Account Name.

resourceGroupName
string

For Azure Media Services encoder, the Resource Group namme.

token
string

For Livepeer encoder, the service token.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "string",
  • "readonly": true,
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

Retrieve an encoder

Return the encoder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the encoder to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/encoders/UIntY');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "string",
  • "readonly": true,
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

Update an encoder

Update the encoder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the encoder to be updated.

Request Body schema: application/json
name
string

Name of the encoder.

type
string
Enum: "lightflow" "aws" "brightcovecms" "azure"

Type of the encoder.

inputUuid
string

For AWS Media Convert encoders, unique identifier of the S3 storage to be used as the default input storage.

outputUuid
string

For AWS Media Convert encoders, unique identifier of the S3 storage to be used as the default output storage.

apiKey
string

For AWS Media Convert encoders, API Key generated in AWS console to access the encoder.

apiSecret
string

For AWS Media Convert encoders, API Secret generated in AWS console to access the encoder.

endpointURL
string

For AWS Media Convert encoders, API Endpoint URL provided by AWS to access the encoder (example: https://somecode.mediaconvert.us-east-2.amazonaws.com).

queue
string

For AWS Media Convert encoders, Id of the On demand Queue. If empty, the default queue configured in AWS will be used (example: arn:aws:mediaconvert:us-east-2:1111111111111:queues/Default).

role
string

For AWS Media Convert encoders, Role to use to create encoding jobs (example: arn:aws:iam::1111111111111:role/MediaConvertRole).

clientId
string

For Brightcove based encoder, client Id of the Brightcove account.

clientSecret
string

For Brightcove based encoder, client secret of the Brightcove account.

accountId
string

For Brightcove based encoder, Id of the Brightcove account.

fallbackProfileId
string

For Brightcove based encoder, Id of the default encoding profile. It will be used in case of failure while creating a custom encoding profile for an specific asset.

tenantId
string

For Azure Media Services encoder, the Tenant Id for the Azure subscription.

client
string

For Azure Media Services encoder, Id of the Service Principal App.

key
string

For Azure Media Services encoder, the service principal password.

subscriptionId
string

For Azure Media Services encoder, the Id of the Azure susbscription.

azureAccountName
string

For Azure Media Services encoder, the Azure Media Services Account Name.

resourceGroupName
string

For Azure Media Services encoder, the Resource Group namme.

token
string

For Livepeer encoder, the service token.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "string",
  • "readonly": true,
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

Delete an encoder

Delete the encoder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the encoder.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/encoders/dOzhN');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "string",
  • "readonly": true,
  • "name": "string",
  • "type": "lightflow",
  • "inputUuid": "string",
  • "outputUuid": "string",
  • "apiKey": "string",
  • "apiSecret": "string",
  • "endpointURL": "string",
  • "queue": "string",
  • "role": "string",
  • "clientId": "string",
  • "clientSecret": "string",
  • "accountId": "string",
  • "fallbackProfileId": "string",
  • "tenantId": "string",
  • "client": "string",
  • "key": "string",
  • "subscriptionId": "string",
  • "azureAccountName": "string",
  • "resourceGroupName": "string",
  • "token": "string"
}

DRM Providers

Manage the DRM providers available to protect your assets.

List DRM providers

Return a paginated list of DRM providers.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/drms');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create a DRM provider

Create a DRM provider.

Authorizations:
bearerAuth
Request Body schema: application/json
accountName
required
string
name
required
string
type
required
string
Enum: "ezdrm" "irdeto"
username
string
password
string
accountId
string
host
string

Responses

Request samples

Content type
application/json
{
  • "accountName": "string",
  • "name": "string",
  • "type": "ezdrm",
  • "username": "string",
  • "password": "string",
  • "accountId": "string",
  • "host": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "string",
  • "username": "string",
  • "password": "string",
  • "accountId": "string",
  • "host": "string"
}

Retrieve a DRM provider

Return the DRM provider whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/drms/SAeK2');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "string",
  • "username": "string",
  • "password": "string",
  • "accountId": "string",
  • "host": "string"
}

Update a DRM provider

Update the DRM provider whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('PUT', '/drms/s7mpZ');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "string",
  • "username": "string",
  • "password": "string",
  • "accountId": "string",
  • "host": "string"
}

Delete a DRM provider

Delete the encoder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the asset to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/drms/gy0nd');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Content Preparation Profiles

Manage the Content Preparation profiles. These profiles will define the parameters to be considered during a asset creation (through VoD Workflows or Watchfolders).

A Content Preparation profile can define the parameters for a CAO (Content Aware Optimization) job or for an static ladder job (classic transcoding).

List content preparation profiles

Return a paginated list of content preparation profiles.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/content-preparations');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create content preparation profile

Create a content preparation profile.

Authorizations:
bearerAuth
Request Body schema: application/json
uuid
string

Unique identifier of the content preparation profile.

accountName
string

Account that owns the content preparation profile.

name
required
string

Name of the content preparation profile.

type
required
string
Enum: "smart" "static"

Type of content preparation profile.

required
object

Encoding configuration for the content preparation profile.

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "smart",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "smart",
  • "config": {
    }
}

Retrieve content preparation profile

Return the content preparation profile whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the content preparation to be updated.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/content-preparations/Hyf9r');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "smart",
  • "config": {
    }
}

Delete content preparation profile

Return the content preparation profile whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the content preparation to be removed.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/content-preparations/ndz02');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Update content preparation profile

Update the content preparation profile whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the content preparation to be updated.

Request Body schema: application/json
uuid
string

Unique identifier of the content preparation profile.

accountName
string

Account that owns the content preparation profile.

name
required
string

Name of the content preparation profile.

type
required
string
Enum: "smart" "static"

Type of content preparation profile.

required
object

Encoding configuration for the content preparation profile.

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "smart",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "type": "smart",
  • "config": {
    }
}

Delivery Optimizations

Delivery optimization profiles allow to define your business logic to be taken into account during the delivery process.

List delivery optimizations

Return a paginated list of the delivery optimization profiles

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/delivery-optimization');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

New delivery optimization

Create a new delivery optimization profile

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Name of the delivery optimization profile.

treeObj
required
object

Object with the delivery logic.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "treeObj": { }
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "treeObj": { }
}

Retrieve delivery optimization

Return a delivery optimization profile given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the delivery optimization profile to be retrieved

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/delivery-optimization/LTCZI');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "name": "string",
  • "treeObj": { }
}

Delete delivery optimization

Delete a delivery optimization profile given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the delivery optimization profile to be removed

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/delivery-optimization/mzxCh');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Update delivery optimization

Update a delivery optimization profile given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the delivery optimization profile to be updated

Request Body schema: application/json
name
required
string

Name of the delivery optimization profile.

treeObj
required
object

Object with the delivery logic.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "treeObj": { }
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "treeObj": { }
}

CDNs

Manage CDN configurations

List CDNs

Return a paginated list of CDNs associated with your LightFlow account.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/cdns');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

New CDN

Create a CDN.

Authorizations:
bearerAuth
Request Body schema: application/json
uuid
string

Unique identifier of the CDN.

accountName
string

Account name of the user that created the CDN.

creationDate
string <date-time>

Date and time when the CDN was created.

name
required
string

Name of the CDN

hostname
required
string

Hostname of the CDN.

commit
required
number

Commit of the CDN.

pricePerGB
required
number

Price per gigabyte of the CDN.

maxUsageGB
required
number

Maximum usage in gigabytes of the CDN.

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "hostname": "string",
  • "commit": 0,
  • "pricePerGB": 0,
  • "maxUsageGB": 0
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "hostname": "string",
  • "commit": 0,
  • "pricePerGB": 0,
  • "maxUsageGB": 0
}

Retrieve CDN

Return the CDN given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the CDN to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/cdns/vmOvb');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "hostname": "string",
  • "commit": 0,
  • "pricePerGB": 0,
  • "maxUsageGB": 0
}

Delete CDN

Delete the CDN given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the CDN to be removed

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/cdns/xkMJf');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Update CDN

Update the CDN given its uuid

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the CDN to be updated

Request Body schema: application/json
uuid
string

Unique identifier of the CDN.

accountName
string

Account name of the user that created the CDN.

creationDate
string <date-time>

Date and time when the CDN was created.

name
required
string

Name of the CDN

hostname
required
string

Hostname of the CDN.

commit
required
number

Commit of the CDN.

pricePerGB
required
number

Price per gigabyte of the CDN.

maxUsageGB
required
number

Maximum usage in gigabytes of the CDN.

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "hostname": "string",
  • "commit": 0,
  • "pricePerGB": 0,
  • "maxUsageGB": 0
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "hostname": "string",
  • "commit": 0,
  • "pricePerGB": 0,
  • "maxUsageGB": 0
}

WisePath

Get WisePath recommendations

Retrieve CDN recommendations for a specific asset or workflow

A session context in WisePath is defined as a combination of viewer context (ex: type of device, ISP, geographic location), quality of experience delivered by the CDN (ex: join time, buffer ratio) and CDN cost/usage.

For each request, WisePath will apply your delivery logic configuration to its session context parameters and will come back with:

  • The CDN recommended by WisePath that should be used to deliver the specified media content
  • The weighted list of CDNs available to deliver your content. This could be used to implement a fallback mechanism in the client side.
Authorizations:
bearerAuth
Request Body schema: application/json
assetId
string

Asset id (Only required if there is no vodWorkflowId in the request)

vodWorkflowId
required
string

Workflow id (Only required if there is no assetId in the request)

ip
string

IP address of the user for which WisePath should provide CDN recommendations

referer
string

Request referrer

userAgent
string

User agent of the user for which WisePath should provide CDN recommendations

protocol
string
Enum: "smooth_streaming" "progressive_media_download" "dash" "hls"

Streaming Protocol to be considered for the CDN recommendations

Responses

Request samples

Content type
application/json
{
  • "assetId": "string",
  • "vodWorkflowId": "string",
  • "ip": "string",
  • "referer": "string",
  • "userAgent": "string",
  • "protocol": "smooth_streaming"
}

Response samples

Content type
application/json
{
  • "selectedCDN": {
    },
  • "cdns": [
    ],
  • "leafId": "string",
  • "vodWorkflowId": "string",
  • "deliveryOptimizationId": "string",
  • "enableP2P": true
}

Retrieve WisePath usage information

Retrieve WisePath usage information

Authorizations:
bearerAuth
query Parameters
groupby
string^\w+(,\w+)*$

Field or fields that will be used to group resulting data. Allowed values: cdn or country.

from
number

unix epoch time to start retrieving data.

to
number

unix epoch time up to the data is retrieved.

granularity
string

Time interval to group the data by. Default is 1 day. Allowed values: 1-minute, 5-minutes, 1-hour, 1-day, 1-week, 1-month

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports-wisepath/requests');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "keys": {
    },
  • "data": [
    ]
}

Return WisePath information regarding quality of experience

Return WisePath information regarding quality of experience

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the CDN for which quality of experience data will be retrieved

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports-wisepath/qoe');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "keys": {
    },
  • "data": [
    ]
}

Feeds

Manage Feeds (video analytics sources). Integrating your video analytics sources with LightFlow enables it to take smarter decissions and to adapt your content to your viewers base. Once configured, LightFlow will connect to your analytics system on a period basis using its API and will produce metrics like:

  • Viewers experience score. Allows LightFlow to take into account user experience (startup time, rebuffering ratio, playback failures, video quality) when creating the optimal bitrate ladder.
  • Bandwidth distribution of your users. Generate the renditions that make sense according to your users network capabilities.
  • Type of network connections used to watch your video assets/streams
  • Type of devices, screens and resolutions supported
  • Video codecs supported by your users devices. Get deeper information about the percentage of your users that are able to support modern codecs like VP9, H.265/HEVC and AV1 and automatically check when makes sense, in terms of encoding cost vs delivery savings, generating new renditions

LightFlow AI engine will use the knowledge acquired by automatically processing these aggregated metrics to increase the efficiency of your streaming service.

Create a feed

Create a data feed.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Name of the feed.

type
required
string
Enum: "analytics" "cdn-usage" "availability" "lightflow"

Type of the feed.

provider
required
string
Value: "youbora"

Brand of the feed.

apiKey
required
string

API Key or user name given by the feed.

apiSecret
required
string

API Secret given by the feed.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "apiSecret": "string"
}

Response samples

Content type
application/json
{
  • "accountName": "string",
  • "uuid": "string",
  • "userName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "feedAccountName": "string"
}

List feeds

Return a paginated list of data feeds.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/feeds');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Retrieve a feed

Return the data feed whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the feed to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/feeds/ub3ee');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "accountName": "string",
  • "uuid": "string",
  • "userName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "feedAccountName": "string"
}

Update a feed

Update the data feed whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the feed to be updated.

Request Body schema: application/json
name
required
string

Name of the feed.

type
required
string
Enum: "analytics" "cdn-usage" "availability" "lightflow"

Type of the feed.

provider
required
string
Value: "youbora"

Brand of the feed.

apiKey
required
string

API Key or user name given by the feed.

apiSecret
required
string

API Secret given by the feed.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "apiSecret": "string"
}

Response samples

Content type
application/json
{
  • "accountName": "string",
  • "uuid": "string",
  • "userName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "feedAccountName": "string"
}

Delete a feed

Delete the data feed whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the feed.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/feeds/P0QZM');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "accountName": "string",
  • "uuid": "string",
  • "userName": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "analytics",
  • "provider": "youbora",
  • "apiKey": "string",
  • "feedAccountName": "string"
}

VoD Workflows

VoD Workflows allow to define the complete workflow in order to facilitate the creation of new assets, i.e., the input and output storages, the Content Preparation profile to be applied, the encoder to be used, the DRM protection, etc.

List vod workflows

Return a paginated list of VoD workflows.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

versions
boolean

Whether to attach the published versions (VodWorkflowVersion) to the VoD Workflows or not.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflows');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Create a vod workflow

Create a VoD workflow.

Authorizations:
bearerAuth
Request Body schema: application/json
uuid
string

Unique identifier of the VoD workflow.

accountName
string

Account name of the user that created the VoD workflow.

name
required
string

Name for the VoD workflow.

description
string

Description for the VoD workflow.

inputId
string

UUID of the input sources storage. If not provided, HTTP will be considered.

contentPreparationId
string

UUID of the content preparation profile to be used.

encoderId
string

UUID of the encoder to be used. If not provided, LightFlow will do the encoding.

drmId
string

UUID of the DRM provider to be used. If not provided, no DRM protection will be applied.

outputId
string

UUID of the output storage. If not provided, LightFlow will be used.

deliveryOptimizationId
string

UUID of the delivery optimization profile to be applied.

analyticsId
string

UUID of the analytics provided to be attached.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "description": "string",
  • "inputId": "string",
  • "contentPreparationId": "string",
  • "encoderId": "string",
  • "drmId": "string",
  • "outputId": "string",
  • "deliveryOptimizationId": "string",
  • "analyticsId": "string",
  • "callbacks": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "description": "string",
  • "inputId": "string",
  • "contentPreparationId": "string",
  • "encoderId": "string",
  • "drmId": "string",
  • "outputId": "string",
  • "deliveryOptimizationId": "string",
  • "analyticsId": "string",
  • "callbacks": [
    ]
}

Retrieve vod workflow

Return the vod workflow whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow to be updated.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflows/cJ5PU');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "description": "string",
  • "inputId": "string",
  • "contentPreparationId": "string",
  • "encoderId": "string",
  • "drmId": "string",
  • "outputId": "string",
  • "deliveryOptimizationId": "string",
  • "analyticsId": "string",
  • "callbacks": [
    ]
}

Delete vod workflow

Delete the vod workflow whose id is equal to {uuid}. A VoDWorkflow with at least one VoDWorkflowVersion associated cannot be deleted.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow to be deleted.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/vod-workflows/0cUPk');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Update vod workflow

Update the vod workflow whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow to be updated.

Request Body schema: application/json
uuid
string

Unique identifier of the VoD workflow.

accountName
string

Account name of the user that created the VoD workflow.

name
required
string

Name for the VoD workflow.

description
string

Description for the VoD workflow.

inputId
string

UUID of the input sources storage. If not provided, HTTP will be considered.

contentPreparationId
string

UUID of the content preparation profile to be used.

encoderId
string

UUID of the encoder to be used. If not provided, LightFlow will do the encoding.

drmId
string

UUID of the DRM provider to be used. If not provided, no DRM protection will be applied.

outputId
string

UUID of the output storage. If not provided, LightFlow will be used.

deliveryOptimizationId
string

UUID of the delivery optimization profile to be applied.

analyticsId
string

UUID of the analytics provided to be attached.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "description": "string",
  • "inputId": "string",
  • "contentPreparationId": "string",
  • "encoderId": "string",
  • "drmId": "string",
  • "outputId": "string",
  • "deliveryOptimizationId": "string",
  • "analyticsId": "string",
  • "callbacks": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "name": "string",
  • "description": "string",
  • "inputId": "string",
  • "contentPreparationId": "string",
  • "encoderId": "string",
  • "drmId": "string",
  • "outputId": "string",
  • "deliveryOptimizationId": "string",
  • "analyticsId": "string",
  • "callbacks": [
    ]
}

Create an asset based on a vod workflow

Create an asset using the vod workflow whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow.

Request Body schema: application/json
required
object

Asset input data

object

Asset output data

priority
number
Default: 50

Priority of the asset processing to start. Value between 0 (lowest) to 100 (highest).

label
string

The asset will be tagged with a label. Usage and billing information for assets /reports/usage-metrics can be then filtered by the label (100 characters max).

object

Asset metadata.

object

Protection parameters to be used for the asset.

Responses

Request samples

Content type
application/json
{
  • "input": {
    },
  • "output": {
    },
  • "priority": 50,
  • "label": "string",
  • "metadata": {
    },
  • "protection": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "workflowId": "string",
  • "username": "string",
  • "accountName": "string",
  • "creationDate": "2019-08-24",
  • "status": "string",
  • "stage": "string",
  • "priority": 50,
  • "assetError": {
    },
  • "parameters": {
    },
  • "callbacks": [
    ],
  • "playbackManifests": [
    ],
  • "metadata": {
    },
  • "duration": -1,
  • "transcodeRenditions": [
    ],
  • "stageTimings": {
    },
  • "statusTimings": {
    }
}

VoD Workflows Versions

Before using a VoD Workflow you first need to publish a valid version of it. When you publish a VoD workflow, LightFlow creates a immutable version of the workflow so any further change over it is not applied to your assets in production.

Once you have a version of your VoD workflow published, you will be able to create an asset by defining its input path, its output path (if needed) and the VoD Workflow to be used. LightFlow will create/deliver your asset following the configuration of the active version of that VoD Workflow version.

List vod workflows versions

Return a paginated list of VoD workflows versions.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflow-versions');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Retrieve a vod workflow version

Return the VoD Workflow Version whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow version

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflow-versions/2flsw');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "description": "string",
  • "publishDate": "string",
  • "vodWorkflowName": "string",
  • "vodWorkflowUuid": "string",
  • "vodWorkflowComponents": {
    }
}

Create a vod workflow version

Create a new VoD Workflow version for the VoD Workflow whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow

Request Body schema: application/json
description
required
string

Description of the VoD Workflow version

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "description": "string",
  • "publishDate": "string",
  • "vodWorkflowName": "string",
  • "vodWorkflowUuid": "string",
  • "vodWorkflowComponents": {
    }
}

Retrieve vod workflow versions

Retrieve the VoD Workflow versions bound to a VoD Workflow given its {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflow-versions/vod-workflow/8fKwH');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Retrieve active vod workflow version

Retrieve the last VoD Workflow version bound to a VoD Workflow given its {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflow-versions/vod-workflow/yHXYU/active');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "description": "string",
  • "publishDate": "string",
  • "vodWorkflowName": "string",
  • "vodWorkflowUuid": "string",
  • "vodWorkflowComponents": {
    }
}

Clone and publish a vod vod workflow version

Clone and publish the VoD Workflow Version whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow version

Request Body schema: application/json
description
required
string

Description of the VoD Workflow version

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "description": "string",
  • "publishDate": "string",
  • "vodWorkflowName": "string",
  • "vodWorkflowUuid": "string",
  • "vodWorkflowComponents": {
    }
}

Retrieve an unpublished vod workflow version

Without storing it into database, create a new VoD Workflow Version for the VoD Workflow whose id is equal to {uuid}. This endpoint is intended to validate the VoD Workflow Version before publishing it.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the vod workflow

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/vod-workflow-versions/validate/0jVBR');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "description": "string",
  • "publishDate": "string",
  • "vodWorkflowName": "string",
  • "vodWorkflowUuid": "string",
  • "vodWorkflowComponents": {
    }
}

Watch Folders

Watch Folders allow to set up folders in which to put files that will be automatically detected and processed.

Each folder, has an associtated VoD Workflow that will be used to generate the assets.

List watch folders

Return a paginated list of watch folders.

Authorizations:
bearerAuth
query Parameters
pageIndex
number

Pagination page index

pageSize
number

Pagination page size

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/watch-folder');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "pageIndex": 0,
  • "pageSize": 0,
  • "pages": 0,
  • "items": [
    ]
}

Retrieve watch folder

Return the watch folder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the watch folder to be retrieved.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/watch-folder/4UVwe');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "user": { },
  • "createdOn": "2019-08-24T14:15:22Z",
  • "enabled": false,
  • "name": "string",
  • "workflowId": "string",
  • "path": "string",
  • "pathOnSuccess": "string",
  • "pathOnFailure": "string",
  • "destinationPath": "string"
}

Delete watch folder

Delete the watch folder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the watch folder to be deleted.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('DELETE', '/watch-folder/p7tUX');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Update watch folder

Update the watch folder whose id is equal to {uuid}.

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Identifier of the watch folder to be updated.

Request Body schema: application/json
enabled
boolean
Default: false

If true, the watch folder is enabled and it will be watched.

name
required
string

Name of the watch folder

workflowId
required
string

UUID of the VOD Workflow associated with the watch folder. It has to be a workflow with an input configured. If no output is configured for the workflow, the destination path property is not required.

path
required
string

Path of the folder to be watched.

pathOnSuccess
required
string

Path where the successfully processed files will be moved. If not provided, input file will be just removed from its original location.

pathOnFailure
required
string

Path where the files that failed at processing will be moved.

destinationPath
string

Path where the processed assets will be put.

Responses

Request samples

Content type
application/json
{
  • "enabled": false,
  • "name": "string",
  • "workflowId": "string",
  • "path": "string",
  • "pathOnSuccess": "string",
  • "pathOnFailure": "string",
  • "destinationPath": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "accountName": "string",
  • "user": { },
  • "createdOn": "2019-08-24T14:15:22Z",
  • "enabled": false,
  • "name": "string",
  • "workflowId": "string",
  • "path": "string",
  • "pathOnSuccess": "string",
  • "pathOnFailure": "string",
  • "destinationPath": "string"
}

Reports

Retrieve information about the use of the plaform.

Retrieve quality of experience settings

Return quality of experience settings used to calculate quality of experience metrics

Authorizations:
bearerAuth

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/qoe-settings');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "username": "string",
  • "accountName": "string",
  • "qoeUserBandwidthMbps": 0,
  • "qoeStartBufferLength": 0,
  • "qoeCodificationCost": 0,
  • "qoeStorageCost": 0,
  • "qoeDeliveryCost": 0,
  • "qoeDeliveredTimes": 0
}

Update quality of experience settings

Update and return quality of experience settings.

Authorizations:
bearerAuth
Request Body schema: application/json
qoeUserBandwidthMbps
number

Estimated average bandwidth of users consuming your assets.

qoeStartBufferLength
number

Estimated buffer length required for the playback to start.

qoeCodificationCost
number

Your encoding costs ($/min). Used for calculating estimated encoding savings.

qoeStorageCost
number

Your storage costs ($/GB). Used for calculating estimated storage savings.

qoeDeliveryCost
number

Your delivery costs ($/GB). Used for calculating estimated delivery savings.

qoeDeliveredTimes
number

In average, number of times an asset is delivered to users.

Responses

Request samples

Content type
application/json
{
  • "qoeUserBandwidthMbps": 0,
  • "qoeStartBufferLength": 0,
  • "qoeCodificationCost": 0,
  • "qoeStorageCost": 0,
  • "qoeDeliveryCost": 0,
  • "qoeDeliveredTimes": 0
}

Response samples

Content type
application/json
{
  • "username": "string",
  • "accountName": "string",
  • "qoeUserBandwidthMbps": 0,
  • "qoeStartBufferLength": 0,
  • "qoeCodificationCost": 0,
  • "qoeStorageCost": 0,
  • "qoeDeliveryCost": 0,
  • "qoeDeliveredTimes": 0
}

Retrieve usage data

Return usage / billing data.

Authorizations:
bearerAuth
query Parameters
from
number

Beginning of period to query (Milliseconds Epoch Time).

to
number

End of period to query (Milliseconds Epoch Time).

labels
Array of strings

Set of labels to be considered for filtering.

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/usage-metrics');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "accountName": "string",
  • "currency": {
    },
  • "date": 0,
  • "execTimestamp": 0,
  • "metrics": {
    }
}

Retrieve usage data by time Deprecated

Return usage / billing data filtered by time.

Authorizations:
bearerAuth
path Parameters
timeFrame
required
string

A value of 'this-month', 'last-month', 'this-year'

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/usage-metrics/:timeFrame');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "metrics": {
    },
  • "aggregations": {
    }
}

List billing labels

Return the unique values of the labels used in billing data

Authorizations:
bearerAuth

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/usage-metrics/labels');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
[
  • "label1",
  • "label2",
  • "label3"
]

Retrieve savings costs

Return savings costs data, comparing LightFlow values with industry standard.

Authorizations:
bearerAuth
path Parameters
timeFrame
required
string

A value of 'this-month', 'last-month', 'this-year'

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/savings-metrics/:timeFrame');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "encoding": [
    ],
  • "storage": [
    ],
  • "delivery": [
    ]
}

Retrieve Quality of Experience metrics

Return Quality of experience metrics for the logged account.

Authorizations:
bearerAuth
path Parameters
timeFrame
required
string

A value of 'this-month', 'last-month', 'this-year'

Responses

Request samples

var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
  
xhr.addEventListener('readystatechange', function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
    
xhr.open('GET', '/reports/qoe-metrics/:timeFrame');
xhr.setRequestHeader('Authorization', 'Bearer eyJh...');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.send(data);

Response samples

Content type
application/json
{
  • "videoQuality": {
    },
  • "startupTime": {
    },
  • "rebufferingTime": {
    },
  • "ebvs": {
    },
  • "totalSavings": {
    },
  • "encodingSavings": {
    },
  • "storageSavings": {
    },
  • "deliverySavings": {
    }
}

Handcrafted with by Epic Labs