Ci API

Ci API enables you to manage your files in Ci or to extend your own application with a media optimized cloud based file system. You can securely store, retrieve and archive files of any size using traditional HTTP transfers or by leveraging our media transport for high speed transfers. Content uploaded to Ci will be validated for integrity so that you can be sure we got every last bit. Ci will also create the proxies that you’ve come to love just like we do when you upload through the award-winning user interface.

Ci API is organized around REST and uses HTTP verbs and response codes that most clients are familiar with. All requests must be formatted as Content-Type: application/json (except where noted). All responses are also formatted JSON, encoded in the UTF-8 character encoding (Content-Type: application/json; charset=utf-8). The Accept header will be ignored for all requests.

Security

Ci API uses the Resource Owner Password Credentials Grant flow of OAuth 2.0 for authentication and allows applications to submit authenticated requests on behalf of individual Ci users.

  1. First, encode your credentials

  2. Then you exchange these encoded credentials along with your client credentials for an OAuth 2.0 Bearer token

  3. Once you’ve done that, you simply include your token with all of your Ci requests

An authorization header containing a valid access token must be included in every Ci API request like follows:

Authorization: bearer 5262d64b892e8d4341000001

The bearer token is your key to accessing all of your resources via Ci API. Keep it safe.

SSL must be used in all Ci API interactions.

API Update Guidelines

Our API is constantly being updated with new features and improvements to existing ones. These updates ensure the API evolves with customer and industry demands. Managing this change to ensure we provide a reliable, consistent, and backward compatible API design is a critical challenge for our team. Every new and improved feature is put through a peer review process to ensure:

  1. it will not change an existing resource to the extent it breaks current customer implementations,

  2. that it is consistent with existing resources (therefore predictable and easy to use).

The following guidelines are used in our peer review process to understand what constitutes acceptable change for our API and our customers.

Changes we avoid:

  • Removing or renaming request or response content fields

  • Removing or renaming query string parameters

  • Removing or changing the location of a resource

  • Changing the API domain

Changes we approve and introduce:

  • Adding new resources

  • Adding new, optional request content fields

  • Adding new, optional query string parameters

  • Adding new response content fields

  • Adding new response header information

If, for any reason, we cannot avoid any of the non-backward compatible changes mentioned above, we will implement a deprecation schedule. This schedule will be provided to all customers with the goal of giving them adequate time to accommodate the updates.

Looking further out, as our API evolves and industry standards dictate, we do anticipate the possibility that an entirely new API version will be needed. If and when that happens we will, once again, provide a deprecation schedule for the existing version that will ensure all customers have time to upgrade.

Additional information:

Undocumented resources and properties are considered to be in beta release and are subject to change without notification.

Developer Keys

Please contact our customer service team to sign up for a developer key and begin using our API today.

Change Log

Visit the change log for more information about Ci API changes.

Errors

When an error is encountered you will receive an HTTP status code along with a message and error code in the body of the response. The message is intended to give a user-friendly explanation of the error while the error codes are designed to be machine readable codes that applications can use to better understand the context of the error and react appropriately.

We use the following status codes for errors:

Status Code Meaning
400 Bad Request – The request contains errors.
401 Unauthorized – The authentication process failed, or the access token is not valid.
403 Forbidden – Access to this resource is restricted for the given caller.
404 Not Found – The specified resource could not be found.
405 Method Not Allowed – An invalid method was used to access a resource.
406 Not Acceptable – An unsupported format was requested.
409 Conflict – The requested operation on the resource cannot be made due the resource state.
500 Internal Server Error – There was a problem with the API host server. Try again later.
503 Service Unavailable – API is temporarily offline for maintenance. Try again later.

Authentication

There are a few different ways to get an OAuth2 token from Ci. The first option listed, using Ci user credentials, will be the most common.

Using Ci User Credentials

Generates a valid access token which can be used in subsequent calls to Ci API. This resource uses Basic Authorization. Follow these steps to retrieve an access token:

  1. Concatenate your Ci username, a colon character “:”, and your Ci password into a single string

  2. Base64 encode the string from Step 1

  3. Include the resulting encoded string from Step 2 in an Authorization header as follows

Authorization: Basic [encoded string]

Using a Refresh Token

Refresh tokens are long-lived (14 days) authentication tokens that can be used to replace expired access tokens without providing user credentials. Refresh tokens are issued when an access token is requested using Ci user credentials (additionally, they are issued when requesting a new access token with a refresh token).

When requesting an access token using a refresh token you must use a grant type of ‘refresh_token’ and provide the refresh token in the request body. There is no need to include the Ci user credentials in the Authorization header.

Using a Delegate Token

Delegate tokens are short-lived authentication tokens that can be used to grant temporary and limited API access to 3rd party clients. For example, rather than upload a cover element file through a Ci enabled application, a delegate token could be used in a Javascript based application so that the file may be uploaded to Ci directly from a browser.

When requesting a delegate token, an access token or a refresh token is required in the Authorization header. Additionally, an asset ID and a scope must be provided in the request body to ensure that the delegate token allows limited access to Ci.

Once you receive a delegate token you can then use it in the Authorization header just like a regular access token.

Generate Access Token

POST  https://api.cimediacloud.com/oauth2/token
Requestswith Ci user credentialswith refresh tokenwith delegate token
Headers
Content-Type: application/json
Authorization: Basic [encoded credentials]
Body
{
  "client_id": "yjtgrjdag8is4cxb",
  "client_secret": "q1h0jt4fi0bctwb5",
  "grant_type": "password"
}
Property nameTypeDescription
client_idstring (required)

Client id used to access Ci API.

client_secretstring (required)

Client secret used to access Ci API.

grant_typestring (required)

The OAuth2 grant type for authentication.

Responses200400
Headers
Content-Type: application/json
Body
{
  "access_token": "h3s6zk4o93wfjwwp",
  "expires_in": 3600,
  "token_type": "bearer",
  "refresh_token": "q8eml5kormli7aq6"
}
Property nameTypeDescription
access_tokenstring

The bearer token that can be used in subsequent requests.

expires_innumber

The number of seconds that the token will expire. Currently set to 86400 (24 hours).

token_typestring

The type of token. Always returns ‘bearer’.

refresh_tokenstring

The token which can be used to regenerate a new access token without providing authentication details. Refresh tokens expire in 14 days.

Headers
Content-Type: application/json
Body
{
  "error": "invalid_request",
  "error_description": "Parameter grant_type is required"
}
Property nameTypeDescription
errorstring

Machine readable error code

error_descriptionstring

Error message

Headers
Content-Type: application/json
Authorization: Basic [encoded credentials]
Body
{
  "client_id": "yjtgrjdag8is4cxb",
  "client_secret": "q1h0jt4fi0bctwb5",
  "grant_type": "password",
  "refresh_token": "3g4atvsqc6pfcaht"
}
Property nameTypeDescription
client_idstring (required)

Client id used to access Ci API.

client_secretstring (required)

Client secret used to access Ci API.

grant_typestring (required)

The OAuth2 grant type.

refresh_tokenstring (required)

The previously issued refresh token that will be used to get new access token and updated refresh token.

Responses200400
Headers
Content-Type: application/json
Body
{
  "access_token": "h3s6zk4o93wfjwwp",
  "expires_in": 3600,
  "token_type": "bearer",
  "refresh_token": "q8eml5kormli7aq6"
}
Property nameTypeDescription
access_tokenstring

The bearer token that can be used in subsequent requests.

expires_innumber

The number of seconds that the token will expire. Currently set to 86400 (24 hours).

token_typestring

The type of token. Always returns ‘bearer’.

refresh_tokenstring

The token which can be used to regenerate a new access token without providing authentication details. Refresh tokens expire in 14 days.

Headers
Content-Type: application/json
Body
{
  "error": "invalid_request",
  "error_description": "Parameter grant_type is required"
}
Property nameTypeDescription
errorstring

Machine readable error code

error_descriptionstring

Error message

Headers
Content-Type: application/json
Authorization: Basic [encoded credentials]
Body
{
  "assetId": "nooumy2aiumufg3w",
  "scope": "UploadCoverElement"
}
Property nameTypeDescription
assetIdstring (required)

The asset id that can be accessed or modified using the requested token.

scopestring (required)

The scope of actions that may be performed on the given asset. Currently the only valid value is ‘UploadCoverElement’.

Responses200400
Headers
Content-Type: application/json
Body
{
  "access_token": "h3s6zk4o93wfjwwp",
  "expires_in": 3600,
  "token_type": "bearer"
}
Property nameTypeDescription
access_tokenstring

The bearer token that can be used in subsequent requests.

expires_innumber

The number of seconds that the token will expire. Currently set to 86400 (24 hours).

token_typestring

The type of token. Always returns ‘bearer’.

Headers
Content-Type: application/json
Body
{
  "code": "TokenScopeNotProvided",
  "message": "Token scope not provided"
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Generate Access Token
POST/oauth2/token

Description

Generates the OAuth2 token. See the right context panel for examples of each type of authorization request.

Errors

OAuth error responses conform to the OAuth 2.0 Authorization Framework and therefore return two properties: error and error_description. These 2 properties are returned instead of Message and Code like all other resources.

Status Code error error_description
400 invalid_request Parameter grant_type is required.
400 unsupported_grant_type Grant type is not supported.
400 invalid_request Parameter client_id is required.
400 invalid_request Parameter client_secret is required.
400 invalid_request Parameter refresh_token is required.
400 invalid_request Missing or invalid authorization header.
400 invalid_request Refresh token not found.
400 invalid_request Refresh token has expired.
400 invalid_request Refresh token has been revoked.
400 invalid_request Token provided is not a refresh token.
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 TokenScopeNotProvided Token scope not provided.
400 AssetIdNotProvided Asset Id was not provided.
401 invalid_client Invalid client id and client secret combination.
401 invalid_client Invalid username and password combination.

Workspaces

Workspaces are where assets and people come together to get things done. Assets are uploaded into Workspaces. Folders, MediaBoxes and WorkSessions are created in Workspaces. Users are invited into Workspaces. This paradigm gives you the control you need to make sure that the right people have access to the right assets.

List User Workspaces

GET  https://api.cimediacloud.com/workspaces?limit=1&offset=0&orderBy=name&orderDirection=asc&fields=assetCount,storage
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200400
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "items": [
    {
      "id": "bu1m7ii2zo8lexkq",
      "name": "My Team Workspace",
      "class": "Team",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "lastActivityOn": "2017-01-02T00:00:00.000Z",
      "assetCount": 105000,
      "isDeleted": false,
      "plan": {
        "id": "team-2",
        "name": "Team - Large"
      },
      "storage": {
        "allotted": 1099511627776,
        "used": 1073741824,
        "usedByAssets": 536870912,
        "usedByElements": 536870912
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "owner": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith"
      },
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "entitlements": {
        "isAperaEnabled": true
      },
      "bannerUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/banner.jpg",
      "logoUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/logo.jpg",
      "userRole": "WorksapceOwner",
      "userInviteStatus": "Joined",
      "userLastAccessedOn": "2017-01-02T00:00:00.000Z",
      "runtime": {
        "video": 1000024
      }
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

itemsarray

The workspaces returned.

items[].idstring

The unique identifier of the workspace.

items[].namestring

The name of the workspace.

items[].classstring

Indicates if it is a ‘Team’ or ‘Personal’ workspace.

items[].createdOnstring

The datetime the workspace was created.

items[].lastActivityOnstring

The datetime the last activity was recorded for the workspace.

items[].assetCountnumber

The total number of assets in the workspace.

items[].isDeletedboolean

Indicates whether the workspace is active or deleted. Note: listing a user’s workspaces will only return active workspaces.

items[].planobject

The subscription plan associated with this workspace.

items[].plan.idstring

The unique identifier of the subscription plan associated with the workspace.

items[].plan.namestring

The display name of the subscription plan associated with the workspace.

items[].storageobject

Information about Ci storage statistics for the workspace.

items[].storage.allottednumber

The total storage capacity of the workspace, in bytes.

items[].storage.usednumber

The total storage used by the files (both assets and elements) in the workspace, in bytes.

items[].storage.usedByAssetsnumber

The storage used by the assets in the workspace, in bytes.

items[].storage.usedByElementsnumber

The storage used by the assets’ elements in the workspace, in bytes.

items[].networkobject

Information about workspace’s parent network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].ownerobject

Information about the owner of the workspace.

items[].owner.idstring

The unique identifier of the user.

items[].owner.namestring

The full name of the user.

items[].createdByobject

Information about the creator of the workspace.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].entitlementsobject

Information about entitlements granted to this workspace.

items[].entitlements.isAperaEnabledboolean

Indicates if Aspera is available for this workspace.

items[].bannerUrlstring

If available, the link to the banner image.

items[].logoUrlstring

If available, the link to the logo image.

items[].userRolestring

Indicates the role of the user in the Workspace. Supported values are ‘WorkspaceAdmin’ and ‘WorkspaceOwner’.

items[].userInviteStatusstring

Indicates the status of the user in the Workspace. Supported values are ‘Invited’, ‘Joined’.

items[].userLastAccessedOnstring

Indicates the last time the user accessed the workspace.

items[].runtimeobject

Information about the runtime of the asset.

items[].runtime.videonumber

The duration of all video assets in the workspace, in seconds.

Headers
Content-Type: application/json
Body
{
  "code": "InvalidLimitOrOffset",
  "message": "Invalid limit or offset value."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List User Workspaces
GET/workspaces{?limit,offset,orderBy,orderDirection,fields}

URI Parameters
HideShow
limit
number (optional) Default: 50 

The number of workspaces to return. The maximum is 500.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: name 

The field to sort the items by.

Choices: createdOn name networkName lastActivityOn

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

fields
string (optional) 

A comma separated list of fields to return in the response. If this value is empty all fields will be returned. Id and Name are always returned.

Description

Retrieves all workspaces the calling user has access to.

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 500. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’, ‘Name’, ‘NetworkName’ or ‘LastActivityOn’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.

Get Workspace Details

GET  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "bu1m7ii2zo8lexkq",
  "name": "My Team Workspace",
  "class": "Team",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "lastActivityOn": "2017-01-02T00:00:00.000Z",
  "assetCount": 105000,
  "isDeleted": false,
  "plan": {
    "id": "team-2",
    "name": "Team - Large"
  },
  "storage": {
    "allotted": 1099511627776,
    "used": 1073741824,
    "usedByAssets": 536870912,
    "usedByElements": 536870912
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "owner": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith"
  },
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "entitlements": {
    "isAperaEnabled": true
  },
  "bannerUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/banner.jpg",
  "logoUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/logo.jpg",
  "userRole": "WorksapceOwner",
  "userInviteStatus": "Joined",
  "userLastAccessedOn": "2017-01-02T00:00:00.000Z",
  "runtime": {
    "video": 1000024
  },
  "rootFolderId": "oaeybnyoggs97nzw"
}
Property nameTypeDescription
idstring

The unique identifier of the workspace.

namestring

The name of the workspace.

classstring

Indicates if it is a ‘Team’ or ‘Personal’ workspace.

createdOnstring

The datetime the workspace was created.

lastActivityOnstring

The datetime the last activity was recorded for the workspace.

assetCountnumber

The total number of assets in the workspace.

isDeletedboolean

Indicates whether the workspace is active or deleted. Note: listing a user’s workspaces will only return active workspaces.

planobject

The subscription plan associated with this workspace.

plan.idstring

The unique identifier of the subscription plan associated with the workspace.

plan.namestring

The display name of the subscription plan associated with the workspace.

storageobject

Information about Ci storage statistics for the workspace.

storage.allottednumber

The total storage capacity of the workspace, in bytes.

storage.usednumber

The total storage used by the files (both assets and elements) in the workspace, in bytes.

storage.usedByAssetsnumber

The storage used by the assets in the workspace, in bytes.

storage.usedByElementsnumber

The storage used by the assets’ elements in the workspace, in bytes.

networkobject

Information about workspace’s parent network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

ownerobject

Information about the owner of the workspace.

owner.idstring

The unique identifier of the user.

owner.namestring

The full name of the user.

createdByobject

Information about the creator of the workspace.

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

entitlementsobject

Information about entitlements granted to this workspace.

entitlements.isAperaEnabledboolean

Indicates if Aspera is available for this workspace.

bannerUrlstring

If available, the link to the banner image.

logoUrlstring

If available, the link to the logo image.

userRolestring

Indicates the role of the user in the Workspace. Supported values are ‘WorkspaceAdmin’ and ‘WorkspaceOwner’.

userInviteStatusstring

Indicates the status of the user in the Workspace. Supported values are ‘Invited’, ‘Joined’.

userLastAccessedOnstring

Indicates the last time the user accessed the workspace.

runtimeobject

Information about the runtime of the asset.

runtime.videonumber

The duration of all video assets in the workspace, in seconds.

rootFolderIdstring

The unique identifier of the default folder.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Workspace Details
GET/workspaces/{workspaceId}

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

Description

Retrieves the information of the given workspace.

Errors

Status Code Error Code Message
404 WorkspaceNotFound Workspace not found.

List Workspaces Contents

GET  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz/contents?kind=all&limit=1&offset=0&orderBy=name&orderDirection=asc&fields=name,thumbnails
Requestsexample with asset in responseexample with folder in response
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "jy3lrsqqm0qobid1",
      "name": "Movie.mov",
      "size": 107856722,
      "type": "Video",
      "format": "mov",
      "status": "Complete",
      "description": "Final cut",
      "thumbnails": [
        {
          "type": "large",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
          "size": 1024,
          "width": 200,
          "height": 300
        }
      ],
      "proxies": [
        {
          "type": "video-3g",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
          "size": 1024,
          "width": 200,
          "height": 300,
          "videoBitRate": 1650000,
          "audioBitRate": 128000
        }
      ],
      "md5Checksum": "tk2ma0zrhrp5irco",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "modifiedOn": "2017-01-02T00:00:00.000Z",
      "acquisitionSource": {
        "name": "Workspace"
      },
      "archiveStatus": "Not archived",
      "restoreStatus": "Not restored",
      "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
      "restoreRequestDate": "2017-01-02T00:00:00.000Z",
      "lastRestoreDate": "2017-01-02T00:00:00.000Z",
      "restoredBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "archiveDate": "2017-01-02T00:00:00.000Z",
      "archivedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
      "isTrashed": false,
      "uploadTransferType": "SinglepartHttp",
      "runtime": 1024,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "technicalMetadata": {
        "type": "Video",
        "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
        "size": 1024,
        "image": {
          "width": 100,
          "height": 300,
          "xResolution": 100,
          "yResolution": 100,
          "resolutionUnit": "cm",
          "cameraMake": "Nikon",
          "cameraModel": "D300",
          "locationCity": "New York",
          "locationState": "NY",
          "locationCountry": "USA"
        },
        "avContainer": {
          "bitRate": 11934620,
          "duration": 100,
          "start": 0,
          "timeCode": "00:00:00:00",
          "derivedTimeCode": "00:00:00:00",
          "streams": [
            {
              "index": 0,
              "type": "Video",
              "bitRate": 11934620,
              "codec": "h264",
              "width": 1280,
              "height": 720,
              "duration": 100,
              "frameRateNumerator": 360,
              "frameRateDenominator": 12,
              "videoPARWidth": 1,
              "videoPARHeight": 1,
              "videoDARWidth": 19,
              "videoDARHeight": 24,
              "start": 0,
              "timeCode": "00:00:00:00",
              "audioSampleRate": 32000,
              "audioChannelCount": 2,
              "audioLayout": "stereo",
              "totalFrames": 1024,
              "codecLongName": "MPEG-4 part 2",
              "fourCC": "avc1",
              "rotate": 0
            }
          ]
        }
      },
      "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
      "acquisitionContext": {
        "name": "Movie1.mov",
        "path": "original/source/path"
      },
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

items[].sizenumber

The size of the source file, in bytes.

items[].typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

items[].formatstring

The asset’s file format.

items[].statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

items[].descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

items[].thumbnailsarray

The set of thumbnails for the asset.

items[].thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

items[].thumbnails[].locationstring

The url of the thumbnail.

items[].thumbnails[].sizenumber

The size of the thumbnail, in bytes.

items[].thumbnails[].widthnumber

The width of the thumbnail.

items[].thumbnails[].heightnumber

The height of the thumbnail.

items[].proxiesarray

The set of proxies for the asset.

items[].proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

items[].proxies[].locationstring

The url of the proxy.

items[].proxies[].sizenumber

The size of the proxy, in bytes.

items[].proxies[].widthnumber

The width of the proxy.

items[].proxies[].heightnumber

The height of the proxy.

items[].proxies[].videoBitRatenumber

The video bitrate of the proxy.

items[].proxies[].audioBitRatenumber

The audio bitrate of the proxy.

items[].md5Checksumstring

The calculated md5 checksum for the asset.

items[].createdOnstring

The datetime the asset record was created.

items[].createdByobject

Information about the creator of the asset

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].modifiedOnstring

The datetime the asset record was last modified.

items[].acquisitionSourceobject

Information about the asset’s source client application.

items[].acquisitionSource.namestring

The name of the client application that uploaded the asset.

items[].archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

items[].restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

items[].restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

items[].restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

items[].lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

items[].restoredByobject

If availabe, information about the user who restored the asset.

items[].restoredBy.idstring

The unique identifier of the user.

items[].restoredBy.namestring

The full name of the user.

items[].restoredBy.emailstring

The email of the user.

items[].archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

items[].archivedByobject

If availabe, information about the user who archived the asset.

items[].archivedBy.idstring

The unique identifier of the user.

items[].archivedBy.namestring

The full name of the user.

items[].archivedBy.emailstring

The email of the user.

items[].uploadCompleteDatestring

The datetime the asset upload was completed.

items[].isTrashedboolean

Indicates if an asset is in the trash bin.

items[].uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

items[].runtimenumber

The duration of the media asset, in seconds.

items[].workspaceobject

Information about the asset’s workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the asset’s network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].technicalMetadataobject

An object that contains all the technical metadata available.

items[].technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

items[].technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

items[].technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

items[].technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

items[].technicalMetadata.image.widthnumber

The width of the image, in pixels.

items[].technicalMetadata.image.heightnumber

The height of the image, in pixels.

items[].technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

items[].technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

items[].technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

items[].technicalMetadata.image.cameraMakestring

Camera manufacturer name.

items[].technicalMetadata.image.cameraModelstring

Camera model name.

items[].technicalMetadata.image.locationCitystring

Name of the city where the image was created.

items[].technicalMetadata.image.locationStatestring

Name of the state where the image was created.

items[].technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

items[].technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

items[].technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

items[].technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

items[].technicalMetadata.avContainer.startnumber

The start time in the container.

items[].technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

items[].technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

items[].technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

items[].technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

items[].technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

items[].technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

items[].technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

items[].technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

items[].technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

items[].technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

items[].technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

items[].technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

items[].technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

items[].technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

items[].technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

items[].technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

items[].technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

items[].technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

items[].technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

items[].technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

items[].technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

items[].hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

items[].acquisitionContextobject

The file acquisition information.

items[].acquisitionContext.namestring

The original source file name, captured on acquisition.

items[].acquisitionContext.pathstring

The original source file path, captured on acquisition.

items[].kindstring

The type of item returned. Will always be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "vamrnuqdvho6cwii",
      "name": "My Folder",
      "parentId": "nqyptt047b7qc9y3",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "isTrashed": false,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "parentFolder": {
        "id": "fcy33tbepeyit07y",
        "name": "Folder Name"
      },
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of folder.

items[].namestring

The name of the folder.

items[].parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

items[].createdOnstring

The datetime the folder was created.

items[].createdByobject

Information about the creator of the folder.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].isTrashedboolean

Indicates if a folder is in the trash bin.

items[].workspaceobject

Information about the folder’s parent workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the folder’s parent network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

items[].parentFolder.idstring

The unique identifier of the folder.

items[].parentFolder.namestring

The name of folder.

items[].kindstring

The type of item returned. Will always be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List Workspace Contents
GET/workspaces/{workspaceId}/contents{?kind,limit,offset,orderBy,orderDirection,fields}

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

kind
string (optional) Default: all 

Determines which kind of items will be returned.

Choices: folder asset all

limit
number (optional) Default: 50 

The number of items to return. The maximum is 100.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: name 

The field to sort the items by.

Choices: createdOn createdBy name type size status

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

fields
string (optional) 

A comma separated list of fields to return in the response. If this value is empty all fields will be returned. Id and Name are always returned.

Description

Retrieves all subfolders and all assets of the given workspace, regardless of the folder hierarchy. This query supports pagination using limit and offset. Additionally, using the ‘kind’ parameter, it is possible to choose which kind of items to return (subfolders, assets or both). If both are returned, the items are grouped by kind (subfolders first, then assets).

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 100. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’, ‘Name’, ‘Status’, ‘Type’, ‘Size’ or ‘CreatedBy’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
400 InvalidQueryKindFilter Invalid kind filter. It must be either ‘All’, ‘Asset’ or ‘Folder’.
404 WorkspaceNotFound Workspace not found.

List Trash Bin Contents

GET  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz/trashbin?kind=all&limit=1&offset=0&orderBy=name&orderDirection=asc&fields=name,thumbnails
Requestsexample with asset in responseexample with folder in response
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "jy3lrsqqm0qobid1",
      "name": "Movie.mov",
      "size": 107856722,
      "type": "Video",
      "format": "mov",
      "status": "Complete",
      "description": "Final cut",
      "thumbnails": [
        {
          "type": "large",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
          "size": 1024,
          "width": 200,
          "height": 300
        }
      ],
      "proxies": [
        {
          "type": "video-3g",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
          "size": 1024,
          "width": 200,
          "height": 300,
          "videoBitRate": 1650000,
          "audioBitRate": 128000
        }
      ],
      "md5Checksum": "tk2ma0zrhrp5irco",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "modifiedOn": "2017-01-02T00:00:00.000Z",
      "acquisitionSource": {
        "name": "Workspace"
      },
      "archiveStatus": "Not archived",
      "restoreStatus": "Not restored",
      "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
      "restoreRequestDate": "2017-01-02T00:00:00.000Z",
      "lastRestoreDate": "2017-01-02T00:00:00.000Z",
      "restoredBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "archiveDate": "2017-01-02T00:00:00.000Z",
      "archivedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
      "isTrashed": false,
      "uploadTransferType": "SinglepartHttp",
      "runtime": 1024,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "technicalMetadata": {
        "type": "Video",
        "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
        "size": 1024,
        "image": {
          "width": 100,
          "height": 300,
          "xResolution": 100,
          "yResolution": 100,
          "resolutionUnit": "cm",
          "cameraMake": "Nikon",
          "cameraModel": "D300",
          "locationCity": "New York",
          "locationState": "NY",
          "locationCountry": "USA"
        },
        "avContainer": {
          "bitRate": 11934620,
          "duration": 100,
          "start": 0,
          "timeCode": "00:00:00:00",
          "derivedTimeCode": "00:00:00:00",
          "streams": [
            {
              "index": 0,
              "type": "Video",
              "bitRate": 11934620,
              "codec": "h264",
              "width": 1280,
              "height": 720,
              "duration": 100,
              "frameRateNumerator": 360,
              "frameRateDenominator": 12,
              "videoPARWidth": 1,
              "videoPARHeight": 1,
              "videoDARWidth": 19,
              "videoDARHeight": 24,
              "start": 0,
              "timeCode": "00:00:00:00",
              "audioSampleRate": 32000,
              "audioChannelCount": 2,
              "audioLayout": "stereo",
              "totalFrames": 1024,
              "codecLongName": "MPEG-4 part 2",
              "fourCC": "avc1",
              "rotate": 0
            }
          ]
        }
      },
      "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
      "acquisitionContext": {
        "name": "Movie1.mov",
        "path": "original/source/path"
      },
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

items[].sizenumber

The size of the source file, in bytes.

items[].typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

items[].formatstring

The asset’s file format.

items[].statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

items[].descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

items[].thumbnailsarray

The set of thumbnails for the asset.

items[].thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

items[].thumbnails[].locationstring

The url of the thumbnail.

items[].thumbnails[].sizenumber

The size of the thumbnail, in bytes.

items[].thumbnails[].widthnumber

The width of the thumbnail.

items[].thumbnails[].heightnumber

The height of the thumbnail.

items[].proxiesarray

The set of proxies for the asset.

items[].proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

items[].proxies[].locationstring

The url of the proxy.

items[].proxies[].sizenumber

The size of the proxy, in bytes.

items[].proxies[].widthnumber

The width of the proxy.

items[].proxies[].heightnumber

The height of the proxy.

items[].proxies[].videoBitRatenumber

The video bitrate of the proxy.

items[].proxies[].audioBitRatenumber

The audio bitrate of the proxy.

items[].md5Checksumstring

The calculated md5 checksum for the asset.

items[].createdOnstring

The datetime the asset record was created.

items[].createdByobject

Information about the creator of the asset

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].modifiedOnstring

The datetime the asset record was last modified.

items[].acquisitionSourceobject

Information about the asset’s source client application.

items[].acquisitionSource.namestring

The name of the client application that uploaded the asset.

items[].archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

items[].restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

items[].restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

items[].restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

items[].lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

items[].restoredByobject

If availabe, information about the user who restored the asset.

items[].restoredBy.idstring

The unique identifier of the user.

items[].restoredBy.namestring

The full name of the user.

items[].restoredBy.emailstring

The email of the user.

items[].archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

items[].archivedByobject

If availabe, information about the user who archived the asset.

items[].archivedBy.idstring

The unique identifier of the user.

items[].archivedBy.namestring

The full name of the user.

items[].archivedBy.emailstring

The email of the user.

items[].uploadCompleteDatestring

The datetime the asset upload was completed.

items[].isTrashedboolean

Indicates if an asset is in the trash bin.

items[].uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

items[].runtimenumber

The duration of the media asset, in seconds.

items[].workspaceobject

Information about the asset’s workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the asset’s network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].technicalMetadataobject

An object that contains all the technical metadata available.

items[].technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

items[].technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

items[].technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

items[].technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

items[].technicalMetadata.image.widthnumber

The width of the image, in pixels.

items[].technicalMetadata.image.heightnumber

The height of the image, in pixels.

items[].technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

items[].technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

items[].technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

items[].technicalMetadata.image.cameraMakestring

Camera manufacturer name.

items[].technicalMetadata.image.cameraModelstring

Camera model name.

items[].technicalMetadata.image.locationCitystring

Name of the city where the image was created.

items[].technicalMetadata.image.locationStatestring

Name of the state where the image was created.

items[].technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

items[].technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

items[].technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

items[].technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

items[].technicalMetadata.avContainer.startnumber

The start time in the container.

items[].technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

items[].technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

items[].technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

items[].technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

items[].technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

items[].technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

items[].technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

items[].technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

items[].technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

items[].technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

items[].technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

items[].technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

items[].technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

items[].technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

items[].technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

items[].technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

items[].technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

items[].technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

items[].technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

items[].technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

items[].technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

items[].hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

items[].acquisitionContextobject

The file acquisition information.

items[].acquisitionContext.namestring

The original source file name, captured on acquisition.

items[].acquisitionContext.pathstring

The original source file path, captured on acquisition.

items[].kindstring

The type of item returned. Will always be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "vamrnuqdvho6cwii",
      "name": "My Folder",
      "parentId": "nqyptt047b7qc9y3",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "isTrashed": false,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "parentFolder": {
        "id": "fcy33tbepeyit07y",
        "name": "Folder Name"
      },
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of folder.

items[].namestring

The name of the folder.

items[].parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

items[].createdOnstring

The datetime the folder was created.

items[].createdByobject

Information about the creator of the folder.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].isTrashedboolean

Indicates if a folder is in the trash bin.

items[].workspaceobject

Information about the folder’s parent workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the folder’s parent network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

items[].parentFolder.idstring

The unique identifier of the folder.

items[].parentFolder.namestring

The name of folder.

items[].kindstring

The type of item returned. Will always be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List Trash Bin Contents
GET/workspaces/{workspaceId}/trashbin{?kind,limit,offset,orderBy,orderDirection,fields}

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

kind
string (optional) Default: all 

Determines which kind of items will be returned.

Choices: folder asset all

limit
number (optional) Default: 50 

The number of items to return. The maximum is 100.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: name 

The field to sort the items by.

Choices: createdOn createdBy name type size status

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

fields
string (optional) 

A comma separated list of fields to return in the response. If this value is empty all fields will be returned. Id and Name are always returned.

Description

Retrieves the trashed items of a given workspace. This query supports pagination using limit and offset. Additionally, using the ‘kind’ parameter, it is possible to choose which kind of items to return (subfolders, assets or both). If both are returned, the items are grouped by kind (subfolders first, then assets).

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 100. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’, ‘Name’, ‘Status’, ‘Type’, ‘Size’ or ‘CreatedBy’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
400 InvalidQueryKindFilter Invalid kind filter. It must be either ‘All’, ‘Asset’ or ‘Folder’.
404 WorkspaceNotFound Workspace not found.

Search Workspace Contents

GET  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz/search?query=movies&kind=all&limit=1&offset=0&orderBy=relevance&orderDirection=asc&fields=name,thumbnails
Requestsexample with asset in responseexample with folder in response
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "jy3lrsqqm0qobid1",
      "name": "Movie.mov",
      "size": 107856722,
      "type": "Video",
      "format": "mov",
      "status": "Complete",
      "description": "Final cut",
      "thumbnails": [
        {
          "type": "large",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
          "size": 1024,
          "width": 200,
          "height": 300
        }
      ],
      "proxies": [
        {
          "type": "video-3g",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
          "size": 1024,
          "width": 200,
          "height": 300,
          "videoBitRate": 1650000,
          "audioBitRate": 128000
        }
      ],
      "md5Checksum": "tk2ma0zrhrp5irco",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "modifiedOn": "2017-01-02T00:00:00.000Z",
      "acquisitionSource": {
        "name": "Workspace"
      },
      "archiveStatus": "Not archived",
      "restoreStatus": "Not restored",
      "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
      "restoreRequestDate": "2017-01-02T00:00:00.000Z",
      "lastRestoreDate": "2017-01-02T00:00:00.000Z",
      "restoredBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "archiveDate": "2017-01-02T00:00:00.000Z",
      "archivedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
      "isTrashed": false,
      "uploadTransferType": "SinglepartHttp",
      "runtime": 1024,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "technicalMetadata": {
        "type": "Video",
        "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
        "size": 1024,
        "image": {
          "width": 100,
          "height": 300,
          "xResolution": 100,
          "yResolution": 100,
          "resolutionUnit": "cm",
          "cameraMake": "Nikon",
          "cameraModel": "D300",
          "locationCity": "New York",
          "locationState": "NY",
          "locationCountry": "USA"
        },
        "avContainer": {
          "bitRate": 11934620,
          "duration": 100,
          "start": 0,
          "timeCode": "00:00:00:00",
          "derivedTimeCode": "00:00:00:00",
          "streams": [
            {
              "index": 0,
              "type": "Video",
              "bitRate": 11934620,
              "codec": "h264",
              "width": 1280,
              "height": 720,
              "duration": 100,
              "frameRateNumerator": 360,
              "frameRateDenominator": 12,
              "videoPARWidth": 1,
              "videoPARHeight": 1,
              "videoDARWidth": 19,
              "videoDARHeight": 24,
              "start": 0,
              "timeCode": "00:00:00:00",
              "audioSampleRate": 32000,
              "audioChannelCount": 2,
              "audioLayout": "stereo",
              "totalFrames": 1024,
              "codecLongName": "MPEG-4 part 2",
              "fourCC": "avc1",
              "rotate": 0
            }
          ]
        }
      },
      "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
      "acquisitionContext": {
        "name": "Movie1.mov",
        "path": "original/source/path"
      },
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

items[].sizenumber

The size of the source file, in bytes.

items[].typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

items[].formatstring

The asset’s file format.

items[].statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

items[].descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

items[].thumbnailsarray

The set of thumbnails for the asset.

items[].thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

items[].thumbnails[].locationstring

The url of the thumbnail.

items[].thumbnails[].sizenumber

The size of the thumbnail, in bytes.

items[].thumbnails[].widthnumber

The width of the thumbnail.

items[].thumbnails[].heightnumber

The height of the thumbnail.

items[].proxiesarray

The set of proxies for the asset.

items[].proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

items[].proxies[].locationstring

The url of the proxy.

items[].proxies[].sizenumber

The size of the proxy, in bytes.

items[].proxies[].widthnumber

The width of the proxy.

items[].proxies[].heightnumber

The height of the proxy.

items[].proxies[].videoBitRatenumber

The video bitrate of the proxy.

items[].proxies[].audioBitRatenumber

The audio bitrate of the proxy.

items[].md5Checksumstring

The calculated md5 checksum for the asset.

items[].createdOnstring

The datetime the asset record was created.

items[].createdByobject

Information about the creator of the asset

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].modifiedOnstring

The datetime the asset record was last modified.

items[].acquisitionSourceobject

Information about the asset’s source client application.

items[].acquisitionSource.namestring

The name of the client application that uploaded the asset.

items[].archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

items[].restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

items[].restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

items[].restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

items[].lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

items[].restoredByobject

If availabe, information about the user who restored the asset.

items[].restoredBy.idstring

The unique identifier of the user.

items[].restoredBy.namestring

The full name of the user.

items[].restoredBy.emailstring

The email of the user.

items[].archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

items[].archivedByobject

If availabe, information about the user who archived the asset.

items[].archivedBy.idstring

The unique identifier of the user.

items[].archivedBy.namestring

The full name of the user.

items[].archivedBy.emailstring

The email of the user.

items[].uploadCompleteDatestring

The datetime the asset upload was completed.

items[].isTrashedboolean

Indicates if an asset is in the trash bin.

items[].uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

items[].runtimenumber

The duration of the media asset, in seconds.

items[].workspaceobject

Information about the asset’s workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the asset’s network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].technicalMetadataobject

An object that contains all the technical metadata available.

items[].technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

items[].technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

items[].technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

items[].technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

items[].technicalMetadata.image.widthnumber

The width of the image, in pixels.

items[].technicalMetadata.image.heightnumber

The height of the image, in pixels.

items[].technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

items[].technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

items[].technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

items[].technicalMetadata.image.cameraMakestring

Camera manufacturer name.

items[].technicalMetadata.image.cameraModelstring

Camera model name.

items[].technicalMetadata.image.locationCitystring

Name of the city where the image was created.

items[].technicalMetadata.image.locationStatestring

Name of the state where the image was created.

items[].technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

items[].technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

items[].technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

items[].technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

items[].technicalMetadata.avContainer.startnumber

The start time in the container.

items[].technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

items[].technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

items[].technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

items[].technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

items[].technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

items[].technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

items[].technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

items[].technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

items[].technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

items[].technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

items[].technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

items[].technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

items[].technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

items[].technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

items[].technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

items[].technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

items[].technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

items[].technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

items[].technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

items[].technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

items[].technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

items[].hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

items[].acquisitionContextobject

The file acquisition information.

items[].acquisitionContext.namestring

The original source file name, captured on acquisition.

items[].acquisitionContext.pathstring

The original source file path, captured on acquisition.

items[].kindstring

The type of item returned. Will always be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "vamrnuqdvho6cwii",
      "name": "My Folder",
      "parentId": "nqyptt047b7qc9y3",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "isTrashed": false,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "parentFolder": {
        "id": "fcy33tbepeyit07y",
        "name": "Folder Name"
      },
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of folder.

items[].namestring

The name of the folder.

items[].parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

items[].createdOnstring

The datetime the folder was created.

items[].createdByobject

Information about the creator of the folder.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].isTrashedboolean

Indicates if a folder is in the trash bin.

items[].workspaceobject

Information about the folder’s parent workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the folder’s parent network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

items[].parentFolder.idstring

The unique identifier of the folder.

items[].parentFolder.namestring

The name of folder.

items[].kindstring

The type of item returned. Will always be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Search Workspace Contents
GET/workspaces/{workspaceId}/search{?query,kind,limit,offset,orderBy,orderDirection,fields}

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

query
string (required) 

The search query keywords. Its length must be 2 or more characters and can contain multiple keywords which are between 2 to 20 characters each. Keywords must be separated by whitespace. For example, ‘demo jpg’.

kind
string (optional) Default: all 

Determines which kind of items will be returned.

Choices: folder asset all

limit
number (optional) Default: 50 

The number of items to return. The maximum is 100.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: relevance 

The field to sort the items by.

Choices: createdOn relevance

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

fields
string (optional) 

A comma separated list of fields to return in the response. If this value is empty all fields will be returned. Id and Name are always returned.

Description

Searches for assets and folders inside a given workspace. The search operation is case insensitive and supports partial matching. This means the result set will include any asset or folder that contains any of the search keywords in it’s name. The search can contain multiple keywords as long as each keyword is separated by whitespace and is between 2 and 20 characters in length. The results are sorted by relevance so the items that match the most keywords will be at the top (note: regardless of relevance, folders always appear above assets in search results).

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 100. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’ or ‘Relevance’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
400 InvalidQueryKindFilter Invalid kind filter. It must be either ‘All’, ‘Asset’ or ‘Folder’.
404 WorkspaceNotFound Workspace not found.

Purge Trash

POST  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz/purgetrash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Trash was purged"
}
Property nameTypeDescription
messagestring

Indicates successful purge.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Purge Trash
POST/workspaces/{workspaceId}/purgetrash

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

Description

Deletes all trashed folders and assets for a workspace.

All folders and assets are permanently deleted and cannot be recovered.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message
404 WorkspaceNotFound Workspace not found.

List Workspace Events

GET  https://api.cimediacloud.com/workspaces/moqxhkej4epvgrwz/events?since=2017-01-02T00:00:00.000Z&type=CreateAsset&limit=1&offset=0&orderDirection=asc
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "filter": {
    "type": [
      "AssetProcessingFinished"
    ],
    "since": "2017-01-02T00:00:00.000Z"
  },
  "items": [
    {
      "id": "prffhlw9iptcfqfc",
      "type": "CreateAsset",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "assets": [
        {
          "id": "eynde5qbjzc0ww16",
          "name": "Movie.mov"
        }
      ],
      "folders": [
        {
          "id": "fcy33tbepeyit07y",
          "name": "Folder Name"
        }
      ]
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

filterobject

Information about the filter used for retrieving events.

filter.typearray

Indicates the event types used as a filter in the request. Supported types are ‘AssetProcessingFinished’, ‘CreateAsset’, ‘DeleteAsset’, ‘TrashAsset’, ‘UploadAsset’ and ‘MoveAsset’. This field is omitted if no type was used to filter events.

filter.sincestring

Indicates the timestamp used as a filter in the request. This field is omitted if no timestamp was used to filter events.

itemsarray

The set of events returned by the query.

items[].idstring

The unique identifier of the event.

items[].typestring

The type of the event. Returned values are ‘AssetProcessingFinished’, ‘CreateAsset’, ‘DeleteAsset’, ‘TrashAsset’, ‘UploadAsset’ and ‘MoveAsset’

items[].createdOnstring

The datetime the event occurred.

items[].createdByobject

Information about the event creator.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].assetsarray

The set of assets involved in the event.

items[].assets[].idstring

The unique identifier of the asset.

items[].assets[].namestring

The name of asset and its extension.

items[].foldersarray

The set of folders involved in the event.

items[].folders[].idstring

The unique identifier of the folder.

items[].folders[].namestring

The name of folder.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List Workspace Events
GET/workspaces/{workspaceId}/events{?since,type,limit,offset,orderDirection}

URI Parameters
HideShow
workspaceId
string (required) 

The unique identifier of the workspace.

since
string (optional) 

Filters the events by their creation date. The operation will only return events that occurred on or after the given timestamp. Value must be in IS0 8601 date and time format (e.g.: ‘2020-01-01T00:00:00.000Z’).

type
string (optional) 

Comma-separated list of event types to filter by. Omit this parameter to return all supported event types.

Choices: AssetProcessingFinished CreateAsset DeleteAsset TrashAsset UploadAsset MoveAsset MoveFolder

limit
number (optional) Default: 50 

The number of items to return. The maximum is 50.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

Description

Retrieves events that occurred on a given workspace. This query supports pagination using limit and offset. Additionally, using the ‘since’ and ‘type’ parameters, it is possible to filter events by date and event type. The results are ordered by date created.

The following event types can be used when filtering for Workspace events:

  • AssetProcessingFinished - Asset is done processing (please note: the result of that processing activity could have the following asset statuses - Complete, Limited, VirusDetected, ExecutableDetected).

  • CreateAsset - Asset is created but not yet uploaded.

  • DeleteAsset - Asset is deleted.

  • TrashAsset - Asset is trashed.

  • UploadAsset - Asset is uploaded successfully.

  • MoveAsset - Asset was moved to a different folder.

  • MoveFolder - Folder was moved to a different folder.

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 50. Offset must be greater than or equal to 0.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
400 InvalidQueryFilter Invalid query filter.
404 WorkspaceNotFound Workspace not found.

Folders

Folders allow you to organize your files in ways that make sense to you. Think of a folder in Ci just like a folder on your operating system. You can have a flat set of folders or create nested folder structures (folders inside of folders) - it’s really up to you.

Folder

POST  https://api.cimediacloud.com/folders/
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Folder Name",
  "workspaceId": "nnyhxwjqaug2yhaq",
  "parentFolderId": "rslrfzbh5pj8l3as"
}
Property nameTypeDescription
namestring (required)

The name of the folder.

workspaceIdstring

The workspace that will contain the folder. If no value is provided, the folder will be placed in the calling user’s personal workspace.

parentFolderIdstring

The workspace’s parent folder that will contain the folder. If no value is provided, the folder will be placed in the workspaces’ root folder.

Responses200400
Headers
Content-Type: application/json
Body
{
  "folderId": "034s405gln33zxc6"
}
Property nameTypeDescription
folderIdstring

The unique identifier of the created folder.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create a Folder
POST/folders/

Description

Creates a new folder record.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
409 FolderTrashed Folder is trashed.
409 FolderDeleted Folder is deleted.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.

GET  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "vamrnuqdvho6cwii",
  "name": "My Folder",
  "parentId": "nqyptt047b7qc9y3",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "isTrashed": false,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "parentFolder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  }
}
Property nameTypeDescription
idstring

The unique identifier of folder.

namestring

The name of the folder.

parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

createdOnstring

The datetime the folder was created.

createdByobject

Information about the creator of the folder.

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

isTrashedboolean

Indicates if a folder is in the trash bin.

workspaceobject

Information about the folder’s parent workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the folder’s parent network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

parentFolder.idstring

The unique identifier of the folder.

parentFolder.namestring

The name of folder.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Folder Details
GET/folders/{folderId}

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

Description

Retrieves information about the given folder.

Errors

Status Code Error Code Message
404 FolderNotFound Folder not found.
404 FolderDeleted Folder is deleted.

PUT  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "New Name"
}
Property nameTypeDescription
namestring

The new name of the folder.

Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "vamrnuqdvho6cwii",
  "name": "My Folder",
  "parentId": "nqyptt047b7qc9y3",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "isTrashed": false,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "parentFolder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  }
}
Property nameTypeDescription
idstring

The unique identifier of folder.

namestring

The name of the folder.

parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

createdOnstring

The datetime the folder was created.

createdByobject

Information about the creator of the folder.

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

isTrashedboolean

Indicates if a folder is in the trash bin.

workspaceobject

Information about the folder’s parent workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the folder’s parent network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

parentFolder.idstring

The unique identifier of the folder.

parentFolder.namestring

The name of folder.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Update a Folder
PUT/folders/{folderId}

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

Description

Updates specified properties of a folder. The current version of Ci API only supports renaming a folder.

Errors

Status Code Error Code Message
400 MissingOrInvalidName Missing or invalid name.
404 FolderNotFound Folder not found.
404 FolderDeleted Folder is deleted.

DELETE  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Folder was deleted"
}
Property nameTypeDescription
messagestring

Indicates the folder was deleted.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Delete a Folder
DELETE/folders/{folderId}

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

Description

Deletes the specified folder and all of its contents permanently. The storage quota is updated to reflect the newly freed space.

Deleting a folder will delete all contents within the folder recursively (including all subfolders and assets within subfolders).

All folders and assets are permanently deleted and cannot be recovered.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message
404 FolderNotFound Folder not found.
404 FolderDeleted Folder is deleted.
409 InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

List Folder Contents

GET  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz/contents?kind=all&limit=1&offset=0&orderBy=name&orderDirection=asc&fields=name,thumbnails
Requestsexample with asset in responseexample with folder in response
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "jy3lrsqqm0qobid1",
      "name": "Movie.mov",
      "size": 107856722,
      "type": "Video",
      "format": "mov",
      "status": "Complete",
      "description": "Final cut",
      "thumbnails": [
        {
          "type": "large",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
          "size": 1024,
          "width": 200,
          "height": 300
        }
      ],
      "proxies": [
        {
          "type": "video-3g",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
          "size": 1024,
          "width": 200,
          "height": 300,
          "videoBitRate": 1650000,
          "audioBitRate": 128000
        }
      ],
      "md5Checksum": "tk2ma0zrhrp5irco",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "modifiedOn": "2017-01-02T00:00:00.000Z",
      "acquisitionSource": {
        "name": "Workspace"
      },
      "archiveStatus": "Not archived",
      "restoreStatus": "Not restored",
      "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
      "restoreRequestDate": "2017-01-02T00:00:00.000Z",
      "lastRestoreDate": "2017-01-02T00:00:00.000Z",
      "restoredBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "archiveDate": "2017-01-02T00:00:00.000Z",
      "archivedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
      "isTrashed": false,
      "uploadTransferType": "SinglepartHttp",
      "runtime": 1024,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "technicalMetadata": {
        "type": "Video",
        "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
        "size": 1024,
        "image": {
          "width": 100,
          "height": 300,
          "xResolution": 100,
          "yResolution": 100,
          "resolutionUnit": "cm",
          "cameraMake": "Nikon",
          "cameraModel": "D300",
          "locationCity": "New York",
          "locationState": "NY",
          "locationCountry": "USA"
        },
        "avContainer": {
          "bitRate": 11934620,
          "duration": 100,
          "start": 0,
          "timeCode": "00:00:00:00",
          "derivedTimeCode": "00:00:00:00",
          "streams": [
            {
              "index": 0,
              "type": "Video",
              "bitRate": 11934620,
              "codec": "h264",
              "width": 1280,
              "height": 720,
              "duration": 100,
              "frameRateNumerator": 360,
              "frameRateDenominator": 12,
              "videoPARWidth": 1,
              "videoPARHeight": 1,
              "videoDARWidth": 19,
              "videoDARHeight": 24,
              "start": 0,
              "timeCode": "00:00:00:00",
              "audioSampleRate": 32000,
              "audioChannelCount": 2,
              "audioLayout": "stereo",
              "totalFrames": 1024,
              "codecLongName": "MPEG-4 part 2",
              "fourCC": "avc1",
              "rotate": 0
            }
          ]
        }
      },
      "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
      "acquisitionContext": {
        "name": "Movie1.mov",
        "path": "original/source/path"
      },
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

items[].sizenumber

The size of the source file, in bytes.

items[].typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

items[].formatstring

The asset’s file format.

items[].statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

items[].descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

items[].thumbnailsarray

The set of thumbnails for the asset.

items[].thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

items[].thumbnails[].locationstring

The url of the thumbnail.

items[].thumbnails[].sizenumber

The size of the thumbnail, in bytes.

items[].thumbnails[].widthnumber

The width of the thumbnail.

items[].thumbnails[].heightnumber

The height of the thumbnail.

items[].proxiesarray

The set of proxies for the asset.

items[].proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

items[].proxies[].locationstring

The url of the proxy.

items[].proxies[].sizenumber

The size of the proxy, in bytes.

items[].proxies[].widthnumber

The width of the proxy.

items[].proxies[].heightnumber

The height of the proxy.

items[].proxies[].videoBitRatenumber

The video bitrate of the proxy.

items[].proxies[].audioBitRatenumber

The audio bitrate of the proxy.

items[].md5Checksumstring

The calculated md5 checksum for the asset.

items[].createdOnstring

The datetime the asset record was created.

items[].createdByobject

Information about the creator of the asset

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].modifiedOnstring

The datetime the asset record was last modified.

items[].acquisitionSourceobject

Information about the asset’s source client application.

items[].acquisitionSource.namestring

The name of the client application that uploaded the asset.

items[].archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

items[].restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

items[].restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

items[].restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

items[].lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

items[].restoredByobject

If availabe, information about the user who restored the asset.

items[].restoredBy.idstring

The unique identifier of the user.

items[].restoredBy.namestring

The full name of the user.

items[].restoredBy.emailstring

The email of the user.

items[].archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

items[].archivedByobject

If availabe, information about the user who archived the asset.

items[].archivedBy.idstring

The unique identifier of the user.

items[].archivedBy.namestring

The full name of the user.

items[].archivedBy.emailstring

The email of the user.

items[].uploadCompleteDatestring

The datetime the asset upload was completed.

items[].isTrashedboolean

Indicates if an asset is in the trash bin.

items[].uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

items[].runtimenumber

The duration of the media asset, in seconds.

items[].workspaceobject

Information about the asset’s workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the asset’s network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].technicalMetadataobject

An object that contains all the technical metadata available.

items[].technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

items[].technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

items[].technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

items[].technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

items[].technicalMetadata.image.widthnumber

The width of the image, in pixels.

items[].technicalMetadata.image.heightnumber

The height of the image, in pixels.

items[].technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

items[].technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

items[].technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

items[].technicalMetadata.image.cameraMakestring

Camera manufacturer name.

items[].technicalMetadata.image.cameraModelstring

Camera model name.

items[].technicalMetadata.image.locationCitystring

Name of the city where the image was created.

items[].technicalMetadata.image.locationStatestring

Name of the state where the image was created.

items[].technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

items[].technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

items[].technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

items[].technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

items[].technicalMetadata.avContainer.startnumber

The start time in the container.

items[].technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

items[].technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

items[].technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

items[].technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

items[].technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

items[].technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

items[].technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

items[].technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

items[].technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

items[].technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

items[].technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

items[].technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

items[].technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

items[].technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

items[].technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

items[].technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

items[].technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

items[].technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

items[].technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

items[].technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

items[].technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

items[].hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

items[].acquisitionContextobject

The file acquisition information.

items[].acquisitionContext.namestring

The original source file name, captured on acquisition.

items[].acquisitionContext.pathstring

The original source file path, captured on acquisition.

items[].kindstring

The type of item returned. Will always be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "limit": 1,
  "offset": 0,
  "count": 10,
  "order": {
    "by": "Name",
    "direction": "asc"
  },
  "kind": [
    "All"
  ],
  "items": [
    {
      "id": "vamrnuqdvho6cwii",
      "name": "My Folder",
      "parentId": "nqyptt047b7qc9y3",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "isTrashed": false,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "parentFolder": {
        "id": "fcy33tbepeyit07y",
        "name": "Folder Name"
      },
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
limitnumber

The limit used for the query.

offsetnumber

The offset used for the query.

countnumber

The total count of items available.

orderobject

Information about the ordering of the results.

order.bystring

Indicates the field used to sort the results.

order.directionstring

Indicates the direction used to sort the results.

kindarray

Indicates the kind filter used in the request. Returned values are ‘All’, ‘Asset’, and ‘Folder’.

itemsarray

The items returned. Can be both assets and folders.

items[].idstring

The unique identifier of folder.

items[].namestring

The name of the folder.

items[].parentIdstring

The unique identifier of the parent folder, if it is a child folder, or the workspace id, if it is the Workspace’s root folder.

items[].createdOnstring

The datetime the folder was created.

items[].createdByobject

Information about the creator of the folder.

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].isTrashedboolean

Indicates if a folder is in the trash bin.

items[].workspaceobject

Information about the folder’s parent workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the folder’s parent network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].parentFolderobject

Information about the folder’s parent folder. If the folder is the root folder of a Workspace this property will not be available.

items[].parentFolder.idstring

The unique identifier of the folder.

items[].parentFolder.namestring

The name of folder.

items[].kindstring

The type of item returned. Will always be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "code": "WorkspaceNotFound",
  "message": "Workspace not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List Folder Contents
GET/folders/{folderId}/contents{?kind,limit,offset,orderBy,orderDirection,fields}

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

kind
string (optional) Default: all 

Determines which kind of items will be returned.

Choices: folder asset all

limit
number (optional) Default: 50 

The number of items to return. The maximum is 100.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: name 

The field to sort the items by. Note: ‘size’ only sorts by asset size and not folder size.

Choices: createdOn createdBy name type size status

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

fields
string (optional) 

A comma separated list of fields to return in the response. If this value is empty all fields will be returned. Id and Name are always returned.

Description

Retrieves the subfolders and assets of the given folder. This query supports pagination using limit and offset. Additionally, using the ‘kind’ parameter, it is possible to choose which kind of items to return (subfolders, assets or both). If both are returned, the items are grouped by kind (subfolders first, then assets).

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 100. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’, ‘Name’, ‘Status’, ‘Type’, ‘Size’ or ‘CreatedBy’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
400 InvalidQueryKindFilter Invalid kind filter. It must be either ‘All’, ‘Asset’ or ‘Folder’.
404 FolderNotFound Folder not found.

Move Folders

POST  https://api.cimediacloud.com/folders/move
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "folderIds": [
    "6i3x3hp1ni2wo5bd"
  ],
  "targetFolderId": "q3ln0tpox340bbmh"
}
Property nameTypeDescription
folderIdsarray

The unique identifiers for all folders.

targetFolderIdstring

The unique identifier for the target folder.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "fcy33tbepeyit07y",
      "name": "Folder Name",
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the folder.

complete[].namestring

The name of folder.

complete[].kindstring

The kind of item returned. Will be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Move Folders
POST/folders/move

Description

Moves one or more folders into a target folder within the same Workspace.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 FolderIdNotProvided Folder Id was not provided. Either the folders to be moved or the target folder was not provided.
400 FolderNotFound Folder not found. Target folder was not found.
400 ExceededMaxFolderCount Max folder count exceeded. The maximum number of folders is 500.
409 FolderTrashed Folder is trashed. Target folder is trashed.
409 FolderDeleted Folder is deleted. Target folder is deleted.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully moved folders.

Errors represented in errors array

Error Code Message
CannotChangeWorkspace Invalid workspace. Folders cannot be moved to a different workspace.
FolderNotFound Folder not found.
FolderDeleted Folder is deleted.
FolderTrashed Folder is trashed.
InvalidFolder Invalid folder. Folders cannot be moved into their sub-folders.
InvalidFolder Invalid folder. A folder cannot be moved to itself.
InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

Trash a Folder

POST  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz/trash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Folder was trashed"
}
Property nameTypeDescription
messagestring

Indicates the folder was trashed.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Trash a Folder
POST/folders/{folderId}/trash

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

Description

Sends the folder and all of its contents to the trash bin. Items in the trash bin are not considered available for additional operations, i.e. downloading. However, they are still physically available and can be removed from the trash.

Trashing a folder will trash all contents within the folder recursively (including all subfolders and assets within subfolders).

The sum of the size of all assets in the folder are still counted against your storage quota while they exist in the trash bin.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message
404 FolderNotFound Folder not found.
404 FolderDeleted Folder is deleted.
409 FolderTrashed Folder is trashed.
409 InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

Trash Multiple Folders

POST  https://api.cimediacloud.com/folders/trash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "folderIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
folderIdsarray

The unique identifiers for all folders.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "fcy33tbepeyit07y",
      "name": "Folder Name",
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the folder.

complete[].namestring

The name of folder.

complete[].kindstring

The kind of item returned. Will be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Trash Multiple Folders
POST/folders/trash

Description

Sends the folders and all of their contents to the trash bin. Items in the trash bin are not considered available for additional operations, i.e. downloading. However, they are still physically available and can be removed from the trash.

500 is the maximum number of folders that can be trashed in a single operation.

Trashing a folder will trash all contents within the folder recursively (including all subfolders and assets within subfolders).

The sum of the size of all assets in the folder are still counted against your storage quota while they exist in the trash bin.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 FolderIdNotProvided Folder Id not provided.
400 ExceededMaxFolderCount Max folder count exceeded. The maximum number of folders is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully trashed folders.

Errors represented in errors array

Error Code Message
FolderNotFound Folder not found.
FolderDeleted Folder is deleted.
FolderTrashed Folder is trashed.
InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

Untrash a Folder

POST  https://api.cimediacloud.com/folders/moqxhkej4epvgrwz/untrash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Folder was untrashed"
}
Property nameTypeDescription
messagestring

Indicates the folder was untrashed.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Untrash a Folder
POST/folders/{folderId}/untrash

URI Parameters
HideShow
folderId
string (required) 

The unique identifier of the folder.

Description

Removes a previously-trashed folder and all its contents from the trash bin.

Untrashing a folder will untrash all contents within the folder recursively (including all subfolders and assets within subfolders).

Additionally, this operation will untrash the folder’s parent folders, if trashed, but will not untrash any parent folder contents.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message
404 FolderNotFound Folder not found.
404 FolderDeleted Folder is deleted.
409 FolderNotTrashed Folder is already untrashed.
409 InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

Untrash Multiple Folders

POST  https://api.cimediacloud.com/folders/untrash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "folderIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
folderIdsarray

The unique identifiers for all folders.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "fcy33tbepeyit07y",
      "name": "Folder Name",
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the folder.

complete[].namestring

The name of folder.

complete[].kindstring

The kind of item returned. Will be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Untrash Multiple Folders
POST/folders/untrash

Description

Removes previously-trashed folders and all their contents from the trash bin.

500 is the maximum number of folders that can be untrashed in a single operation.

Untrashing a folder will untrash all contents within the folder recursively (including all subfolders and assets within subfolders).

Additionally, this operation will untrash the folder’s parent folders, if trashed, but will not untrash any parent folder contents.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 FolderIdNotProvided Folder Id not provided.
400 ExceededMaxFolderCount Max folder count exceeded. The maximum number of folders is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully untrashed folders.

Errors represented in errors array

Error Code Message
FolderNotFound Folder not found.
FolderDeleted Folder is deleted.
FolderNotTrashed Folder is already untrashed.
InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

Delete Multiple Folders

POST  https://api.cimediacloud.com/folders/delete
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "folderIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
folderIdsarray

The unique identifiers for all folders.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "fcy33tbepeyit07y",
      "name": "Folder Name",
      "kind": "Folder"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the folder.

complete[].namestring

The name of folder.

complete[].kindstring

The kind of item returned. Will be ‘Folder’ for folders.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Delete Multiple Folders
POST/folders/delete

Description

Deletes the specified folders and all of their contents permanently. The storage quota is updated to reflect the newly freed space.

500 is the maximum number of folders that can be deleted in a single operation.

Deleting a folder will delete all contents within the folder recursively (including all subfolders and assets within subfolders).

All folders and assets are permanently deleted and cannot be recovered.

Assets affected during this operation may not be updated immediately. This work is performed asynchronously and therefore it can take a few minutes for all updates to appear.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 FolderIdNotProvided Folder Id not provided.
400 ExceededMaxFolderCount Max folder count exceeded. The maximum number of folders is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully deleted folders.

Errors represented in errors array

Error Code Message
FolderNotFound Folder not found.
FolderDeleted Folder is deleted.
InvalidOperationOnRootFolder Root folder cannot be deleted, trashed, untrashed, or moved.

MediaBoxes

Create MediaBox

POST  https://api.cimediacloud.com/mediaboxes
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "MediaBox Name",
  "assetIds": [
    "7ypjlc9uevl2kcfp"
  ],
  "type": "Secure",
  "allowSourceDownload": false,
  "allowPreviewDownload": true,
  "allowElementDownload": true,
  "recipients": [
    "johnsmith@example.com"
  ],
  "message": "example message",
  "password": "pr!v@te",
  "expirationDays": 30,
  "expirationDate": "2017-01-02T00:00:00.000Z",
  "sendNotifications": true,
  "notifyOnOpen": true
}
Property nameTypeDescription
namestring (required)

The title of the MediaBox.

assetIdsarray (required)

The asset Ids that will be included in the MediaBox. All asset Ids must be part of the same Workspace.

typestring (required)

Specifies the type of MediaBox. The value must be ‘Secure’, ‘Protected’ or ‘Public’.

allowSourceDownloadboolean

Specifies if the source assets included in the MediaBox shall be downloadable or not. The default is ‘false’.

allowPreviewDownloadboolean

Specifies if the preview proxies of the assets included in the MediaBox shall be downloadable or not. The default is ‘false’.

allowElementDownloadboolean

Specifies if the elements (custom profiles and uploaded through the Elements API) associated to the assets included in the MediaBox shall be downloadable or not. The default is ‘false’.

recipientsarray

The list of email addresses who shall receive the MediaBox. If ‘type’ is set to ‘Secure’, this list also restricts who can access the MediaBox. If ‘sendNotifications’ is true these users will receive an email when the MediaBox is created.

messagestring

Brief note for recipients.

passwordstring

If ‘type’ is set to ‘Protected’, a password is required to open the MediaBox.

expirationDaysnumber

Number of days the MediaBox will be accessible after it is created. Provide this field or expirationDate field but not both. Omit this field and expirationDate field and the MediaBox will never expire.

expirationDatestring

Date and time when the MediaBox will expire. Value must be in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Provide this field or expirationDays field but not both. Omit this field and expirationDays field + and the MediaBox will never expire.

sendNotificationsboolean

Indicates if an email notification shall be sent to the recipients. The default is ‘false’.

notifyOnOpenboolean

Indicates if an email notification shall be sent to the MediaBox owner when a recipient opens the Mediabox. The default is ‘false’.

Responses200400
Headers
Content-Type: application/json
Body
{
  "mediaboxId": "2vvcf7zv4hsrpeiq",
  "link": "https://workspace.cimediacloud.com/r/XeI26E"
}
Property nameTypeDescription
mediaboxIdstring

The unique identifier of the created MediaBox.

linkstring

URL of the created MediaBox.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create MediaBox
POST/mediaboxes

Description

Creates a new MediaBox for sharing assets.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name.
400 AssetIdNotProvided Asset Id not provided.
400 InvalidMediaBoxType Invalid MediaBox type.
400 InvalidExpiration Invalid expiration.
400 InvalidPassword A password is required.
400 InvalidRecipients One or more recipients has an invalid email address.
400 InvalidRecipients Recipients are required.
400 InvalidAssets Assets belong to multiple workspaces.
400 AssetNotFound Asset not found.
400 EntitlementRequired MediaBox tracking is not enabled for this network.
409 AssetTrashed Asset is trashed.

File Requests

Create File Request

POST  https://api.cimediacloud.com/filerequests
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "File Request Name",
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w",
  "expirationDate": "2019-01-02T00:00:00.000Z",
  "recipients": [
    "johnsmith@example.com"
  ],
  "deliveryReceipts": [
    "johnsmith@example.com"
  ],
  "metadataFields": [
    {
      "name": "Example field",
      "value": "Default value",
      "isRequired": false
    }
  ]
}
Property nameTypeDescription
namestring (required)

The name of the File Request.

workspaceIdstring (required)

The Workspace that will contain received assets from the File Request.

folderIdstring

The Workspace’s folder that will contain received assets from the File Request. If no value is provided, the assets will be placed in the Workspace’s root folder.

expirationDatestring

Date and time when the File Request will expire. Value must be in IS0 8601 date and time format (e.g.: ‘2020-01-01’).

recipientsarray

The list of email addresses who will receive notification of the File Request.

deliveryReceiptsarray

The list of email address who will receive notification when one or more files are contributed to the File Request. The Pro File Request entitlement is required for this feature.

metadataFieldsarray

Asset metadata fields that will appear in the File Request to allow users to provide additional information about each contributed asset.

metadataFields[].namestring

The name of the metadata field.

metadataFields[].valuestring

The default value of the metadata field

metadataFields[].isRequiredboolean

Indicates if the metada field is required. Default is false.

Responses200400
Headers
Content-Type: application/json
Body
{
  "fileRequestId": "2vvcf7zv4hsrpeiq",
  "link": "https://workspace.cimediacloud.com/file-request/XeI26E"
}
Property nameTypeDescription
fileRequestIdstring

The unique identifier of the created File Request.

linkstring

URL of the created File Request.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create File Request
POST/filerequests

Description

Creates a new File Request for receiving assets from external contributors.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name.
400 InvalidExpiration Invalid expiration.
400 InvalidRecipients One or more recipients has an invalid email address.
400 InvalidDeliveryReceipts One or more delivery receipts has an invalid email address.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 WorkspaceNotFound Workspace not found.
409 FolderTrashed Folder is trashed.
409 FolderDeleted Folder is deleted.
409 EntitlementRequired Pro File Request entitlement is required for the provided settings.

Assets

Assets represent the content that you want to store and make available to your customers. Basically, they’re your files with a whole bunch of value added to them. As part of turning your file into an asset in Ci, we extract technical metadata from your file and make it available to you. We calculate the MD5 checksum so that you can confirm that the file you stored is identical to the file you sent. We also generate the same set of beautiful proxies and thumbnails that you find in the award-winning Workspace user interface. You can add key/value pairs of metadata to the asset to provide useful information such as where it was shot, who was in it, the time of day - whatever information is important to you. Oh, and since we value security as much as you value your files, we check to make sure your files are healthy and free of viruses.

We do our best to support file formats that we know our customers use. If we run into something that’s new to us, we will quickly add it to our arsenal or, at the very least, let you know why we can’t. Even if we can’t create proxies from your file, we’ll still store it and provide you the same level of access that you expect from any asset in Ci.

Asset Statuses

When the asset record is created in our database it will have a status of ‘Created’. Once uploaded its status will transition to ‘Waiting’ to indicate it is waiting for backend processing jobs to begin (thumbnails, preview proxies, MD5 checksum, extract technical metadata, check for viruses, etc.). Once those jobs begin its status moves to ‘Processing’. When those jobs are complete the status will go to ‘Complete’. If a failure happens during upload the status will go to ‘Failed’. There are a couple additional statuses to consider as well:

  • Limited - There were problems generating thumbnails and/or preview proxies, The source file is still available for download.

  • Virus Detected - A virus was found and the file is not downloadable and generally cannot be used in our system.

  • Executable Detected - An executable file was found and the file is not downloadable and generally cannot be used in our system.

  • Deleted - The file has been deleted.

Previews

During the ingest process we will automatically create previews of your asset. These supplemental previews give you flexibility to display and stream your content appropriately.

These previews are subject to changes at any time.

Thumbnails

The following types of thumbnails can be returned in the thumbnails array found in any resources that return assets.

Thumbnail Types

Type Description
‘small’ 250x250, jpeg, scale of the original source.
‘medium’ 560x560, jpeg, scale of the original source.
‘large’ 1000x1000, jpeg, scale of the original source.

Thumbnails per Asset Type

Type Video Image Audio
‘small’ Generated Generated Not Available
‘medium’ Not Available Generated Not Available
‘large’ Not Available Generated Not Available

Proxies

The following types of proxies can be returned in the proxies array found in any resources that return assets.

Proxy Types

Type Description
‘standard-audio’ 192kbps, mp3 format.
‘video-3g’ 480x270, 200kbps, h264 codec, mp4 container.
‘video-sd’ 640x360, 560kbps, h264 codec, mp4 container.
‘video-sdplus’ 960x540, 1650kbps, h264 codec, mp4 container.
‘video-hd’ 1280x720, 3000kbps, h264 codec, mp4 container.
‘video-2k’ 1920x1080, 6800kbps, h264 codec, mp4 container.
‘video-2kplus’ 1920x1080, 8500kbps, h264 codec, mp4 container.
‘document-pdf’ Adobe pdf format.

Proxies per Asset Type

Type Video Image Audio Document
‘standard-audio’ Not Available Not Available Generated Not Available
‘video-3g’ Generated Not Available Not Available Not Available
‘video-sd’ Generated Not Available Not Available Not Available
‘video-sdplus’ Generated Not Available Not Available Not Available
‘video-hd’ Available on request Not Available Not Available Not Available
‘video-2k’ Available on request Not Available Not Available Not Available
‘video-2kplus’ Available on request Not Available Not Available Not Available
‘document-pdf’ Not Available Not Available Not Available Generated

Filmstrips

The following types of filmstrips can be returned in the filmstrips array found in any resources that return assets.

Filmstrip Types

Type Description
‘video-filmstrip-small’ 200 frames, 60x34 maximum frame resolution.
‘video-filmstrip-scrub’ 15 frames, 120x120 maximum frame resolution.

Filmstrips per Asset Type

Type Video Image Audio
‘video-filmstrip-small’ Generated Not Available Not Available
‘video-filmstrip-scrub’ Generated Not Available Not Available

Waveforms

The following types of waveforms can be returned in the waveforms array found in any resources that return assets.

Waveform Types

Type Description
‘video-waveform’ 2000 maximum samples, amplitudes ranging from -100 to 100.

Waveforms per Asset Type**

Type Video Image Audio
‘video-waveform’ Generated Not Available Not Available

Asset

POST  https://api.cimediacloud.com/assets/
Requestssimple examplefull example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w"
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

Responses200400
Headers
Content-Type: application/json
Body
{
  "id": "jy3lrsqqm0qobid1",
  "name": "Movie.mov",
  "size": 107856722,
  "type": "Video",
  "format": "mov",
  "status": "Complete",
  "description": "Final cut",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ],
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "md5Checksum": "tk2ma0zrhrp5irco",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "modifiedOn": "2017-01-02T00:00:00.000Z",
  "acquisitionSource": {
    "name": "Workspace"
  },
  "archiveStatus": "Not archived",
  "restoreStatus": "Not restored",
  "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
  "restoreRequestDate": "2017-01-02T00:00:00.000Z",
  "lastRestoreDate": "2017-01-02T00:00:00.000Z",
  "restoredBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "archiveDate": "2017-01-02T00:00:00.000Z",
  "archivedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
  "isTrashed": false,
  "uploadTransferType": "SinglepartHttp",
  "runtime": 1024,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "technicalMetadata": {
    "type": "Video",
    "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
    "size": 1024,
    "image": {
      "width": 100,
      "height": 300,
      "xResolution": 100,
      "yResolution": 100,
      "resolutionUnit": "cm",
      "cameraMake": "Nikon",
      "cameraModel": "D300",
      "locationCity": "New York",
      "locationState": "NY",
      "locationCountry": "USA"
    },
    "avContainer": {
      "bitRate": 11934620,
      "duration": 100,
      "start": 0,
      "timeCode": "00:00:00:00",
      "derivedTimeCode": "00:00:00:00",
      "streams": [
        {
          "index": 0,
          "type": "Video",
          "bitRate": 11934620,
          "codec": "h264",
          "width": 1280,
          "height": 720,
          "duration": 100,
          "frameRateNumerator": 360,
          "frameRateDenominator": 12,
          "videoPARWidth": 1,
          "videoPARHeight": 1,
          "videoDARWidth": 19,
          "videoDARHeight": 24,
          "start": 0,
          "timeCode": "00:00:00:00",
          "audioSampleRate": 32000,
          "audioChannelCount": 2,
          "audioLayout": "stereo",
          "totalFrames": 1024,
          "codecLongName": "MPEG-4 part 2",
          "fourCC": "avc1",
          "rotate": 0
        }
      ]
    }
  },
  "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
  "acquisitionContext": {
    "name": "Movie1.mov",
    "path": "original/source/path"
  },
  "filmstrips": [
    {
      "type": "video-filmstrip-small",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
      "size": 1024,
      "frames": 100,
      "frameHeight": 100,
      "frameWidth": 100,
      "width": 100,
      "height": 1000
    }
  ],
  "waveforms": [
    {
      "type": "video-waveform",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
      "size": 1024,
      "maxAmplitude": 1000,
      "sampleMethod": "SamplesCount",
      "samplesPerSecond": 12
    }
  ],
  "folder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  },
  "isDeleted": false,
  "trashedOn": "2017-01-02T00:00:00.000Z",
  "trashedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  }
}
Property nameTypeDescription
idstring

The unique identifier of the asset.

namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber

The size of the source file, in bytes.

typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

formatstring

The asset’s file format.

statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

thumbnailsarray

The set of thumbnails for the asset.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

proxiesarray

The set of proxies for the asset.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

md5Checksumstring

The calculated md5 checksum for the asset.

createdOnstring

The datetime the asset record was created.

createdByobject

Information about the creator of the asset

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

modifiedOnstring

The datetime the asset record was last modified.

acquisitionSourceobject

Information about the asset’s source client application.

acquisitionSource.namestring

The name of the client application that uploaded the asset.

archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

restoredByobject

If availabe, information about the user who restored the asset.

restoredBy.idstring

The unique identifier of the user.

restoredBy.namestring

The full name of the user.

restoredBy.emailstring

The email of the user.

archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

archivedByobject

If availabe, information about the user who archived the asset.

archivedBy.idstring

The unique identifier of the user.

archivedBy.namestring

The full name of the user.

archivedBy.emailstring

The email of the user.

uploadCompleteDatestring

The datetime the asset upload was completed.

isTrashedboolean

Indicates if an asset is in the trash bin.

uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

runtimenumber

The duration of the media asset, in seconds.

workspaceobject

Information about the asset’s workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the asset’s network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

technicalMetadataobject

An object that contains all the technical metadata available.

technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

technicalMetadata.image.widthnumber

The width of the image, in pixels.

technicalMetadata.image.heightnumber

The height of the image, in pixels.

technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

technicalMetadata.image.cameraMakestring

Camera manufacturer name.

technicalMetadata.image.cameraModelstring

Camera model name.

technicalMetadata.image.locationCitystring

Name of the city where the image was created.

technicalMetadata.image.locationStatestring

Name of the state where the image was created.

technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

technicalMetadata.avContainer.startnumber

The start time in the container.

technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

acquisitionContextobject

The file acquisition information.

acquisitionContext.namestring

The original source file name, captured on acquisition.

acquisitionContext.pathstring

The original source file path, captured on acquisition.

filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

filmstrips[].typestring

The type of filmstrip returned.

filmstrips[].locationstring

The url of the filmstrip.

filmstrips[].sizenumber

The size of the filmstrip, in bytes.

filmstrips[].framesnumber

Number of frames contained in the filmstrip.

filmstrips[].frameHeightnumber

The height of each frame.

filmstrips[].frameWidthnumber

The width of each frame.

filmstrips[].widthnumber

Total width of the filmstrip.

filmstrips[].heightnumber

Total height of the filmstrip.

waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

waveforms[].typestring

The type of waveform returned.

waveforms[].locationstring

The url of the waveform.

waveforms[].sizenumber

The size in bytes of the waveform.

waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

folderobject

Informaation about the asset’s parent folder.

folder.idstring

The unique identifier of the folder.

folder.namestring

The name of folder.

isDeletedboolean

Indicates if an asset is deleted.

trashedOnstring

The datetime the asset was trashed.

trashedByobject

Information about the user that trashed the asset.

trashedBy.idstring

The unique identifier of the user.

trashedBy.namestring

The full name of the user.

trashedBy.emailstring

The email of the user.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w",
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "description": "sample description",
  "ingestConfiguration": {
    "audioMappings": [
      {
        "mappings": [
          {
            "sourceStream": 1,
            "sourceChannel": 2,
            "targetChannel": 3,
            "amplitude": 0.8
          }
        ]
      }
    ]
  },
  "autoArchive": true
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "id": "jy3lrsqqm0qobid1",
  "name": "Movie.mov",
  "size": 107856722,
  "type": "Video",
  "format": "mov",
  "status": "Complete",
  "description": "Final cut",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ],
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "md5Checksum": "tk2ma0zrhrp5irco",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "modifiedOn": "2017-01-02T00:00:00.000Z",
  "acquisitionSource": {
    "name": "Workspace"
  },
  "archiveStatus": "Not archived",
  "restoreStatus": "Not restored",
  "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
  "restoreRequestDate": "2017-01-02T00:00:00.000Z",
  "lastRestoreDate": "2017-01-02T00:00:00.000Z",
  "restoredBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "archiveDate": "2017-01-02T00:00:00.000Z",
  "archivedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
  "isTrashed": false,
  "uploadTransferType": "SinglepartHttp",
  "runtime": 1024,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "technicalMetadata": {
    "type": "Video",
    "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
    "size": 1024,
    "image": {
      "width": 100,
      "height": 300,
      "xResolution": 100,
      "yResolution": 100,
      "resolutionUnit": "cm",
      "cameraMake": "Nikon",
      "cameraModel": "D300",
      "locationCity": "New York",
      "locationState": "NY",
      "locationCountry": "USA"
    },
    "avContainer": {
      "bitRate": 11934620,
      "duration": 100,
      "start": 0,
      "timeCode": "00:00:00:00",
      "derivedTimeCode": "00:00:00:00",
      "streams": [
        {
          "index": 0,
          "type": "Video",
          "bitRate": 11934620,
          "codec": "h264",
          "width": 1280,
          "height": 720,
          "duration": 100,
          "frameRateNumerator": 360,
          "frameRateDenominator": 12,
          "videoPARWidth": 1,
          "videoPARHeight": 1,
          "videoDARWidth": 19,
          "videoDARHeight": 24,
          "start": 0,
          "timeCode": "00:00:00:00",
          "audioSampleRate": 32000,
          "audioChannelCount": 2,
          "audioLayout": "stereo",
          "totalFrames": 1024,
          "codecLongName": "MPEG-4 part 2",
          "fourCC": "avc1",
          "rotate": 0
        }
      ]
    }
  },
  "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
  "acquisitionContext": {
    "name": "Movie1.mov",
    "path": "original/source/path"
  },
  "filmstrips": [
    {
      "type": "video-filmstrip-small",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
      "size": 1024,
      "frames": 100,
      "frameHeight": 100,
      "frameWidth": 100,
      "width": 100,
      "height": 1000
    }
  ],
  "waveforms": [
    {
      "type": "video-waveform",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
      "size": 1024,
      "maxAmplitude": 1000,
      "sampleMethod": "SamplesCount",
      "samplesPerSecond": 12
    }
  ],
  "folder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  },
  "isDeleted": false,
  "trashedOn": "2017-01-02T00:00:00.000Z",
  "trashedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  }
}
Property nameTypeDescription
idstring

The unique identifier of the asset.

namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber

The size of the source file, in bytes.

typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

formatstring

The asset’s file format.

statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

thumbnailsarray

The set of thumbnails for the asset.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

proxiesarray

The set of proxies for the asset.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

md5Checksumstring

The calculated md5 checksum for the asset.

createdOnstring

The datetime the asset record was created.

createdByobject

Information about the creator of the asset

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

modifiedOnstring

The datetime the asset record was last modified.

acquisitionSourceobject

Information about the asset’s source client application.

acquisitionSource.namestring

The name of the client application that uploaded the asset.

archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

restoredByobject

If availabe, information about the user who restored the asset.

restoredBy.idstring

The unique identifier of the user.

restoredBy.namestring

The full name of the user.

restoredBy.emailstring

The email of the user.

archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

archivedByobject

If availabe, information about the user who archived the asset.

archivedBy.idstring

The unique identifier of the user.

archivedBy.namestring

The full name of the user.

archivedBy.emailstring

The email of the user.

uploadCompleteDatestring

The datetime the asset upload was completed.

isTrashedboolean

Indicates if an asset is in the trash bin.

uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

runtimenumber

The duration of the media asset, in seconds.

workspaceobject

Information about the asset’s workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the asset’s network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

technicalMetadataobject

An object that contains all the technical metadata available.

technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

technicalMetadata.image.widthnumber

The width of the image, in pixels.

technicalMetadata.image.heightnumber

The height of the image, in pixels.

technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

technicalMetadata.image.cameraMakestring

Camera manufacturer name.

technicalMetadata.image.cameraModelstring

Camera model name.

technicalMetadata.image.locationCitystring

Name of the city where the image was created.

technicalMetadata.image.locationStatestring

Name of the state where the image was created.

technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

technicalMetadata.avContainer.startnumber

The start time in the container.

technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

acquisitionContextobject

The file acquisition information.

acquisitionContext.namestring

The original source file name, captured on acquisition.

acquisitionContext.pathstring

The original source file path, captured on acquisition.

filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

filmstrips[].typestring

The type of filmstrip returned.

filmstrips[].locationstring

The url of the filmstrip.

filmstrips[].sizenumber

The size of the filmstrip, in bytes.

filmstrips[].framesnumber

Number of frames contained in the filmstrip.

filmstrips[].frameHeightnumber

The height of each frame.

filmstrips[].frameWidthnumber

The width of each frame.

filmstrips[].widthnumber

Total width of the filmstrip.

filmstrips[].heightnumber

Total height of the filmstrip.

waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

waveforms[].typestring

The type of waveform returned.

waveforms[].locationstring

The url of the waveform.

waveforms[].sizenumber

The size in bytes of the waveform.

waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

folderobject

Informaation about the asset’s parent folder.

folder.idstring

The unique identifier of the folder.

folder.namestring

The name of folder.

isDeletedboolean

Indicates if an asset is deleted.

trashedOnstring

The datetime the asset was trashed.

trashedByobject

Information about the user that trashed the asset.

trashedBy.idstring

The unique identifier of the user.

trashedBy.namestring

The full name of the user.

trashedBy.emailstring

The email of the user.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create an Asset
POST/assets/

Description

Creates a new asset record without any content. The source file can be uploaded later using http or Aspera upload. This can be useful if you need to migrate a large number of assets into Ci but you may not have all of the source files available yet. You can also use it to create “to-be-made” assets that you are expecting other collaborators to create in the future. And don’t worry, you can always call Get asset details to find out whether an asset record has had its content uploaded.

As security is paramount to all that we do, we don’t allow the following types of files to be uploaded to Ci:

  • Batch files

  • COM files

  • Executable files

  • HTML files

  • JavaScript files

  • JavaServer Pages

  • MSI files

  • PHP files

  • Python files

  • Ruby files

  • SWF files

  • VBScript files

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 MissingOrInvalidFileSize Missing or invalid file size.
400 InvalidFileType Invalid file type.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 FolderTrashed Folder is trashed.
409 FolderDeleted Folder is deleted.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.

GET  https://api.cimediacloud.com/assets/yiireizq1hcowxua?thumbnailExpirationDate=2030-01-02T00:00:00.000Z&proxyExpirationDate=2030-01-02T00:00:00.000Z&hlsPlaylistExpirationDate=2030-01-02T00:00:00.000Z
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "jy3lrsqqm0qobid1",
  "name": "Movie.mov",
  "size": 107856722,
  "type": "Video",
  "format": "mov",
  "status": "Complete",
  "description": "Final cut",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ],
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "md5Checksum": "tk2ma0zrhrp5irco",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "modifiedOn": "2017-01-02T00:00:00.000Z",
  "acquisitionSource": {
    "name": "Workspace"
  },
  "archiveStatus": "Not archived",
  "restoreStatus": "Not restored",
  "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
  "restoreRequestDate": "2017-01-02T00:00:00.000Z",
  "lastRestoreDate": "2017-01-02T00:00:00.000Z",
  "restoredBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "archiveDate": "2017-01-02T00:00:00.000Z",
  "archivedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
  "isTrashed": false,
  "uploadTransferType": "SinglepartHttp",
  "runtime": 1024,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "technicalMetadata": {
    "type": "Video",
    "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
    "size": 1024,
    "image": {
      "width": 100,
      "height": 300,
      "xResolution": 100,
      "yResolution": 100,
      "resolutionUnit": "cm",
      "cameraMake": "Nikon",
      "cameraModel": "D300",
      "locationCity": "New York",
      "locationState": "NY",
      "locationCountry": "USA"
    },
    "avContainer": {
      "bitRate": 11934620,
      "duration": 100,
      "start": 0,
      "timeCode": "00:00:00:00",
      "derivedTimeCode": "00:00:00:00",
      "streams": [
        {
          "index": 0,
          "type": "Video",
          "bitRate": 11934620,
          "codec": "h264",
          "width": 1280,
          "height": 720,
          "duration": 100,
          "frameRateNumerator": 360,
          "frameRateDenominator": 12,
          "videoPARWidth": 1,
          "videoPARHeight": 1,
          "videoDARWidth": 19,
          "videoDARHeight": 24,
          "start": 0,
          "timeCode": "00:00:00:00",
          "audioSampleRate": 32000,
          "audioChannelCount": 2,
          "audioLayout": "stereo",
          "totalFrames": 1024,
          "codecLongName": "MPEG-4 part 2",
          "fourCC": "avc1",
          "rotate": 0
        }
      ]
    }
  },
  "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
  "acquisitionContext": {
    "name": "Movie1.mov",
    "path": "original/source/path"
  },
  "filmstrips": [
    {
      "type": "video-filmstrip-small",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
      "size": 1024,
      "frames": 100,
      "frameHeight": 100,
      "frameWidth": 100,
      "width": 100,
      "height": 1000
    }
  ],
  "waveforms": [
    {
      "type": "video-waveform",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
      "size": 1024,
      "maxAmplitude": 1000,
      "sampleMethod": "SamplesCount",
      "samplesPerSecond": 12
    }
  ],
  "folder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  },
  "isDeleted": false,
  "trashedOn": "2017-01-02T00:00:00.000Z",
  "trashedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  }
}
Property nameTypeDescription
idstring

The unique identifier of the asset.

namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber

The size of the source file, in bytes.

typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

formatstring

The asset’s file format.

statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

thumbnailsarray

The set of thumbnails for the asset.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

proxiesarray

The set of proxies for the asset.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

md5Checksumstring

The calculated md5 checksum for the asset.

createdOnstring

The datetime the asset record was created.

createdByobject

Information about the creator of the asset

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

modifiedOnstring

The datetime the asset record was last modified.

acquisitionSourceobject

Information about the asset’s source client application.

acquisitionSource.namestring

The name of the client application that uploaded the asset.

archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

restoredByobject

If availabe, information about the user who restored the asset.

restoredBy.idstring

The unique identifier of the user.

restoredBy.namestring

The full name of the user.

restoredBy.emailstring

The email of the user.

archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

archivedByobject

If availabe, information about the user who archived the asset.

archivedBy.idstring

The unique identifier of the user.

archivedBy.namestring

The full name of the user.

archivedBy.emailstring

The email of the user.

uploadCompleteDatestring

The datetime the asset upload was completed.

isTrashedboolean

Indicates if an asset is in the trash bin.

uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

runtimenumber

The duration of the media asset, in seconds.

workspaceobject

Information about the asset’s workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the asset’s network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

technicalMetadataobject

An object that contains all the technical metadata available.

technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

technicalMetadata.image.widthnumber

The width of the image, in pixels.

technicalMetadata.image.heightnumber

The height of the image, in pixels.

technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

technicalMetadata.image.cameraMakestring

Camera manufacturer name.

technicalMetadata.image.cameraModelstring

Camera model name.

technicalMetadata.image.locationCitystring

Name of the city where the image was created.

technicalMetadata.image.locationStatestring

Name of the state where the image was created.

technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

technicalMetadata.avContainer.startnumber

The start time in the container.

technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

acquisitionContextobject

The file acquisition information.

acquisitionContext.namestring

The original source file name, captured on acquisition.

acquisitionContext.pathstring

The original source file path, captured on acquisition.

filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

filmstrips[].typestring

The type of filmstrip returned.

filmstrips[].locationstring

The url of the filmstrip.

filmstrips[].sizenumber

The size of the filmstrip, in bytes.

filmstrips[].framesnumber

Number of frames contained in the filmstrip.

filmstrips[].frameHeightnumber

The height of each frame.

filmstrips[].frameWidthnumber

The width of each frame.

filmstrips[].widthnumber

Total width of the filmstrip.

filmstrips[].heightnumber

Total height of the filmstrip.

waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

waveforms[].typestring

The type of waveform returned.

waveforms[].locationstring

The url of the waveform.

waveforms[].sizenumber

The size in bytes of the waveform.

waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

folderobject

Informaation about the asset’s parent folder.

folder.idstring

The unique identifier of the folder.

folder.namestring

The name of folder.

isDeletedboolean

Indicates if an asset is deleted.

trashedOnstring

The datetime the asset was trashed.

trashedByobject

Information about the user that trashed the asset.

trashedBy.idstring

The unique identifier of the user.

trashedBy.namestring

The full name of the user.

trashedBy.emailstring

The email of the user.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Asset Details
GET/assets/{assetId}{?thumbnailExpirationDate,proxyExpirationDate,hlsPlaylistExpirationDate}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

thumbnailExpirationDate
string (optional) 

The date and time for thumbnail URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 2 years is used.

proxyExpirationDate
string (optional) 

The date and time for proxy URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 12 hours is used.

hlsPlaylistExpirationDate
string (optional) 

The date and time for HLS playlist URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 12 hours is used.

Description

Retrieves asset information for the specified asset.

Use custom url expiration parameters for the following use cases:

  • Caching thumbnail urls for long periods of time.

  • Limiting the amount of time a proxy or HLS playlist is available for viewing.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
400 InvalidExpiration Invalid expiration.

PUT  https://api.cimediacloud.com/assets/yiireizq1hcowxua
Requestssimple examplefull example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "description": "sample description"
}
Property nameTypeDescription
namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

Responses200400
Headers
Content-Type: application/json
Body
{
  "id": "jy3lrsqqm0qobid1",
  "name": "Movie.mov",
  "size": 107856722,
  "type": "Video",
  "format": "mov",
  "status": "Complete",
  "description": "Final cut",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ],
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "md5Checksum": "tk2ma0zrhrp5irco",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "modifiedOn": "2017-01-02T00:00:00.000Z",
  "acquisitionSource": {
    "name": "Workspace"
  },
  "archiveStatus": "Not archived",
  "restoreStatus": "Not restored",
  "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
  "restoreRequestDate": "2017-01-02T00:00:00.000Z",
  "lastRestoreDate": "2017-01-02T00:00:00.000Z",
  "restoredBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "archiveDate": "2017-01-02T00:00:00.000Z",
  "archivedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
  "isTrashed": false,
  "uploadTransferType": "SinglepartHttp",
  "runtime": 1024,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "technicalMetadata": {
    "type": "Video",
    "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
    "size": 1024,
    "image": {
      "width": 100,
      "height": 300,
      "xResolution": 100,
      "yResolution": 100,
      "resolutionUnit": "cm",
      "cameraMake": "Nikon",
      "cameraModel": "D300",
      "locationCity": "New York",
      "locationState": "NY",
      "locationCountry": "USA"
    },
    "avContainer": {
      "bitRate": 11934620,
      "duration": 100,
      "start": 0,
      "timeCode": "00:00:00:00",
      "derivedTimeCode": "00:00:00:00",
      "streams": [
        {
          "index": 0,
          "type": "Video",
          "bitRate": 11934620,
          "codec": "h264",
          "width": 1280,
          "height": 720,
          "duration": 100,
          "frameRateNumerator": 360,
          "frameRateDenominator": 12,
          "videoPARWidth": 1,
          "videoPARHeight": 1,
          "videoDARWidth": 19,
          "videoDARHeight": 24,
          "start": 0,
          "timeCode": "00:00:00:00",
          "audioSampleRate": 32000,
          "audioChannelCount": 2,
          "audioLayout": "stereo",
          "totalFrames": 1024,
          "codecLongName": "MPEG-4 part 2",
          "fourCC": "avc1",
          "rotate": 0
        }
      ]
    }
  },
  "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
  "acquisitionContext": {
    "name": "Movie1.mov",
    "path": "original/source/path"
  },
  "filmstrips": [
    {
      "type": "video-filmstrip-small",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
      "size": 1024,
      "frames": 100,
      "frameHeight": 100,
      "frameWidth": 100,
      "width": 100,
      "height": 1000
    }
  ],
  "waveforms": [
    {
      "type": "video-waveform",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
      "size": 1024,
      "maxAmplitude": 1000,
      "sampleMethod": "SamplesCount",
      "samplesPerSecond": 12
    }
  ],
  "folder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  },
  "isDeleted": false,
  "trashedOn": "2017-01-02T00:00:00.000Z",
  "trashedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  }
}
Property nameTypeDescription
idstring

The unique identifier of the asset.

namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber

The size of the source file, in bytes.

typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

formatstring

The asset’s file format.

statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

thumbnailsarray

The set of thumbnails for the asset.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

proxiesarray

The set of proxies for the asset.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

md5Checksumstring

The calculated md5 checksum for the asset.

createdOnstring

The datetime the asset record was created.

createdByobject

Information about the creator of the asset

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

modifiedOnstring

The datetime the asset record was last modified.

acquisitionSourceobject

Information about the asset’s source client application.

acquisitionSource.namestring

The name of the client application that uploaded the asset.

archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

restoredByobject

If availabe, information about the user who restored the asset.

restoredBy.idstring

The unique identifier of the user.

restoredBy.namestring

The full name of the user.

restoredBy.emailstring

The email of the user.

archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

archivedByobject

If availabe, information about the user who archived the asset.

archivedBy.idstring

The unique identifier of the user.

archivedBy.namestring

The full name of the user.

archivedBy.emailstring

The email of the user.

uploadCompleteDatestring

The datetime the asset upload was completed.

isTrashedboolean

Indicates if an asset is in the trash bin.

uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

runtimenumber

The duration of the media asset, in seconds.

workspaceobject

Information about the asset’s workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the asset’s network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

technicalMetadataobject

An object that contains all the technical metadata available.

technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

technicalMetadata.image.widthnumber

The width of the image, in pixels.

technicalMetadata.image.heightnumber

The height of the image, in pixels.

technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

technicalMetadata.image.cameraMakestring

Camera manufacturer name.

technicalMetadata.image.cameraModelstring

Camera model name.

technicalMetadata.image.locationCitystring

Name of the city where the image was created.

technicalMetadata.image.locationStatestring

Name of the state where the image was created.

technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

technicalMetadata.avContainer.startnumber

The start time in the container.

technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

acquisitionContextobject

The file acquisition information.

acquisitionContext.namestring

The original source file name, captured on acquisition.

acquisitionContext.pathstring

The original source file path, captured on acquisition.

filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

filmstrips[].typestring

The type of filmstrip returned.

filmstrips[].locationstring

The url of the filmstrip.

filmstrips[].sizenumber

The size of the filmstrip, in bytes.

filmstrips[].framesnumber

Number of frames contained in the filmstrip.

filmstrips[].frameHeightnumber

The height of each frame.

filmstrips[].frameWidthnumber

The width of each frame.

filmstrips[].widthnumber

Total width of the filmstrip.

filmstrips[].heightnumber

Total height of the filmstrip.

waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

waveforms[].typestring

The type of waveform returned.

waveforms[].locationstring

The url of the waveform.

waveforms[].sizenumber

The size in bytes of the waveform.

waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

folderobject

Informaation about the asset’s parent folder.

folder.idstring

The unique identifier of the folder.

folder.namestring

The name of folder.

isDeletedboolean

Indicates if an asset is deleted.

trashedOnstring

The datetime the asset was trashed.

trashedByobject

Information about the user that trashed the asset.

trashedBy.idstring

The unique identifier of the user.

trashedBy.namestring

The full name of the user.

trashedBy.emailstring

The email of the user.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "description": "sample description",
  "ingestConfiguration": {
    "audioMappings": [
      {
        "mappings": [
          {
            "sourceStream": 1,
            "sourceChannel": 2,
            "targetChannel": 3,
            "amplitude": 0.8
          }
        ]
      }
    ]
  }
}
Property nameTypeDescription
namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

Responses200400
Headers
Content-Type: application/json
Body
{
  "id": "jy3lrsqqm0qobid1",
  "name": "Movie.mov",
  "size": 107856722,
  "type": "Video",
  "format": "mov",
  "status": "Complete",
  "description": "Final cut",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ],
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "md5Checksum": "tk2ma0zrhrp5irco",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "createdBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "modifiedOn": "2017-01-02T00:00:00.000Z",
  "acquisitionSource": {
    "name": "Workspace"
  },
  "archiveStatus": "Not archived",
  "restoreStatus": "Not restored",
  "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
  "restoreRequestDate": "2017-01-02T00:00:00.000Z",
  "lastRestoreDate": "2017-01-02T00:00:00.000Z",
  "restoredBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "archiveDate": "2017-01-02T00:00:00.000Z",
  "archivedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  },
  "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
  "isTrashed": false,
  "uploadTransferType": "SinglepartHttp",
  "runtime": 1024,
  "workspace": {
    "id": "gb5ehomv0iv71swg",
    "name": "Workspace Name",
    "class": "Enterprise"
  },
  "network": {
    "id": "9hdf6pk2quj0ion6",
    "name": "Company Name",
    "class": "Enterprise"
  },
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "technicalMetadata": {
    "type": "Video",
    "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
    "size": 1024,
    "image": {
      "width": 100,
      "height": 300,
      "xResolution": 100,
      "yResolution": 100,
      "resolutionUnit": "cm",
      "cameraMake": "Nikon",
      "cameraModel": "D300",
      "locationCity": "New York",
      "locationState": "NY",
      "locationCountry": "USA"
    },
    "avContainer": {
      "bitRate": 11934620,
      "duration": 100,
      "start": 0,
      "timeCode": "00:00:00:00",
      "derivedTimeCode": "00:00:00:00",
      "streams": [
        {
          "index": 0,
          "type": "Video",
          "bitRate": 11934620,
          "codec": "h264",
          "width": 1280,
          "height": 720,
          "duration": 100,
          "frameRateNumerator": 360,
          "frameRateDenominator": 12,
          "videoPARWidth": 1,
          "videoPARHeight": 1,
          "videoDARWidth": 19,
          "videoDARHeight": 24,
          "start": 0,
          "timeCode": "00:00:00:00",
          "audioSampleRate": 32000,
          "audioChannelCount": 2,
          "audioLayout": "stereo",
          "totalFrames": 1024,
          "codecLongName": "MPEG-4 part 2",
          "fourCC": "avc1",
          "rotate": 0
        }
      ]
    }
  },
  "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
  "acquisitionContext": {
    "name": "Movie1.mov",
    "path": "original/source/path"
  },
  "filmstrips": [
    {
      "type": "video-filmstrip-small",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
      "size": 1024,
      "frames": 100,
      "frameHeight": 100,
      "frameWidth": 100,
      "width": 100,
      "height": 1000
    }
  ],
  "waveforms": [
    {
      "type": "video-waveform",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
      "size": 1024,
      "maxAmplitude": 1000,
      "sampleMethod": "SamplesCount",
      "samplesPerSecond": 12
    }
  ],
  "folder": {
    "id": "fcy33tbepeyit07y",
    "name": "Folder Name"
  },
  "isDeleted": false,
  "trashedOn": "2017-01-02T00:00:00.000Z",
  "trashedBy": {
    "id": "qekyzblpu7o31w0h",
    "name": "John Smith",
    "email": "johnsmith@example.com"
  }
}
Property nameTypeDescription
idstring

The unique identifier of the asset.

namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber

The size of the source file, in bytes.

typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

formatstring

The asset’s file format.

statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

thumbnailsarray

The set of thumbnails for the asset.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

proxiesarray

The set of proxies for the asset.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

md5Checksumstring

The calculated md5 checksum for the asset.

createdOnstring

The datetime the asset record was created.

createdByobject

Information about the creator of the asset

createdBy.idstring

The unique identifier of the user.

createdBy.namestring

The full name of the user.

createdBy.emailstring

The email of the user.

modifiedOnstring

The datetime the asset record was last modified.

acquisitionSourceobject

Information about the asset’s source client application.

acquisitionSource.namestring

The name of the client application that uploaded the asset.

archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

restoredByobject

If availabe, information about the user who restored the asset.

restoredBy.idstring

The unique identifier of the user.

restoredBy.namestring

The full name of the user.

restoredBy.emailstring

The email of the user.

archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

archivedByobject

If availabe, information about the user who archived the asset.

archivedBy.idstring

The unique identifier of the user.

archivedBy.namestring

The full name of the user.

archivedBy.emailstring

The email of the user.

uploadCompleteDatestring

The datetime the asset upload was completed.

isTrashedboolean

Indicates if an asset is in the trash bin.

uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

runtimenumber

The duration of the media asset, in seconds.

workspaceobject

Information about the asset’s workspace.

workspace.idstring

The unique identifier of the workspace.

workspace.namestring

The name of the workspac.

workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

networkobject

Information about the asset’s network.

network.idstring

The unique identifier of the network.

network.namestring

The name of the network.

network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

technicalMetadataobject

An object that contains all the technical metadata available.

technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

technicalMetadata.image.widthnumber

The width of the image, in pixels.

technicalMetadata.image.heightnumber

The height of the image, in pixels.

technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

technicalMetadata.image.cameraMakestring

Camera manufacturer name.

technicalMetadata.image.cameraModelstring

Camera model name.

technicalMetadata.image.locationCitystring

Name of the city where the image was created.

technicalMetadata.image.locationStatestring

Name of the state where the image was created.

technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

technicalMetadata.avContainer.startnumber

The start time in the container.

technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

acquisitionContextobject

The file acquisition information.

acquisitionContext.namestring

The original source file name, captured on acquisition.

acquisitionContext.pathstring

The original source file path, captured on acquisition.

filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

filmstrips[].typestring

The type of filmstrip returned.

filmstrips[].locationstring

The url of the filmstrip.

filmstrips[].sizenumber

The size of the filmstrip, in bytes.

filmstrips[].framesnumber

Number of frames contained in the filmstrip.

filmstrips[].frameHeightnumber

The height of each frame.

filmstrips[].frameWidthnumber

The width of each frame.

filmstrips[].widthnumber

Total width of the filmstrip.

filmstrips[].heightnumber

Total height of the filmstrip.

waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

waveforms[].typestring

The type of waveform returned.

waveforms[].locationstring

The url of the waveform.

waveforms[].sizenumber

The size in bytes of the waveform.

waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

folderobject

Informaation about the asset’s parent folder.

folder.idstring

The unique identifier of the folder.

folder.namestring

The name of folder.

isDeletedboolean

Indicates if an asset is deleted.

trashedOnstring

The datetime the asset was trashed.

trashedByobject

Information about the user that trashed the asset.

trashedBy.idstring

The unique identifier of the user.

trashedBy.namestring

The full name of the user.

trashedBy.emailstring

The email of the user.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Update an Asset
PUT/assets/{assetId}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Updates specified properties of an asset. The current version of Ci API supports updating the name, description, and ingestConfiguration of an asset.

When renaming an asset keep this information in mind:

  • If the correct asset extension / format is not provided it will be appended.
  • If the asset does not have an extension and the new name does, the asset format and type properties will be updated.
  • Invalid characters will be replaced by underscores. Invalid characters include, but may not be restricted to, the following:
    • < (less than)
    • > (greater than)
    • : (colon)
    • " (double quote)
    • / (forward slash)
    • \ (backslash)
    • | (vertical bar or pipe)
    • ? (question mark)
    • * (asterisk)

Errors

Status Code Error Code Message
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 InvalidFileType Invalid file type.
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 ProxiesAlreadyCreated Asset already has one or more proxies.

DELETE  https://api.cimediacloud.com/assets/yiireizq1hcowxua
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Asset was deleted"
}
Property nameTypeDescription
messagestring

Indicates the asset was deleted.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Delete an Asset
DELETE/assets/{assetId}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Deletes the specified asset and its associated files permanently. The storage quota is updated to reflect the newly freed space.

Assets are permanently deleted and cannot be recovered.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.

Create Multiple Assets

POST  https://api.cimediacloud.com/assets/create
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
[
  {
    "name": "Movie.mov",
    "size": 1024,
    "workspaceId": "oj7mx3vlb2srei89",
    "folderId": "6ovu49kdb3z32z2w",
    "metadata": [
      {
        "name": "resolution",
        "value": "1080p"
      }
    ],
    "description": "sample description",
    "ingestConfiguration": {
      "audioMappings": [
        {
          "mappings": [
            {
              "sourceStream": 1,
              "sourceChannel": 2,
              "targetChannel": 3,
              "amplitude": 0.8
            }
          ]
        }
      ]
    },
    "autoArchive": true
  }
]
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "items": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of assets to be uploaded.

itemsarray

The assets to be uploaded.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of asset and its extension.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Create Multiple Assets
POST/assets/create

Creates multiple asset records in a single operation.

The maximum number of assets for bulk create is 500.

Your plan must have enough free space to accommodate all new assets or the transaction will fail.

This resource will return a failure response if any of the provided asset information is invalid.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 MissingOrInvalidFileSize Missing or invalid file size.
400 InvalidFileType Invalid file type.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
400 WorkspaceNotFound Workspace not found.
400 InvalidOperationOnWorkspace Invalid workspaces provided. Creating assets in bulk is limited to one workspace.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 FolderDeleted Folder is deleted.
409 FolderTrashed Folder is trashed.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.

Get Multiple Assets' Details

POST  https://api.cimediacloud.com/assets/details/bulk
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "m90b2siiymehdnhv"
  ],
  "thumbnailExpirationDate": "2030-01-02T00:00:00.000Z",
  "proxyExpirationDate": "2030-01-02T00:00:00.000Z",
  "hlsPlaylistExpirationDate": "2030-01-02T00:00:00.000Z",
  "fields": [
    "size",
    "createdOn"
  ]
}
Property nameTypeDescription
assetIdsarray (required)

The unique identifiers for all assets to retrieve.

thumbnailExpirationDatestring

The date and time for thumbnail URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 2 years is used.

proxyExpirationDatestring

The date and time for proxy URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 12 hours is used.

hlsPlaylistExpirationDatestring

The date and time for HLS playlist URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 12 hours is used.

fieldsarray

A list of fields to return in the response. If this array is empty all fields will be returned. Id, Name and Kind are always returned.

Responses200409
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "items": [
    {
      "id": "jy3lrsqqm0qobid1",
      "name": "Movie.mov",
      "size": 107856722,
      "type": "Video",
      "format": "mov",
      "status": "Complete",
      "description": "Final cut",
      "thumbnails": [
        {
          "type": "large",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
          "size": 1024,
          "width": 200,
          "height": 300
        }
      ],
      "proxies": [
        {
          "type": "video-3g",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
          "size": 1024,
          "width": 200,
          "height": 300,
          "videoBitRate": 1650000,
          "audioBitRate": 128000
        }
      ],
      "md5Checksum": "tk2ma0zrhrp5irco",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "createdBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "modifiedOn": "2017-01-02T00:00:00.000Z",
      "acquisitionSource": {
        "name": "Workspace"
      },
      "archiveStatus": "Not archived",
      "restoreStatus": "Not restored",
      "restoreExpirationDate": "2017-01-02T00:00:00.000Z",
      "restoreRequestDate": "2017-01-02T00:00:00.000Z",
      "lastRestoreDate": "2017-01-02T00:00:00.000Z",
      "restoredBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "archiveDate": "2017-01-02T00:00:00.000Z",
      "archivedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "uploadCompleteDate": "2017-01-02T00:00:00.000Z",
      "isTrashed": false,
      "uploadTransferType": "SinglepartHttp",
      "runtime": 1024,
      "workspace": {
        "id": "gb5ehomv0iv71swg",
        "name": "Workspace Name",
        "class": "Enterprise"
      },
      "network": {
        "id": "9hdf6pk2quj0ion6",
        "name": "Company Name",
        "class": "Enterprise"
      },
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "technicalMetadata": {
        "type": "Video",
        "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/metadata.jpg",
        "size": 1024,
        "image": {
          "width": 100,
          "height": 300,
          "xResolution": 100,
          "yResolution": 100,
          "resolutionUnit": "cm",
          "cameraMake": "Nikon",
          "cameraModel": "D300",
          "locationCity": "New York",
          "locationState": "NY",
          "locationCountry": "USA"
        },
        "avContainer": {
          "bitRate": 11934620,
          "duration": 100,
          "start": 0,
          "timeCode": "00:00:00:00",
          "derivedTimeCode": "00:00:00:00",
          "streams": [
            {
              "index": 0,
              "type": "Video",
              "bitRate": 11934620,
              "codec": "h264",
              "width": 1280,
              "height": 720,
              "duration": 100,
              "frameRateNumerator": 360,
              "frameRateDenominator": 12,
              "videoPARWidth": 1,
              "videoPARHeight": 1,
              "videoDARWidth": 19,
              "videoDARHeight": 24,
              "start": 0,
              "timeCode": "00:00:00:00",
              "audioSampleRate": 32000,
              "audioChannelCount": 2,
              "audioLayout": "stereo",
              "totalFrames": 1024,
              "codecLongName": "MPEG-4 part 2",
              "fourCC": "avc1",
              "rotate": 0
            }
          ]
        }
      },
      "hlsPlaylistUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/hls",
      "acquisitionContext": {
        "name": "Movie1.mov",
        "path": "original/source/path"
      },
      "filmstrips": [
        {
          "type": "video-filmstrip-small",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/filmstrip.jpg",
          "size": 1024,
          "frames": 100,
          "frameHeight": 100,
          "frameWidth": 100,
          "width": 100,
          "height": 1000
        }
      ],
      "waveforms": [
        {
          "type": "video-waveform",
          "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/waveform.jpg",
          "size": 1024,
          "maxAmplitude": 1000,
          "sampleMethod": "SamplesCount",
          "samplesPerSecond": 12
        }
      ],
      "folder": {
        "id": "fcy33tbepeyit07y",
        "name": "Folder Name"
      },
      "isDeleted": false,
      "trashedOn": "2017-01-02T00:00:00.000Z",
      "trashedBy": {
        "id": "qekyzblpu7o31w0h",
        "name": "John Smith",
        "email": "johnsmith@example.com"
      },
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

itemsarray

An array containing information about each asset.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of the asset, including its extension. Its maximum length is 512 characters.

items[].sizenumber

The size of the source file, in bytes.

items[].typestring

The type of the asset. Valid values are ‘Audio’, ‘Video’, or ‘Image’.

items[].formatstring

The asset’s file format.

items[].statusstring

The status of the asset. Valid values are ‘Created’, ‘Complete’, ‘Deleted’, ‘Executable Detected’, ‘Failed’, ‘Limited’, ‘Processing’, ‘Uploading’, ‘Virus Detected’, ‘Waiting’. See this section for more information.

items[].descriptionstring

A comment or note associated to the asset. Its maximum length is 1000 characters.

items[].thumbnailsarray

The set of thumbnails for the asset.

items[].thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

items[].thumbnails[].locationstring

The url of the thumbnail.

items[].thumbnails[].sizenumber

The size of the thumbnail, in bytes.

items[].thumbnails[].widthnumber

The width of the thumbnail.

items[].thumbnails[].heightnumber

The height of the thumbnail.

items[].proxiesarray

The set of proxies for the asset.

items[].proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

items[].proxies[].locationstring

The url of the proxy.

items[].proxies[].sizenumber

The size of the proxy, in bytes.

items[].proxies[].widthnumber

The width of the proxy.

items[].proxies[].heightnumber

The height of the proxy.

items[].proxies[].videoBitRatenumber

The video bitrate of the proxy.

items[].proxies[].audioBitRatenumber

The audio bitrate of the proxy.

items[].md5Checksumstring

The calculated md5 checksum for the asset.

items[].createdOnstring

The datetime the asset record was created.

items[].createdByobject

Information about the creator of the asset

items[].createdBy.idstring

The unique identifier of the user.

items[].createdBy.namestring

The full name of the user.

items[].createdBy.emailstring

The email of the user.

items[].modifiedOnstring

The datetime the asset record was last modified.

items[].acquisitionSourceobject

Information about the asset’s source client application.

items[].acquisitionSource.namestring

The name of the client application that uploaded the asset.

items[].archiveStatusstring

The archive status of the asset. Valid values are ‘Not archived’, ‘Archive in progress’, ‘Archive failed’, ‘Archived’, ‘Cancel archive in progress’.

items[].restoreStatusstring

The restore status of the asset. This is applicable to assets that have been archived. Valid values are ‘Not restored’, ‘Restore in progress’, ‘Restore failed’, ‘Restored’.

items[].restoreExpirationDatestring

If availabe, the datetime the restored copy of the asset’s source file will no longer be available.

items[].restoreRequestDatestring

If availabe, the datetime the asset’s source file was requested to be restored.

items[].lastRestoreDatestring

If availabe, the datetime the asset’s source file was last restored.

items[].restoredByobject

If availabe, information about the user who restored the asset.

items[].restoredBy.idstring

The unique identifier of the user.

items[].restoredBy.namestring

The full name of the user.

items[].restoredBy.emailstring

The email of the user.

items[].archiveDatestring

If availabe, the datetime the asset’s source file was last archived.

items[].archivedByobject

If availabe, information about the user who archived the asset.

items[].archivedBy.idstring

The unique identifier of the user.

items[].archivedBy.namestring

The full name of the user.

items[].archivedBy.emailstring

The email of the user.

items[].uploadCompleteDatestring

The datetime the asset upload was completed.

items[].isTrashedboolean

Indicates if an asset is in the trash bin.

items[].uploadTransferTypestring

Indicates how the asset was uploaded. Valid values are ‘SinglepartHttp’, ‘MultipartHttp’, ‘Aspera’, ‘Copy’, ‘FTP’, ‘WorkspaceSend’.

items[].runtimenumber

The duration of the media asset, in seconds.

items[].workspaceobject

Information about the asset’s workspace.

items[].workspace.idstring

The unique identifier of the workspace.

items[].workspace.namestring

The name of the workspac.

items[].workspace.classstring

Indicates if the workspace is a ‘Personal’ or ‘Team’ workspace.

items[].networkobject

Information about the asset’s network.

items[].network.idstring

The unique identifier of the network.

items[].network.namestring

The name of the network.

items[].network.classstring

Indicates if the network is a ‘Personal’ or ‘Enterprise’ network.

items[].metadataarray

An array of key-value pairs of user-generated and basic technical metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].technicalMetadataobject

An object that contains all the technical metadata available.

items[].technicalMetadata.typestring

The type of the asset. Valid values are either ‘Audio’, ‘Video’ or ‘Image’.

items[].technicalMetadata.locationstring

Url of the source technical metadata file. Note: the content and structure of the technical metadata file is subject to change at any time.

items[].technicalMetadata.sizenumber

The size of the technical metadata file, in bytes.

items[].technicalMetadata.imageobject

If the asset’s type is ‘Image’, this property contains the extended image technical metadata.

items[].technicalMetadata.image.widthnumber

The width of the image, in pixels.

items[].technicalMetadata.image.heightnumber

The height of the image, in pixels.

items[].technicalMetadata.image.xResolutionnumber

The number of pixels per resolutionUnit in the width direction.

items[].technicalMetadata.image.yResolutionnumber

The number of pixels per resolutionUnit in the height direction.

items[].technicalMetadata.image.resolutionUnitstring

The unit of measurement for xResolution and yResolution. Can be ‘inches’, ‘cm’ or ‘none’.

items[].technicalMetadata.image.cameraMakestring

Camera manufacturer name.

items[].technicalMetadata.image.cameraModelstring

Camera model name.

items[].technicalMetadata.image.locationCitystring

Name of the city where the image was created.

items[].technicalMetadata.image.locationStatestring

Name of the state where the image was created.

items[].technicalMetadata.image.locationCountrystring

Name of the country where the image was created.

items[].technicalMetadata.avContainerobject

If asset type is ‘Audio’ or ‘Video’, this property contains the extended audio / video technical metadata.

items[].technicalMetadata.avContainer.bitRatenumber

The overall bitrate in the container.

items[].technicalMetadata.avContainer.durationnumber

The runtime of the media in the container, in seconds.

items[].technicalMetadata.avContainer.startnumber

The start time in the container.

items[].technicalMetadata.avContainer.timeCodestring

The SMPTE timecode in the container.

items[].technicalMetadata.avContainer.derivedTimeCodestring

The standardized timecode derived by evaluating stream metadata and converting to drop frame format, if using drop frame rate.

items[].technicalMetadata.avContainer.streamsarray

Set of audio, video, or data streams contained in the asset.

items[].technicalMetadata.avContainer.streams[].indexnumber

The index of the stream in the container.

items[].technicalMetadata.avContainer.streams[].typestring

The type of the stream. Valid values are ‘Audio’, ‘Video’ or ‘Data’.

items[].technicalMetadata.avContainer.streams[].bitRatenumber

The overall bitrate in the stream.

items[].technicalMetadata.avContainer.streams[].codecstring

Codec used in the stream. For example, ‘h264’.

items[].technicalMetadata.avContainer.streams[].widthnumber

For a ‘Video’ stream, the width in pixels of the video.

items[].technicalMetadata.avContainer.streams[].heightnumber

For a ‘Video’ stream, the height in pixels of the video.

items[].technicalMetadata.avContainer.streams[].durationnumber

The runtime of the media in seconds, in the stream.

items[].technicalMetadata.avContainer.streams[].frameRateNumeratornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate numerator is 24.

items[].technicalMetadata.avContainer.streams[].frameRateDenominatornumber

The numerator of the frame rate. For example, if the frame rate is 24, the frame rate denominator is 1.

items[].technicalMetadata.avContainer.streams[].videoPARWidthnumber

The width part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoPARHeightnumber

The height part of the pixel aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARWidthnumber

The width part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].videoDARHeightnumber

The height part of the display aspect ratio.

items[].technicalMetadata.avContainer.streams[].startnumber

The start time in the stream.

items[].technicalMetadata.avContainer.streams[].timeCodestring

The SMPTE timecode in the stream.

items[].technicalMetadata.avContainer.streams[].audioSampleRatenumber

For an ‘Audio’ stream, is the sample rate in Hz.

items[].technicalMetadata.avContainer.streams[].audioChannelCountnumber

For an ‘Audio’ stream, is the number of channels within the stream.

items[].technicalMetadata.avContainer.streams[].audioLayoutstring

For an ‘Audio’ stream, is the audio channel layout description. For example, ‘5.1’.

items[].technicalMetadata.avContainer.streams[].totalFramesnumber

Total number of frames within the ‘Video’ stream.

items[].technicalMetadata.avContainer.streams[].codecLongNamestring

Full codec name. For example, ‘H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10’.

items[].technicalMetadata.avContainer.streams[].fourCCstring

Four-character code for the codec used in the stream. For example, ‘avc1’, ‘apch’.

items[].technicalMetadata.avContainer.streams[].rotatenumber

Amount of rotation, in degrees, that should be applied during playback of the video.

items[].hlsPlaylistUrlstring

A link to the HLS playlist generated from the source file.

items[].acquisitionContextobject

The file acquisition information.

items[].acquisitionContext.namestring

The original source file name, captured on acquisition.

items[].acquisitionContext.pathstring

The original source file path, captured on acquisition.

items[].filmstripsarray

The set of filmstrips for the asset. Please check the Previews section for more information.

items[].filmstrips[].typestring

The type of filmstrip returned.

items[].filmstrips[].locationstring

The url of the filmstrip.

items[].filmstrips[].sizenumber

The size of the filmstrip, in bytes.

items[].filmstrips[].framesnumber

Number of frames contained in the filmstrip.

items[].filmstrips[].frameHeightnumber

The height of each frame.

items[].filmstrips[].frameWidthnumber

The width of each frame.

items[].filmstrips[].widthnumber

Total width of the filmstrip.

items[].filmstrips[].heightnumber

Total height of the filmstrip.

items[].waveformsarray

The set of waveforms for the asset. Please check the Previews section for more information.

items[].waveforms[].typestring

The type of waveform returned.

items[].waveforms[].locationstring

The url of the waveform.

items[].waveforms[].sizenumber

The size in bytes of the waveform.

items[].waveforms[].maxAmplitudenumber

Sample values will range from this number to its additive inverse. For example, if this value is 100, then samples within the waveform file will have values between -100 and 100.

items[].waveforms[].sampleMethodstring

The type of sample method used to extract samples from the source audio stream. Supported values are ‘SamplesCount’ and ‘SamplesPerSecond’. When ‘SamplesCount’ is returned, then a fixed number of samples was extracted, spanning the duration of the source audio stream. When ‘SamplesPerSecond’ is returned, then a fixed number of samples was extracted per second of audio.

items[].waveforms[].samplesPerSecondnumber

When the sampleMethod is ‘SamplesPerSecond’, this value indicates the number of samples that were extracted for each second of audio.

items[].folderobject

Informaation about the asset’s parent folder.

items[].folder.idstring

The unique identifier of the folder.

items[].folder.namestring

The name of folder.

items[].isDeletedboolean

Indicates if an asset is deleted.

items[].trashedOnstring

The datetime the asset was trashed.

items[].trashedByobject

Information about the user that trashed the asset.

items[].trashedBy.idstring

The unique identifier of the user.

items[].trashedBy.namestring

The full name of the user.

items[].trashedBy.emailstring

The email of the user.

items[].kindstring

Indicates the kind of item returned. Will be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "count": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of successful items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Get Multiple Assets' Details
POST/assets/details/bulk

Description

Retrieves asset information for the specified assets.

500 is the maximum number of assets that can be retrieved in a single operation.

Use custom url expiration parameters for the following use cases:

  • Caching thumbnail urls for long periods of time.

  • Limiting the amount of time a proxy or HLS playlist is available for viewing.

It is suggested to use the fields parameter to specify that only required fields are returned. Doing this can give significant performance gains. Only first level field names are accepted for inclusion (therefore you cannot choose specific sub-fields to include, you must choose to include the entire parent field).

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 InvalidExpiration Invalid expiration.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully retrieved assets.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.

Trash an Asset

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/trash
Requestssimple example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Asset was trashed"
}
Property nameTypeDescription
messagestring

Indicates the asset was trashed.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Trash an Asset
POST/assets/{assetId}/trash

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Sends the asset to the trash bin. Items in the trash bin are not considered available for additional operations, i.e. downloading. However, they are still physically available and can be removed from the trash.

Please note that the asset’s size is still counted against the Workspace and Network storage quota while it exists in the trash bin.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.

Trash Multiple Assets

POST  https://api.cimediacloud.com/assets/trash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
assetIdsarray

The unique identifiers for all assets.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the asset.

complete[].namestring

The name of asset and its extension.

complete[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Trash Multiple Assets
POST/assets/trash

Description

Sends multiple assets to the trash bin.

500 is the maximum number of assets that can be trashed in a single operation.

Please note that the total size for all trashed assets still counts against your storage quota while they exist in the trash bin.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully trashed assets.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.
AssetTrashed Asset is trashed.

Untrash an Asset

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/untrash
Requestssimple example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "Asset was untrashed"
}
Property nameTypeDescription
messagestring

Indicates the asset was untrashed.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Untrash an Asset
POST/assets/{assetId}/untrash

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Removes a previously-trashed asset from the trash bin.

Untrashing an asset will untrash its parent folders, if trashed, but will not untrash any parent folder contents.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetNotTrashed Asset is already untrashed.

Untrash Multiple Assets

POST  https://api.cimediacloud.com/assets/untrash
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
assetIdsarray

The unique identifiers for all assets.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the asset.

complete[].namestring

The name of asset and its extension.

complete[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Untrash Multiple Assets
POST/assets/untrash

Description

Removes previously-trashed assets from the trash bin.

500 is the maximum number of assets that can be untrashed in a single operation.

Untrashing assets will untrash their parent folders, if trashed, but will not untrash any parent folder contents.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully untrashed assets.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.
AssetNotTrashed Asset is already untrashed.

Delete Multiple Assets

POST  https://api.cimediacloud.com/assets/delete
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
assetIdsarray (required)

The unique identifiers for all assets.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the asset.

complete[].namestring

The name of asset and its extension.

complete[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Delete Multiple Assets
POST/assets/delete

Description

Deletes the specified assets and their associated files permanently. The storage quota is updated to reflect the newly freed space.

500 is the maximum number of assets that can be deleted in a single operation.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully deleted assets.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.

Copy Multiple Assets

POST  https://api.cimediacloud.com/assets/copy
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "6i3x3hp1ni2wo5bd"
  ],
  "targets": [
    {
      "workspaceId": "gyr2s6zos9lsljw7",
      "folderId": "mgywjrcggsbx465p"
    }
  ]
}
Property nameTypeDescription
assetIdsarray

The unique identifiers for all assets.

targetsarray

A set of objects that specifies the workspaceId and folderId that serves as target.

targets[].workspaceIdstring (required)

The unique identifier for the target workspace.

targets[].folderIdstring

The unique identifier for the target folder. If not provided the asset will go to the root folder.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset",
      "folderId": "eynde5qbjzc0ww16",
      "workspaceId": "9hdf6pk2quj0ion6"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the asset.

complete[].namestring

The name of asset and its extension.

complete[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

complete[].folderIdstring

The unique identifier of the parent folder.

complete[].workspaceIdstring

The unique identifier of the parent workspace.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Copy Multiple Assets
POST/assets/copy

Description

Copies the specified assets to the target workspaces. A folder id can be specified per workspace; if not, the asset will be copied into the root folder of that workspace. The storage quota of each workspace is updated to reflect the storage used by this operation.

500 is the maximum number of assets that can be created in a single operation. For example, specifying 100 source assets and 4 target workspaces would result in 400 assets to be created.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 InvalidCopyRequest Invalid copy request. The request must contain at least one asset id and at least one target containing a workspace id. There cannot be any duplicate assets or targets.
400 AssetNotFound Asset not found.
400 AssetNotReady Asset not ready. Its status must be either “Complete” or “Limited”.
400 InvalidAssetState Asset is archived or in the process of being archived and therefore cannot be copied. The asset archiveStatus must be ‘Not archived’ for a copy operation to succeed.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
409 InsufficientSpaceAvailable Copy will exceed the workspace’s allotted storage.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.

Move Multiple Assets

POST  https://api.cimediacloud.com/assets/move
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "assetIds": [
    "6i3x3hp1ni2wo5bd"
  ],
  "folderId": "mgywjrcggsbx465p"
}
Property nameTypeDescription
assetIdsarray

The unique identifiers for all assets.

folderIdstring

The unique identifier for the target folder.

Responses200409
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "complete": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

completearray

An array containing information about each completed item.

complete[].idstring

The unique identifier of the asset.

complete[].namestring

The name of asset and its extension.

complete[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Move Multiple Assets
POST/assets/move

Description

Moves the specified assets to the target folder.

500 is the maximum number of assets that can be moved in a single operation.

The target folder must be in the same workspace as the assets being moved.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 InvalidMoveRequest Invalid move request. The request must contain at least one asset id and a folder id. There cannot be any duplicate assets.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
400 InvalidAssets Assets belong to multiple workspaces.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 FolderTrashed Folder is trashed.
400 FolderDeleted Folder is deleted.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully deleted assets.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetTrashed Asset is trashed.
AssetDeleted Asset is deleted.

Metadata

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/metadata/
Requestssimple example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ]
}
Property nameTypeDescription
metadataarray

Set of items to add.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

Responses200404
Headers
Content-Type: application/json
Body
{
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ]
}
Property nameTypeDescription
metadataarray

Set of items added.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

Headers
Content-Type: application/json
Body
{
  "Attributes": {
    "code": "AssetNotFound",
    "message": "Asset not found."
  }
}
Property nameTypeDescription
Attributesobject
Attributes.codestring

Machine readable error code

Attributes.messagestring

Error message

Add Metadata
POST/assets/{assetId}/metadata/

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Adds one or more metadata items to an asset.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetNotTrashed Asset is already untrashed.

PUT  https://api.cimediacloud.com/assets/yiireizq1hcowxua/metadata/resolution
Requestssimple example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "value": "1080p"
}
Property nameTypeDescription
valuestring

Updated value.

Responses200404
Headers
Content-Type: application/json
Body
{
  "metadata": {
    "name": "resolution",
    "value": "1080p"
  }
}
Property nameTypeDescription
metadataobject

Items updated.

metadata.namestring

The name of the metadata item.

metadata.valuestring

the value of the metadata item.

Headers
Content-Type: application/json
Body
{
  "Attributes": {
    "code": "AssetNotFound",
    "message": "Asset not found."
  }
}
Property nameTypeDescription
Attributesobject
Attributes.codestring

Machine readable error code

Attributes.messagestring

Error message

Update Metadata
PUT/assets/{assetId}/metadata/{name}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

name
string (required) 

The name of the metadata item.

Description

Updates an existing metadata item.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
404 AssetNotFound Asset not found.
404 MetadataNotFound Metadata not found.

DELETE  https://api.cimediacloud.com/assets/yiireizq1hcowxua/metadata/resolution
Requestssimple example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "message": "The metadata was deleted."
}
Property nameTypeDescription
messagestring

Indicates the metadata item was deleted.

Headers
Content-Type: application/json
Body
{
  "Attributes": {
    "code": "AssetNotFound",
    "message": "Asset not found."
  }
}
Property nameTypeDescription
Attributesobject
Attributes.codestring

Machine readable error code

Attributes.messagestring

Error message

Delete Metadata
DELETE/assets/{assetId}/metadata/{name}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

name
string (required) 

The name of the metadata item.

Description

Deletes a user metadata item.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
404 AssetNotFound Asset not found.
404 MetadataNotFound Metadata not found.

Create Playback Streams

POST  https://api.cimediacloud.com/assets/hwgles9nn6hcb2vb/streams
Requestsexample
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "streams": [
    {
      "name": "stream1",
      "expirationDate": "2018-01-01T00:00:00.000Z",
      "videoSources": [
        {
          "type": "video-3g",
          "displayName": "Video 3G"
        },
        {
          "type": "video-sd",
          "displayName": "Video SD"
        }
      ],
      "captionSources": [
        {
          "type": "example-closed-caption-type"
        }
      ]
    }
  ]
}
Property nameTypeDescription
streamsarray (required)

The specifications for the playback stream. This can be a single stream specification or it can contain an array of stream specifications.

streams[].namestring

Uniquely identifies this stream from others submitted in the batch. It can be as simple as a sequential number.

streams[].expirationDatestring

The date and time for streaming URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, a default of 3 hours is used.

streams[].videoSourcesarray (required)

The list of asset proxies or elements used in the streams. When using standard proxies (i.e. ‘video-3g’, ‘video-sd’), then multiple sources may be used. If using a custom element proxy, then only a single source may be specified.

streams[].videoSources[].typestring (required)

The unique type of each asset proxy or element used in the streams. Check the Previews section for available proxy types. Additional types may be available if custom proxy elements have been generated for an asset; please contact Customer Service if you want to learn more about custom proxies.

streams[].videoSources[].displayNamestring

The text that the video player displays to identify this video source. If blank, the default name for that proxy/element will be used. Its maximum length is 40 characters. Valid characters include the following:

  • a - z (letters)
  • 0 - 9 (numbers)
  • . (period)
  • - (hyphen)
  • _ (underscore)
  • + (plus)
streams[].captionSourcesarray (required)

The list of captions elements to be included in the streams. Please contact Customer Service if you want to learn more about caption extraction for assets.

streams[].captionSources[].typestring (required)

The unique type of each closed caption element used in the stream. Only VTT captions are allowed at this time.

Responses200
Headers
Content-Type: application/json
Body
{
  "completeCount": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "stream2",
      "kind": "Stream",
      "errorCode": "InvalidStreamSource",
      "errorMessage": "One or more source proxies and/or elements are invalid. Review Ci API documentation for valid source requirements."
    }
  ],
  "complete": [
    {
      "name": "stream1",
      "kind": "Stream",
      "streams": [
        {
          "method": "adaptive",
          "type": "hls",
          "url": "http://io.api.cimediacloud.com/assets/54169409604e4a30b0dde9ae23233eee/streams/smil_md5hash.m3u8?Expires=expirationDate&Signature=234gf234hg2f34=="
        },
        {
          "method": "progressive",
          "type": "video-3g",
          "url": "http://cloudfront.cimediacloud.com/54169409604e4a30b0dde9ae23233eee/video-3g.mp4?Expires=expirationDate&Signature=234gf234hg2f34==1"
        },
        {
          "method": "progressive",
          "type": "video-sd",
          "url": "http://cloudfront.cimediacloud.com/54169409604e4a30b0dde9ae23233eee/video-sd.mp4?Expires=expirationDate&Signature=234gf234hg2f34==1"
        }
      ],
      "captions": [
        {
          "type": "example-closed-caption-type",
          "url": "http://cloudfront.cimediacloud.com/54169409604e4a30b0dde9ae23233eee/cc-vtt.vtt?Expires=expirationDate&Signature=234gf234hg2f34==1"
        }
      ]
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring
errors[].kindstring
errors[].errorCodestring
errors[].errorMessagestring
completearray

An array containing information about each completed item.

complete[].namestring

The unique identifier that was optionally supplied when the request was submitted.

complete[].kindstring

The kind value for streaming URL requests will always be ‘Stream’.

complete[].streamsarray (required)

The list of stream objects that were created.

complete[].streams[].methodstring (required)

Indicates the streaming method. Values can be ‘adaptive’ for HLS streams or ‘progressive’ for progressive streams.

complete[].streams[].typestring (required)

Indicates the type of stream. Value will be ‘hls’ for adaptive or will be the proxy/element type (for example, ‘video-3g’ or ‘video-sd’) for progressive.

complete[].streams[].urlstring (required)

The url that uniquely identifies the adaptive or progressive video stream.

complete[].captionsarray (required)

The list of caption objects that were created.

complete[].captions[].typestring (required)

vtt (string) - Indicates the format of the caption file. Currently, only cc-vtt is supported.

complete[].captions[].urlstring (required)

The url that uniquely identifies the closed caption file.

Create Playback Streams
POST/assets/{assetId}/streams

URI Parameters
HideShow
assetId
string (required) 

The source asset id used.

Description

Creates both progressive and adaptive (HLS) playback streams from an existing asset’s proxies and / or elements.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully created jobs.

Errors represented in errors array

Error Code Message
InvalidStreamSource One or more source proxies and/or elements are invalid. Review Ci API documentation for valid source requirements.
InvalidFileType Invalid file type.

Asset Singlepart Upload

Ci API provides three different mechanisms to upload assets:

  1. Singlepart HTTP upload

  2. Multipart HTTP upload

  3. Aspera upload

The singlepart HTTP upload is the easiest to use. It creates the asset record and uploads its content in a single operation. It is, however, limited to 150 megabytes.

It is important to note that an asset record can be created as part of the upload process or it can be created separately - allowing you the flexibility to upload the content to the asset at any time.

Finally, please pay attention to the subdomain used for singlepart and multipart HTTP uploads. The subdomain for those operations is https://io.cimediacloud.com.

Create Asset and Upload

POST  https://api.cimediacloud.com/upload
Requestsexampleexample json body for metadata parameter
Headers
Content-Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm
Authorization: [bearer token]
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm
Content-Disposition: form-data; name="metadata"

{
    "name": "Movie.mov",
    "size": 1024
}

------WebKitFormBoundary8M3sSU13ul5lXSJm

Content-Disposition: form-data; name="filename"; filename="Movie.mov"
Content-Type: image/jpeg

data
------WebKitFormBoundary8M3sSU13ul5lXSJm--
Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w",
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "description": "sample description",
  "ingestConfiguration": {
    "audioMappings": [
      {
        "mappings": [
          {
            "sourceStream": 1,
            "sourceChannel": 2,
            "targetChannel": 3,
            "amplitude": 0.8
          }
        ]
      }
    ]
  },
  "autoArchive": true
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create Asset and Upload
POST/upload

Description

Creates and uploads an asset into Ci in a single operation using HTTP. This is ideal for smaller files. There is an upper limit of 150 megabytes for this endpoint due primarily to the limitations of the HTTP protocol. If the HTTP session is interrupted during this upload process, there is no way to recover from the point of failure. You will need to upload the file again.

For larger files, we recommend that you use our Multipart Upload or, if you have access to an Aspera server or have the Aspera Connect plugin as part of your application, use our Aspera Upload for accelerated uploads with no file size limitations.

The request body must be encoded using multipart/form-data, using 1 or 2 parts.

The first part must be the content to be uploaded, setting the filename content property with the desired asset name.

The second part is optional, containing the metadata, workspace and folder as a json entity.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

As security is paramount to all that we do, we don’t allow the following types of files to be uploaded to Ci:

  • Batch files

  • COM files

  • Executable files

  • HTML files

  • JavaScript files

  • JavaServer Pages

  • MSI files

  • PHP files

  • Python files

  • Ruby files

  • SWF files

  • VBScript files

Errors

Status Code Error Code Message
400 MissingOrInvalidFile Missing or invalid file content.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 InvalidFileType Invalid file type.
400 AssetTooLarge File size is too large for a singlepart HTTP upload. The maximum size is 150 megabytes.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
415 UnsupportedMediaType Unsupported media type. Please use multipart/form-multidata.
500 AssetUploadFailed File upload failed.

Upload File To Created Asset

POST  https://api.cimediacloud.com/upload/yiireizq1hcowxua/upload
Requestsexample
Headers
Content-Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm
Authorization: [bearer token]
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm

Content-Disposition: form-data; name="filename"; filename="Movie.mov"
Content-Type: image/jpeg

data
------WebKitFormBoundary8M3sSU13ul5lXSJm--
Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Upload File To Created Asset
POST/upload/{assetId}/upload

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Uploads a source file via HTTP to an asset record that has already been created but which has not been backed by a source file yet. If you want to create the asset record AND upload its source file using Singlepart HTTP Upload at the same time use Singlepart HTTP Create and Upload instead.

The request body must contain the content to be uploaded, along with the file name and it must be encoded using multipart/form-data.

This operation can only be done if the asset has not previously had a file uploaded to it, if the upload failed, or if the previously uploaded file has a virus.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

Errors

Status Code Error Code Message
400 MissingOrInvalidFile Missing or invalid file content.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 InvalidFileType Invalid file type.
400 AssetTooLarge File size is too large for a singlepart HTTP upload. The maximum size is 150 megabytes.
404 AssetNotFound Asset not found.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
409 InvalidAssetState Asset cannot be uploaded. To upload an asset it cannot be trashed and its status must be ‘Created’, ‘Failed’, or ‘Virus Detected’.
415 UnsupportedMediaType Unsupported media type. Please use multipart/form-multidata.
500 AssetUploadFailed File upload failed.

Asset Multipart Upload

Ci API provides three different mechanisms to upload assets:

  1. Singlepart HTTP upload

  2. Multipart HTTP upload

  3. Aspera upload

The multipart HTTP upload supports larger files between more than 5 megabytes and 5 terabytes but is a bit more involved as there are 3 operations required to complete the upload.

It is important to note that an asset record can be created as part of the upload process or it can be created separately - allowing you the flexibility to upload the content to the asset at any time.

Finally, please pay attention to the subdomain used for singlepart and multipart HTTP uploads. The subdomain for those operations is https://io.cimediacloud.com.

Create Asset and Initiate Upload

POST  https://api.cimediacloud.com/upload/multipart
Requestssimple examplefull example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w"
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w",
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "description": "sample description",
  "ingestConfiguration": {
    "audioMappings": [
      {
        "mappings": [
          {
            "sourceStream": 1,
            "sourceChannel": 2,
            "targetChannel": 3,
            "amplitude": 0.8
          }
        ]
      }
    ]
  },
  "autoArchive": true
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create Asset and Initiate Upload
POST/upload/multipart

Description

The multipart upload enables you to upload larger assets up to 5 terabytes in parts, in a three-step process:

  1. Initiate Upload (creates the asset record and returns its unique identifier)

  2. Upload Parts (uploads parts of the file)

  3. Complete Upload (signal the completion of all uploaded parts)

This operation creates the asset record and initiates the multipart upload, returning the asset identifier to be used in subsequent requests.

Once this is complete you can upload parts

The file size must be greater than 5 megabytes and smaller than 5 terabytes to use this upload mechanism. The storage space is reserved against your plan as soon as the asset is registered and remains so until the asset is deleted.

The size you indicate in this request may be an estimate. This allows you to exceed the allotted project space temporarily while uploading parts but will prevent you from completing this upload if the ultimate size exceeds space available.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

As security is paramount to all that we do, we don’t allow the following types of files to be uploaded to Ci:

  • Batch files

  • COM files

  • Executable files

  • HTML files

  • JavaScript files

  • JavaServer Pages

  • MSI files

  • PHP files

  • Python files

  • Ruby files

  • SWF files

  • VBScript files

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 InvalidFileType Invalid file type.
400 AssetTooSmall File size is too small for multipart upload. The size must be greater than 5 megabytes.
400 AssetTooLarge File size is too large for multipart upload. The maximum size is 5 terabytes.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.

Initiate Upload to Created Asset

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/upload/multipart
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Initiate Upload to Created Asset
POST/assets/{assetId}/upload/multipart

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Uploads a source file via multipart HTTP to an asset record that has already been created but which has not been backed by a source file yet. If you want to create the asset record AND upload its source file using multipart HTTP at the same time use Multipart HTTP Create and Upload instead. This multipart upload operation enables you to upload larger files up to 5 terabytes to an existing asset in parts, in a three-step process:

  1. Initiate Upload (sets up the upload process and returns the asset’s unique identifier)

  2. Upload Parts (uploads parts of the file)

  3. Complete Upload (signal the completion of all uploaded parts)

Once this is complete you can upload parts

The file size must be greater than 5 megabytes and smaller than 5 terabytes to use this upload mechanism. The storage space is reserved against your plan as soon as the asset is registered and until the asset is deleted.

The size you indicate in this request may be an estimate. This operation will prevent you from completing the upload if the transferred file size exceeds space available.

This operation can only be done if the asset has not previously had a file uploaded to it, if the upload failed, or if the previously uploaded file has a virus.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

Errors

Status Code Error Code Message
400 AssetTooSmall File size is too small for multipart upload. The size must be greater than 5 megabytes.
400 AssetTooLarge File size is too large for multipart upload. The maximum size is 5 terabytes.
404 AssetNotFound Asset not found.
409 InvalidAssetState Asset cannot be uploaded. To upload an asset it cannot be trashed and its status must be ‘Created’, ‘Failed’, or ‘Virus Detected’.

Upload Parts

PUT  https://api.cimediacloud.com/upload/multipart/yiireizq1hcowxua/1
Requestsexample
Headers
Content-Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm
Authorization: [bearer token]
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm

Content-Disposition: form-data; name="part"; filename="Movie.mov"
Content-Type: image/jpeg

data
------WebKitFormBoundary8M3sSU13ul5lXSJm--
Responses200404
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha",
  "partNumber": 1
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

partNumbernumber

The uploaded part number.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Upload Parts
PUT/upload/multipart/{assetId}/{partNumber}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

partNumber
string (required) 

The index of the part number is 1-based. It can be any number between 1 to 10,000.

Description

This is the operation used to upload individual parts. Setting a timeout on this request, please allow for the slowest anticipated upload of twice the part content (i.e. take lowest potential throughput and divide it by two to account for client bandwidth constraints). Given the nature of HTTP, it may become necessary to “reupload” a part to ensure all of the bits are received in the allotted time. In accordance with HTTP, the API won’t respond while still persisting the file).

Each part must be at least 5242880 bytes (5 megabytes) and strictly less than 52428800 (50 megabytes), except for the last part, which has no size limit.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

Errors

Status Code Error Code Message
400 InvalidPartNumber Invalid part number. It must be between 1 and 10000.
400 InvalidPartSize Invalid part size. It must be greater than 0.
404 AssetNotFound Asset not found.
409 AssetUploadNotInitiated There is no initiated upload for this file.
409 InvalidAssetState Asset is already uploaded and available.
500 PartUploadFailed Part upload failed.

Complete Upload

POST  https://api.cimediacloud.com/upload/multipart/yiireizq1hcowxua/complete
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Complete Upload
POST/upload/multipart/{assetId}/complete

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

This operation signals the completion of an upload. The available space in the project will be updated to reflect the actual size of the file that was transferred.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

Errors

Status Code Error Code Message
400 NoPartsUploaded No parts were transferred. The upload cannot be completed.
400 AssetTooSmall File size is too small for multipart upload. The size must be greater than 5 megabytes.
400 AssetTooLarge File size is too large for multipart upload. The maximum size is 5 terabytes.
404 AssetNotFound Asset not found.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
409 InvalidAssetState Asset is already uploaded and available.
409 AssetUploadNotInitiated There is no initiated upload for this file.

Get Upload Status

GET  https://api.cimediacloud.com/upload/multipart/yiireizq1hcowxua
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "completedBytes": 1024,
  "totalBytes": 2048
}
Property nameTypeDescription
completedBytesnumber

The number of bytes stored for the asset.

totalBytesnumber

The total number of bytes expected to be transferred for the asset.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Upload Status
GET/upload/multipart/{assetId}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Returns the upload progress of an initiated multipart HTTP upload, up to the last completed part.

A different API host handles HTTP uploads. Please use the host https://io.cimediacloud.com/ to perform this operation.

The upload operation will fail if the user does not have enough free space for the new asset.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
409 AssetUploadNotInitiated There is no initiated upload for this file.

Asset Aspera Upload

Ci API provides three different mechanisms to upload assets:

  1. Singlepart HTTP upload

  2. Multipart HTTP upload

  3. Aspera upload

The Aspera upload also has a maximum of 5 terabytes and utilizes an accelerated transfer protocol to achieve exceptionally fast transfer speeds. It requires that you have an Aspera client or server available which can initiate transfers to our aspera environment.

It is important to note that an asset record can be created as part of the upload process or it can be created separately - allowing you the flexibility to upload the content to the asset at any time.

Create Asset and Get Transfer Specs

POST  https://api.cimediacloud.com/upload/aspera
Requestssimple examplefull example
Headers
Content-Type: application/json
Authorization: Bearer [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w"
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "f283dkizp3qpyya9",
  "uploadConfiguration": {
    "paths": [
      {
        "source": "Movie.mov",
        "destination": "Movie.mov"
      }
    ],
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "user": "uxassets",
    "token": "6xnz5qwxzu6i6c8t",
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false,
    "destinationRoot": "f283dkizp3qpyya9",
    "cookie": "assetId:f283dkizp3qpyya9"
  }
}
Property nameTypeDescription
assetIdstring

The unique identifier of the registered asset.

uploadConfigurationobject

Information about the Aspera upload specs.

uploadConfiguration.pathsarray

Array containing source and destination properties for the asset. This array will always contain a single item.

uploadConfiguration.paths[].sourcestring

The local source path for the asset.

uploadConfiguration.paths[].destinationstring

The destination path for the asset in Ci.

uploadConfiguration.hoststring

The hostname of the destination Aspera server.

uploadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

uploadConfiguration.userstring

The username on the destination Aspera server.

uploadConfiguration.tokenstring

The authorization token for the aspera transfer. This is time sensitive and will expire after 24 hours.

uploadConfiguration.targetRatenumber

The target transfer rate, in kbps.

uploadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

uploadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

uploadConfiguration.destinationRootstring

The destination folder for the files.

uploadConfiguration.cookiestring

The cookie that should be included in the aspera transfer.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "name": "Movie.mov",
  "size": 1024,
  "workspaceId": "oj7mx3vlb2srei89",
  "folderId": "6ovu49kdb3z32z2w",
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "description": "sample description",
  "ingestConfiguration": {
    "audioMappings": [
      {
        "mappings": [
          {
            "sourceStream": 1,
            "sourceChannel": 2,
            "targetChannel": 3,
            "amplitude": 0.8
          }
        ]
      }
    ]
  },
  "autoArchive": true
}
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "f283dkizp3qpyya9",
  "uploadConfiguration": {
    "paths": [
      {
        "source": "Movie.mov",
        "destination": "Movie.mov"
      }
    ],
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "user": "uxassets",
    "token": "6xnz5qwxzu6i6c8t",
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false,
    "destinationRoot": "f283dkizp3qpyya9",
    "cookie": "assetId:f283dkizp3qpyya9"
  }
}
Property nameTypeDescription
assetIdstring

The unique identifier of the registered asset.

uploadConfigurationobject

Information about the Aspera upload specs.

uploadConfiguration.pathsarray

Array containing source and destination properties for the asset. This array will always contain a single item.

uploadConfiguration.paths[].sourcestring

The local source path for the asset.

uploadConfiguration.paths[].destinationstring

The destination path for the asset in Ci.

uploadConfiguration.hoststring

The hostname of the destination Aspera server.

uploadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

uploadConfiguration.userstring

The username on the destination Aspera server.

uploadConfiguration.tokenstring

The authorization token for the aspera transfer. This is time sensitive and will expire after 24 hours.

uploadConfiguration.targetRatenumber

The target transfer rate, in kbps.

uploadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

uploadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

uploadConfiguration.destinationRootstring

The destination folder for the files.

uploadConfiguration.cookiestring

The cookie that should be included in the aspera transfer.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Create Asset and Get Transfer Specs
POST/upload/aspera

Description

Creates the asset record and responds with Aspera transfer configuration information so the client can initiate an upload using an Aspera client or server.

Your plan must have enough free space to accommodate the asset or the transaction will fail.

You will need access to an Aspera server or client that can initiate aspera transfers to effectively use the information that this operation returns.

The name provided in this request must match the filename transferred using Aspera. If the asset is uploaded again using the same token the source file will get overwritten, however, the proxies will not be recreated.

As security is paramount to all that we do, we don’t allow the following types of files to be uploaded to Ci:

  • Batch files

  • COM files

  • Executable files

  • HTML files

  • JavaScript files

  • JavaServer Pages

  • MSI files

  • PHP files

  • Python files

  • Ruby files

  • SWF files

  • VBScript files

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 MissingOrInvalidFileSize Missing or invalid file size.
400 InvalidFileType Invalid file type.
400 WorkspaceNotFound Workspace not found.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 FolderDeleted Folder is deleted.
409 FolderTrashed Folder is trashed.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
409 EntitlementRequired Workspace does not have Aspera enabled.

Get Transfer Specs for Created Asset

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/upload/aspera
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200400
Headers
Content-Type: application/json
Body
{
  "assetId": "f283dkizp3qpyya9",
  "uploadConfiguration": {
    "paths": [
      {
        "source": "Movie.mov",
        "destination": "Movie.mov"
      }
    ],
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "user": "uxassets",
    "token": "6xnz5qwxzu6i6c8t",
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false,
    "destinationRoot": "f283dkizp3qpyya9",
    "cookie": "assetId:f283dkizp3qpyya9"
  }
}
Property nameTypeDescription
assetIdstring

The unique identifier of the registered asset.

uploadConfigurationobject

Information about the Aspera upload specs.

uploadConfiguration.pathsarray

Array containing source and destination properties for the asset. This array will always contain a single item.

uploadConfiguration.paths[].sourcestring

The local source path for the asset.

uploadConfiguration.paths[].destinationstring

The destination path for the asset in Ci.

uploadConfiguration.hoststring

The hostname of the destination Aspera server.

uploadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

uploadConfiguration.userstring

The username on the destination Aspera server.

uploadConfiguration.tokenstring

The authorization token for the aspera transfer. This is time sensitive and will expire after 24 hours.

uploadConfiguration.targetRatenumber

The target transfer rate, in kbps.

uploadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

uploadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

uploadConfiguration.destinationRootstring

The destination folder for the files.

uploadConfiguration.cookiestring

The cookie that should be included in the aspera transfer.

Headers
Content-Type: application/json
Body
{
  "code": "FolderNotFound",
  "message": "Folder not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Transfer Specs for Created Asset
POST/assets/{assetId}/upload/aspera

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Returns a new Aspera transfer configuration object that can be used to upload the content of an existing asset. If you want to create the asset record AND upload its source file using Aspera at the same time use Aspera Create and Upload instead.

The name provided in the create an asset request must match the filename transferred using Aspera.

This operation can only be done if the asset has not previously had a file uploaded to it, if the upload failed, or if the previously uploaded file has a virus.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
409 InvalidAssetState Asset cannot be uploaded. To upload an asset it cannot be trashed and its status must be ‘Created’, ‘Failed’, or ‘Virus Detected’.
409 EntitlementRequired Workspace does not have Aspera enabled.

Upload Multiple Files

POST  https://api.cimediacloud.com/upload/aspera/bulk
Requestsexample to create new assetsexample to upload to existing assets
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
[
  {
    "name": "Movie.mov",
    "size": 1024,
    "workspaceId": "oj7mx3vlb2srei89",
    "folderId": "6ovu49kdb3z32z2w",
    "metadata": [
      {
        "name": "resolution",
        "value": "1080p"
      }
    ],
    "description": "sample description",
    "ingestConfiguration": {
      "audioMappings": [
        {
          "mappings": [
            {
              "sourceStream": 1,
              "sourceChannel": 2,
              "targetChannel": 3,
              "amplitude": 0.8
            }
          ]
        }
      ]
    },
    "autoArchive": true
  }
]
Property nameTypeDescription
namestring (required)

The name of the asset, including its extension. Its maximum length is 512 characters.

sizenumber (required)

The size of the asset, in bytes.

workspaceIdstring

The workspace that will contain the asset. If no value is provided, the asset will be placed in the calling user’s personal workspace.

folderIdstring

The workspace’s folder that will contain the asset. If no value is provided, the asset will be placed in the workspace’s root folder.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

descriptionstring

A brief note associated to the asset. Its maximum length is 1000 characters.

ingestConfigurationobject

Settings for customizing the ingest process of the asset.

ingestConfiguration.audioMappingsarray

A set of objects that specifies ingest customizations that will be used when generating proxies. Currently, we support a single object in this array. If more than 1 object is provided, only the first will be processed and the rest will be ignored.

ingestConfiguration.audioMappings[].mappingsarray

A set of objects that defines the mapping of a source file’s audio streams to the proxies’ audio streams.

ingestConfiguration.audioMappings[].mappings[].sourceStreamnumber

Index of an audio stream from the source file that will be mapped to each proxy’s audio stream. This index is zero-based.

ingestConfiguration.audioMappings[].mappings[].sourceChannelnumber

Channel index of the specified source stream that will be mapped to each proxy’s target channels. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].targetChannelnumber

Channel index of the proxies’ audio stream. This index is zero-based and the default is 0.

ingestConfiguration.audioMappings[].mappings[].amplitudenumber

Number between 0 and 1 that determines the amplitude of the proxies’ target channel based on the source channel amplitude. Default is 1.

autoArchiveboolean

Indicates if the asset shall be archived right after ingestion.

Responses200400
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "items": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov"
    }
  ],
  "uploadConfiguration": {
    "paths": [
      {
        "source": "Movie.mov",
        "destination": "Movie.mov"
      }
    ],
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "user": "uxassets",
    "token": "6xnz5qwxzu6i6c8t",
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false
  }
}
Property nameTypeDescription
countnumber

The number of assets to be uploaded.

itemsarray

The assets to be uploaded.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of asset and its extension.

uploadConfigurationobject

Information about the Aspera upload specs.

uploadConfiguration.pathsarray

Array containing source and destination properties for the asset. This array will always contain a single item.

uploadConfiguration.paths[].sourcestring

The local source path for the asset.

uploadConfiguration.paths[].destinationstring

The destination path for the asset in Ci.

uploadConfiguration.hoststring

The hostname of the destination Aspera server.

uploadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

uploadConfiguration.userstring

The username on the destination Aspera server.

uploadConfiguration.tokenstring

The authorization token for the aspera transfer. This is time sensitive and will expire after 24 hours.

uploadConfiguration.targetRatenumber

The target transfer rate, in kbps.

uploadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

uploadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Headers
Content-Type: application/json
Authorization: [bearer token]
Body
[
  {
    "assetId": "srik9m8g2edjq88q"
  }
]
Property nameTypeDescription
assetIdstring

The unique identifier for the created asset. Only provide this value if you are not creating new assets but instead uploading to existing assets.

Responses200400
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "items": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov"
    }
  ],
  "uploadConfiguration": {
    "paths": [
      {
        "source": "Movie.mov",
        "destination": "Movie.mov"
      }
    ],
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "user": "uxassets",
    "token": "6xnz5qwxzu6i6c8t",
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false
  }
}
Property nameTypeDescription
countnumber

The number of assets to be uploaded.

itemsarray

The assets to be uploaded.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of asset and its extension.

uploadConfigurationobject

Information about the Aspera upload specs.

uploadConfiguration.pathsarray

Array containing source and destination properties for the asset. This array will always contain a single item.

uploadConfiguration.paths[].sourcestring

The local source path for the asset.

uploadConfiguration.paths[].destinationstring

The destination path for the asset in Ci.

uploadConfiguration.hoststring

The hostname of the destination Aspera server.

uploadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

uploadConfiguration.userstring

The username on the destination Aspera server.

uploadConfiguration.tokenstring

The authorization token for the aspera transfer. This is time sensitive and will expire after 24 hours.

uploadConfiguration.targetRatenumber

The target transfer rate, in kbps.

uploadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

uploadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Upload Multiple Files
POST/upload/aspera/bulk

Description

Creates multiple asset records and responds with Aspera transfer configuration information so the client can initiate a bulk upload using an Aspera client or server.

You can also retrieve the Aspera transfer configuration information for existing assets.

Both new assets and existing assets can be mixed in the same request.

The maximum number of assets for bulk Aspera upload is 500.

Your plan must have enough free space to accommodate all new assets or the transaction will fail.

You will need access to an Aspera server or client that can initiate aspera transfers to effectively use the information that this operation returns.

The names provided in this request must match the filenames transferred using Aspera. If the assets are uploaded again using the same token the source file will get overwritten, however, the proxies will not be recreated.

This resource will return a failure response if any of the provided asset information is invalid.

Errors

Status Code Error Code Message
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 MissingOrInvalidFileSize Missing or invalid file size.
400 InvalidFileType Invalid file type.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
400 WorkspaceNotFound Workspace not found.
400 InvalidOperationOnWorkspace Invalid workspaces provided. Creating assets in bulk is limited to one workspace.
400 FolderNotFound Folder not found.
400 FolderNotMemberOfWorkspace Folder is not a member of the provided workspace.
400 AssetNotFound Asset not found.
400 InvalidIngestConfiguration Invalid ingest configuration.
409 FolderDeleted Folder is deleted.
409 FolderTrashed Folder is trashed.
409 AssetTrashed Asset is trashed.
409 InvalidAssetState Asset cannot be uploaded. To upload an asset it cannot be trashed and its status must be ‘Created’, ‘Failed’, or ‘Virus Detected’.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
409 EntitlementRequired Workspace does not have Aspera enabled.

Get Upload Status

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/upload/status
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "status": "Completed",
  "errorMessage": "",
  "bytesWritten": 53687091200,
  "bytesExpected": 53687091200,
  "elapsed": 345897,
  "percentComplete": 100,
  "transferType": "Aspera"
}
Property nameTypeDescription
statusstring

The status of the upload. Valid values are: ‘Completed’, ‘Running’, ‘Paused’, ‘Cancelled’, ‘Error’, ‘Willretry’, ‘Orphaned’.

errorMessagestring

If available, a description of any error encountered.

bytesWrittennumber

If available, number of bytes written to disk.

bytesExpectednumber

Number of bytes expected to be written in total.

elapsednumber

If available, number of microseconds since the upload was initiated.

percentCompletenumber

If available, this is the percent complete expressed as a whole number.

transferTypestring

The type of transfer. Will always be Aspera.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Upload Status
POST/assets/{assetId}/upload/status

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Provides status information about Aspera file transfers for a given asset id.

Retrieving upload status for assets that were uploaded using Aspera more than 1 hour ago may result in incomplete transfer information. This is due to the fact that asset upload information is only available by querying the actual Aspera instance used to upload the asset. Therefore, if the Aspera instance used to upload your asset is no longer online the upload information will be derived from other data sources.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetUploadNotInitiated Asset upload status is unavailable at this time. You must initiate an upload before requesting upload status.
409 AssetUploadStatusUnavailable Asset was uploaded using multipart HTTP. The current version of Ci does not support retrieving asset upload status for assets uploaded using multipart HTTP. Use this resource instead: /upload/multipart/{assetId}.
409 AssetUploadStatusUnavailable Asset was uploaded using singlepart HTTP. Asset upload status cannot be retrieved for assets uploaded using singlepart HTTP.
409 AssetUploadStatusUnavailable Asset upload status is unavailable at this time. Either the upload has not been initiated or upload status cannot be found.
409 EntitlementRequired Workspace does not have Aspera enabled.

Asset Media Services

When an asset is uploaded into Ci we will automatically initiate jobs. These jobs typically include creating proxies and thumbnails, extracting metadata, generating MD5 checksum, checking for viruses, and others. However, in some cases, these jobs are not performed or there may be additional jobs that would add value to the asset. This API resource gives customers the ability to run specific jobs on demand for any asset.

Media Service Jobs for Asset

POST  https://api.cimediacloud.com/assets/yiireizq1hcowxua/jobs
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "proxies": [
    {
      "type": "video-2k",
      "requestItemId": "a1"
    }
  ],
  "captions": [
    {
      "type": "cc-example",
      "requestItemId": "a2"
    }
  ],
  "thumbnails": [
    {
      "type": "small",
      "requestItemId": "a3"
    }
  ],
  "general": [
    {
      "type": "technicalMetadata",
      "requestItemId": "a4"
    }
  ]
}
Property nameTypeDescription
proxiesarray

The specifications for proxy jobs.

proxies[].typestring

The type of proxy job to be created. Check the Previews section for available proxy types. Proxies can also be generated with custom profiles; please contact Customer Service if you want to learn more.

proxies[].requestItemIdstring

Caller provided string to be used as an identifier for this request.

captionsarray

The specifications for caption jobs.

captions[].typestring

The type of caption job to be created. Captions can only be generated with custom profiles; please contact Customer Service if you want to learn more.

captions[].requestItemIdstring

Caller provided string to be used as an identifier for this request.

thumbnailsarray

The specifications for thumbnail jobs.

thumbnails[].typestring

The size of thumbnail to be created, such as ‘small’ or ‘large’. Check the Previews section for available thumbnail sizes.

thumbnails[].requestItemIdstring

Caller provided string to be used as an identifier for this request.

generalarray

The specifications for general jobs.

general[].typestring

The type of general job to be created. Currently, the only available general job is “technicalMetadata”. Invalid general job types will be ignored.

general[].requestItemIdstring

Caller provided string to be used as an identifier for this request.

Responses200409
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "assetId": "u57kfgxbynrkt267"
    }
  ],
  "complete": [
    {
      "jobId": "4xjxx1bcvxvajef6",
      "assetId": "irefisy6y6vwhsrl",
      "elementId": "9buxd3oqybkvqxtv",
      "type": "video",
      "kind": "Proxy"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].assetIdstring

The unique identifier for the asset.

completearray

An array containing information about each successfully created job.

complete[].jobIdstring

The unique identifier of the job.

complete[].assetIdstring

The unique identifier of the asset.

complete[].elementIdstring

If applicable, the unique identifier of the element that will be created as result of the job execution. Currently, files output using custom profiles will contain an elementId and are accessible via our Elements APIs.

complete[].typestring

2k (string) - Indicates the type of the job. For jobs that generate an asset preview (a proxy or a thumbnail), please check the Previews section for available types. For General jobs, this value will be ‘TechnicalMetadata’, ‘ExecutableCheck’, ‘Checksum’, or ‘VirusScan’. For Caption kinds of jobs, please contact Customer Service to learn more.

complete[].kindstring

Indicates the kind of the job. This value will be ‘Proxy’ for proxies, ‘Thumbnail’ for thumbnails, ‘Caption’ for caption files, and ‘General’ for general jobs.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "assetId": "u57kfgxbynrkt267"
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

An array containing information about each failed item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].assetIdstring

The unique identifier for the asset.

Create Jobs
POST/assets/{assetId}/jobs

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Allows for the creation of jobs an a single asset.

Kinds of jobs currently available:

  • Proxies - Creates new proxies for the asset. Proxies can only be created for video or audio assets. Check the Previews section for available proxy types. You can also create custom profile proxies; see the note below for more information.
  • Captions - Creates new caption files for the asset. Caption files can only be requested using a custom profile; see the note below for more information.
  • Thumbnails - Creates new thumbnails for the asset. Thumbnails can only be created for video, audio or image assets. Check the Previews section for available thumbnail sizes.
  • General - Creates other, general jobs. Additional job types will be added soon.
    • Technical Metadata - Extracts technical metadata from the asset.

Custom profiles are a feature of Company Networks that let you define custom proxy and caption file specifications. Files generated using custom profiles are available as Elements of an asset. If you want to learn more, please drop a line to Customer Service.

To create jobs for an archived asset it must be restored with a restore expiration date that is greater than 24 hours. To extend the restore date for an asset you can use the Restore resource.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 AssetNotReady Asset not ready. Its status must be either “Complete” or “Limited”.
400 InvalidRequest Multiple technical metadata job requests are not supported.
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.
409 InvalidAssetState Asset has not been uploaded and jobs cannot be created.
409 InvalidAssetState Asset is archived and jobs cannot be created. The asset must be restored before any jobs can be created.
409 InvalidAssetState Asset is currently being archived and jobs cannot be created. The asset archive operation must complete and the asset must be restored before any jobs can be created.
409 InvalidAssetState Asset is currently being restored and jobs cannot be created. The asset restore operation must complete before any jobs can be created.
409 InvalidAssetState Asset restore expires in less than 24 hours. The asset restore expiration must be longer than 24 hours before any jobs can be created.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully created jobs.

Errors represented in errors array

Error Code Message
InvalidJobRequest Invalid job configuration.
InvalidJobRequest Invalid file type for job. The job specified is not compatible with the provided file type.
EntitlementRequired Entitlement is required for specified job.
JobAlreadyExists Job already exists.

GET  https://api.cimediacloud.com/assets/yiireizq1hcowxua/jobs
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 0,
  "errors": [],
  "items": [
    {
      "jobId": "4xjxx1bcvxvajef6",
      "assetId": "irefisy6y6vwhsrl",
      "elementId": "9buxd3oqybkvqxtv",
      "type": "video",
      "kind": "Proxy",
      "status": "Complete",
      "progress": {
        "percentComplete": 100
      }
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errors

This array will be empty.

itemsarray

An array containing information about each successfully created job.

items[].jobIdstring

The unique identifier of the job.

items[].assetIdstring

The unique identifier of the asset.

items[].elementIdstring

If applicable, the unique identifier of the element that will be created as result of the job execution. Currently, files output using custom profiles will contain an elementId and are accessible via our Elements APIs.

items[].typestring

2k (string) - Indicates the type of the job. For jobs that generate an asset preview (a proxy or a thumbnail), please check the Previews section for available types. For General jobs, this value will be ‘TechnicalMetadata’, ‘ExecutableCheck’, ‘Checksum’, or ‘VirusScan’. For Caption kinds of jobs, please contact Customer Service to learn more.

items[].kindstring

Indicates the kind of the job. This value will be ‘Proxy’ for proxies, ‘Thumbnail’ for thumbnails, ‘Caption’ for caption files, and ‘General’ for general jobs.

items[].statusstring

Indicates the processing status of the job. Returned values include ‘Waiting’, ‘Processing’, ‘Complete’ or ‘Failed’.

items[].progressobject

If available, an object that contains detailed progress information.

items[].progress.percentCompletenumber

If available, this is the percent complete expressed as a decimal value.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Jobs
GET/assets/{assetId}/jobs

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Gets job details for any jobs created during the ingest process that happens after upload and any jobs created using the Create Jobs resource.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.

Get Job Details

GET  https://api.cimediacloud.com/jobs/yiireizq1hcowxua
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "jobId": "4xjxx1bcvxvajef6",
  "assetId": "irefisy6y6vwhsrl",
  "elementId": "9buxd3oqybkvqxtv",
  "type": "video",
  "kind": "Proxy",
  "status": "Complete",
  "progress": {
    "percentComplete": 100
  }
}
Property nameTypeDescription
jobIdstring

The unique identifier of the job.

assetIdstring

The unique identifier of the asset.

elementIdstring

If applicable, the unique identifier of the element that will be created as result of the job execution. Currently, files output using custom profiles will contain an elementId and are accessible via our Elements APIs.

typestring

2k (string) - Indicates the type of the job. For jobs that generate an asset preview (a proxy or a thumbnail), please check the Previews section for available types. For General jobs, this value will be ‘TechnicalMetadata’, ‘ExecutableCheck’, ‘Checksum’, or ‘VirusScan’. For Caption kinds of jobs, please contact Customer Service to learn more.

kindstring

Indicates the kind of the job. This value will be ‘Proxy’ for proxies, ‘Thumbnail’ for thumbnails, ‘Caption’ for caption files, and ‘General’ for general jobs.

statusstring

Indicates the processing status of the job. Returned values include ‘Waiting’, ‘Processing’, ‘Complete’ or ‘Failed’.

progressobject

If available, an object that contains detailed progress information.

progress.percentCompletenumber

If available, this is the percent complete expressed as a decimal value.

Headers
Content-Type: application/json
Body
{
  "code": "JobNotFound",
  "message": "Job not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Job Details
GET/jobs/{jobId}

URI Parameters
HideShow
jobId
string (required) 

The unique identifier of the job.

Description

Gets details for any job created using the Create Jobs resource.

Errors

Status Code Error Code Message
404 JobNotFound Job not found.

Get Multiple Jobs' Details

POST  https://api.cimediacloud.com/jobs/details/bulk
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "jobIds": [
    "6i3x3hp1ni2wo5bd"
  ]
}
Property nameTypeDescription
jobIdsarray

The unique identifiers for all jobs.

Responses200409
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "jobId": "6i3x3hp1ni2wo5bd",
      "errorCode": "JobNotFound",
      "errorMessage": "Job not found."
    }
  ],
  "items": [
    {
      "jobId": "4xjxx1bcvxvajef6",
      "assetId": "irefisy6y6vwhsrl",
      "elementId": "9buxd3oqybkvqxtv",
      "type": "video",
      "kind": "Proxy",
      "status": "Complete",
      "progress": {
        "percentComplete": 100
      }
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

Information about the errors.

errors[].jobIdstring

The unique identifier of the job.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

itemsarray

An array containing information about each successfully created job.

items[].jobIdstring

The unique identifier of the job.

items[].assetIdstring

The unique identifier of the asset.

items[].elementIdstring

If applicable, the unique identifier of the element that will be created as result of the job execution. Currently, files output using custom profiles will contain an elementId and are accessible via our Elements APIs.

items[].typestring

2k (string) - Indicates the type of the job. For jobs that generate an asset preview (a proxy or a thumbnail), please check the Previews section for available types. For General jobs, this value will be ‘TechnicalMetadata’, ‘ExecutableCheck’, ‘Checksum’, or ‘VirusScan’. For Caption kinds of jobs, please contact Customer Service to learn more.

items[].kindstring

Indicates the kind of the job. This value will be ‘Proxy’ for proxies, ‘Thumbnail’ for thumbnails, ‘Caption’ for caption files, and ‘General’ for general jobs.

items[].statusstring

Indicates the processing status of the job. Returned values include ‘Waiting’, ‘Processing’, ‘Complete’ or ‘Failed’.

items[].progressobject

If available, an object that contains detailed progress information.

items[].progress.percentCompletenumber

If available, this is the percent complete expressed as a decimal value.

Headers
Content-Type: application/json
Body
{
  "completeCount": 0,
  "errorCount": 1,
  "errors": [
    {
      "jobId": "6i3x3hp1ni2wo5bd",
      "errorCode": "JobNotFound",
      "errorMessage": "Job not found."
    }
  ]
}
Property nameTypeDescription
completeCountnumber

The number of successful items.

errorCountnumber

The number of failed items.

errorsarray

Information about the errors.

errors[].jobIdstring

The unique identifier of the job.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

Get Multiple Jobs' Details
POST/jobs/details/bulk

Description

Gets details for any jobs created using the Create Jobs resource.

500 is the maximum number of jobs that can be retrieved in a single operation.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 JobIdNotProvided Job Id not provided.
400 ExceededMaxJobCount Max job count exceeded. The maximum number of jobs is 500.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no successfully retrieved jobs.

Errors represented in errors array

Error Code Message
JobNotFound Job not found.

Elements

Sometimes one file just isn’t enough to fully express yourself. That’s why we’ve created Elements. Elements are separate files that can be uploaded and associated with your primary Assets. Add a QC report, camera metadata, chapter stops, caption file, camera LUT, basically, anything you need to increase the value of your content and to make your workflow easier.

Tag each element with one or more custom keys to facilitate their retrieval and downstream use later. You can also add metadata as a set of key-value pairs for each element.

As part of the upload process, we will generate a checksum and scan the file for viruses. Additional proxies and thumbnails are not generated for elements.

Get Element Details

GET  https://api.cimediacloud.com/elements/yiireizq1hcowxua?downloadExpirationDate=2017-01-02T00:00:00.000Z
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "9buxd3oqybkvqxtv",
  "asset": {
    "id": "eynde5qbjzc0ww16",
    "name": "Movie.mov"
  },
  "size": 1024,
  "downloadUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/element.jpg",
  "name": "Element.mov",
  "createdOn": "2017-01-02T00:00:00.000Z",
  "md5Checksum": "oaeybnyoggs97nzw",
  "metadata": [
    {
      "name": "resolution",
      "value": "1080p"
    }
  ],
  "status": "Complete",
  "customKeys": [
    "examplekey"
  ]
}
Property nameTypeDescription
idstring

The unique identifier of the element.

assetobject

Information about the element’s parent asset.

asset.idstring

The unique identifier of the asset.

asset.namestring

The name of asset and its extension.

sizenumber

The size in bytes of the element.

downloadUrlstring

A link to the element.

namestring

The name of the element.

createdOnstring

The datetime the element record was created.

md5Checksumstring

The MD5 checksum calculated on the element file.

metadataarray

An array of key-value pairs of user-generated metadata.

metadata[].namestring

The name of the metadata item.

metadata[].valuestring

the value of the metadata item.

statusstring

The status of the element. Valid values are ‘Created’, ‘Uploading’, ‘Processing’, ‘Complete’, ‘Deleted’, ‘Failed’, ‘Virus Detected’.

customKeysarray

An array of strings that represents custom keys over the element that the user wants to add.

Headers
Content-Type: application/json
Body
{
  "code": "ElementNotFound",
  "message": "Element not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Element Details
GET/elements/{elementId}{?downloadExpirationDate}

URI Parameters
HideShow
elementId
string (required) 

The unique identifier of the element.

downloadExpirationDate
string (optional) 

The date and time for download URL expiration in IS0 8601 date and time format (e.g.: ‘2020-01-01’). Value must be less than ‘2038-01-01’ and greater than the current date and time. If not provided, default of 3 hours is used.

Description

Retrieves the element information for the specified element.

Errors

Status Code Error Code Message
400 InvalidExpiration Invalid expiration.
404 ElementNotFound Element not found.

List Elements for Asset

GET  https://api.cimediacloud.com/assets/moqxhkej4epvgrwz/elements?limit=1&offset=0&orderBy=name&orderDirection=asc
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [],
  "items": [
    {
      "id": "9buxd3oqybkvqxtv",
      "asset": {
        "id": "eynde5qbjzc0ww16",
        "name": "Movie.mov"
      },
      "size": 1024,
      "downloadUrl": "https://cimediacloud.com/t5y7s3ero3w2ie7/element.jpg",
      "name": "Element.mov",
      "createdOn": "2017-01-02T00:00:00.000Z",
      "md5Checksum": "oaeybnyoggs97nzw",
      "metadata": [
        {
          "name": "resolution",
          "value": "1080p"
        }
      ],
      "status": "Complete",
      "customKeys": [
        "examplekey"
      ]
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errors

This array will have no items.

itemsarray

An array containing information about each element.

items[].idstring

The unique identifier of the element.

items[].assetobject

Information about the element’s parent asset.

items[].asset.idstring

The unique identifier of the asset.

items[].asset.namestring

The name of asset and its extension.

items[].sizenumber

The size in bytes of the element.

items[].downloadUrlstring

A link to the element.

items[].namestring

The name of the element.

items[].createdOnstring

The datetime the element record was created.

items[].md5Checksumstring

The MD5 checksum calculated on the element file.

items[].metadataarray

An array of key-value pairs of user-generated metadata.

items[].metadata[].namestring

The name of the metadata item.

items[].metadata[].valuestring

the value of the metadata item.

items[].statusstring

The status of the element. Valid values are ‘Created’, ‘Uploading’, ‘Processing’, ‘Complete’, ‘Deleted’, ‘Failed’, ‘Virus Detected’.

items[].customKeysarray

An array of strings that represents custom keys over the element that the user wants to add.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

List Elements for Asset
GET/assets/{assetId}/elements{?limit,offset,orderBy,orderDirection}

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

limit
number (optional) Default: 50 

The number of items to return. The maximum is 50.

offset
number (optional) Default: 0 

The item at which to begin the response.

orderBy
string (optional) Default: name 

The field to sort the items by.

Choices: createdOn name

orderDirection
string (optional) Default: asc 

The order direction the items should be returned.

Choices: asc desc

Description

Retrieves the elements for the specified asset. This query supports pagination using limit and offset. The results can be ordered by createdOn, name and size.

Errors

Status Code Error Code Message
400 InvalidLimitOrOffset Invalid limit or offset value. Limit must be a number between 1 and 50. Offset must be greater than or equal to 0.
400 InvalidQueryOrderField Invalid order field. It must be either ‘CreatedOn’ or ‘Name’.
400 InvalidQueryOrderDirection Invalid order direction. It must be either ‘Asc’ or ‘Desc’.
404 AssetNotFound Asset not found.

Element Singlepart Upload

Singlepart HTTP upload is currently available for Elements.

Create Element and Upload

POST  https://api.cimediacloud.com/elements/upload
Requestsexampleexample json body for metadata parameter
Headers
Content-Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm
Authorization: [bearer token]
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm
Content-Disposition: form-data; name="metadata"

{
    "assetId": "yiireizq1hcowxua"
}

------WebKitFormBoundary8M3sSU13ul5lXSJm

Content-Disposition: form-data; name="filename"; filename="Movie.mov"
Content-Type: image/jpeg

data
------WebKitFormBoundary8M3sSU13ul5lXSJm--
Responses200404
Headers
Content-Type: application/json
Body
{
  "assetId": "yiireizq1hcowxua",
  "elementId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the parent asset.

elementIdstring

The unique identifier for the element.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "assetId": "yiireizq1hcowxua",
  "metadata": {
    "name": "resolution",
    "value": "1080p"
  },
  "customKeys": [
    "examplekey"
  ]
}
Property nameTypeDescription
assetIdstring

The unique identifier for the parent asset.

metadataobject

Information about the element’s metadata.

metadata.namestring

The name of the metadata item.

metadata.valuestring

the value of the metadata item.

customKeysarray

An array of strings that represents a list of custom keys to associate with an element.

Responses200
Headers
Content-Type: application/json
Body
{
  "assetId": "5v99qywnb6gzneha"
}
Property nameTypeDescription
assetIdstring

The unique identifier for the asset.

Create Element and Upload
POST/elements/upload

Description

Creates and uploads an element in a single operation using HTTP. There is an upper limit of 150 megabytes for this endpoint due primarily to the limitations of the HTTP protocol. If the HTTP session is interrupted during this upload process, there is no way to recover. You will need to upload the file again.

Please use https://io.cimediacloud.com/elements/upload to perform this operation.

When submitting custom keys, keep this information in mind:

  • All characters will be converted to lower case.
  • Leading and trailing whitespace will be removed.
  • Each custom key must not be longer than 36 characters.
  • A maximum of 20 custom keys may be submitted.
  • Valid characters for a custom key include the following:
    • a - z (letters)
    • 0 - 9 (numbers)
    • . (period)
    • - (hyphen)
    • _ (underscore)

Errors

Status Code Error Code Message
400 MissingOrInvalidFile Missing or invalid file content.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidDescription Invalid description. The description length must equal to or less than 1000 characters.
400 InvalidFileType Invalid file type.
400 ElementTooLarge File size is too large for a singlepart HTTP upload. The maximum size is 150 megabytes.
400 AssetIdNotProvided Asset Id was not provided.
400 InvalidCustomKey Too many or invalid custom keys.
400 AssetDeleted Asset is deleted.
404 ElementNotFound Element not found.
400 AssetNotFound Asset not found.
400 InvalidAssetState Element cannot be uploaded. To upload an element it’s parent asset cannot be trashed and its status must not be ‘Executable Detected’ or ‘Virus Detected’.
403 InvalidOperationOnWorkspace Workspace is not allowed to upload elements of this type.
409 InsufficientSpaceAvailable Upload will exceed the workspace’s allotted storage.
415 UnsupportedMediaType Unsupported media type. Please use application/form-multidata.
500 ElementUploadFailed File upload failed.

Upload Cover Element

POST  https://api.cimediacloud.com/assets/moqxhkej4epvgrwz/coverelement/upload
Requestsexample
Headers
Content-Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm
Authorization: [bearer token]
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm

Content-Disposition: form-data; name="filename"; filename="thumbnail.jpg"
Content-Type: image/jpeg

data
------WebKitFormBoundary8M3sSU13ul5lXSJm--
Responses200404
Headers
Content-Type: application/json
Body
{
  "assetId": "yiireizq1hcowxua",
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ]
}
Property nameTypeDescription
assetIdstring

The unique identifier for the parent asset.

thumbnailsarray

Information about the new asset cover.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Upload Cover Element
POST/assets/{assetId}/coverelement/upload

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Uploads a new cover element in a single operation using HTTP. Uploading a new cover element will replace the asset’s current cover element with the uploaded one. Additionally, we will generate a new set of thumbnails for the uploaded image. If the HTTP session is interrupted during this upload process, there is no way to recover. You will need to upload the file again.

The request body must be encoded using multipart/form-data, using 1 part.

The part must be the content to be uploaded, setting the filename content property with the cover element file name.

Please use https://io.cimediacloud.com/assets/{assetId}/coverelement/upload to perform this operation.

The following image extensions are allowed: jpg, jpeg, gif, png, tif, tiff, bmp

The maximum file size is 20 megabytes.

Errors

Status Code Error Code Message
400 AssetIdNotProvided Asset Id was not provided.
400 MissingOrInvalidFile Missing or invalid file content.
400 MissingOrInvalidName Missing or invalid name. The file name must not be null and its length must be equal to or less than 512 characters.
400 InvalidFileType Invalid file type.
400 MissingOrInvalidFileSize Missing or invalid file size.
400 AssetDeleted Asset is deleted.
400 InvalidAssetState Element cannot be uploaded. To upload an element it’s parent asset cannot be trashed and its status must not be ‘Executable Detected’ or ‘Virus Detected’.
404 AssetNotFound Asset not found.
415 UnsupportedMediaType Unsupported media type. Please use application/form-multidata.

Download

HTTP Download

GET  https://api.cimediacloud.com/assets/moqxhkej4epvgrwz/download
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": "alr7wdoaftr0mtpz",
  "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/source-file.jpg",
  "size": 1024,
  "proxies": [
    {
      "type": "video-3g",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/proxy.jpg",
      "size": 1024,
      "width": 200,
      "height": 300,
      "videoBitRate": 1650000,
      "audioBitRate": 128000
    }
  ],
  "thumbnails": [
    {
      "type": "large",
      "location": "https://cimediacloud.com/t5y7s3ero3w2ie7/thumb.jpg",
      "size": 1024,
      "width": 200,
      "height": 300
    }
  ]
}
Property nameTypeDescription
idstring

The unique identifier for the asset to download.

locationstring

If available, a secure, time-restricted link to the file. This property may not be available if the asset is being archived or restored, or is already archived and a restored copy is not available.

sizenumber

The size, in bytes, of the source file.

proxiesarray

If available, a list of available proxies for download.

proxies[].typestring

The type of proxy returned. Valid values are ‘standard-audio’, ‘video-3g’, ‘video-sd’, ‘video-sdplus’, ‘video-hd’, ‘video-2k’, ‘video-2kplus’, ‘document-pdf’.

proxies[].locationstring

The url of the proxy.

proxies[].sizenumber

The size of the proxy, in bytes.

proxies[].widthnumber

The width of the proxy.

proxies[].heightnumber

The height of the proxy.

proxies[].videoBitRatenumber

The video bitrate of the proxy.

proxies[].audioBitRatenumber

The audio bitrate of the proxy.

thumbnailsarray

If available, a list of available thumbnails for download.

thumbnails[].typestring

The type of thumbnail returned. Valid values are ‘small’, ‘medium’ and ‘large’.

thumbnails[].locationstring

The url of the thumbnail.

thumbnails[].sizenumber

The size of the thumbnail, in bytes.

thumbnails[].widthnumber

The width of the thumbnail.

thumbnails[].heightnumber

The height of the thumbnail.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

HTTP Download
GET/assets/{assetId}/download

URI Parameters
HideShow
assetId
string (required) 

The unique identifier of the asset.

Description

Generates a secure, time-restricted link to download the asset’s source file, proxies and thumbnails. If the link expires prior to you initiating the download, just call this endpoint again.

If the asset has been archived and a restored copy is not currently available, the asset will have to be restored prior to downloading the source file. Additionally, if the asset is currently being archived or restored the source file will be not be available for download. In these scenarios the “location” property will not be returned but the “proxies” and “thumbnails” arrays, if they exist, will be returned and available for download.

Errors

Status Code Error Code Message
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.
409 InvalidAssetState Asset has not been uploaded. Please try again once the asset is uploaded.

Aspera Download

POST  https://api.cimediacloud.com/download/aspera
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "assetIds": [
    "moqxhkej4epvgrwz"
  ]
}
Property nameTypeDescription
assetIdsarray

An array of asset ids to download. Note: the current version only supports a single asset Id.

Responses200404
Headers
Content-Type: application/json
Body
{
  "host": "apod.cimediacloud.com",
  "sshPort": 33001,
  "targetRate": 1024,
  "minRate": 1024,
  "httpFallback": false,
  "asperaDownloadConfigurations": [
    {
      "user": "dxassets",
      "token": "nxyjaifiu3611ow2",
      "path": "/workspace/T654eroiSHY6GHtwieu74/Movie.mov",
      "destination": "Movie.mov",
      "assetId": "moqxhkej4epvgrwz",
      "elementId": "lj6u9aeqj8m3xkx7",
      "kind": "Asset",
      "type": "original",
      "paths": [
        {
          "source": "/workspace/T654eroiSHY6GHtwieu74/Movie.mov",
          "destination": "Movie.mov"
        }
      ]
    }
  ]
}
Property nameTypeDescription
hoststring

The hostname of the destination Aspera server.

sshPortnumber

The port used for authentication on the destination Aspera server.

targetRatenumber

The target transfer rate, in kbps.

minRatenumber

The minimum transfer rate, in kbps.

httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

asperaDownloadConfigurationsarray

An array containing configuration information that can be used to download files using Aspera.

asperaDownloadConfigurations[].userstring

The username on the destination Aspera server.

asperaDownloadConfigurations[].tokenstring

The authorization token for the Aspera transfer. This is time sensitive and will expire after 24 hours.

asperaDownloadConfigurations[].pathstring

The path to the remote file in Ci.

asperaDownloadConfigurations[].destinationstring

The suggested destination (filename) for the asset.

asperaDownloadConfigurations[].assetIdstring

The unique identifier of the registered asset.

asperaDownloadConfigurations[].elementIdstring

If available, the unique identifier of the registered element. User uploaded elements and files generated from custom profiles will all have an elementId property.

asperaDownloadConfigurations[].kindstring

Indicates the kind of the file. This value will be ‘Asset’ for the original source file, ‘Proxy’ for proxies, ‘Thumbnail’ for thumbnails, ‘Caption’ for caption files, and ‘Element’ for user uploaded elements.

asperaDownloadConfigurations[].typestring

If available, the type of file available for download. The original source file will always have a type of “original”. You can see the other proxy types in the Asset Previews section.

asperaDownloadConfigurations[].pathsarray

An array containing information about the asset being downloaded. This is similar to the path and destination properties above.

asperaDownloadConfigurations[].paths[].sourcestring

The path to the remote file including filename. This is the same value as asperaDownloadConfigurations.path.

asperaDownloadConfigurations[].paths[].destinationstring

The suggested destination (filename) for the asset. This is the same value as asperaDownloadConfigurations.destination.

Headers
Content-Type: application/json
Body
{
  "code": "AssetNotFound",
  "message": "Asset not found."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Aspera Download
POST/download/aspera

Description

Retrieve Aspera configuration information that can be used to download an asset’s original source file, proxies, thumbnails, files generated from custom profiles, and user uploaded elements. The “kind” property indicates whether the file is an asset (source file), proxy, thumbnail, or element. Additionally, the “type” property will give you information about each kind (for instance a “Proxy” kind can be a type of “video-3g”). The original source will always have a “type” equal to “original”. You can see proxy and thumbnails types in the Asset Previews section.

If the asset has been archived and a restored copy is not currently available, the asset will have to be restored prior to downloading it.

Errors

Status Code Error Code Message
400 AssetIdNotProvided Asset Id was not provided.
400 MultipleAssetIdsProvided Only one AssetId is allowed for Aspera download in the current version.
404 AssetNotFound Asset not found.
404 AssetDeleted Asset is deleted.
409 AssetTrashed Asset is trashed.
409 InvalidAssetState Asset has not been uploaded. Please try again once the asset is uploaded.
409 InvalidAssetState Asset is currently being archived and cannot be transferred using Aspera. The asset archive operation must complete and the asset must be restored before it can be transferred.
409 InvalidAssetState Asset is currently being restored and cannot be transferred using Aspera. The asset restore operation must complete before it can be transferred.
409 InvalidAssetState Asset is archived and cannot be transferred using Aspera. The asset must be restored before it can be transferred.
409 EntitlementRequired Workspace does not have Aspera enabled.

Aspera Bulk Download

POST  https://api.cimediacloud.com/download/aspera/bulk
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "assetIds": [
    "moqxhkej4epvgrwz"
  ]
}
Property nameTypeDescription
assetIdsarray

An array of asset ids to download.

Responses200409
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "items": [
    {
      "id": "eynde5qbjzc0ww16",
      "name": "Movie.mov",
      "kind": "Asset"
    }
  ],
  "downloadConfiguration": {
    "host": "apod.cimediacloud.com",
    "sshPort": 33001,
    "targetRate": 1024,
    "minRate": 1024,
    "httpFallback": false,
    "configurations": [
      {
        "user": "dxassets",
        "token": "aoe4pzkgrg44aj6s",
        "kind": "Active",
        "paths": [
          {
            "source": "/workspace/T654eroiSHY6GHtwieu74/Movie.mov",
            "destination": "Movie.mov",
            "assetId": "moqxhkej4epvgrwz"
          }
        ]
      }
    ]
  }
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

itemsarray

An array containing information about each asset.

items[].idstring

The unique identifier of the asset.

items[].namestring

The name of asset and its extension.

items[].kindstring

The kind of item returned. Will be ‘Asset’ for assets.

downloadConfigurationobject

Information about the Aspera download specs.

downloadConfiguration.hoststring

The hostname of the destination Aspera server.

downloadConfiguration.sshPortnumber

The port used for authentication on the destination Aspera server.

downloadConfiguration.targetRatenumber

The target transfer rate, in kbps.

downloadConfiguration.minRatenumber

The minimum transfer rate, in kbps.

downloadConfiguration.httpFallbackboolean

HTTP fallback for Aspera currently isn’t supported.

downloadConfiguration.configurationsarray

An array containing configuration information that can be used to download files using Aspera. At most there will be 2 array items. One representing active, non-archived assets and one representing archived, restored assets.

downloadConfiguration.configurations[].userstring

The username on the destination Aspera server.

downloadConfiguration.configurations[].tokenstring

The authorization token for the Aspera transfer. This is time sensitive and will expire after 24 hours.

downloadConfiguration.configurations[].kindstring

Indicates whether the download configuration is for active, non-archived assets or for archived, restored assets. Value will be either “Active” or “Restored”.

downloadConfiguration.configurations[].pathsarray

An array containing information about each asset being downloaded in the specific configuration.

downloadConfiguration.configurations[].paths[].sourcestring

The remote location of the asset.

downloadConfiguration.configurations[].paths[].destinationstring

The suggested destination (filename) for the asset.

downloadConfiguration.configurations[].paths[].assetIdstring

The unique identifier of the asset.

Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Aspera Bulk Download
POST/download/aspera/bulk

Description

Retrieve Aspera configuration information that can be used to download multiple assets using Aspera.

500 is the maximum number of assets that can downloaded in a single operation.

If the asset has been archived and a restored copy is not currently available, the asset will have to be restored prior to downloading it.

Only assets from a single Workspace can be downloaded in a single transfer session.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 AssetIdNotProvided Asset Id not provided.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
400 InvalidAssets Assets belong to multiple workspaces.
409 EntitlementRequired Workspace does not have Aspera enabled.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no available assets for download.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.
AssetTrashed Asset is trashed.
InvalidAssetState Asset has not been uploaded. Please try again once the asset is uploaded.
InvalidAssetState There are no transferable files found for this asset. If the asset is archived or in the process of being archived you must restore it before transfering the source file.

Aspera Push Transfer

Push transfers enable the scheduling of file delivery from Ci to external systems. Currently we support Aspera push transfers to externally hosted Aspera servers.

Create Aspera Push Transfer

POST  https://api.cimediacloud.com/transfer/aspera
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Body
{
  "host": "apod.cimediacloud.com",
  "user": "exampleuser",
  "password": "password",
  "token": "6b9i17kcyci4e46k",
  "sshPrivateKey": "-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCAQEAzrWZ4yVgCUlhaJXgBKJLxIy9kJAzTKg0i/uZqFE8uzfKTCt8-----END RSA PRIVATE KEY-----",
  "destinationRoot": "/path",
  "sshPort": 33001,
  "faspPort": 33001,
  "targetRate": 20480,
  "assets": [
    {
      "id": "moqxhkej4epvgrwz",
      "destinationPath": "/subdirectory",
      "transferSourceFile": true,
      "elements": [
        {
          "id": "9buxd3oqybkvqxtv",
          "destinationPath": "/subdirectory"
        }
      ],
      "proxies": [
        {
          "type": "video-hd",
          "destinationPath": "/subdirectory"
        }
      ],
      "thumbnails": [
        {
          "type": "large",
          "destinationPath": "/subdirectory"
        }
      ]
    }
  ]
}
Property nameTypeDescription
hoststring (required)

The target host for the Aspera push transfer.

userstring (required)

The target host’s transfer user.

passwordstring (required)

If using Aspera username and password, the password must be supplied in this property.

tokenstring (required)

If using Aspera token authentication, the token must be supplied in this property.

sshPrivateKeystring (required)

If using Aspera SSH key authentication, the private key must be supplied in this property. Newlines can be inserted using ‘\n’.

destinationRootstring (required)

The destination root in the target environment. All paths must start with ``.

sshPortnumber

The authentication port on the target Aspera server. Defaults to 33001.

faspPortnumber

The fasp transfer port on the target Aspera server. Defaults to 33001.

targetRatenumber

The target rate, in kbps, of the transfer. Defaults to 20480 kpbs.

assetsarray (required)

The list of assets to transfer.

assets[].idstring (required)

The unique identifier of the asset to transfer.

assets[].destinationPathstring

The path on the remote Aspera instance where the file will be transferred.

assets[].transferSourceFileboolean

Indicates if the asset’s source file should be transferred. Defaults to true.

assets[].elementsarray

The list of asset elements that should be transferred with this request.

assets[].elements[].idstring

The unique identifer for the element to transfer. Invalid element ids will be ignored.

assets[].elements[].destinationPathstring

The path on the remote Aspera instance where the file will be transferred.

assets[].proxiesarray

This of asset proxies that should be transferred with this request.

assets[].proxies[].typestring

The type of proxy to transfer. If all is provided all proxies will be transferred. Invalid proxy types will be ignored. Check the Previews section for available proxy types.

assets[].proxies[].destinationPathstring

The path on the remote Aspera instance where the file will be transferred.

assets[].thumbnailsarray

This of asset thumbnails that should be transferred with this request.

assets[].thumbnails[].typestring

The type of thumbnail to transfer. If all is provided all thumbnails will be transferred. Invalid thumbnails types will be ignored. Check the Previews section for available thumbnail types.

assets[].thumbnails[].destinationPathstring

The path on the remote Aspera instance where the file will be transferred.

Responses200409
Headers
Content-Type: application/json
Body
{
  "count": 1,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ],
  "items": [
    {
      "id": "moqxhkej4epvgrwz",
      "assetId": "",
      "name": "Movie.mov",
      "kind": "Asset",
      "type": "",
      "transferSessionId": "lj6u9aeqj8m3xkx7"
    },
    {
      "id": "moqxhkej4epvgrwz",
      "assetId": "6b9i17kcyci4e46k",
      "name": "Movie.mov",
      "kind": "Proxy",
      "type": "video-hd",
      "transferSessionId": "lj6u9aeqj8m3xkx7"
    }
  ],
  "transferSessions": [
    {
      "id": "lj6u9aeqj8m3xkx7",
      "assetIds": [
        "moqxhkej4epvgrwz"
      ]
    }
  ]
}
Property nameTypeDescription
countnumber

The number of items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

itemsarray (required)

An array containing information about each asset.

items[].idstring (required)

If available, the unique identifier for the asset or element transferred. This property will not be returned for proxies and thumbnails.

items[].assetIdstring (required)

If available, the unique identifier for the element, proxy, or thumbnail’s parent asset id. This property will not be returned for assets.

items[].namestring (required)

The name of the file being transferred.

items[].kindstring (required)

The kind of item being transferred. Can be ‘Asset’, ‘Element’, ‘Proxy’, or ‘Thumbnail’ for this resource.

items[].typestring (required)

If the item kind is ‘Proxy’ or ‘Thumbnail’, this property indicates the type of proxy or thumbnail returned. Will not be returned for ‘Asset’ or ‘Element’ kinds.

items[].transferSessionIdstring (required)

The Aspera transfer session id used to transfer this asset.

transferSessionsarray

An array containing information about each Aspera transfer session. At most there will be two transfer sessions; one for active (non-archived files) and one for any archived and restored files.

transferSessions[].idstring

The unique identifier for the Aspera transfer session.

transferSessions[].assetIdsarray

An array containing all asset ids involved in the Aspera transfer session.

Headers
Content-Type: application/json
Body
{
  "count": 0,
  "errorCount": 1,
  "errors": [
    {
      "name": "Item name",
      "kind": "Item",
      "errorCode": "ItemNotFound",
      "errorMessage": "Item not found.",
      "id": "e2j4e6bw65ogfswc"
    }
  ]
}
Property nameTypeDescription
countnumber

The number of successful items.

errorCountnumber

The number of invalid items.

errorsarray

An array containing information for each error item.

errors[].namestring

The name of the failed item.

errors[].kindstring

The kind of the failed item.

errors[].errorCodestring

The machine readable error code for the specific failure.

errors[].errorMessagestring

A description of the error for the specific failure.

errors[].idstring

The unique identifier for the item.

Create Aspera Push Transfer
POST/transfer/aspera

Description

Initiates an Aspera push transfer.

Assets that are archived (and not restored) or in the process of archiving or restoring cannot be transferred. However, elements, proxies, and thumbnails for assets in these states can be transferred.

500 is the maximum number of assets that can be transferred in a single operation.

Only assets from a single Workspace can be sent during a transfer operation.

Errors

Status Code Error Code Message Notes
400 InvalidRequest Invalid request. Check the request body format and verify the right Content-Type header value is being sent.
400 InvalidRequest Invalid Aspera transfer configuration. Please supply all required properties for the Aspera transfer.
400 AssetIdNotProvided Asset Id not provided.
400 ExceededMaxAssetCount Max asset count exceeded. The maximum number of assets is 500.
400 InvalidAssets Assets belong to multiple workspaces.
409 EntitlementRequired Workspace does not have Aspera enabled.
409 BulkOperationFailed The bulk operation failed. See the errors array for more information. This message appears if there were no transfers initiated.

Errors represented in errors array

Error Code Message
AssetNotFound Asset not found.
AssetDeleted Asset is deleted.
AssetTrashed Asset is trashed.
InvalidAssetState Asset has not been uploaded. Please try again once the asset is uploaded.
InvalidAssetState Asset is currently being archived and cannot be transferred using Aspera. The asset archive operation must complete and the Asset must be restored before it can be transferred.
InvalidAssetState Asset is currently being restored and cannot be transferred using Aspera. The asset restore operation must complete before it can be transferred.
InvalidAssetState Asset is archived and cannot be transferred using Aspera. The asset must be restored before it can be transferred.

Get Aspera Push Transfer Status

GET  https://api.cimediacloud.com/transfers/lj6u9aeqj8m3xkx7
Requestsexample
Headers
Content-Type: application/json
Authorization: [bearer token]
Responses200409
Headers
Content-Type: application/json
Body
{
  "bytesWritten": 2048,
  "count": 2,
  "elapsed": 1000,
  "errorMessage": "",
  "status": "Completed",
  "items": [
    {
      "id": "moqxhkej4epvgrwz",
      "assetId": "",
      "name": "Movie.mov",
      "kind": "Asset",
      "type": "",
      "status": "Completed",
      "bytesWritten": 2048,
      "size": 2048,
      "errorMessage": ""
    },
    {
      "id": "moqxhkej4epvgrwz",
      "assetId": "6b9i17kcyci4e46k",
      "name": "Movie.mov",
      "kind": "Proxy",
      "type": "video-hd",
      "status": "Completed",
      "bytesWritten": 2048,
      "size": 2048,
      "errorMessage": ""
    }
  ]
}
Property nameTypeDescription
bytesWrittennumber

If available, number of bytes written to disk for the entire transfer session.

countnumber

The number of assets, elements, proxies, or thumbnails to be transferred.

elapsednumber

If available, number of microseconds since the transfer session was initiated.

errorMessagestring

If available, a description of any error encountered.

statusstring

The status of the transfer. Valid values are ‘Waiting’, ‘Completed’, ‘Running’, ‘Paused’, ‘Cancelled’, ‘Error’, ‘Willretry’, ‘Orphaned’.

itemsarray (required)

Information about each asset that will be transferred.

items[].idstring (required)

If available, the unique identifier for the asset or element transferred. This property will not be returned for proxies and thumbnails.

items[].assetIdstring (required)

If available, the unique identifier for the element, proxy, or thumbnail’s parent asset id. This property will not be returned for assets.

items[].namestring (required)

The name of the asset.

items[].kindstring (required)

The kind of item returned. Can be ‘Asset’, ‘Element’, ‘Proxy’, or ‘Thumbnail’ for this resource.

items[].typestring (required)

If the item kind is ‘Proxy’ or ‘Thumbnail’, this property indicates the type of proxy or thumbnail returned. Will not be returned for ‘Asset’ or ‘Element’ kinds.

items[].statusstring (required)

The status of the asset transfer. Valid values are ‘Waiting’, ‘Completed’, ‘Running’, ‘Paused’, ‘Cancelled’, ‘Error’, ‘Willretry’, ‘Orphaned’.

items[].bytesWrittennumber (required)

If available, number of bytes written to disk for this asset.

items[].sizenumber (required)

The size of the asset, in bytes.

items[].errorMessagestring (required)

If available, a description of any error encountered.

Headers
Content-Type: application/json
Body
{
  "code": "InvalidRequest",
  "message": "Invalid request. Check the request body format and verify the right Content-Type header value is being sent."
}
Property nameTypeDescription
codestring

Machine readable error code

messagestring

Error message

Get Aspera Push Transfer Status
GET/transfers/{transferSessionId}

URI Parameters
HideShow
transferSessionId
string (required) 

The unique identifier for the Aspera push transfer session.

Description

Gets the transfer status for an Aspera transfer session.

Errors

Status Code Error Code Message
404 TransferSessionNotFound Transfer session not found.

Archive and Restore

Ci API allows for asset source files to be archived to low cost, highly durable storage. This is perfect for source files that don’t need to be accessed often or where a 3-6 hour delay for retrieval can be accommodated. Asset proxies, elements, and thumbnails remain available if an asset’s source file is archived.

We find customers using this feature once they’ve completed a project and no longer require instant access to the files but want to keep them stored securely and cheaply. Others use it as a scalable and reliable off-site disaster recovery location.

Assets that have had their source files archived can be permanently restored or temporarily restored (for a time-period of your choosing). The restore process typically completes in 3-6 hours.

You can check on the archive status, restore status, or restore expiration at any time by calling Get asset details. Additionally, you can receiving a webhook message when the archive status or restore status is changed.

Archive Details

While the archive request is immediate, the archival process takes time (typically between 24 and 48 hours but could take longer). During the archive process, the asset’s ArchiveStatus changes from ‘Not archived’ to ‘Archive in progress’. Once the process is complete, the asset’s ArchiveStatus changes from ‘Archive in progress’ to ‘Archived’ and its source file is no longer available for download.

The asset must be restored using the Restore operation prior to becoming downloadable again.

Cancel Asset Archive

Canceling an asset archive operation will stop the archive process and make the asset available for download immediately. This operation can only be performed on assets that are currently archiving (ArchiveStatus = ‘Archive in progress’). If the archive operation has completed you cannot cancel an archive, you must restore it in order to download the original source file.

Restore Details